UPDATE 実行
UPDATE ステートメントが実行されると、connector はスキーマのMERGE メソッドを実行し、HTTP 更新リクエストを作成します。
このメソッドの詳細な例を見るには、スキーマのカスタマイズ を参照してください。
JSON へのUpdate の実行
MERGE メソッドでは、Items in API Script の1つである_input アイテムに、更新するカラムが含まれます。例えば、次のステートメントを考えてみましょう。
UPDATE Persons SET Name='Ana Trujilo' WHERE Id = '7'
_input アイテムの属性を使用して、HTTP 更新リクエストでこれらのカラム値を設定できます。OData API では、これはHTTP OUT またはPATCH です。OData API で先の更新を行うためのPUT データは次のとおりです。
{
"@odata.type": "#ODataDemo.Person",
"@odata.id": "http://services.odata.org/V4/OData/(S(wcpddcnfsjih2ecg0izcegfs))/OData.svc/Persons(7)",
"Name": "Ana Trujilo"
}
サンプルスキーマの対応するMERGE メソッドでは、必須カラム、主キーが検証され、その後PUT データおよびURL で使用されます。インプットが提供されたかをチェックし、api:validate キーワードを伴わない場合には、ユーザーにアラートを出すことができます。
必要な属性が存在することを検証したら、PUT データにカラムの値を設定できます。データ属性をPUT データに設定します。api:set キーワードのボディは、このように長い、もしくは複数行の値を設定する際に便利です。
api:call キーワードは、HTTP 要求を行う操作を呼び出します。操作を呼び出す前に、api:set を使用してメソッド属性をapi:script キーワードのスコープ内で必要なHTTP メソッドに設定します。
<api:script method="MERGE">
<api:set attr="method" value="PUT"/>
<api:validate attr="_input.Id" desc="An Id is required to update." />
<api:set attr="uri" value="http://services.odata.org/V4/OData/abc123/OData.svc/Persons(ID=[_input.Id])" />
<api:set attr="data">
{
"@odata.type": "#ODataDemo.Person",
"@odata.id": "[uri]",
<api:check attr="_input.Name">
"Name": "[_input.Name]"
</api:check>
}
</api:set>
<api:call op="jsonproviderGet"/>
</api:script>
UPDATE ステートメントのコンポーネントにアクセス
MERGE メソッドでは、_query アイテムに次の属性が含まれます。
query | 次のステートメントのような、SQL ステートメント。
UPDATE Account SET Name='John' WHERE Id = @myId |
table | SQL ステートメント内のテーブル。例えば、先のクエリのAccount です。 |
criteria | ステートメントのWHERE 句。例えば、この例では次のWHERE 句です。
Id = @myId |
nullupdates | null 値またはnull パラメータ値を含む、UPDATE ステートメントのカンマ区切りのカラム。 |
キーワードの参照
このセクションで使われているキーワードの詳細情報は、API Script Reference を参照してください。