ログインユーザをユーザ選択フィールドに埋め込む

ログインユーザーの情報を取得する

を参考に下記のようにログインユーザをユーザ選択フィールドに埋め込もうと思ったのですが、うまくいきません。

    record[‘ユーザアカウント’][‘value’] = kintone.getLoginUser();

あるプロセスの段階で処理をしたログインユーザの情報をユーザ選択フィールドに残しておきたいので、よい方法があればご教授いただけると幸いです。

kintone.getLoginUser()は配下に色々なプロパティを持っていますので、必要な分を渡すことになると思います。また、ユーザー選択フィールドはフィールド形式やその特性を確認頂くとわかりますが、配列で渡す必要があります。

 

ですので、次のようになると思います。

 

var user = kintone.getLoginUser();
record['ユーザアカウント']['value'] = [{            
  "code": user.code,
  "name": user.name        
}];

早速ありがとうございます。

user.codeとuser.name 2つの値を配列で渡してあげないとならないわけですね。

頂いたコードで解決できました。ありがとうございます。

あ。すみません。ユーザー選択は、ユーザーを特定できるcodeプロパティさえしていすれば大丈夫です(nameは指定しなくても大丈夫です)。

 

ほぼ解決されたようでよかったです。

了解です。

ちょっと気になった所で、すでに複数のユーザが選択されている状態だと、一度すべてクリアをしてから、ログインユーザを指定して埋め込むということが必要になりそうですね。

 

record[‘ユーザアカウント’][‘value’] への値のセットの仕方のお話ですね。「=」でのセットは文字通り、渡した配列がセットされるだけですので、事前に既存を含めて配列を作り込んでからセットする等の処理が必要です。既存のへの追加であれば、次のような方法でも良いかと思います。

 

record['ユーザアカウント']['value'].push({
  "code": user.code
});

すいません。cybozuアプリから実行したら反映されなかったので 勘違いしていました。

 

https://cybozudev.zendesk.com/hc/ja/articles/201941974#step3 にあるように

プロセス管理のイベントをスマートフォンアプリからの更新をする事はできなさそうですね・・・。

スマホ(PC-スマートフォン早見表)は、現状対応していないですね。

たとえば別途PCから開いて更新をした際に、ステータス履歴のデータから 最後に該当のステータスに変更をしたユーザを入れ込むっていうことができれば力技かもしれませんが実現できないでしょうか。

 

ステータスに関するAPIが現状更新だけですので、そこまでやろうとするとDOMを読むしかないと思います。