何を実現したいのかを書きましょう
現在の作業者をユーザーフィールドに表示させたいです。
過去のトピックスでドンピシャのトピックスがあったのですが、
参考リンク先が非公開になっており
わからなかったので全く同じ質問で恐縮なのですが
教えてください。
発生した問題やエラーメッセージを具体的に書きましょう
ほんとはアクションボタンを押して
作業者が変更になったらユーザーフィールドの値も連動して変更させたかったのですが
それができなくて、アクション操作後に詳細画面が表示されるので
そのタイミングで更新できればと思いやってみたのですが
ユーザーフィールドの値は更新されません。
現在の作業者のデーターは取得出来て
イベントを編集画面を開いたときに変更すると
ユーザーフィールドが更新できますが
イベントを詳細画面に変更すると更新されません。
コンソールで値を確認すると
表示したいユーザーフィールドの値は現在の作業者が
入っているようなのですが
表示がされません。
詳細画面の表示を変更する何かが足りなのだと思うのですが
それがわかりません。
よろしくお願いします。
実行したコードをコピー&ペーストしましょう
(() => {
'use strict';
const events = [
// 'app.record.edit.show',
'app.record.detail.show',
// 'app.record.detail.process.proceed',
];
kintone.events.on(events, async (event) => {
const recordId = kintone.app.record.getId(); // レコードID
const appId = kintone.app.getId(); // アプリID
try {
// プロセス管理の作業者情報を取得するために GET メソッドを使用
const processResp = await kintone.api(kintone.api.url('/k/v1/record.json',true),'GET',{
app:appId,
id:recordId
});
// レスポンスの内容を確認(コンソールに全データを表示)
console.log('レスポンスデータ:', processResp.record);
// 作業者フィールドの確認
const assigneeField = processResp.record['作業者']; // 作業者フィールドコード
if (!assigneeField || assigneeField.value.length === 0) {
console.log('作業者情報がありません');
event.record['担当者'].value = []; // 作業者情報がない場合、担当者表示用フィールドをクリア
return kintone.app.record.set(event); // 変更を保存
}
// 作業者情報の取得
const assignee = assigneeField.value[0]; // 配列の最初の作業者情報
const assigneeUserId = assignee.code; // ユーザーコード(ID)
const assigneeUserName = assignee.name; // ユーザー名
// コンソールにユーザーIDと名前を表示
debugger;
console.log('現在の作業者ID:',assigneeUserId);
console.log('現在の作業者名:',assigneeUserName);
// ユーザー情報を担当者表示用フィールドに反映
event.record['担当者'].value = [{code:assigneeUserId,name:assigneeUserName }];
console.log('event.recordの内容:',event.record);
} catch (e) {
// エラーメッセージをコンソールに表示
console.error('API呼び出しに失敗しました:', e);
alert('作業者の情報の取得に失敗しました');
}
return event;
});
})();
実行前が左で実行後は右で
ユーザーフィールドの担当者がtukiだった名前が
作業者と同じhosiに変わってますが
アプリのフィールドは変わりません。