Oracle Advanced Product Catalogインプリメンテーション・ガイド リリース11i B25746-01 | ![]() 目次 | ![]() 前へ | ![]() 次へ |
Advanced Product Catalogを使用すると、品目の属性をプログラミングなしで無制限に定義できます。属性は設定ユーザー・インタフェースを使用して定義できます。定義はメタデータ表に保存されます。ただし、サード・パーティまたはカスタムのシステムとインタフェースする場合は、属性データを読み込む必要があります。
ユーザー定義属性データを読み込むためのデータベース・ビューの生成
属性グループの設定画面を使用して、ユーザー定義属性データを読み込むためのデータベース・ビューを生成できます。このビューによって、ユーザーは属性メタデータの複雑な処理から解放されます。
PL/SQLによる属性データへのアクセス
特定品目のユーザー定義属性データにアクセスするもう1つの方法は、PL/SQLを使用することです。EGO_USER_ATTRS_DATA_PUBプロシージャを次に示します。
PROCEDURE Get_User_Attrs_Data
p_api_version | IN NUMBER |
,p_object_name | IN VARCHAR2 |
,p_pk_column_name_value_pairs | IN EGO_COL_NAME_VALUE_PAIR_ARRAY |
,p_attr_group_request_table | IN EGO_ATTR_GROUP_REQUEST_TABLE |
,p_user_privileges_on_object | IN EGO_VARCHAR_TBL_TYPE DEFAULT NULL |
,p_entity_id | IN VARCHAR2 DEFAULT NULL |
,p_entity_index | IN NUMBER DEFAULT NULL |
,p_entity_code | IN VARCHAR2 DEFAULT NULL |
,p_debug_level | IN NUMBER DEFAULT 0 |
,p_init_error_handler | IN VARCHAR2 DEFAULT FND_API.G_FALSE |
,p_init_fnd_msg_list | IN VARCHAR2 DEFAULT FND_API.G_FALSE |
,p_add_errors_to_fnd_stack | IN VARCHAR2 DEFAULT FND_API.G_FALSE |
,p_commit | IN VARCHAR2 DEFAULT FND_API.G_FALSE |
,x_attributes_row_table | OUT NOCOPY EGO_USER_ATTR_ROW_TABLE |
,x_attributes_data_table | OUT NOCOPY EGO_USER_ATTR_DATA_TABLE |
,x_return_status | OUT NOCOPY VARCHAR2 |
,x_errorcode | OUT NOCOPY NUMBER |
,x_msg_count | OUT NOCOPY NUMBER |
,x_msg_data | OUT NOCOPY VARCHAR2 |
p_api_version
コール元は定数値1.0を渡す必要があります。
p_object_name
コール元は定数値‘EGO_ITEM’を渡す必要があります。
p_pk_column_name_value_pairs
これは、コール元が必要とする属性データの在庫品目IDと組織IDを指定するEGO_COL_NAME_VALUE_PAIR_OBJオブジェクトの表です。コール元は次のようなコードを使用して表を作成する必要があります。
l_pk_column_values EGO_COL_NAME_VALUE_PAIR_ARRAY;
l_pk_column_values := EGO_COL_NAME_VALUE_PAIR_ARRAY(
EGO_COL_NAME_VALUE_PAIR_OBJ('INVENTORY_ITEM_ID', <在庫品目ID>) ,EGO_COL_NAME_VALUE_PAIR_OBJ('ORGANIZATION_ID', <組織ID>));
p_attr_group_request_table
これは、EGO_ATTR_GROUP_REQUEST_OBJオブジェクトの表です。コール元が必要とする値が属する属性グループごとに1つのオブジェクトがあります。また、このオブジェクトは、属性グループ内の一部の属性に対してのみ要求をサポートします。表内の各EGO_ATTR_GROUP_REQUEST_OBJオブジェクトは、次のようになっています。
EGO_ATTR_GROUP_REQUEST_OBJ(
NULL,
431,
‘EGO_ITEMMGMT_GROUP’,
<属性グループの内部名>,
<属性グループが改訂レベルに関連付けられている場合は改訂ID、関連付けられていない場合はNULL>,
NULL,
NULL,
<必要な値を持つ属性内部名のオプションのカンマ区切りのリスト、またはNULL>);
p_user_privileges_on_object
これは、VARCHAR2のオプションの表です。要求されている属性グループの参照権限と照合して検証済の、コール元が必要とする権限ごとに1つのVARCHAR2があります。たとえば、ユーザーがGet_User_Attrs_Dataをコールするプロシージャを起動し、コール側プロシージャが属性グループのデータ・セキュリティを強制する必要がある場合、コール側プロシージャでは、現行品目に対する各ユーザーのロールに基づいて、ユーザー権限のリストを渡すことができます。このパラメータがNULL以外の場合、Get_User_Attrs_Dataは、定義済の参照権限がある属性グループに対してデータ・セキュリティを強制します。
p_entity_id、p_entity_index、p_entity_code
ERROR_HANDLERパッケージとともに使用するパラメータ。コール元が複数品目のエラーを識別する必要がない場合は、これらのパラメータは安全にデフォルト設定できます。デフォルト設定の詳細は、ERROR_HANDLERパッケージを調べてください。
p_debug_level
デバッグ・ロギングを制御するパラメータ。安全にデフォルト設定できます。
p_init_error_handler、p_init_fnd_msg_list、p_add_errors_to_fnd_stack
ERROR_HANDLERパッケージとともに使用する追加パラメータ。安全にデフォルト設定できます。
p_commit
処理の最後にGet_User_Attrs_DataがCOMMIT文を発行するかどうかを制御します。API標準に準拠していますが、Get_User_Attrs_DataはDMLを実行しないため、安全にデフォルト設定できます。
x_attributes_row_table
これは、EGO_USER_ATTR_ROW_OBJオブジェクトの表です。各オブジェクトはユーザー定義属性データの行(たとえば、1つのデータベース表のデータ行)を表します。各オブジェクトには、EGO_MTL_SY_ITEMS_EXT_VL(ROW_IDENTIFIERとして格納)からの拡張IDの値が含まれ、主にx_attributes_data_tableでオブジェクトを編成する手段として使用されます。
x_attributes_data_table
これは、EGO_USER_ATTR_DATA_OBJオブジェクトの表です。各オブジェクトは、単一の属性値を表します。特定のデータ行の属性値はすべて、同じROW_IDENTIFIER値を共有します。x_attributes_row_tableの場合と同じように、ROW_IDENTIFIER値はEGO_MTL_SY_ITEMS_EXT_VLからの拡張IDです。各オブジェクトには属性内部名(ATTR_NAMEとして格納)とその値(ATTR_DISP_VALUEとして格納)も含まれています。
x_return_status、x_errorcode、x_msg_count、x_msg_data
処理中に発生した内容を示す4つの標準OUTパラメータ。最初のx_return_statusは、処理が成功した場合はFND_API.G_RET_STS_SUCCESSと等価になります。想定していたエラーが発生した場合はFND_API.G_RET_STS_ERRORと等価に、処理中に不具合が生じた場合はFND_API.G_RET_STS_UNEXP_ERRORと等価になります。X_errorcodeは使用されません。X_msg_countはERROR_HANDLERによってロギングされたエラー・メッセージの数を示します。x_msg_countが1の場合、x_msg_dataにはそのメッセージが含まれます(これは、コール元が1つのメッセージのみのためにERROR_HANDLERと相互作用する不都合を避けるためです)。