こんにちは。CData Software Japanリードエンジニアの杉本です。
CData Excel Formulas 紹介シリーズ第3段。今回はストアドプロシージャ編です。
CData Excel Add-in ではその特性上、ストアドプロシージャはVBAなどから実行するくらいしか方法が無いのでは?と思われている方も多いかもしれませんが、実は「CData Excel Formulas」を利用することで、手軽にストアドプロシージャが実行できます。
今回は実際にお客様から相談があったスマレジの商品画像一括更新を例として、CData Excel Add-in でのストアドプロシージャ一括実行方法を紹介したいと思います。
利用する CData Excel Add-in
今回は CData Excel Add-in for Smaregi を利用します。
スマレジ Excel Add-in では、商品画像の更新機能がありますが、APIの性質上 ストアドプロシージャ「ProductImageUpload」として提供されています。
以前データ連携ツールのArcESBを利用した実行方法を紹介したことがありましたが、サーバー環境などの構成が必要であったため、ちょっと敷居が高いものでした。
それを今回は Excel Add-in から実行する方法として紹介したいと思います。
Excel Add-in for Smaregi のインストールが完了したら、接続設定を完了しておきます。
CData Excel Formulas でストアドプロシージャの実行
それでは、ストアドプロシージャの実行を試してみましょう。
CData Excel Formulas では「CDATAQUERY 関数」を利用することで、ストアドプロシージャが実行できます。ストアドプロシージャ専用の関数があるわけではないので要注意です。
今回のストアドプロシージャでは、更新対象となる商品のProductIdと更新用画像のURLをImageUrlという列でそれぞれ作成しておきます。
あとは「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列それぞれに貼り付けて実行するだけで、一括でリクエストができます。
実際に試してみた動画が以下のとおりです。
CDATAQUERYを貼り付けるだけで、ProductImageが更新されました。
CDATAQUERYを貼り付けた後はImageUrlの値を変更するだけで、再度ストアドプロシージャが実行されるので注意してください。
これで、このままこのExcelシートをメンテナンスしていくだけで、画像の更新管理を行うことができますね。
おわりに
このようにCDATAQUERYを駆使すると、ストアドプロシージャの実行も手軽にExcelから実行できます。
しかも、単一のストアドプロシージャではなく、一括で実行できるのはメリットが大きいですね。
是非様々なケースで活用してみてください。
実行方法がよくわからない、このストアドプロシージャはどうすればいいの?といった疑問・質問があれば、テクニカルサポートまでお気軽にどうぞ!