プリザンターAPIで複数のテーブルをJOINしてデータを取得する方法
はじめに
プリザンター に格納された テーブルA と テーブルB の情報をJOINして取得することができます。マスタデータにある属性値などが簡単に取得できます。
前提条件
テーブルA と テーブルB はリンクの設定が必要です。
テーブル構成
親テーブルA - サイトID: 6
子テーブルB - サイトID: 7 (分類AでサイトID 6 にリンク)
Request URL
子テーブルから親テーブルを参照する場合には、子テーブルのサイトIDをURLに指定します。
https://servername/api/items/7/get
Request Body
複数のテーブルからデータを取得する際には、以下の指定を行います。"ApiDataType"は必ず"KeyValues"とします。"GridColumns"には取得する項目をのテーブルと項目を指定します。"ClassA~6,ClassA" のカンマの前の部分は、分類Aに設定したサイトID: 6 へのリンクであることを示します。カンマの後ろの部分は、リンク先テーブルの分類Aを示します。
{
"ApiKey":"9318a126...",
"View": {
"ApiDataType": "KeyValues",
"GridColumns": [
"Title",
"ClassA",
"ClassA~6,ClassA",
"ClassA~6,ClassB"
]
}
}
取得結果
デモ環境 の「商談管理の例」で「顧客」と「商談」を取得した場合、下記のようにデータが取得できます。件名と顧客は サイトID: 7 から取得していますが、住所と連絡先は サイトID: 6 のマスタデータから取得しています。
{
"StatusCode": 200,
"Response": {
"Offset": 0,
"PageSize": 200,
"TotalCount": 7,
"Data": [
{
"件名": "業務改善コンサルティング",
"顧客": "働き方改革推進団体",
"住所": "東京都立川市",
"連絡先": "258-258-258"
},
{
"件名": "文書管理ソフトウェアの販売",
"顧客": "Webデータベース開発株式会社",
"住所": "東京都練馬区",
"連絡先": "789-789-789"
},
{
"件名": "営業支援ツールの追加機能開発",
"顧客": "情報共有イノベーション研究所",
"住所": "東京都新宿区",
"連絡先": "333-333-333"
},
{
"件名": "グループウェアのクラウド環境への移行",
"顧客": "株式会社プリザンター",
"住所": "東京都中央区",
"連絡先": "111-111-111"
},
{
"件名": "AI技術の検証",
"顧客": "マネジメント快適化ホールディングス",
"住所": "東京都中野区",
"連絡先": "123-123-123"
},
{
"件名": "グラフ化ツールの販売",
"顧客": "有限会社ノンプログラミング",
"住所": "東京都国分寺市",
"連絡先": "456-456-456"
},
{
"件名": "食品工場内の環境モニタリングシステムの開発",
"顧客": "株式会社オープンソーステクノロジー",
"住所": "東京都豊島区",
"連絡先": "555-555-555"
}
]
}
}
その他
親の親や子を指定することも可能です。
親の親を指定する場合
ClassA~7-ClassA~6,ClassA
子を指定する場合
ClassA~~7,ClassB
リンク項目を表す文字列の確認方法
「テーブルの管理」の「一覧」タブで他のテーブルの項目を追加し、ブラウザの開発者ツールを開き要素の「data-value」で確認することができます。