45
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

近年、ノーコードで業務アプリケーションを構築できるツールが注目を集めています。
その中でも、サイボウズ社が提供するkintoneは、日本企業において高い人気と導入実績を誇っています。
直感的なUIと柔軟なカスタマイズ性により、現場主導で業務改善を進められる点が大きな特徴です。

InformaticaIDMCでは汎用コネクタであるREST V2コネクタを使うことで、kintoneをデータ連携のソース/ターゲットにすることが可能です。
この記事では、REST V2コネクタを使って、kintoneに蓄積されたデータの出力を実装していきます。

kintoneとのデータ連携を検討されている方はもちろん、REST V2コネクタの使い方を知りたい方も是非ご覧ください。

kintoneへのデータ登録は以下の記事から。

kintone環境について

今回の連携先となるkintone環境は、「kintone開発者ライセンス」を利用しています。

kintone開発者ライセンスは、開発者がkintone APIを無料で試せる環境を提供します。顧客または自社向けの開発・テストや、開発スキルの習得に活用できます。

検証用アプリについて

データ連携の検証用に、支出管理の簡単なアプリを作成しました。

この記事ではアプリの作り方は説明しませんが、画面操作のみでとても簡単に作成できます。ぜひ開発者ライセンスで試してみてください!

一覧画面
image.png

レコード表示画面
image.png

フィールド定義

フィールド名 フィールドコード タイプ 備考
レコード番号 Number 数値 重複禁止
店舗名 StoreName 文字列(1行)
日付 Date 日付
明細 Detail テーブル
明細-項目 Item 文字列(1行)
明細-金額 Price 数値
合計金額 TotalAmount 計算 計算式:SUM(Price)

データ連携実装時に支障があるため、フィールドコードはアルファベットのみとしています。

APIトークン有効化

API連携用にAPIトークンを生成します。

アプリ設定から「APIトークン」を開きます。
image.png

APIトークンを生成し、必要なアクセス権を設定します。
APIトークンの値をテキストエディタなどにコピペします。
image.png

実装

実装の流れ

REST V2コネクタを使ったデータ連携は、以下の流れで実装していきます。

  • API仕様の調査(重要!)
  • Swaggerファイル作成
  • 接続定義作成
  • マッピング実装

kintoneのAPI仕様の調査

IDMCでの実装前に、連携先であるkintoneのAPI仕様について調査します。
REST V2コネクタの開発には、接続先のAPI仕様の理解が重要です。
ドキュメントを参考にしながら、実際にAPIを実行して理解していきます。

kintoneのAPI仕様はcybozu developer networkにまとまっています。

今回は、複数のレコードをバッチ処理で出力することを想定し、「複数レコードを取得する」APIを用います。

kintoneのAPI仕様について、以下の表にまとめました。
(続きの記事ではレコード更新のAPIを用います。)

仕様 複数のレコードを取得する 複数のレコードを更新する 備考
HTTPメソッド GET PUT
エンドポイント /k/v1/records.json /k/v1/records.json エンドポイントは共通(HTTPメソッドで使い分ける)
件数制限 1度に500件まで 1度に100件まで 件数制限を超える場合は考慮が必要
認証 X-Cybozu-API-Token X-Cybozu-API-Token アプリ上で生成したAPIトークン

kintoneのAPIは一度に連携可能なレコード件数の制限があるため、件数制限を超える場合は複数回に分けてAPIを実行する必要があります。
IDMCの場合はタスクフローを使ってマッピングをループさせます。

仕様を理解するため、POSTMANで実行してみます。

image.png

GETの呼び出しは簡単です。
クエリパラメータでアプリIDを指定し、ヘッダでAPIトークンを指定すれば実行できます。

返ってきたレスポンスとドキュメントを見比べて仕様を理解します。
それぞれのフィールドの値が「value」に格納されている点は、データ連携の実装時に考慮が必要です。
テーブル形式も少し複雑な構造なので、注意すべきポイントです。

フィールド形式(文字列)
SINGLE_LINE_TEXT_FieldFormat.json
"フィールドコード": {
  "value": "テストです。"
}
フィールド形式(テーブル)
SUBTABLE_FieldFormat.json
"フィールドコード": {
  "type": "SUBTABLE",
  "value": [
    {
      "id": "48290",
      "value": {
        "文字列__1行__0": {
          "type": "SINGLE_LINE_TEXT",
          "value": "サンプル1"
        },
        "数値_0": {
          "type": "NUMBER",
          "value": "1"
        },
        "チェックボックス_0": {
          "type": "CHECK_BOX",
          "value": ["選択肢1"]
        }
      }
    },
    {
      "id": "48291",
      "value": {
        "文字列__1行__0": {
          "type": "SINGLE_LINE_TEXT",
          "value": "サンプル2"
        },
        "数値_0": {
          "type": "NUMBER",
          "value": "2"
        },
        "チェックボックス_0": {
          "type": "CHECK_BOX",
          "value": ["選択肢2"]
        }
      }
    }
  ]
}

差分取得の場合は、クエリパラメータに条件を指定します。

image.png

Swagger ファイル作成

ここからIDMCの登場です。
IDMCサービスを使って接続用のSwaggerファイルを作成します。

SwaggerファイルはRESTful APIの仕様の定義ファイルです。
Swaggerファイルを公開しているWEBサービスとの接続では、この手順は不要となります。
kintoneはSwaggerファイルを公開していないため作成する必要があります。(IDMCで作成可能です。)

IDMCにログインし、「管理者(Administrator)」を開きます。
image.png

「Swaggerファイル」メニューから「新規」を選択します。
image.png

API接続の情報を入力します。
先ほど、POSTMANで実行した際の情報をそのまま活用できます。

image.png

差分連携できるよう、クエリパラメータを設定しました。
日付を囲っているダブルクォーテーションにはエスケープ(¥)が必要です。

設定を保存すると、Secure AgentがkintoneのAPIを実行し、リクエスト/レスポンスをもとにSwaggerファイルを自動生成します。
追加・更新系のSwaggerファイルを作成する際は、kintoneのレコードが追加・更新されることに注意してください。

生成されたSwaggerファイルをダウンロードします。
image.png

Swaggerファイルの配置

SwaggerファイルをSecure Agentに配置します。

REST V2コネクタの作成

「接続」メニューから「接続の追加」を選択します。
image.png

REST V2コネクタを選択し、接続情報を設定します。
image.png

  • 主な設定値
    • Authentication:API Key
    • Swagger File Path:Secure Agent上のSwaggerファイルのパス
    • Key:X-Cybozu-API-Token(そのまま)
    • Value:(kintoneのアプリ設定で取得したAPIトークン)
    • Add API Key to:Request Header

「テスト」し、成功したら「保存」します。

マッピング作成

データ統合サービスにアクセスします。
image.png

新規から、「マッピング」を作成します。
image.png

ここからは通常のマッピング実装と同様です。
kintone連携特有のポイントに絞って解説していきます。

ソースのフィールド選択

REST V2コネクタで作成した接続定義をソースで指定すると、Swaggerファイルを基にしたリクエスト構造が表示されます。
連携したい項目にチェックをつけるのですが、kintoneのAPIではvalueに項目が格納されているため、各フィールドの階層を展開し、value要素にチェックを付けます。

image.png

IDMC内では、末端項目である"value"がフィールド名として利用されるため、2つ目以降のフィールド名には重複を避けるために数字の連番が付与されます。
マッピング実装時には、”value{数字}”がフィールド名となる(kintone内でのフィールドコードが確認できない)ため、この画面をスクリーンショットし常に表示可能にしておくことを推奨します。

要求オプション

ソースでは、クエリパラメータなどの要求オプションを設定できます。

image.png

「要求メッセージのテンプレート」を参考に、値を設定します。

image.png

query内の「$$Date」は、差分連携用に定義した入出力パラメータです。

image.png

トランスフォーメーション

式トランスフォーメーションで出力ファイルのカラム名を定義しています。
式の部分を見ていただくとわかる通り、ソースで生成された"value{数字}"のフィールドを紐づけています。
(ソース設定時に取得したスクリーンショットを見ながら紐づけました。)

image.png

ターゲット

ターゲットはデータベースやファイルストレージなど、好きなものを選択できます。
今回はヘッダー要素と明細要素を分けてフラットファイルでCSV出力しています。

作成したマッピング

image.png

実行

マッピングを保存し実行します。

結果確認

無事、2025-12-05以降のデータが出力されました。

out_header.csv
"KEY","店舗名","日付","合計金額"
"1","百貨店","2025-12-10",70000
"2","交通費","2025-12-09",40000
"3","ライフライン","2025-12-08",13000
"4","レストラン","2025-12-07",5000
"5","カフェ","2025-12-06",1000
"6","スーパー","2025-12-05",400
out_detail.csv
"FKEY","項目","金額"
"1","コート",50000
"1","ジャケット",20000
"2","定期",30000
"2","チャージ",10000
"3","水道",3000
"3","電気",10000
"4","コース",5000
"5","ケーキ",500
"5","コーヒー",500
"6","牛乳",200
"6","パン",200

おわりに

kintoneのデータを出力するためのマッピング手法について解説しました。
専用コネクタではないため少しトリッキーな要素はありますが、慣れれば普通のマッピングの実装と大差はありません。
kintoneに溜まっている貴重な業務データを、IDMCを使って活用していきましょう。

参考

45
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
45
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?