はじめに
こんにちは!すぎもんです
DataSpiderでAgileWorksにつないでみた、の第二弾になります。
前回の記事で、AgileWorksのAPIを使う準備はできましたので、今回はDataSpider設定を進めていきます。
前回の記事↓↓↓↓↓
DataSpiderでAgileWorksにつないでみた(1/2)(アドオン開発編)の続きになります。
引き続き本記事も、最後まで読んでいただけたら嬉しいです!
DataSpiderの設定(POST実行処理)
新規でプロジェクトとスクリプトを作成します。
また、スクリプト内のロジックで使える「スクリプト変数」も作成します。
デザイナの上部メニューから[スクリプト変数新規作成]のメニューアイコンを押下します。
スクリプト変数は下記の通りで2つ作成します。
変数名 : docId
変数型 : 文字列
値 : 20
(書類ID) ※前記事のAgileWorks設定参照
変数名 : formCode
変数型 : 文字列
値 : keiyaku_form
(フォームコード) ※前記事のAgileWorks設定参照
次にDataSpiderのデザイナ右側にあるツールパレットから「ネットワーク」-「REST」-「post実行」のアイコンを、デザイナ上にドラッグ&ドロップして設定画面を開きます。
まず「必須設定」タブの設定です。接続先のテキストボックスを選択して、追加を選択します。この「接続先」は、RESTで接続する先のURLを設定することになります。「パス」の値は、「接続先」で設定したURLの後ろに付加され、最終的なendpointになります。
今回は以下のように設定しました。
名前 : AgileWorks接続用
URL : http://{AgileWorksServieBusサーバ}:7501/dss-test
パス : /testGetDocInfo/
接続先の設定内の「接続テスト」を押下すると、入力されているURLがDataSpiderと通信ができるか、を確認することができます。OKであれば「接続先」が正しく設定されています。
下記のように設定しました。
「パス」の値は、APIの最終的なendpointの内、「接続先」に設定したURL値の後ろ(残り)の部分です。AgileWorksServiceBus(以降、ASB)設定で作成したサービスルートのコードになります。
次に、「リクエスト設定」タブの設定は下記の通りです。
ここでは、クエリパラメータ以外のリクエストデータをどのように扱うか指定します。
ASBを介したリクエストは、クエリパラメータを使用せず、body部にJSONデータをセットします。
最後に、「レスポンス設定」タブです。
ここでは、レスポンスをどのように扱うかの設定を行います。
今回は、レスポンスの内容を閲覧するだけなので、データ出力形式を「ファイル」にして、ファイルパスには、簡易的に「/data/agileworks_response.json」と設定します。
ファイルパスは、Dataspiderのdataディレクトリからの相対パスです。
以上で、POST実行処理の設定は完了です。
DataSpiderの設定(マッピング設定)
引き続き、マッピングの設定を行います。
DataSpiderのデザイナ右側にあるツールパレットから「変換」-「基本」-「マッピング」のアイコンを、デザイナ上にドラッグ&ドロップします。下記のウィンドウが表示されますので、「プロセスフローとデータフローを引く」を選んでOKを押下します。
マッピング設定画面を開き、作成したスクリプト変数「docId」と「formCode」を、Json形式でリクエストデータとしてマッピングします。
マッピング項目は、前回記事でAsbCallRequestModelの引数bodyからの取得対象「docId(書類ID)」と「formCode(フォームコード)」です。
出力先のマッピング対象は、「execute_http_post」を右クリックして「ルート要素の追加」から属性及び子要素を追加して作成しました。スキーマファイルを別途用意して読み込んで設定も可能です。
マッピングは、スクリプト変数の「docId」を出力先の「execute_http_post」の「docId」にドラッグ&ドロップします。スクリプト変数「formCode」も、同様です。
スクリプト変数「docId」
と、「execute_http_postのdocId」
スクリプト変数「formCode」
と、「execute_http_postのformCode」
最後に、「文字列定数」を使って、type属性へのマッピングをします。
ツールパレットから「文字列」-「基本」-「単一行文字列定数」をMapper内にドラッグ&ドロップして、文字列定数「object」と「string」を作成します。
下記の通り、それぞれを線でつなぎます。
文字列定数「object」
と、「rootのtype属性」
文字列定数「string」
と、「docIdのtype属性」
文字列定数「string」
と、「formCodeのtype属性」
これでマッピング完了です。
デバック実行
実行後に、DataSpider内のエクスプローラを開き、dataディレクトリを確認します。
「agileworks_response.json」が作成されていることが確認できます。
最後に
今回は、「DataSpiderでAgileWorksにつないでみた(DataSpider設定編)」でした。
前回記事DataSpiderでAgileWorksにつないでみた(1/2)(アドオン開発編)の続きでしたが、皆さん、いかがでしたでしょうか?
今回は、REST接続をして書類IDなどの「条件を固定値」にして「書類情報を取得」しました。この条件をWebAPI側で「条件を変数値」にすることで、より汎用性のある連携が可能になりそうですね。
DataSpider設定編となる本記事の内容は、他サービスとのREST API連携でも参考になる内容だと思います!是非、皆さんの何かのご参考になれば幸いです。
今回やってみたPOST実行による「情報取得」は、まずは第一歩です。ワークフローの中には、ユーザー情報や処理の日時情報など、業務改善に使えそうな情報がたくさんあります。今回取得した情報以外の情報もDataSpiderのPOST実行で取得できます。
日々の業務の中に埋もれた情報を拾い上げ、その情報をどう「活用」していくかが重要であり、難しくもあり、一番の考えどころですよね。DataSpiderと繋いだその先の「データ活用」をどうするのか、是非ご自身の業務の中でもDataSpiderを試してみて体感してみてください。
関連して、DataSpiderの処理アイコンをどう使えばいいのか、そんなことがわかるTips記事も今後書いていきたいと思います!日々の業務で学んだり思いついた開発Tipsなどを今後も投稿していきます!
お読みいただきありがとうございました。それでは、また!