関連レコードから値を出したい

アプリAの状況フィールドに、アプリBの状況フィールドと同じ値が入力されるようにしたい。

調べてみましたが、コミュニティにしばしばリンクが張られているhttps://community.cybozu.dev/hc/ja/articles/213209606
は既にアクセスできなくなっているため、詳細がわかりませんでした。

いろいろやってみましたが基礎知識が足りないせいか行き詰ってしまいました。

(() => {
  'use strict';

  const events = [
    'app.record.detail.show',
    'app.record.edit.show',
    'app.record.index.show'
  ];
  kintone.events.on(events, (event) => {
    const clientRecordId = event.recordId;
    const relatedAppId = kintone.app.getRelatedRecordsTargetAppId('アプリB');
    const query = `番号_番号="${clientRecordId}"`;
    const outputFields = ['状況'];
    const appUrl = kintone.api.url('/k/v1/records');

    const params = {
      app: relatedAppId,
      query: query,
      fields: outputFields
    };

    // XMLHttpRequestオブジェクトを取得
    const xhr = new XMLHttpRequest();
    xhr.open('GET', appUrl);
    // ヘッダーを追加
    xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
    // レスポンスの受け取りが完了した時の処理
    xhr.onload = function() {
      if (xhr.status === 200) {
        const resp = JSON.parse(xhr.responseText);
        // レスポンスから状況フィールドの値を取得
        const completeStatusValue = resp.records[0].状況.value;

        // 状況フィールドに値を設定する
        const recordData = {
          '状況': {
            'value': completeStatusValue  // 状況の値を設定
          }
        };

        // レコードの更新
        const updateUrl = kintone.api.url('/k/v1/record');
        const updateParams = {
          'app': relatedAppId,
          'id': clientRecordId,  // 更新するレコードのID
          'record': recordData   // 更新するフィールドの値
        };
        kintone.api(updateUrl, 'PUT', updateParams, (updateResp) => {
          // 更新が成功した場合の処理
          console.log('レコードの更新が成功しました。', updateResp);
        }, (updateError) => {
          // 更新が失敗した場合の処理
          console.error('レコードの更新に失敗しました。', updateError);
        });
      }
    };
    // リクエストの送信
    xhr.send();

    return event;
  });
})();

によると
https://community.cybozu.dev/hc/ja/articles/213209606
の後ろにURLエンコードされたページ名がありました。

関連レコードの件数を取得するワザ

というページ名だったようです。
このページ名で検索すると現在のURLは

になっているようです。

教えていただいたURLで確認しながら再度作り直してみましたが、エラーは起きないのですが何も作動してくれません。

理由としては何が考えられるのでしょうか。

(() => {
    'use strict';

    //レコードの絞り込みに利用するフィールドの指定
const ACODE = '番号';
const BCODE = '番号';


kintone.events.on('app.record.index.show', async(event) => {

    //作動させる一覧の指定
    if(event.viewName !=='チェック') {
          return;
    }

    //0件ヒット時の対策
if(!event.size) {
      return;
}

//kintone-rest-api-client を使う準備
const client = new KintoneRestAPIClient();


// スケジュールの番号を取得
const clientName = event.record[ACODE].value;

//報告アプリ内で、同じ番号であるという条件付け
const appId = kintone.app.getRelatedRecordsTargetAppId('報告');
const query = `${BCODE}="${clientName}"`;



//レコードの取得上記の条件で検索する設定
const records = await client.record.getAllRecords({app: appId, condition: query});

 //状況を報告から取得する
 var jokyo = records.['状況'].value;

var record = event.record;
record['状況'].value = jokyo;

return event;
});
})();

デバッグ機能で、どこまで意図通りに動いているか確認しませんか?

デバッグ - cybozu developer network

kintone JavaScript カスタマイズデバッグまとめ - cybozu developer network

関連レコードの件数を取得するワザ - cybozu developer network

の内容を完全に再現できているか?
を確認した上でカスタマイズしていく上での差分を確認する

サンプルは詳細画面で、表示スペースに値を表示している
質問者の意図は一覧画面で、値を書き換えようとしている?

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。