何を実現したいのかを書きましょう
〇予定表アプリ
フィールド名:フィールドコード:形式
見積額:見積額:数値
最終金額:最終金額:数値
ContNo:ContNo:文字列
をkrewsheetで追加保存や編集保存したときに
別アプリの製造原価管理アプリにあるフィールドに自動転記更新させたい
〇製造原価アプリ
フィールド名:フィールドコード:形式
見積金額:見積金額_製造原価:数値
最終金額:最終金額_製造原価::数値
CTRLNO:CTRLNO_製造原価:文字列
ContNo:ContNo:文字列 = CTRLNO:CTRLNO_製造原価:文字列
の値の一致条件を満たしたレコードに
見積額:見積額:数値 → 見積金額:見積金額_製造原価:数値
最終金額:最終金額:数値 → 最終金額:最終金額_製造原価::数値
というように予定表アプリで保存が成功したときに値を自動転記させたい
実行したコードをコピー&ペーストしましょう
(function () {
'use strict';
// krewsheetアプリがロードされた後に実行される処理
kintone.events.on('app.record.index.show', function (event) {
if (window.krewsheet) {
// krewsheetアプリの保存イベント(新規作成と更新時の両方)を登録
krewsheet.events.on(['app.record.index.edit.submit.success'], function (event) {
// 製造原価管理アプリにレコードを追加または更新する処理
addOrUpdateRecordToWorkScheduleApp(event);
});
}
});
// 製造原価管理アプリにレコードを追加または更新する関数
function addOrUpdateRecordToWorkScheduleApp(event) {
var record = event.record; // 予定表アプリのレコードデータ
// 必要なフィールドが存在するか確認
if (record['見積額'] && record['ContNo'] && record['最終金額']) {
// 製造原価管理アプリのアプリIDとAPIトークンを設定
var YOteiAppId = '';
var apiToken = '';
// 製造原価管理アプリを検索するためのクエリを作成
var query = 'CTRLNO_製造原価 = "' + record['ContNo'].value + '"';
// 製造原価アプリを検索して対応するレコードを取得
kintone.api(
kintone.api.url('/k/v1/records', true) + '?app=' + YOteiAppId + '&query=' + encodeURIComponent(query),
'GET',
{},
function(response) {
var assigneeRecords = response.records;
if (assigneeRecords.length === 1) {
// 該当するレコードが見つかった場合は、製造原価管理アプリのレコードを更新
var recordId = assigneeRecords[0]['$id'].value; // レコードのIDを取得
var updateData = {
app: YOteiAppId,
id: recordId,
record: {
'見積金額_製造原価': { value: record['見積額'].value },
'最終金額_製造原価': { value: record['最終金額'].value }
}
};
kintone.api(
kintone.api.url('/k/v1/record', true),
'PUT',
updateData,
function(response) {
console.log('製造原価管理アプリのレコードを更新しました。');
console.log(response);
},
function(error) {
console.error('製造原価管理アプリのレコードの更新に失敗しました。');
console.error(error);
},
apiToken
);
}
},
function(error) {
console.error('製造原価管理アプリの検索に失敗しました。');
console.error(error);
},
apiToken
);
}
}
})();
このように作成してみましたが動作しないで困っています
krewsheetではなく標準の詳細画面では別のコードで動作はできているのですが、krewsheetで動作させたいです。どなたかアドバイスいただけませんか?