ASTERIA Warpとkintoneその8:kintoneSubtablePutを使ってレコード内のサブテーブルにレコードを追加・編集する。

kintoneSubtablePutを使用することで、レコードが持っているサブテーブルでレコードを「追加・置き換え・更新・追加/更新」することができます。

使用するコネクションとkintoneのアプリ

コネクションはその1から、アプリはその2から使用しているものを引き続き使用します。

サブテーブルをもつレコードのフィールド構成

今回使用するレコードとそのフィールド構成は下図の通りです。その7で使用したレコードをその8でも使用します。

kintoneSubtablePutを使ってサブテーブルにレコードを追加する(実行する処理が「追加」の場合)

レコード番号26のサブテーブルに1件レコードを追加することを目標として進めていきます。

使用するフロー

マッパーで追加したいサブテーブルのあるレコードの「レコード番号」をkintoneSubtablePutに渡します。その後kintoneSubtablePutで、コネクションとレコード追加先アプリを設定してサブテーブルにレコードを追加します。

フローの設定

フローを構成するコンポーネントの設定を解説します。

マッパー

※kintoneSubtablePut側のストリームは先に次のkintoneSubtablePutのkintoneビルダーで選択しないと表示されません。

kintoneSubtablePutでレコードを追加するサブテーブルをもつレコードのレコード番号をコンポーネントに渡します。追加するレコードのフィールドの値も渡します。日時のフィールドにはDateTime型、数値のフィールドには0から9の数字のようにフィールドに合った型で渡します。

プロパティはデフォルトのままで問題ありません。

kintoneSubtablePut

※マッパーよりも先にkintoneSubtablePutの設定を行ってください。

フロー上のkintoneSubtablePutをダブルクリックしてkintoneビルダーを開きます。この際コネクションが未設定の場合、コネクションの選択画面が表示されるので先にコネクションの選択を行います。

kintoneビルダーでは実行する処理を「追加・置き換え・更新・追加/更新」の中からプルダウンで選択します。接続名で設定した接続先のアプリが左側の欄に一覧表示されるので、その中から取得したいレコードのあるアプリを選択します。次に中間の欄では、選択したアプリのフィールドにあるサブテーブルがフィールドコードで表示されます。レコードを取得したいサブテーブルをその中から選択してください。最後に右側の欄ではサブテーブルからレコードとして取得したい列を選択します。取得したい列にチェックを付けてください。

流れとしては、
接続名(選択済み)→実行する処理(左上のプルダウン)→アプリ名(左側の欄)→サブテーブル名(中間の欄)→サブテーブルの列(右側の欄)
の順番で設定を行います。

今回は下図の設定でフローを実行します。
選択が完了したら「保存」ボタンを押して設定を保存します。

プロパティは下図のように設定しますが、ここまでの作業ですべて設定済みになっているので追加で設定する必要はありません。

設定が完了したら、フローを実行します。

フローの実行結果

マッパーとkintoneSubtablePutで設定した値がサブテーブルのレコードとして追加されていること、設定していないフィールドは空欄になっていることが確認できました。

kintoneSubtablePutを使ってサブテーブルのレコードを置き換える(実行する処理が「置き換え」の場合)

レコード番号26のサブテーブルに存在するレコードを置き換えることを目標として進めていきます。
※置き換えの場合は既存のレコードがすべて消去され、新しく入力されたレコードのみになります。

使用するアプリ・レコード・フローは実行する処理が「追加」の際と同じものを使用します。

フローの設定
マッパー

※kintoneSubtablePut側のストリームは先に次のkintoneSubtablePutのkintoneビルダーで選択しないと表示されません。

実行する処理が「追加」の際と同様に、kintoneSubtablePutでレコードを追加するサブテーブルをもつレコードのレコード番号をコンポーネントに渡します。追加するレコードのフィールドの値も渡します。それぞれのフィールドに合った型で渡します。

kintoneSubtablePut

※マッパーよりも先にkintoneSubtablePutの設定を行ってください。

実行する処理を「置き換え」に変更して今回はすべてのフィールドに値を渡す設定にします。

設定が完了したら、フローを実行します。

フローの実行結果

マッパーとkintoneSubtablePutで設定した値がサブテーブルのレコードとして追加されていること、サブテーブルから既存のレコードがすべて削除されて新しく追加したレコードのみになっていることが確認できました。

kintoneSubtablePutを使ってサブテーブルのレコードを更新する(実行する処理が「更新」の場合)

レコード番号26のサブテーブルに存在するレコードを更新することを目標として進めていきます。

使用するアプリ・レコード・フローは実行する処理が「追加・置き換え」の際と同じものを使用します。

サブテーブルに追加したレコード

更新後の結果を確認するため、サブテーブルのレコードを下図のように編集・追加しています。

フローの設定
マッパー

※kintoneSubtablePut側のストリームは先に次のkintoneSubtablePutのkintoneビルダーで選択しないと表示されません。

フィールド「サブテーブルの文字列」に渡す値が「練習用データ追加版」に変更されている以外は「置き換え」の時と同じです。

kintoneSubtablePut

※マッパーよりも先にkintoneSubtablePutの設定を行ってください。

実行する処理を「置き換え」に変更して、フィールド「サブテーブルの数値」の「キー」のチェックを入れます。

設定が完了したら、フローを実行します。

フローの実行結果

「キー」に設定した「サブテーブルの数値」(中央の列)がマッパーから渡された「1234」と一致したレコードは、他の列もマッパーから渡された値で更新されたことが確認できた。

kintoneSubtablePutを使ってサブテーブルのレコードを追加/更新する(実行する処理が「追加/更新」の場合)

実行する処理を「追加/更新」に設定した場合、設定された条件で上記の「更新」の処理を実行します。ここでキーに設定した値と一致する項目が存在しなかった場合、同じ設定で上記の「追加」の処理を行います。