会議案内アプリと予定表アプリを連動させるために、会議案内アプリに「予定表へ転記」のアプリアクションを作成しました。
そのアクションの中で、自身のレコードへのリンクを受け渡すために、フィールド項目として持たせようと思います。
新規レコード保存時と編集後の保存時に設定させるために、下記のようなコードを書きました。編集後の保存ではうまく動くのですが、新規レコード保存時には動きませんでした。
書き方が違うのでしょうか?
(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 だと保存後なので変更ができない、、ということが原因だったかと思います。。。とやっているうちに、すでに結論が出ているようですね。
よかったです。