kintoneからGoogle Spreadsheetへ、これまでのすべてのデータと、前回同期実行時の新規追加データを、シートを分けて同期する方法

全体図

Source詳細

kintone

次のようなアプリのデータに対しては、

次のようなクエリで、必要なカラムをSELECTします。ユーザー側で定義しているユニークなID(例ではuser_defined_id)を、SpreadSheet側のと区別するためにカラム名を変更しています。

SELECT user_defined_id AS kintone_user_defined_id, column_1, column_2, column_3 FROM FromSpreadSheet

Spreadsheet

同期対象のスプレッドシート名、スプレッドシートID、シート名を入力します。

対象のスプレッドのデータは次のとおりになっています。

Transform詳細

投影 Drop id

SpreadSheets Sourceでデータに存在する不要なidカラムを取り除きます。

結合(Union)

kintone SourceとSpreadSheet Sourceをユーザー側で定義しているユニークなID(例ではkintone側はkintone_user_defined_id, SpreadSheet側はuser_defined_id)が一致しているもので左外部結合します。これにより、kintoneにのみデータのある行には、user_defined_idカラムがNULLになります。

Nullピッカー

SpreadSheet側の、ユーザー側で定義しているユニークなID(例ではuser_defined_id)が、NULLとなっていて、kintone側にしかない行のみのデータに絞り込みます。

投影 DROP user_defined_id

SpreadSheet側の、ユーザー側で定義しているユニークなID(例ではuser_defined_id)は常にNULLで格納する必要がないため、該当のカラムを取り除きます。また、代わりにkintone側の、ユーザー側で定義しているユニークなID(例ではkintone_user_defined_id)を、user_defined_idにカラム名を変更しています。

Sink詳細

Google SpreadSheets New

更新のあった行のみを記録するシートに対するSinkです。モードをOverwriteにして、正しい対象のスプレッドシート名、スプレッドシートID、シート名を入力します。

Google SpreadSheets Sync

以前からあった行に追加して、更新のあった行を記録するシートに対するSinkです。モードをOverwriteにして、正しい対象のスプレッドシート名、スプレッドシートID、シート名を入力します。