はじめに
本記事は、Unifinity Wizard(以下「Wizard」と表記)で生成されたアプリに対して、Unifinity Studioを用いてカスタマイズを実施される方を対象としています。
本記事では以下の図のようにアプリの各テーブルをkintoneアプリの入力項目と連携したサンプルアプリの概要・修正箇所について解説します。
本ページで紹介するUnifinityアプリと連携先kintoneのアプリテンプレートは以下からダウンロードできます。
ご自身の環境でサンプルアプリの連携処理をご確認いただく際には、
「kintone連携用情報の取得・作成」処理の変更をお願いいたします。
kintoneとの基本的な連携方法につきましては、以下の記事をご覧ください。
- 【kintone連携①】連携準備:ユーザー認証
- 【kintone連携②】レコードを登録する
- 【kintone連携③】ファイルをアップロードする
- 【kintone連携④】ワークフローを進める
- 【kintone連携⑤】レコードを取得する
- 【kintone連携⑥】ルックアップのレコードを登録する
Wizardで作成されたアプリの基本的な構成につきましては、以下の記事をご覧ください。
概要
サンプルアプリではWizardで生成したアプリをカスタマイズして以下の機能を追加しています。
- kintoneから受信したデータを基本データ、現場データのトランザクションテーブルに格納する
- 基本データ・現場データを追加した際に追加データをkintoneに送信する
- 基本データ・現場データを更新した際に更新データをkintoneに送信する
kintone連携のために追加・修正・削除した処理は以下となります。
修正箇所
kintone連携用情報の取得・作成
9_0201_通信用apikeyヘッダー取得
パスワード認証を行うためのリクエストヘッダ「X-Cybozu-Authorization」の値を作成するよう修正します。
9_k000_サブドメイン取得
連携先kintoneのサブドメインを返す処理を作成します。
9_k001_連携先アプリID取得
連携先kintoneのアプリIDを返す処理を作成します。
kintone連携処理
データ受信処理の概要
データ受信処理ではkintoneのAPI「レコード取得」を呼び出し、
受信したデータからトランザクションテーブル用データを作成してデータベースに値を格納します。
9_k221_データ受信
kintoneから受信したデータをトランザクションテーブルに格納します。
9_k222_データ受信_基本データ変換
本処理は「9_k221_データ受信」から呼び出されます。
kintoneから受信した1レコード分のデータを以下のように変換します。
変換前データイメージ
{
"レコード番号": {
"type": "RECORD_NUMBER",
"value": "1"
},
"タイトル": {
"type": " SINGLE_LINE_TEXT",
"value": "テストタイトル"
},…
}
変換後データイメージ
{
"レコード番号": "1",
"タイトル": "テストタイトル",
…
}
9_k223_データ受信_現場工程1データ変換
本処理は「9_k221_データ受信」から呼び出されます。
kintoneから受信したレコードに含まれるサブテーブルのデータを以下のように変換します。
変換前データイメージ(「履歴テーブル」のvalueが本処理の変換対象)
{
"レコード番号": {
"type": "RECORD_NUMBER",
"value": "1"
},
…,
"履歴テーブル": {
"type": "SUBTABLE",
"value": [
{
"id": "48290",
"value": {
"対応内容": {
"type": "SINGLE_LINE_TEXT",
"value": "テスト内容1"
},…
}
},
{
"id": "48291",
"value": {
"対応内容": {
"type": "SINGLE_LINE_TEXT",
"value": "テスト内容2"
},…
}
},…
]
}
}
変換後データイメージ
[
{
"_id": "48290",
"_pid": "1",
"p006": "テスト内容1",
…
},{
"_id": "48291",
"_pid": "1",
"p006": "テスト内容2",
…
},…
]
データ送信処理の概要
データ送信処理ではローカルテーブル・トランザクションテーブルのデータからkintoneへの送信用データを作成し、kintoneのAPI「レコードの登録」を呼び出します。
9_k221_データ追加
ローカルテーブルに新規分として格納された基本データと関連する現場データを読み込み、kintoneにデータを送信します。
9_k222_データ追加_基本データ変換
「9_k221_データ追加」と「9_k231_データ更新」から呼び出されます。
呼び出し元から渡された基本データ1行分のデータを以下のように変換します。
変換前データイメージ(ローカルテーブルから読み込むデータ)
{
"_id": "x000000000",
"_pid": "",
"p000": "タイトルあいうえお",
"p003": 2022/7/1 0:0:0(日付データ),
"p005_Full": (バイナリデータ),
…
}
変換後データイメージ
{
"タイトル": {
"value": "タイトルあいうえお"
},
"起票日": {
"value": "2022-07-01"
},
"参考画像": {
"value": [
{
"filekey":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
]
},…
}
9_k223_データ追加_現場工程1データ変換
「9_k221_データ追加」と「9_k231_データ更新」から呼び出されます。
呼び出し元から渡された基本データのIDの関連する現場データをトランザクションテーブルから読み込み、サブテーブル用のデータに変換します。
変換前データイメージ
[
{
"_id": "12345",
"_pid": "1",
"p006": 2022/7/1 0:0:0(日付データ),
"p007": "タイトルあいうえお1",
"p009_Full": (バイナリデータ),
…
}
,
{
"_id": "x000000002",
"_pid": "1",
"p006": 2022/7/1 0:0:0(日付データ),
"p007": "タイトルあいうえお2",
"p009_Full": (バイナリデータ),
…
}
]
変換後データイメージ
[
{
"id":12345
"value":{
"対応日": {
"value": "2022-07-01"
},
"対応内容": {
"value": "タイトルあいうえお1"
},
"対応時撮影画像": {
"value": [
{
"filekey":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1"
}
]
},…
}
},
{
"id":
"value":{
"対応日": {
"value": "2022-07-01"
},
"対応内容": {
"value": "タイトルあいうえお2"
},
"対応時撮影画像": {
"value": [
{
"filekey":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2"
}
]
},…
}
}
]
データ更新処理の概要
データ送信処理ではローカルテーブル・トランザクションテーブルのデータからkintoneへの送信用データを作成し、kintoneのAPI「レコードの更新」を呼び出します。
9_k231_データ更新
その他修正箇所
9_0210_データ新規分送信親処理
+9_0220_データ受信親処理
9_0230_データ変更分送信親処理
既存の行を削除し、kintone連携で新規追加した以下の処理を実行するよう修正します。
- 9_k211_データ受信
- 9_k221_データ追加
- 9_k231_データ更新
+0_1000_ボタン_同期
「1.一覧画面00_検索」の同期ボタンから実行される処理。
赤枠箇所:UniBaaSDB連携を行う際に必要な設定情報のセット処理。kintone連携を行う際には不要のため、コメントアウトします。
青枠箇所:処理順が「新規分送信→変更分送信→データ受信」となるよう修正します
+9_4100_ボタン_確定
「4.確認画面01_現場情報確認画面」の登録ボタンから実行される処理。
本サンプルでは現場データは基本データの子データとして同時に送信するよう実装しております。
「9_k231_データ更新」で子データのみが更新された基本データを送信対象データとして検出するためのフラグ更新処理を本処理に追加しています。
削除した処理
UniBaaSDBとの連携向けの以下の処理をプロジェクトから削除しています。
- 9_0203_送信レコード整形(対象レコード,テーブル名)
- 9_0211_データ新規分送信共通処理(対象レコード群,テーブル情報)
- 9_0212_基本情報データ新規分送信
- 9_0213_現場情報データ新規分送信1
- 9_0221_データ受信共通処理(フィールドリスト,テーブル情報)
- 9_0222_基本情報データ受信
- 9_0223_現場情報データ受信1
- 9_0231_データ変更分送信共通処理(対象レコード群,テーブル情報)
- 9_0232_基本情報データ変更分送信
- 9_0233_現場情報データ変更分送信1