見出し画像

WinActorからkintoneの情報をGetだぜ!

こちらの記事は、RPACommunity Advent Calendar 12月4日の記事になります。

こんばんは、かーでぃです。
kintone縛りのLT会を企画しておりまして、どうせならWinActorから操作してやろう、と思いまして四苦八苦しながらやってみたお話です。

とりあえずの完成系

まぁ、なんて質素なシナリオなんでしょうか(笑)
これを実行すると、シナリオが保存されたフォルダにJSONファイルが生成されるようになっています。

そして、その生成されたJSONファイルの中身がこちらです。

{"record":{"ganpla_name":{"type":"SINGLE_LINE_TEXT","value":"アッシマー"},"jan_code":{"type":"SINGLE_LINE_TEXT","value":"1134100"},"レコード番号":{"type":"RECORD_NUMBER","value":"2"},"更新者":{"type":"MODIFIER","value":{"code":"makoto.kamada.0725@gmail.com","name":"鎌田誠"}},"作成者":{"type":"CREATOR","value":{"code":"makoto.kamada.0725@gmail.com","name":"鎌田誠"}},"grade":{"type":"DROP_DOWN","value":"HG"},"attached_file":{"type":"FILE","value":[{"fileKey":"20231130094704811A83538D2645558AB3F007D55C96B7018","name":"892.pdf","contentType":"application/pdf","size":"2025227"}]},"scale":{"type":"SINGLE_LINE_TEXT","value":"1/144"},"$revision":{"type":"__REVISION__","value":"2"},"更新日時":{"type":"UPDATED_TIME","value":"2023-11-30T09:47:00Z"},"作成日時":{"type":"CREATED_TIME","value":"2023-11-30T09:47:00Z"},"$id":{"type":"__ID__","value":"2"}}}

このシナリオは、kintoneで公開されている「ガンプラ管理アプリ」から、指定されたIDのレコードを取り出してきており、目的は正しく達成されております。

kintone上では、このような感じになっています。

それでは、順番に見ていきましょう!

1.APIトークンの取得

こちらは、kintoneの処理になります。ここで取得したAPIトークンを使って、WinActorからのアクセスを認証するために行います。
アプリの設定→APIトークンをクリックします。

すると、以下のような画面になりますので、「生成する」を押します。

すると、APIトークンが生成され、アクセス権のところが選択できるようになりますので、適切に設定します。
今回の記事ではレコード閲覧しか行いませんが、次回以降で追加や編集もできるようにするため、権限を付与しておきます。

kintone側の準備は以上で終了です。

2.WinActorでREST APIを叩く

WinActorでREST APIを叩くのですが、ネットを検索していたら、RPACommunityの動画が見つかりましたw

下記は、その際の資料
https://winactor.biz/docs/ApiCooperation_Winactor.pdf

こちらを見ると、REST APIを叩くには「HTTPライブラリ」を使うとなっていますので、シナリオ上に配置します。

プロパティを開くと、設定項目がいくつかのタブに分かれていることがわかりますね。

基本設定
メソッドのところは、いくつか選択できますが、今回は、kintoneから値を取得するところを行うので、GETを選択します。
URLは、レコードを取得するためのURLとして以下を設定します。
https://YOUR_DOMAIN.cybozu.com/k/v1/record.json?app=2&id=2
→ 
app=2 アプリのID番号になります。アプリのURLでわかります。
→ id=2 レコード番号になります。

要求
ここでは、kintoneに送る情報などを設定します。設定はヘッダのみになります。APIによっては、ボディへの値設定が必要な場合もあります。
ここでは、APIを利用するための認証を行っていますので、APIトークンは漏洩しないように注意しましょう。

緑の+ボタンを押してキーを追加します。
キー:X-Cybozu-API-Token
値:先ほど取得したAPIトークンを設定します。

応答
要求はkintoneに送る情報を設定していましたが、ここではkintoneから受け取る情報を設定します。
ここでは、ボディにのみ設定しています。
本来は、JSONで帰ってくるキーを追加し、値に変数名を設定することで、値を取得できるのですが、とりあえずJSONファイルに保存するようにしてみます。

3.完成

これで、シナリオを保存し実行すると、kintoneから値を所得してJSONファイルが生成されます。
正しく実行されると、以下のようにJSONが取得できました。

{"record":{"ganpla_name":{"type":"SINGLE_LINE_TEXT","value":"アッシマー"},"jan_code":{"type":"SINGLE_LINE_TEXT","value":"1134100"},"レコード番号":{"type":"RECORD_NUMBER","value":"2"},"更新者":{"type":"MODIFIER","value":{"code":"makoto.kamada.0725@gmail.com","name":"鎌田誠"}},"作成者":{"type":"CREATOR","value":{"code":"makoto.kamada.0725@gmail.com","name":"鎌田誠"}},"grade":{"type":"DROP_DOWN","value":"HG"},"attached_file":{"type":"FILE","value":[{"fileKey":"20231130094704811A83538D2645558AB3F007D55C96B7018","name":"892.pdf","contentType":"application/pdf","size":"2025227"}]},"scale":{"type":"SINGLE_LINE_TEXT","value":"1/144"},"$revision":{"type":"__REVISION__","value":"2"},"更新日時":{"type":"UPDATED_TIME","value":"2023-11-30T09:47:00Z"},"作成日時":{"type":"CREATED_TIME","value":"2023-11-30T09:47:00Z"},"$id":{"type":"__ID__","value":"2"}}}

WinActorでREST APIを叩くのも初めてでしたし、kintoneでAPIを叩くのも初めてだったので、かなり混乱しましたが…
①kintoneの設定
②WinActorからREST APIを叩く
この順番で手順を追っていけば、概ねできるんじゃないかと思います。


いいなと思ったら応援しよう!