ユーザー選択フィールド(複数名)の更新方法

お世話になります。OKAと申します。

アプリAからアプリBのユーザー選択フィールドの更新をREST APIにより実装しようと考えております。

その際のパラメータの記述でつまづいている部分がありますので、ご助言いただきたく存じます。

 

アプリAに"参加者"というユーザー選択フィールドを設けており、プロセス処理時にアプリBの"参加者"を更新します。

アプリAでは以下のようなコードを記載しております。

var params = {
app: appB_ID,
id: record[‘record_id’].value,
record: {
参加者: {
value: [{ code: record[‘参加者’][‘value’][0][‘code’] } ]
}
}
};
kintone.api(‘/k/v1/record’, ‘PUT’, params);

 

ユーザーが1名の場合は上記の書き方で実装できますが、ユーザーが複数名の場合、

「参加者」というフィールドのvalue部分はどのように記載すればよろしいでしょうか。

下記のような配列を作ってvalue部分に設定してみましたが、形式が合わないためかなかなかうまくいきません。

var array = [];

for(var i=0; i < record[‘参加者’][‘value’].length; i++) {

array.push("{ code: " + record[‘参加者’][‘value’][i][‘code’] + “}”);

}

 

正しい記述方法をご教授いただけますと幸いです。よろしくお願いいたします。

array.pushの中身が文字列扱いになっていますが、

 

{“code”: record[‘参加者’][‘value’][i][‘code’]}

 

といったJSONオブジェクトにしてあげれば良いかと思います。

 

また、リクエストが失敗している原因をこちら( https://www.joyzo.co.jp/blog/544 )のような方法で見たり、もしくはそれによって、原因になっていると思われる部分をブレークポイントを打って確認したり、consoleに出して確認するようにすると、原因が見えてくると思いますので、トライしてみてください。

ご回答いただきありがとうございます。

文字列でなくJSONとして配列に追加し、value: array と指定することで実装できました。

var array = [];

for(var i=0; i < record[‘参加者’][‘value’].length; i++) {

array.push({ code: record[‘参加者’][‘value’][i][‘code’] });

}

 

また、リクエスト失敗の確認方法もご提示いただきありがとうございます。参考にさせていただきます。