レコード更新の際に別アプリのレコードのフィールドを更新したいです

皆様教えてください。

 

管理Aというアプリに以下のフィールドがあります。

案件番号(文字列1)

氏名(文字列1)

電話番号(文字列1)

ステータス(ドロップダウン)

 

管理Bにも管理Aと同じフィールドがあり、管理Aのレコードをアクション機能で上記フィールドを管理Bへコピーして保存しています。

 

管理Aのステータス(ドロップダウン)には以下の項目があります。

未着手

着手

完了

 

管理Aでレコードの編集でステータスを「完了」に更新した際、

管理Bで管理Aと同じ案件番号のレコードのステータスを「完了」に更新させたいのですが、Java Scriptでどのように書いたらよいでしょうか。

 

どうぞ宜しくお願い致します。

ススムさん

 

管理Aアプリの編集時(保存ボタンを押した時)にREST APIで管理Bへ更新処理を行えばできそうですね。

 

ただし、更新の場合は「どのレコードの情報を更新するか」でレコードIDが必要になり

そのためにまず 案件番号 等の 他のレコードと重複しないフィールド で絞り込みのクエリを書いて、

管理Bアプリの更新したいレコードIDを「取得」する必要があります。

 

つまり 「レコードID取得」→ 「そのレコードIDに対して更新」

という2つのREST APIを実行する必要がありそうです。

 

以下、簡単なプログラムを書いてみました (エラー処理等は書いていないです)

 

(function() {
'use strict';

// アプリBのレコードIDを取得する関数
var getRecordId = function(Num) {
var params = {
app: 123, // アプリBのアプリID
query: 'Num = ' + Num
};
return kintone.api(kintone.api.url('/k/v1/records'), 'GET', params)
.then(function(resp) {
var RecordId = resp.records[0].$id.value;
return RecordId;
});
};

// アプリBのステータスを更新する関数
var putRecord = function(recordID, statusVal) {
var params = {
app: 123, // アプリBのアプリID
id: recordID,
record: {
Status: { // ステータスフィールドのフィールドコード
value: statusVal
}
}
};
return kintone.api(kintone.api.url('/k/v1/record'), 'PUT', params)
.then(function(resp) {
window.alert('アプリBのステータスを変更しました。');
});
};

// レコード編集の保存ボタンを押した時に処理を実行する
kintone.events.on('app.record.edit.submit', function(event) {
// アプリAの案件番号の値
var ProjectNum = event.record.Num.value;
// アプリAのステータスの値
var StatusA = event.record.Status.value;

// 完了以外は処理をしない
if (StatusA !== '完了') {
return;
}

// REST APIを複数実行するため、Promiseを使って同期処理にする
return getRecordId(ProjectNum)
.then(function(id) {
putRecord(id, StatusA);
});
});
})();

BB様

お世話になっております。

ススムです。

 

教えていただきまして、ありがとうございます。

教えていただいた内容で、いくつか質問がございます。

 

>管理Aアプリの編集時(保存ボタンを押した時)にREST APIで管理Bへ更新処理を行えばできそうですね。

→REST APIとはなんでしょうか。どこかで設定が必要でしょうか。

 

> 案件番号 等の 他のレコードと重複しないフィールド で絞り込みのクエリを書いて、

→絞り込みのクエリを書いてとは、別でクエリを書かないといけないということでしょうか。

 

>Status: { // ステータスフィールドのフィールドコード

→フィールドコードはどの位置に書けばよろしいでしょうか。

 

全くの素人で申し訳ございません。

どうぞよろしくお願い致します。

 

 

 

ススムさん

kintone REST APIとは、kintoneのデータを操作することができるAPIです。

詳しくはこちらの記事が参考になります。

※ REST APIを使うためにはkintoneのスタンダードコースを契約する必要があります。

 

▼ REST APIを「叩く」って何?ツール使ったら初心者でも簡単だった

https://kintone-blog.cybozu.co.jp/developer/000270.html

 

記載したJavaScriptコード内にクエリは記載しています。

クエリとは「絞り込み条件」のようなものです。

 

Statusという文字がフィールドコードに該当します。

→例えば、ご自身のフィールドのフィールドコードが  AAA  であれば  AAA: { となります。

BBさん、ススムさん

頑張ってください。厳しい時にこそ、もう一回、もう一回(ミスチル花火風で)

下記から実際にAPIってものに触れるようです。
https://dev-demo.cybozu.com/k/84/

アカウント情報

https://developer.cybozu.io/hc/ja/articles/208217653

         /)  
       ///)  
      /,.=゙''"/  

/ i f ,.r='“-‐‘つ____ !!PUTも対応!!
/ / _,.-‐’~/⌒ ⌒\
/ ,i ,二ニ⊃( ●). (●)\
/ ノ il゙フ::::::⌒(__人__)⌒::::: \
,イ「ト、 ,!,!| |r┬-| |
/ iトヾヽ_/ィ”\ `ー’´ /