Webhook と API を使用して、新しく追加したレコードをテーブル間でコピーできます。
この例では、内容が同じ 2 つのテーブル(People
と PeopleEcho
)を使用します。どちらのテーブルにも 4 つのまったく同じフィールド(Name
、Age
、DropDown
、Count
)が含まれます。単純かつ作為的な例ではありますが、同じアプローチをより複雑な事例に応用できることがわかりやすく示されています。
新しいレコードを People
テーブルに追加するたびに、Webhook がトリガーされます。Webhook は API を使用して、その同じレコードを PeopleEcho
テーブルに追加します。
新しく追加したレコードをコピーするには:
-
[Automation] セクションに移動し、Webhook タスクを含む自動化 bot を作成して、以下のプロパティを設定します。
-
Target data プロパティで People テーブルを選択します。
-
Update event プロパティで ADDS_ONLY を選択します。
-
Url プロパティで
「https://www.appsheet.com/api/v2/apps/ad178014-1282-4055-bf14-505e31c90c73/tables/PeopleEcho/Action」と入力します。
ここで、apps/
に続くアプリ ID は [Manage] > [Integrations] > [IN] ペインに表示されるアプリ ID で、tables/
に続く値はターゲット テーブルの名前です。この場合はPeopleEcho
になります。 -
HTTP Verb プロパティで「Post」と入力します。
-
HTTP Headers プロパティで「applicationAccessKey: "C2iXO-RjfVq-PmcLy-d7nil-YiLvt-BCAYy-C04LY-Ynt0q"」と入力します。
ここで、アクセスキー値は [Manage] > [Integrations] > [IN] ペインに表示されるアクセスキーです。アクセスキーは引用符で囲む必要があります。詳しくは、Webhook からの呼び出し時にアプリケーション アクセスキーを指定するをご覧ください。
-
-
以下に示すような JSON 本文テンプレートを作成します。
この JSON 本文テンプレートは、People
テーブルのName
フィールドの値をPeopleEcho
テーブルのName
フィールドにコピーします。その他 3 つのフィールドについても同様です。
この例ではPeople
のレコード全体をPeopleEcho
にコピーしているだけですが、それ以外のこともできます。たとえば、フィールドのサブセットをコピーしたり、定数や式を使って新しいレコードのフィールドを初期化したりすることもできます。
{
"Action": "Add",
"Properties": {
"Locale": "en-US",
"Location": "47.623098, -122.330184",
"Timezone": "Pacific Standard Time",
"UserSettings": {
"Option 1": "value1",
"Option 2": "value2"
}
},
"Rows": [
{
"Name": "<<[Name]>>",
"Age": "<<[Age]>>",
"DropDown": "<<[DropDown]>>",
"Count": "<<[Count]>>"
}
]
}
JSON 本文テンプレートを作成する
JSON Body Template プロパティに続く [Create] ボタンをクリックすると、初期状態の JSON 本文テンプレートが作成されるので、そのテンプレートに変更を加えることができます。このテンプレートは、Target data プロパティで指定したテーブルのフィールドに基づいています。
次に示す手法により、テンプレートの作成を簡素化できます。
- Target data プロパティの値を、テンプレートで使用するテーブルに一時的に変更します。
- [Save] をクリックして一時的な変更を保存します。
- [Create] をクリックしてテンプレートを作成します。
- Target data プロパティの値を元の値に戻します。
- [Save] をクリックしてすべての変更を保存します。
Webhook と API のトラブルシューティング
- Webhook のトラブルシューティングについては、Webhook のトラブルシューティングをご覧ください。
- API のトラブルシューティングについては、API 呼び出しのトラブルシューティングをご覧ください。