品目ルール・サービスおよびREST関数
これらの関数を使用して、webサービスおよびREST APIにアクセスできます。
InvokeRestGet
構文:
InvokeRestGet(
rest_service_name,
map_of_query_parameters,
return_value_expression,
http_header_map)
この関数は、RESTサービスで使用します。
rest_service_name
として登録されたRESTサービスをコールし、map_of_query_parameters
をGETアクションに渡して値を返します。 戻り値は、アサイメントと検証の両方に使用できます。
RESTサービスがアプリケーション・コンポーザでURLにトークンなしで登録されている場合は、InvokeRestGet()
を使用します。
引数:
-
rest_service_name
- アプリケーション・コンポーザでRESTサービスを登録するときに使用する名前。 -
map_of_query_parameters
- GET操作に渡される名前と値のペアを含むマップ。 この引数のペアを作成するには、ToMap()
関数を使用する必要があります。 たとえば、https://api.vision.com/products?id=CN97774
などのサービス・パラメータを渡すには、ToMap("id","CN97774")
を指定します。 -
return_value_expression
-InvokeRestGet
関数の値として返されるRESTレスポンスからのフィールドへのパス。 この値にはスペースとセミコロンは使用できません。 -
http_header_map
- (オプション)リクエストに使用するHTTPヘッダーの名前と値のペアを含むマップ。
例(HTTPヘッダーなし):
次の例では、問合せパラメータq=ItemNumber=Vision_root_01
をwebサービスitem_rest
のGETアクションに渡し、最初の品目のItemDescription属性に値を返します:
InvokeRestGet("item_rest", ToMap("q", "ItemNumber=Vision_root_01"), "items[0].ItemDescription")
例(HTTPヘッダー付き):
次の例では、同じサービス・コールを実行しますが、言語コードKO
を指定します:
InvokeRestGet("item_rest", ToMap("q", "ItemNumber=Vision_root_01"), "items[0].ItemDescription", ToMap("Accept-Language", "KO"))
Oracle RESTサービスでサポートされるq
パラメータには、特定の文字および語句に対する特定のエスケープおよび書式設定が必要です。 この詳細は、Oracle Cloud REST APIを使用したビジネス・オブジェクトへのアクセス・ガイドのGETメソッド・エンドポイントに関するトピックを参照してください。 この要件は、InvokeRestGet()
をコールするときにqパラメータの値を作成するときに注意する必要があります。 Replace()
関数を使用すると、属性値内の"
を"
に置換するなど、文字エスケープを実行できます。
ToMap
InvokeRestGet()
やupdateCustomObjectValues()
などの関数のスコープ内で使用されます。 構文:
ToMap(key_1, value_1, key_2, value_2, ..., key_n, value_n)
別の関数のスコープ内で、関数に引数として渡すことができる一連の名前と値のペアを作成します。 各ペアは、キーと値で構成されます。
例:
この名前と値のペアのセットの場合:
ObjectName=Item
Principal=Person
Name=wilson.smith
OrganizationCode=V1
ItemClass=Root Item Class
次の例では、単一の引数として渡すことができるペアのマップを作成します:
ToMap("ObjectName", "Item", "Principal", "Person", "Name", "wilson.smith", "OrganizationCode", "V1", "ItemClass", "Root Item Class")
InvokeRestGetWithTokens
構文:
InvokeRestGetWithTokens(
rest_service_name,
token_value1, token_value2, ... , token_value_n,
return_value_expression)
この関数は、RESTサービスで使用します。
rest_service_name
として登録されたRESTサービスをコールし、token_value1
およびRESTサービスURLのトークンに渡される他のすべての値をGETアクションに渡し、return_value_expression
で識別されるフィールドに値を戻します。
RESTサービスがアプリケーション・コンポーザでURLのトークンを使用して登録されている場合は、InvokeRestGetWithTokens()
を使用します。
引数:
-
rest_service_name
- アプリケーション・コンポーザでRESTサービスを登録するときに使用する名前。 -
token_value1, ... , token_value_n
- RESTサービスURLのトークンに渡される値。 トークン値は、URLで発生する順序と同じ順序で渡す必要があります -
return_value_expression
-InvokeRestGet
関数の値として返されるRESTレスポンスからのフィールドへのパス。 この値にはスペースとセミコロンは使用できません。
例:
次の例では、値wilson.smith
、Root Item Class
およびV1
をwebサービスdata_security_rest_params
のトークンに渡し、最初の品目のGrantId属性に値を返します:
InvokeRestGetWithTokens("data_security_rest_params", "wilson.smith", "Root Item Class", "V1", "items[0].GrantId")
InvokeWebService
構文:
InvokeWebService("service_name", "function_name", input_argument1, input_argument2,...)
この関数は、SOAPサービスで使用します。
SOAP webサービスとそのカスタム関数の名前は、空白文字を含めることができない引用符付き文字列として渡されます。 品目ルールは単純タイプ・パラメータのみをサポートし、この関数に渡される複合タイプ・パラメータはサポートしません。
webサービスを介して呼び出されるカスタム関数によって生成された値を返します。 この関数では複数の値が受け入れられないため、webサービス関数は単一の値を返す必要があります。
例:
InvokeWebService("ValidateSLN_Digit", "execute", [Item].[Tag AG].[SL No])
InvokeWebService()
を使用するルール式が実行時に実行されると、InvokeWebService()
はwebサービスservice_name
をコールし、input_argument1
などの入力ペイロードを関数function_name
に渡します。 function_name
から戻された値は、InvokeWebService()
によってルール式に返されます。
ルール式で関数function_name
をコールする前に、webサービスservice_name
を、サービスのコールに使用される資格証明とともに登録する必要があります。
Webサービスのカスタム関数コール
カスタム関数をルール式で使用するには、まず関数を記述し、カスタム関数を含むパブリックwebサービスを作成してから、InvokeWebService()
を使用してカスタム関数をコールします。