作成者のフィールドを配置し、Javascriptで作成者にメールを送るJavascriptを追加したいのですが、作成者のメールアドレスの取得方法がわかりません。
記載例などを見て、ログインユーザーのメールアドレスは取得できたのですが、
var address = event.record.作成者.value.email;
としても、「undefined」になります。
var address = event.record.作成者.value.name;
で表示名は出てきました。
ログインユーザー以外のメールアドレスの取得はどのようにすればいいでしょうか。
KAORINさん
emailがプロパティとして定義されているのは、kintone.getLoginUser()と組織の所属ユーザーエクスポート APIあたりです。
ログインユーザーであれば前者、他のユーザーを含めてということであれば後者から取得することになると思います。
ちなみに、フィールド形式を確認頂くと良いと思いますが、レコード情報の中でユーザー経由でemailを定義されているものはありません。
Ryu Yamashitaさま
ありがとうございます。
ログインユーザーではないユーザーのアドレスを取得したいので
組織の所属ユーザーエクスポートAPIを使わなければならないのですね。
https://www.joyzo.co.jp/blog/592
を参考にやってみようと思っているのですが、
ユーザー選択のフィールドに入力されている人の情報を得ようと
var user = event.record.ユーザー選択.value.code;
としても「undefined」になってしまいます。
var user = event.record.ユーザー選択.value.type;
を入れると「USER_SELECT」が返ってはくるのですが、codeがundefinedなのはなぜでしょうか。
フィールド形式を確認したのですが、codeとnameは入っているようなのに、いずれもundefinedになってしまいます。
各フィールドがJSON形式でどのように属性定義されているかを、やはりフィールド形式でご覧頂くとわかりますが、ユーザー選択フィールドであれば、
"<フィールドコード>": {
"type": "USER_SELECT",
"value": [{
"code": "sato",
"name": "Noboru Sato"
}, {
"code": "kato",
"name": "Misaki Kato"
}]
}
と例があります。ユーザー選択フィールドで複数指定できるところに対応して、配列が途中噛んでいることが分かりますので、
event.record.value[0].code
のような指定が必要です。
恐らく、undefinedと共に定義されていないものへのアクセスを試みたことに対するエラーも出ているかと思います。フィールドの値の取得・指定はフィールド形式をよく確認頂くことが大切です。
console.log(event);
や
console.log(event.record);
として、構造を確認されてみるのも良いかと思います。
Ryu Yamashitaさま
ありがとうございました。
ユーザー選択フィールドは複数選択可でした・・・、よくわかっておらず大変失礼いたしました。
ユーザーエクスポートAPI
https://cybozudev.zendesk.com/hc/ja/articles/202363040-%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88API#step2
からもメールアドレスが取得できそうなので、こちらでやってみたいと思います。
失念しておりました。こちらもkintone.api()でコールできますし、emailがレスポンスに含まれますね。
kintone java clientでレコードからプロセス管理の「作業者」の「メールアドレス」を取得する方法はありますでしょうか。