品目ルール・オブジェクト機能
これらの機能を使用して、Oracle Fusion Customer Relationship Managementアプリケーション・コンポーザで作成されたカスタム・オブジェクトに格納されているデータにアクセスまたは更新できます。
getCustomObjectValue
構文:
getCustomObjectValue(
custObjName,
custObjReturnAttrName,
custObjQueryAttrName1, Value1,...
custObjQueryAttrNameN, ValueN )
アプリケーション・コンポーザを使用して定義されているカスタム・オブジェクトcustObjName
の属性から値をフェッチします。 値は、カスタム・オブジェクトのcustObjReturnAttrName
という名前のフィールドからフェッチされます。 値をフェッチするカスタム・オブジェクト・インスタンスは、==
演算子を使用して、custObjQueryAttrName1
という名前のフィールドのValue1
と一致することで識別されます。 Value1
は、リテラル値にすることも、[ITEM].[AG1].[A1]
などの属性を参照することもできます。 ValueN
に対するcustObjQueryAttrNameN
の一致などを指定することで、追加の一致基準を指定できます。
updateCustomObjectValues
構文:
updateCustomObjectValues(
custom_object_name,
field_query_map,
field_update_map,
return_attr_value)
アプリケーション・コンポーザを使用して定義されたカスタム・オブジェクトであるcustom_object_name
の1つ以上の値を更新します。
-
更新する値を含むカスタム・オブジェクト行は、
field_query_map
によって識別されます。これは、ToMap
関数を使用した名前と値のペアのマップです。ToMap("Seq", 235)
は、列Seqの行を値235で指定します。 -
識別された行では、更新する列は
field_update_map
で識別されます。ここで、ToMap("Active","NO")
は列アクティブの値を値NOで更新します。field_update_map
には、同じ行の複数の列を更新するための複数の名前/値のペアを含めることができます。 -
return_attr_value
は、関数によって値が返される問合せされた行の列を指定します。 -
この関数は、カスタム・オブジェクト行が見つかり、更新された場合はTRUEを返し、問合せ属性に一致するカスタム・オブジェクト行が見つからなかった場合はFALSEを返します。
カスタム・オブジェクトの例: MachineCode
このカスタム・オブジェクトの例は、次の関数の例で使用されます。
順序 |
コード |
アクティブ |
Hour_Rate |
---|---|---|---|
1 |
A20 |
YES |
200 |
2 |
M10 |
YES |
500 |
3 |
X40 |
YES |
30 |
例: 単一のカスタム・オブジェクト・フィールドの更新
次の例では、「順序」フィールドが2であるMachineCodeカスタム・オブジェクト行を問い合せ、その「アクティブ」フィールドをNO
に更新し、行が更新された場合はTRUEを返します:
updateCustomObjectValues("MachineCode", ToMap("Seq", 2), ToMap("Active", "NO"))
例: 複数のカスタム・オブジェクト・フィールドの更新
次の例では、前述の例と同じ問合せおよび更新を実行しますが、さらに時間レートフィールドを10
に更新します:
updateCustomObjectValues("MachineCode", ToMap("Seq", 2), ToMap("Active", "NO", "Hour Rate", 10))
例: カスタム・オブジェクト・フィールドを更新し、値を返します
品目に属性[ITEM].[MACHINE_DETAILS].[SL_NUMBER]があるとします。 ルールの「戻り値」フィールドに、次の式を使用してルールを作成します:
updateCustomObjectValue("MachineCode",ToMap("Seq", [ITEM].[MACHINE_DETAILS].[SL_NUMBER]), ToMap("Active", "NO"),Hour_Rate))
その式は次のとおりです:
-
MachineCodeカスタム・オブジェクトのSeq列を問い合せて、品目のSL_NUMBER属性の値と一致する行を検索
-
その行で、アクティブ列の値をNOに更新します。
-
その行から、Hour_Rate列の値(品目ルールの「戻り値」フィールド)を返します。
InvokeGlobalFunction
構文:
InvokeGlobalFunction(global_function_name,
global_function_param1,
global_function_param2, ...,
global_function_paramN)
アプリケーション・コンポーザを使用して定義されたグローバル関数global_function_name
をコールします。 0個以上のパラメータをグローバル関数にglobal_function_param1
からglobal_function_paramN
として渡します。 割当または検証に使用できる値を返します。 Webサービスを起動して内部データまたは外部データにアクセスしたり、データの計算を実行するGroovyスクリプトをグローバル関数内に記述できます。
グローバル関数の定義の詳細は、次のOracle Fusion Cloud Applicationsガイドを参照してください:
-
アプリケーション・コンポーザを使用したアプリケーションの構成
-
Groovyスクリプト・リファレンス
例:
次の例では、3つの文字列パラメータを取り、それらの文字列を連結して戻すグローバル関数my_global_concat_func()
をコールします:
InvokeGlobalFunction("my_global_concat_func", "Hello",", ","world!")
出力:
Hello, world!
次の表は、品目ルールとグローバル機能間でのデータ型の使用方法を示しています:
タイプ |
パラメータとして渡されました |
値として返されます |
---|---|---|
文字列 |
Yes |
Yes |
Long (整数) |
Yes |
Yes |
倍精度浮動小数点数 |
Yes |
Yes |
日付 |
Yes |
Yes |
Boolean |
Yes |
Yes |
オブジェクト |
No |
No |
リスト |
No |
No |
マップ |
No |
No |
無効 |
該当なし |
No |