WinActorからkintoneの複数行をGetだぜ!
こちらの記事は、RPACommunity Advent Calendar 12月8日の記事になります。
え?8日はLTに関する記事じゃないかって?
そんな昔のことは忘れたさ。俺は、書きたいことを書く!!!
(LT関連はまたの機会に…すまそ。。)
といわけで、今回もkintone x winactorネタです(しつこい??)
ライトニングトーク支部で、「kintone縛りのLT大会」を企画しており、そのネタ調査の過程になりますので、、、
さて、4日と5日の記事で、kintoneからREST APIを経由して、WinActorで1行だけデータが取れました。
こちらの記事では、複数行を取得する内容にしたいと思います。
下準備
複数行取得する、ということはkintoneに複数行必要ということですよね。現在1行しか登録されていませんので、数行登録してみます。
おっと…登録はWinActor……ではなく、手動登録です(笑)
期待された方、もうしばらくお待ちくださいw
ということで、敢えて抜けてる項目作って数件のデータ登録をしておきました。
複数行のデータ、WinActorで正しく取得できるでしょうか?
APIを変更
cyboze developer networkに、kintoneのAPIリファレンスがあるのですが、そこで複数のレコード取得は、下記のように書いてありました。
これに従うと、URIは下記のようになります。
※APP=2は、私の環境になります。
https://hogehoge.cybozu.com/k/v1/records.json?app=2
というこで、実行してみましょう!!
エラッた…
はい、見事のエラーとなりました。
WinActorの文字数制限、1024文字まで?!
え?そうなの???
困ったときは、Bard先生に相談だ!(GPT先生でも可)
やっぱり、1024文字制限がある…けど、解除の方法も記載されてる!!
ということで、シナリオ情報画面のその他タブの中に、しっかりとありました。今、チェックが入ってる状態ですが、これをOFFにしてリトライしてみましょう。
リトライ
OFFにして実行したところ、おぉ…無事に取得できてるっぽい!!
まだキー項目で取り出しは出来ていませんが、とりあえずJSONで複数行の取得はできたみたいですね。
では、細かい各項目の取得はどうするかというと…
HTTP詳細で複数項目をkintoneから取得するところまで同じ。
次に例外処理の中に繰り返し処理を入れます。繰り返し処理は無限ループにしています。何も起きなければずっとループしつづけるやつですね。
ループを抜けるためには、エラーを発生させます。
今回、INDEX初期化としており、ループ内でINDEX値をカウントアップしています。そして、「配列の値の取得(JSON)」でINDEX値を使ってJSON配列の中から1レコードづつ取得します。
取得後は、各項目の値を取り出します。
そして配列数を超えて取り出そうとしたとき、エラーが発生します。
そのエラーを例外処理がキャッチすることで、無限ループを抜ける仕組みにしています。
以上で、kintoneから複数行をAPIで取り出し、それを各項目毎に取得し変数に保存するところまで出来ました。
次は、項目が埋まってないところ(名前とかグレードが空欄のまま)を、属性ファイルから値を読み取り、その値で更新するところをやりたいと思います。
ここまで出来れば、kintone縛りのLT会ネタもなんとか出来そう~(^O^)/