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

**URL:** <https://community.cybozu.dev/t/topic/3534>\
**Category:** kintone 開発相談\
**Created:** [2018 年 11 月 15 日午前 6:22 UTC](https://community.cybozu.dev/t/topic/3534 "2018-11-15T06:22:04Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1890](https://avatars.discourse-cdn.com/v4/letter/l/7ba0ec/32.png) [@Legacy\_Account1890](https://community.cybozu.dev/u/Legacy_Account1890)\
**Post date:** [2018 年 11 月 15 日午前 6:22 UTC](https://community.cybozu.dev/t/topic/3534/1 "2018-11-15T06:22:04Z")

</div>

皆様教えてください。

&nbsp;

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

案件番号(文字列1)

氏名(文字列1)

電話番号(文字列1)

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

&nbsp;

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

&nbsp;

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

未着手

着手

完了

&nbsp;

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

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

&nbsp;

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

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2036](https://avatars.discourse-cdn.com/v4/letter/l/a183cd/32.png) [@Legacy\_Account2036](https://community.cybozu.dev/u/Legacy_Account2036)\
**Post date:** [2018 年 11 月 16 日午前 2:54 UTC](https://community.cybozu.dev/t/topic/3534/2 "2018-11-16T02:54:49Z")

</div>

ススムさん

&nbsp;

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

&nbsp;

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

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

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

&nbsp;

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

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

&nbsp;

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

&nbsp;

```
(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);
});
});
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1890](https://avatars.discourse-cdn.com/v4/letter/l/7ba0ec/32.png) [@Legacy\_Account1890](https://community.cybozu.dev/u/Legacy_Account1890)\
**Post date:** [2018 年 11 月 16 日午前 6:05 UTC](https://community.cybozu.dev/t/topic/3534/3 "2018-11-16T06:05:23Z")

</div>

BB様

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

ススムです。

&nbsp;

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

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

&nbsp;

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

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

&nbsp;

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

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

&nbsp;

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

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

&nbsp;

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

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

&nbsp;

&nbsp;

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2036](https://avatars.discourse-cdn.com/v4/letter/l/a183cd/32.png) [@Legacy\_Account2036](https://community.cybozu.dev/u/Legacy_Account2036)\
**Post date:** [2018 年 11 月 16 日午前 6:22 UTC](https://community.cybozu.dev/t/topic/3534/4 "2018-11-16T06:22:08Z")

</div>

ススムさん

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

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

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

&nbsp;

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

[https://kintone-blog.cybozu.co.jp/developer/000270.html](https://kintone-blog.cybozu.co.jp/developer/000270.html)

&nbsp;

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

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

&nbsp;

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

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

---

<div class="post-metadata">

**Author:** ![Legacy\_Account899](https://avatars.discourse-cdn.com/v4/letter/l/58f4c7/32.png) [@Legacy\_Account899](https://community.cybozu.dev/u/Legacy_Account899)\
**Post date:** [2018 年 11 月 16 日午前 7:24 UTC](https://community.cybozu.dev/t/topic/3534/5 "2018-11-16T07:24:12Z")

</div>

BBさん、ススムさん

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

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

アカウント情報

[https://developer.cybozu.io/hc/ja/articles/208217653](https://developer.cybozu.io/hc/ja/articles/208217653)

---

<div class="post-metadata">

**Author:** ![Legacy\_Account899](https://avatars.discourse-cdn.com/v4/letter/l/58f4c7/32.png) [@Legacy\_Account899](https://community.cybozu.dev/u/Legacy_Account899)\
**Post date:** [2018 年 11 月 16 日午前 7:36 UTC](https://community.cybozu.dev/t/topic/3534/6 "2018-11-16T07:36:00Z")

</div>

```
         ／）  
       ／／／）  
      ／,.=ﾞ''"／  

```

／ i f ,.r='“-‐‘つ＿＿＿\_ ！！PUTも対応！！  
/ / \_,.-‐’~／⌒ ⌒＼  
／ ,i ,二ﾆ⊃（ ●）. （●）＼  
/ ﾉ ilﾞフ::::::⌒（\_\_人\_\_）⌒::::: ＼  
,ｲ｢ﾄ､ ,!,!| |r┬-| |  
/ iﾄヾヽ\_/ｨ”＼ `ー’´ ／
