https://developer.cybozu.io/hc/ja/articles/211583223-%E3%83%AF%E3%83%B3%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%A7%E4%B8%80%E6%8B%AC%E6%89%BF%E8%AA%8D%E3%82%92%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86
こちらで以前質問をさせてもらった者です。
フロー:申請者→所属長(未申請→処理中→承認)
アプリ内の「所属長」のユーザー選択フィールドへ、cybozu.com共通管理で各人に設定しているカスタマイズ項目の「所属長」を自動取得したいです。
上記リンクで回答いただいたコードを設定してみましたが
// レコード追加画面表示時
kintone.events.on('app.record.create.show', function(event) {
// ユーザーGETパラメータ
var params = {
codes: kintone.getLoginUser().code
};
// ユーザー情報取得
kintone.api(kintone.api.url('/v1/users', true), 'GET', params).then(function(resp) {
var myRecord = kintone.app.record.get();
myRecord.record.所属長.value = [{ code: resp.users[0].customItemValues[0].code }];
kintone.app.record.set(myRecord);
}).catch(function(error) {
console.log(error);
});
return event;
});
レコードの追加を押すと画像のようになり、保存してもだれも表示されません。
手動で所属長を選択すれば、一括申請・承認ともに問題なく動作します。
どうかお知恵をお借りできませんでしょうか?
不明な点等ありましたらご質問ください。
tktktk 様
予想で申し訳ないですが、おそらく現状下記のような設定になってるかと思います。
更に設定で、個人の設定で下記の内容【BOSS】の部分を上長のcodeへ変更して
下記のコードの最後の部分を【code】から【value】に変更すれば取得できると思います。
myRecord.record.所属長.value = [{ code: resp.users[0].customItemValues[0].value }];
codeの時は、カスタム項目コードを取得し、valueの時は、カスタムへ設定されている値を取得するようになっています。
上記の値で所属長の値が【BOSS】に設定されている場合は、valueで取得するのは【BOSS】となります。
一度お試しいただけますと幸いでございます。
新屋様
ありがとうございます。
カスタマイズ項目の内容はおっしゃるとおりです。
該当箇所をvalueに変更しましたが、次は「boss」だったものが「105」を取得するようにになりました。(なんの数字かは分かりません)
また、
>更に設定で、個人の設定で下記の内容【BOSS】の部分を上長のcodeへ変更して の部分が分からず・・・
下記のような設定ではなく、各個人の上長の別の項目を登録するということでしょうか?
tktktk 様
ユーザー選択になっているので、valueの値がユーザーIDになっているようです。
そうすると、idでユーザー情報をもう一度取得する必要があるので、params を ids: と 取得 id で更新して
値の代入に [{ code: resp.users[0].code }] で代入するということになるかと思います。
kintone.api から下を下記の内容で更新してして試していただければと思います。
kintone.api(kintone.api.url('/v1/users', true), 'GET', params).then(function(resp) {
const params = {
ids: resp.users[0].customItemValues[0].value
};
kintone.api(kintone.api.url('/v1/users', true), 'GET', params).then(function(resp) {
var myRecord = kintone.app.record.get();
myRecord.record.所属長.value = [{ code: resp.users[0].code }];
kintone.app.record.set(myRecord);
}).catch(function(error) {
});
});
新屋様
ありがとうございます!
上長のログインIDが取得できました!
ちなみにmobileを追加してはみたものの取得できていないのですが、こちらをモバイルにも実装することは可能でしょうか?
// スマホ: レコード追加画面表示時
kintone.events.on('mobile.app.record.create.show', function(event) {
var params = {
codes: kintone.getLoginUser().code
};
kintone.api(kintone.api.url('/v1/users', true), 'GET', params).then(function(resp) {
const params = {
ids: resp.users[0].customItemValues[0].value
};
kintone.api(kintone.api.url('/v1/users', true), 'GET', params).then(function(resp) {
var myRecord = kintone.mobile.app.record.get();
myRecord.record.所属長.value = [{ code: resp.users[0].code }];
kintone.mobile.app.record.set(myRecord);
}).catch(function(error) {
});
});
return event;
});
tktktk 様
無事に取得ができ良かったです。
モバイルの件ですが、そちらのコードで問題なく取得できるかと思います。
ですので取得できないということで考えられることは、jsファイルが
<スマートフォン用のJavaScriptファイル>に充てられてない可能性が考えられます。
ご確認をしていただければ幸いでございます。