別のリクエストによるスクリプトの実行
FileMaker スクリプトを別のリクエストの一部として実行するには、リクエストのボディに script.prerequest
、script.presort
、および script
引数を含めます。
引数 |
値 |
|
API の呼び出しで指定されている処理 (取得、作成、編集、複製、削除、検索) の後や以降のソートの後に実行されるスクリプトの名前。 |
|
|
script.prerequest
|
API の呼び出しや以降のソートで指定されている処理の前に実行されるスクリプトの名前。 |
script.prerequest.param
|
script.prerequest で指定されているスクリプトの引数として使用されるテキスト文字列。 |
script.presort
|
API の呼び出しで指定されている処理の後で実行されるが、以降のソートの前に実行されるスクリプトの名前。 |
script.presort.param
|
script.presort で指定されているスクリプトの引数として使用されるテキスト文字列。 |
スクリプトの実行順序
script.prerequest
、script.presort
、および script
引数を単一の API 呼び出しに指定することができます。各キーワードは 1 度だけ指定することができます。ホストでは、これらの引数を API 呼び出しの一部として次の順序で処理します:
-
URL で指定されたレイアウトに移動します。
-
script.prerequest
で指定されているスクリプトを実行します (指定されている場合)。 -
API 呼び出しで指定されている処理 (取得、作成、編集、複製、削除、検索) を実行します。
-
script.presort
で指定されているスクリプトを実行します (指定されている場合)。 -
API 呼び出しで指定されているソートを実行します:
-
レコードの範囲の取得では、
_sort
引数で指定されているソートを実行します。 -
検索の実行では、
sort
引数で指定されているソートを実行します。
-
-
script
で指定されているスクリプトを実行します (指定されている場合)。 -
offset 引数および limit 引数の適用された API 呼び出しの結果セットが返されます (指定されている場合)。
メモ
-
HTTP GET メソッドおよび HTTP DELETE メソッドを使用した呼び出しでは、スクリプト引数が URL 引数として含まれています。「単一のレコードの取得」、「レコードの範囲の取得」、および「レコードの削除」を参照してください。
例:
https://<ホスト>/fmi/data/v1/databases/customers/layouts/entry/records/14?script=UpdateProcessing&script.param=14
-
HTTP POST メソッドおよび HTTP PATCH メソッドを使用した呼び出しでは、リクエストのボディにスクリプト引数が含まれています。「レコードの作成」、「レコードの編集」、および「検索の実行」を参照してください。
例:
コピー{
"query": [
{
"Title": "Office Manager"
}
],
"script.prerequest": "Eliminate duplicates",
"script.prerequest.param": "100"
} -
HTTP GET メソッドを使用する呼び出しの場合、返された対象レコードは API 呼び出しの結果と、同じリクエストの一部として実行されたスクリプトの影響の両方を反映しています。
-
スクリプト引数である
script.param
、script.prerequest.param
、およびscript.presort.param
には、1 つのテキスト文字列のみを指定することができます。複数の引数を渡すには、それらの引数を区切る文字列を作成し、スクリプトが個々の引数を解析するようにします。たとえば、「param1|param2|param3」は「|」文字を「param1%7Cparam2%7Cparam3
」のように URL エンコードした一覧として渡します。 -
スクリプトの結果は
scriptResult
、scriptResult.prerequest
、およびscriptResult.presort
引数を使用して JSON データで返されます。スクリプトの結果はスクリプトを終了する [現在のスクリプト終了] スクリプトステップの [テキスト結果:] オプションで返される値です。スクリプトエラーはscriptError
、scriptError.prerequest
、およびscriptError.presort
引数を使用して JSON データで返されます。(スクリプトエラーが返される際は、HTTP ステータスコードは使用されません。)