CData Software Blog

クラウド連携のCData Software の技術ブログです。

CData Excel Add-in でストアドプロシージャを一括実行する方法:CData Excel Formulas

f:id:sugimomoto:20210813113007p:plain

こんにちは。CData Software Japanリードエンジニアの杉本です。

CData Excel Formulas 紹介シリーズ第3段。今回はストアドプロシージャ編です。

www.cdatablog.jp

www.cdatablog.jp

CData Excel Add-in ではその特性上、ストアドプロシージャはVBAなどから実行するくらいしか方法が無いのでは?と思われている方も多いかもしれませんが、実は「CData Excel Formulas」を利用することで、手軽にストアドプロシージャが実行できます。

cdn.cdata.com

今回は実際にお客様から相談があったスマレジの商品画像一括更新を例として、CData Excel Add-in でのストアドプロシージャ一括実行方法を紹介したいと思います。

利用する CData Excel Add-in

今回は CData Excel Add-in for Smaregi を利用します。

www.cdata.com

f:id:sugimomoto:20210813112826p:plain

スマレジ Excel Add-in では、商品画像の更新機能がありますが、APIの性質上 ストアドプロシージャ「ProductImageUpload」として提供されています。

cdn.cdata.com

以前データ連携ツールのArcESBを利用した実行方法を紹介したことがありましたが、サーバー環境などの構成が必要であったため、ちょっと敷居が高いものでした。

www.cdatablog.jp

それを今回は Excel Add-in から実行する方法として紹介したいと思います。

Excel Add-in for Smaregi のインストールが完了したら、接続設定を完了しておきます。

f:id:sugimomoto:20210813112833p:plain

CData Excel Formulas でストアドプロシージャの実行

それでは、ストアドプロシージャの実行を試してみましょう。

CData Excel Formulas では「CDATAQUERY 関数」を利用することで、ストアドプロシージャが実行できます。ストアドプロシージャ専用の関数があるわけではないので要注意です。

cdn.cdata.com

今回のストアドプロシージャでは、更新対象となる商品のProductIdと更新用画像のURLをImageUrlという列でそれぞれ作成しておきます。

f:id:sugimomoto:20210813112838p:plain

あとは「CDATAQUERY」の第1引数でストアドプロシージャのクエリを指定した関数を作成します。

通常のストアドプロシージャのフォーマットは以下のようになるので、このProductIdの値とImageUrlの値をセルの番地指定に切り替えるイメージで作成します。

Exec ProductImageUpload ProductId = 1, ImageUrl= 'https://www.cdata.com/ui/img/home/adapters.png'
=CDATAQUERY("Exec ProductImageUpload ProductId=" &A2& ",ImageUrl='" &B2&"'","Smaregi.Connection1",,"D2")

第2引数は接続情報、第4引数で処理結果を表示するセルの場所を記述しておきました。これをC列それぞれに貼り付けて実行するだけで、一括でリクエストができます。

実際に試してみた動画が以下のとおりです。

https://cdatajbuilds.s3.ap-northeast-1.amazonaws.com/CDataBlog/smaregistored.gif

CDATAQUERYを貼り付けるだけで、ProductImageが更新されました。

CDATAQUERYを貼り付けた後はImageUrlの値を変更するだけで、再度ストアドプロシージャが実行されるので注意してください。

これで、このままこのExcelシートをメンテナンスしていくだけで、画像の更新管理を行うことができますね。

おわりに

このようにCDATAQUERYを駆使すると、ストアドプロシージャの実行も手軽にExcelから実行できます。

しかも、単一のストアドプロシージャではなく、一括で実行できるのはメリットが大きいですね。

是非様々なケースで活用してみてください。

実行方法がよくわからない、このストアドプロシージャはどうすればいいの?といった疑問・質問があれば、テクニカルサポートまでお気軽にどうぞ!

https://www.cdata.com/jp/support/submit.aspx