新規レコード保存時にフィールドの更新

会議案内アプリと予定表アプリを連動させるために、会議案内アプリに「予定表へ転記」のアプリアクションを作成しました。

そのアクションの中で、自身のレコードへのリンクを受け渡すために、フィールド項目として持たせようと思います。

新規レコード保存時と編集後の保存時に設定させるために、下記のようなコードを書きました。編集後の保存ではうまく動くのですが、新規レコード保存時には動きませんでした。

書き方が違うのでしょうか?

(function(){
  ‘use strict’;
  kintone.events.on([‘app.record.create.submit.success’,‘app.record.edit.submit’],function(event){
    var record=event.record;
    record[‘record_data’][‘value’]=‘https://(ドメイン).cybozu.com/k/(アプリ番号)/show#record=’ + record[‘$id’][‘value’];
    return event;
  });
})();

 

Koichi Ito さん

編集後の保存ではうまく動いているとのことで、

‘app.record.create.submit.success’ を ‘app.record.create.submit’ に変更すれば新規保存時もうまくいきそうな気がします。

submit.success の場合、保存がすでに完了した後に走るイベントなので、値の更新が実レコードに反映されないのかと。

上海レンユアー 松村 様

ご回答ありがとうございます。

submitに変更したのですが、「保存」をクリックしても反応がありませんでした。

レコード番号の取得ができなかったのではないかと思います。

Koichi Itoさん

失礼しました。URL生成にレコード番号が必要ということですね。見落としていました。

となると思いつく方法としては、

<方法1> コーディングなし

1.予定表アプリに、会議案内APPを参照するルックアップを追加。

2.会議案内APPのアクションで、予定表アプリのルックアップに自レコードのレコード番号を代入

3.予定表アプリ側で取得をクリックしてから保存すると、自動でリンクが貼られます。

※取得クリックをユーザーさんに押してもらうのが面倒かも。

<方法2> コーディングなし

1.予定表アプリに、文字列項目を3個追加

[URL前半] : 初期値 https://(ドメイン).cybozu.com/k/(アプリ番号)/show#record=’

  [URL後半] : 会議案内APPのアクションで、会議案内レコードのレコード番号を代入

 [URL]: 自動計算 URL前半&URL後半

<方法3> コーディングあり

1.app.record.create.submit.success で、REST APIを用いて、自レコードを更新。

(付与されたレコード番号を使用)

 

こんなところでしょうか。

追加

<方法4>

予定表アプリに関連レコードを追加して、そこに会議案内レコードを表示する。

(レコード番号をキーにできるかは、試してませんが、うまくいくなら、これが一番スマートかもしれません)

上海レンユアー 松村 様

ご回答ありがとうございます。

「関連レコード」はまだやったことがないので、簡単なアプリで試してみようと思います。

<方法2>を採用しました。保存してから転記なので、保存時にURLが必ずしも必要ではないですね。また会議案内そのものにもURLを記載する必要はありませんでした。

予定表アプリにて数値フィールドで受けて、リンク先の計算式に「URLべた打ち&数値」でうまくいきました。

ありがとうございました。

Koichi Itoさま

app.record.create.submit だと $id がまだ undefined でうまくいかず、app.record.create.submit.success だと保存後なので変更ができない、、ということが原因だったかと思います。。。とやっているうちに、すでに結論が出ているようですね。

よかったです。