Oracle Approvals Managementインプリメンテーション・ガイド リリース12 E06007-01 | ![]() 目次 | ![]() 前へ | ![]() 次へ |
属性は、特定のトランザクションごとに単一の値を持つビジネス変数です。次に属性の例を示します。
トランザクションの合計金額
値引率
項目のカテゴリ
個人の給与
承認ルールでは、属性を使用して、トランザクション合計金額の値や値引率の値などの結果を判断します。属性には、ヘッダー、明細項目、コスト・センター、プロジェクト・コードなどの項目区分があります。次の図では、発注の例を使用して属性とその値を示しています。
属性名の作成と属性使用の定義は、トランザクション・タイプの実装プロセスでは重要な2つのステップです。通常、トランザクション・タイプには、組織に必要な属性名と属性使用が事前に定義されています。自社のビジネス要件を満たすために、この事前定義の属性を使用したり、属性を作成することができます。
属性には、次のプロパティがあります。
名称
属性名は決定変数を表す文字列です。シングルバイト・キャラクタ・セットを使用するようにOracle Applicationsを構成している場合、属性名には最大50バイト(50文字)の名称を指定できます。AMEでは、属性名は常に大文字(例: TRANSACTION_AMOUNT)で表示されます。
注意: 小文字または大/小文字の組合せで入力した属性名は、大文字に変換されてから格納されます。
すべての属性名は共有できます。作成した属性名は、すべてのトランザクション・タイプで使用できます。属性名を作成する際は、作成者の意図がその属性名の汎用性レベルに反映されていることを確認してください。次に例を示します。
Web経費トランザクション・タイプ固有の属性を作成する場合は、WEB_EXPENSES_という接頭辞で始まる属性名を指定できます。
属性名を、単一の統合アプリケーションが所有している複数のトランザクション・タイプで共有する場合は、HRMS_WEB_EXPENSES_など、その統合アプリケーションを示す接頭辞を名称に指定します。
すべてのトランザクション・タイプで属性名を使用する場合は、統合アプリケーションを示すような属性名は指定しません。
項目区分
属性の項目区分は、その属性の値を保持する項目の区分を決定します。所定のトランザクションの場合、属性の項目区分内の各項目には、その属性に関する独自の値があります。また、属性には、トランザクション・タイプに関係なく、常に同じ項目区分があります。ヘッダー項目区分に属している属性は、ヘッダー・レベルの属性と呼ばれることがあります。下位項目区分に属している属性は、明細項目レベルの属性またはコスト・センター・レベルの属性と呼ばれることがあります。
使用
属性使用は、所定のトランザクション・タイプ内にある所定の項目とトランザクションに関する属性値を取得する方法をAMEに対して指示します。すべてのトランザクション・タイプには、所定の属性に対する独自の属性使用を定義できます。これは、条件とルールは複数のトランザクション・タイプで共有できるため、組織では、単一のルール・セットを定義して複数のトランザクション・タイプに適用できることを意味します。その結果、複数のアプリケーションにわたって一貫した承認ポリシーが実装されます。また、トランザクション・タイプに属性使用が定義されていないために、属性または属性に定義されている条件にアクセスできるトランザクション・タイプがない状態でも、属性名が存在し得ることを意味します。
属性使用には、次の2つのタイプがあります。
静的
静的使用では、すべての項目とトランザクションについて、属性の固定値を指定します。
通常、静的使用は、ほとんどまたはすべての必須属性に対して指定されます。その理由の1つは、静的使用は動的使用に比較して実行時のオーバーヘッドが少ないためです。別の理由として、静的使用では、所定のトランザクション・タイプ内のすべてのトランザクションに対して一貫したビジネス・ポリシーが示されるためです。
動的
動的使用では、所定のトランザクションについて、属性の項目区分内にある各項目の属性値をフェッチするために、実行時にAMEが実行するSQL問合せを指定します。
動的属性使用の実行は、AMEの実行時オーバーヘッドの大部分を占めます。したがって、動的使用の最適化は、AMEのパフォーマンスに大きな影響を与えます。特に、動的使用の属性を所有するトランザクション・タイプで大量のトランザクションを処理する場合は、これらの問合せを確実に最適化してください。
属性タイプは、属性値のデータ型を示します。属性タイプはトランザクション・タイプに関係なく常に同じです。属性タイプは、属性名を作成した後で変更することはできません。AMEでは、次の5種類の属性タイプが識別されます。
ブール
数値
文字列
日付
通貨
ブール属性には、実行時に許可される2つの値(trueとfalse)のいずれかを指定します。これらの文字列では大/小文字が区別されます。AMEでは、これらのブール属性に対して、ame_util.booleanAttributeTrueとame_util.booleanAttributeFalseの各定数が定義されています。これらの値の使用方法は、次のとおりです。
動的属性使用での定数として使用するか、定数を生成するソース・コードで使用します。
静的使用では、引用符を付けずに実際の値を使用します。
数値属性には、PL/SQLで許可される数値を指定できます。数値属性の静的使用には、整数またはユーザーのキャラクタ・セットで必要な小数点文字を使用した小数が必要です。たとえば、1や-2は受入可能な整数値で、-3.1415は受入可能な小数値です。
数値属性の動的使用では、ファンクションfnd_number.number_to_canonicalを使用して数値列を標準形式に変換する必要があります。次に、TRANSACTION_REQUESTOR_PERSON_ID属性に対する動的使用の例を示します。
select
fnd_number.number_to_canonical(requestor_person_id)
from some_application_table
where transaction_id = :transactionId
数値属性は、承認者を表すことができます。その場合は、属性を作成する際に、その属性の承認者タイプを選択する必要があります。
注意: 数値属性の承認者タイプは、属性を作成した後では編集できません。
文字列属性には、最大100バイト(100文字)のテキスト値を指定できます。このテキスト値には、空白や通常の句読点を含めることができ、大/小文字が区別されます。改行文字は属性使用から削除されるため、属性使用には改行文字を入力しないでください。ただし、AMEによる改行文字の削除方法は、静的使用と動的使用で異なります。この相違は、次のことを意味します。
静的使用の場合、改行文字は実行時に削除されるため、文字列属性の静的使用に改行文字を指定することはできません。
文字列属性の動的使用では、技術的には改行文字を含んだ値を指定できます。これは、AMEでは、問合せ結果ではなく、問合せから改行文字が削除されるためです。
注意: 文字列属性値には、改行文字などの印刷できない文字は使用しないことをお薦めします。これは、改行文字に関する静的使用と動的使用ではAMEの動作が異なり、改行文字が明確に表示されないためです。
AMEでは日付が秒単位まで識別されるため、日付属性には、PL/SQLで日付変数として表されるすべての値を指定できます。日付属性値は、書式モデルame_util.versionDateFormatModelに準拠する必要があります。現在、この書式モデルの値はYYYY:MON:DD:HH24:MI:SSです。この値が変更される可能性はほとんどありません。たとえば、2001:JAN:01:06:00:00は受入可能な日付値です。AMEの日付書式モデルは、標準的な書式モデルとはわずかに異なります。標準的な書式モデルには空白文字が含まれるため、ある種の技術的な問題が生じます。
日付属性の動的使用では、次のようにame_util.versionDateFormatModelを使用して日付列を文字列に変換してください。
select
to_char(sysdate, ame_util.versionDateFormatModel) from dual
通貨属性は金額を表します。AMEが通貨の値を数値属性として処理せずに、通貨属性タイプを定義する理由は、通貨属性に定義されている条件を評価する際に、通貨の貨幣単位間での換算を可能にするためです。これは、次のことを意味します。
通貨属性には、金額、貨幣単位および換算方法の3つの要素があります。
Oracle Applicationsインスタンスは、Oracle General Ledgerの通貨換算機能を使用する必要があります。
たとえば、TRANSACTION_AMOUNTが通貨属性の場合、AMEでは、実行時に条件の評価が必要になります。
TRANSACTION_AMOUNT < 500 USD
属性の値をフェッチすると、AMEでは、金額が(米ドルではなく)英国ポンドであること、その属性には「日次」換算方法が必要であることが確認されます。次に、General Ledgerの通貨換算機能を使用し、さらに、「日次」換算方法を使用して、属性の値が米ドルに換算されます。その後、AMEでは、換算したドル金額を使用して条件が評価されます。
組織で1つの通貨単位のみを使用している場合は、通貨属性ではなく数値属性を使用して金額を表現できます。
通貨属性の値には、次の形式を指定する必要があります。
amount,code,type
codeには有効な通貨コード、typeには有効な通貨換算タイプを指定します。コードとタイプの値以外には空白を使用しないでください。
「5000.00,USD,Corporate」は、有効な静的通貨値です。
通貨値の金額要素は標準形式であることが必要です。動的通貨使用では、ファンクションfnd_number.number_to_canonicalを使用して数値を標準形式で戻す必要があります。次のSQL文は、TRANSACTION_TOTAL属性に対する動的使用の例です。
select
fnd_number.number_to_canonical(transaction_amount),
currency_code,
currency_conversion_type
from some_application_table
where transaction_id = :transactionId
AMEでは、すべてのトランザクション・タイプで1つの属性名を共有できます。この共有は、属性使用として属性の値を実行時に決定する独自の方法を定義する際に発生します。この属性名の共有機能を使用すると、複数のトランザクション・タイプで条件とルールを共有できます。さらに、複数のトランザクション・タイプに適用する単一のルール・セットを定義したり、一貫した承認ポリシーを指定できます。これは、所定のトランザクション・タイプが未定義の場合でも、属性名は定義できることを意味します。トランザクション・タイプは、使用が定義されているトランザクション・タイプの属性に対して定義されている条件にのみアクセスできます。属性使用の作成と編集を実行できるのは、システム管理者職責のユーザーのみです。
属性使用には静的と動的の2種類があります。
静的属性使用では、所定のトランザクション・タイプの属性に定数値を割り当てます。静的使用では、属性のデータ型に関係なく、属性値は常に文字列として格納されます。静的使用の場合、値の指定は必須ではありません。NULLの静的使用の作成方法は、「属性の作成」および「属性の編集」を参照してください。
静的使用は一般的ですが、AMEによる全トランザクションの処理方法に影響を与える特定のブール型必須属性(例: AT_LEAST_ONE_RULE_MUST_APPLY属性)には不要です。また、特定のブール型必要属性(例: INCLUDE_ALL_JOB_LEVEL_APPROVERS)に対しても同様に使用されます。
静的使用に関する構文規則
静的使用では、文字列の区別に一重または二重引用符を使用しないでください。
ブール属性の静的使用では、trueまたはfalseのいずれかの文字列が必要です。
数値属性の静的使用では、整数または10進の(科学計算用でない)小数表記が必要です。たとえば、1や-2は受入可能な整数値、-3.1415は受入可能な小数値です。
日付属性の静的使用では、書式モデルame_util.versionDateFormatModel(値はYYYY:MON:DD:HH24:MI:SS)を使用する必要があります。
たとえば、2001:JAN:01:06:00:00は受入可能な日付値です。
注意: この書式モデルは、空白文字が含まれる標準の書式モデルとはわずかに異なります。HTTP GETメソッドを介してWebサーバーに渡される変数値では、空白文字は問題となります。
文字列属性の静的使用では、ame_util.attributeValueTypeLengthの長さ(現在は100)のvarchar2に適応したテキスト値を使用できます(この定数が引き続き同じ値かどうかは、AMEインストールのソース・コードをチェックすることで確認できます)。テキスト値には、空白や通常の句読点を挿入できます。テキスト値では大/小文字が区別されます。
通貨属性の静的使用では、次の形式を指定する必要があります。
amount,code,type
codeには有効な通貨コードを、typeには有効な通貨換算タイプを指定します。codeとtypeの値以外には空白文字を使用しないでください。amountの小数点には、(使用する場合は)カンマでなくピリオドを使用してください。たとえば、「5000.00,USD,Corporate」は有効な通貨値です。
静的使用はNULLにできます。NULLの静的使用を作成するには、属性の作成ページ、属性の編集ページまたは必須属性の問合せ入力ページの「使用」フィールドを空のままにします。
動的属性使用では、所定のトランザクション・タイプの属性にSQL問合せを指定します。この問合せは特定の構文規則に従う必要があります。AMEでは、実行時にこの問合せを実行して属性値が決定されます。動的使用は、「静的属性使用」で説明した2つのブール属性以外のすべての属性で一般的に使用されます。
動的使用は最大4000バイトまで指定できます。セミコロンでの終了は許可されません。動的使用では、バインド変数(:transactionId)を使用してトランザクションIDを参照できます。ヘッダー・レベル属性の動的使用では、トランザクションごとに1行を戻す必要があります。下位レベルの項目区分に属する属性を対象とした動的使用では、所定のトランザクションについて、その項目区分内の項目ごとに1行を戻す必要があります。行は、動的使用で戻されたi番目の行が、属性の項目区分に対するトランザクション・タイプの項目区分使用で戻されたi番目の項目IDの値となるように順序付けられる必要があります。これは通常、動的使用には、項目IDが格納されている列を参照するorder by句が含まれていることを意味します。次に例を示します。
select item_quantity
from some_application_table
where transaction_id = :transaction_id
order by line_item_id
この問合せは、ITEM_QUANTITYという明細項目レベルの属性に対する動的使用です。
動的使用の問合せに関する構文規則
問合せは、varchar2(2000)の列ame_attribute_usages.query_stringに適応している必要があります。長い問合せの場合は、問合せの長さをアプリケーション・インスタンスの現行の表定義と比較できます。
注意: 長さの制約は、データベースでコンパイルするファンクションに問合せをカプセル化し、そのファンクションの値を問合せのdualから選択することで回避できます。
通貨以外のすべてのデータ型の問合せでは、1つの列を選択する必要があります。通貨データ型の問合せでは3つの列を選択する必要があります。
選択した各列は、ame_util.attributeValueTypeLengthの長さ(現在は100)のvarchar2に適応した値に変換する必要があります(この定数が引き続き同じ値かどうかは、AMEインストールのソース・コードをチェックすることで確認できます)。
ブール属性の問合せでは、使用可能な2つの値(ame_util.booleanAttributeTrueとame_util.booleanAttributeFalse)のいずれかを選択する必要があります。
日付属性の問合せでは、ame_util.versionDateToStringファンクションを使用して日付値をvarchar2に変換する必要があります。これによって、AMEによるame_util.versionDateFormatModelを使用した日付値の格納が保証されます。AMEでは、属性の動的使用で、この書式モデルを使用して属性の日付値が変換されている場合のみ、日付属性に定義されている条件が正しく評価されます。これは、AMEでは、日付をvarchar2として格納し、格納した値を同じ書式モデルを使用して日付に変換することが試行されるためです。次に、日付属性に対する正しい動的使用の例を示します。
Select ame_util.versionDateToString(sysdate) from dual
数値属性と通貨属性の問合せでは、次のファンクションを使用してvarchar2に変換した数値または通貨金額を選択する必要があります。
fnd_number.number_to_canonical
ヘッダー・レベルの属性の問合せには、トランザクションIDプレースホルダame_util.transactionIdPlaceholder(値は:transactionId)を指定できます(指定は必須ではありません)。このトランザクションIDプレースホルダは真の動的PL/SQLバインド変数です。つまり、実行時には、トランザクションID値がこの変数にバインドされた後で、問合せが動的に実行されます。このバインド変数を参照するwhere句の条件は、次の形式であることが必要です。
transaction ID = :transactionId
このtransaction IDは、トランザクション・タイプが問合せを使用するアプリケーションによって実行時にAMEに渡されたトランザクションIDが格納されている列です。
下位レベルの項目区分に属している属性の問合せでは、所定トランザクションの項目区分内の項目ごとに1行を戻す必要があります。たとえば、OIE経費の場合、項目区分の明細項目IDの問合せ文字列は、次のようになります。
select
distribution_line_number from ap_expense_report_lines_all
where report_header_id = :transactionId
order by distribution_line_number
したがって、対応する明細レベルの属性は、明細項目IDの番号と順序について、この問合せ文字列と一致する必要があります。たとえば、属性LINE_COST_CENTREの場合、SQLは次のようになります。
select
flex_concatenated from ap_expense_report_lines_all
where report_header_id = :transactionId
and distribution_line_number in
(select distribution_line_number
from ap_expense_report_lines_all
where report_header_id = :transactionId )
order by distribution_line_number
動的な必要属性の問合せでは、トランザクションの各下位項目ごとに異なる最初の承認者を生成できます。「属性の分類」の必要属性に関する項を参照してください。
この機能を有効にするには、トランザクションIDに加え、項目区分と項目IDのバインド変数を動的問合せに指定する必要があります。次に、問合せの例を示します。
select
person_id from invoice_table
where transaction_id = :transactionId
and item_class = :itemClass
and item_id = :itemId
例
Attribute1: select column1 from table1
where column2 = :transactionId
Attribute2: select column3 from table2
where column4 = :Attribute1
動的属性使用では他の属性の値を参照できません。前述の例を実装する場合、2番目の属性の動的使用は次のようになります。
select column3 from table2 where column4 =
(select column1 from table1 where column2 = :transactionId)
AMEでは、次の2つの理由で動的使用内での属性値の参照が許可されません。
トランザクション・タイプの有効な属性(そのタイプのトランザクションに適用するルールを判断するためにエンジンまたはルール、あるいはその両方にとって必要な値が設定されている属性)が、常に固定の順序でフェッチされるようにAMEで保証することは、現実的ではありません。結果として、attribute2の値のフェッチを試行する前に、Attribute1の値がフェッチされない可能性があります。属性のフェッチ順が保証されていた場合でも、全面的な問題解決にはならず、順序の上で依存している属性の後に続く属性についての問題が解決されるのみです。
複数の属性間でこの種の依存性を許可すると、循環が発生する可能性があります。Attribute1がAttribute2に依存し、Attribute2がAttribute3に依存し、このAttribute3がAttribute1に順に依存する可能性があります。これらの属性の値を解決する論理的な方法はありません。
属性の分類は、属性が必須属性、必要属性、有効属性のいずれか、またはビジネス変数を表す属性かを示します。
必須属性は、AME実行時動作の様々な局面を決定します。必須属性は、すべてのトランザクション・タイプで使用する必要があります。必須属性は、アプリケーションの「属性」タブを選択したときに表示される属性リストの上部に表示されます。AMEには、次の必須属性が事前に定義されています。
ALLOW_DELETING_RULE_GENERATED_APPROVERS
このブール属性は、AMEでは、統合アプリケーションを使用して、トランザクションの承認者リストから、トランザクション・タイプのルールに必要な承認者を削除できるかどうかを決定します。
ALLOW_REQUESTOR_APPROVAL
このブール属性は、AMEでは、依頼元に十分な署名権限がある場合、その依頼元が各自のトランザクションを承認できるかどうかを決定します。この属性がtrueで、依頼元に十分な権限がある場合、関連する処理タイプでは、その依頼元を権限チェーンでの唯一の承認者とし、初期承認ステータスame_util.approvedStatus(承認済)を割り当てます。この属性がfalseの場合、関連する処理タイプでは、依頼元を権限チェーンに組み入れません。かわりに、その依頼元の上司の少なくとも1人を権限チェーンに組み入れます。
以前のバージョンのAMEでは、AMEエンジンが属性ALLOW_REQUESTOR_APPROVALを評価していたため、この属性が必須であることは適切でした。現行バージョンのAMEでは、かわりに次の処理タイプが必要です。
絶対役職レベル
最終承認者のみ
マネージャ、次に最終承認者
HR職階
HR職階レベル
管理レベル
ALLOW_REQUESTOR_APPROVALは、多くの場合、必須属性セットから除外され、前述の処理タイプ(およびこの属性が必要な他の処理タイプ)に対する必要属性として処理されます。
AT_LEAST_ONE_RULE_MUST_APPLY
このブール属性は、実行時にトランザクションに適用するルールがない場合、AMEで例外を発生させるかどうかを決定します。
REJECTION_RESPONSE
この文字列属性は、承認者が項目を否認した場合のAMEでの応答方法を決定します。この属性に許可されている3つの値は、次のとおりです。
ame_util.continueAllOtherItemsの現在の値はCONTINUE_ALL_OTHER_ITEMSです。この値をREJECTION_RESPONSEに指定すると、AMEでは、否認された項目を除くすべての項目の承認プロセスが続行されます。
ame_util.continueOtherSubItemsの現在の値はCONTINUE_OTHER_SUBORDINATE_ITEMSです。この値をREJECTION_RESPONSEに指定すると、AMEでは、否認された項目を除くすべての下位レベル項目の承認プロセスは続行されますが、ヘッダー項目と否認された項目の承認プロセスは停止します。
ame_util.stopAllItemsの現在の値はSTOP_ALL_ITEMSです。この値をREJECTION_RESPONSEに指定すると、AMEでは、ヘッダーも含めて、トランザクションのすべての項目の承認プロセスが停止します。
注意: 静的使用では実際の値を使用し、動的使用で実行するコードではame_util定数を使用してください。
USE_RESTRICTIVE_ITEM_EVALUATION
このブール属性は、AMEでは、適用する所定のルールについて、単一の下位レベル項目が、その下位項目区分に属している属性のすべての条件を満たす必要があるかどうかを示します。この属性がtrueのときに、下位項目区分のトランザクション項目の1つが、その項目区分の属性に対するルールの条件をすべて満たしている場合は、その項目区分の属性の条件が含まれているルールのみが適用されます。この属性がfalseの場合は、異なる項目によって、下位項目区分の属性の異なる条件を満たすことができます。
たとえば、次のルールを考えてみます。
If
LINE_ITEM_CATEGORY in {office furniture, office supplies}
and LINE_ITEM_TOTAL < 1,000 USD
then
require approvals up to the first three superiors,at most
次の表に示すように、トランザクションには2つの明細項目と属性値があると想定します。
明細項目ID | 属性 | 属性値 |
1 | LINE_ITEM_CATEGORY | オフィス家具 |
1 | LINE_ITEM_TOTAL | 1,100 USD |
2 | LINE_ITEM_CATEGORY | 旅行 |
2 | LINE_ITEM_TOTAL | 900 USD |
USE_RESTRICTIVE_ITEM_EVALUATIONがfalseの場合は、明細項目1が第1の条件を満たし、明細項目2が第2の条件を満たしているため、ルールが適用されます。この属性がtrueの場合は、どちらの明細項目も両方の条件を満たしていないため、ルールは適用されません。
EFFECTIVE_RULE_DATE
AMEでトランザクションの処理が開始されると、この日付によって、所定のトランザクションに対する有効なルールが判断されます。AMEでは、有効な各ルールの条件を評価して、そのルールを実際にトランザクションに適用するかどうかを確認します。
ほとんどのトランザクション・タイプの場合、システム日付(sysdate)は適切なEFFECTIVE_RULE_DATE値です。この値を使用するには、EFFECTIVE_RULE_DATEに、NULL(値なし)の静的使用を指定します。実行時には、この方法がdualからシステム日付を選択する動的使用を指定する方法よりも効率的です。
EVALUATE_PRIORITIES_PER_ITEM
このブール属性は、適用可能なルールの使用優先順位を、項目ごとに評価するかどうかを決定します。項目ごとの評価は、相対的なルール優先順位モードに関連します。この属性がtrueの場合、AMEでは、各項目に適用するルールの使用優先順位をグループとして評価します。falseの場合は、トランザクションにまとめて適用するすべてのルールの使用優先順位を評価します。
USE_WORKFLOW
このブール属性は、トランザクション・タイプの例外をワークフローの例外スタックに記録するかどうかを示します。通常、この属性には静的使用を指定する必要があります。
WORKFLOW_ITEM_KEY
この文字列属性は、統合アプリケーションのワークフローにおけるトランザクションの項目キーを示します。通常、この項目キーはAMEトランザクションIDでもあり、この場合、この属性の動的使用では、dualから:transactionIdを選択できます。AMEでは、例外をワークフローの例外スタックに記録する際に、この属性の値が使用されます。統合アプリケーションでOracle Workflowが使用されていない場合(USE_WORKFLOWがfalseの場合)、この属性にはNULL(値なし)の静的使用を指定する必要があります。
WORKFLOW_ITEM_TYPE
この属性は、統合アプリケーションのワークフローの項目タイプを示します。この属性の値は、例外をワークフローの例外スタックに記録する際に使用されます。統合アプリケーションでOracle Workflowが使用されない場合、この属性にはNULL(値なし)の静的使用を指定する必要があります。
REPEAT_SUBSTITUTION
これは、下位互換性を確保するためのブール属性で、デフォルト値はfalseに設定されています。AMEでは、処理サイクルの最後で2度目に代替ルールを処理する際に、この属性が使用されます。これは、アドホック挿入と代理承認者に対して代替ルールを適用するために実行されます。この属性の値は任意のトランザクションに対して動的に設定または再設定できます。たとえば、ある一連のトランザクションに対してのみ、代替ルールを再度実行する場合は、この属性値を動的にtrueまたはfalseに設定できます。
処理タイプは、処理タイプの実行時動作の様々な局面を管理するために、1つ以上の属性の値に依存する場合があります。このような属性が処理タイプの必要属性です。必要属性には、所定のトランザクション・タイプでの使用を指定する必要があります。これによって、トランザクション・タイプで処理タイプを使用できるようになります。
AMEには、次の必要属性が事前定義されています。これらの使用の全般的な説明は、「処理タイプの必要属性」および「ルール」を参照してください。
ALLOW_EMPTY_APPROVAL_GROUPS
この属性がfalseのときに、承認者グループにメンバーがいない場合は、実行時に例外が発生します。通常、この例外は、承認者グループが動的に生成され、そのグループを移入するSQLでメンバーがフェッチされなかった場合に発生します。詳細は、「承認者グループ」を参照してください。
FIRST_STARTING_POINT_PERSON_ID
およびSECOND_STARTING_POINT_PERSON_ID
これらの属性の値は、「権限デュアル・チェーン」処理タイプで生成された各権限チェーンの最初の承認者を識別します。
INCLUDE_ALL_JOB_LEVEL_APPROVERS
この属性は、役職レベルに依存する処理タイプの権限チェーンを作成するときに、同じ役職レベルのすべての承認者をチェーンに含める必要があるかどうかを決定します。詳細は、「処理タイプの必要属性」を参照してください。
JOB_LEVEL_NON_DEFAULT_STARTING_POINT_PERSON_ID
この属性がNULL以外の場合は、この属性で識別した承認者が、役職レベルに依存する処理タイプの開始ポイントとして使用されます。この属性の値は、TRANSACTION_REQUESTOR_PERSON_IDの設定内容よりも優先されます。
NON_DEFAULT_POSITION_STRUCTURE_ID
職階レベル処理タイプのハンドラは、この属性を使用して階層を下から上に進みます。この属性の値がNULLの場合、上位職階の検索には、現行のビジネス・グループのプライマリ職階体系が使用されます。NULL以外の場合は、指定の職階体系が使用されます。
NON_DEFAULT_STARTING_POINT_POSITION_ID
この属性がNULL以外の場合は、この属性で識別した職階が、職階レベル処理タイプの開始ポイントとして使用されます。この属性の値は、TRANSACTION_REQUESTOR_POSITION_IDの設定内容よりも優先されます。
SUPERVISORY _NON_DEFAULT_STARTING_POINT_PERSON_ID
この属性がNULL以外の場合は、この属性で識別した承認者が、管理レベルに依存する処理タイプの開始ポイントとして使用されます。この属性の値は、TRANSACTION_REQUESTOR_PERSON_IDの設定内容よりも優先されます。
TOP_POSITION_ID
この属性は、次のTOP_SUPERVISOR_PERSON_IDの説明と同様に、職階体系の最上位を表します。
TOP_SUPERVISOR_PERSON_ID
この属性は、階層の最上位に位置する従業員(通常は企業のCEO)の個人IDに割り当てる必要があります。この属性は、管理者階層を上に進む処理タイプで使用され、AMEが階層設定内のギャップとは対照的に、階層の最上位に達したかどうかを判断するために必要です。
TRANSACTION_REQUESTOR_PERSON_ID
この属性は、トランザクションを要求している個人のIDに割り当てる必要があります。定義されている一部の処理タイプでは、階層を横断する開始ポイントとして、この属性が使用されます。
TRANSACTION_REQUESTOR_POSITION_ID
この属性は、トランザクションの依頼元の職階IDを指定します。
さらに、次の必要属性の値を使用すると、トランザクション内の各下位項目に対して異なる最初の承認者を識別できます。
FIRST_STARTING_POINT_PERSON_ID
SECOND_STARTING_POINT_PERSON_ID
JOB_LEVEL_NON_DEFAULT_STARTING_POINT_PERSON_ID
NON_DEFAULT_POSITION_STRUCTURE_ID
NON_DEFAULT_STARTING_POINT_POSITION_ID
SUPERVISORY_NON_DEFAULT_STARTING_POINT_PERSON_ID
注意: この機能を有効にするには、これらの属性の動的問合せに、トランザクションIDに加え、項目区分と項目IDのバインド変数を指定する必要があります。動的使用の問合せの構文規則は、「属性の使用」を参照してください。
必要属性ではない非必須属性は、承認ルールで使用するビジネス変数を表します。AMEでは、条件に出現する属性がこれに該当します(条件には必要属性も使用できますが、ほとんど使用されません。必須属性は条件には使用できません)。
ルールに対して属性が有効なのは、その属性に対して1つ以上のルールの条件が定義されている場合、またはルールの処理のいずれかの処理タイプにその属性が必要な場合です。属性がトランザクション・タイプに対して有効(または単に有効)なのは、トランザクション・タイプの少なくとも1つのルールに対して、その属性が必須または有効である場合です。AMEが実行時にフェッチするのは、有効な属性の値のみです。「テスト・ワークベンチ」タブには、無効な属性も含めて、すべての属性がリストされます。
AMEでは、実行時にトランザクションの承認者リストの計画を開始する際、次の処理を実行します。
トランザクション・タイプに対して有効な各属性の値をフェッチします。
そのために、属性に割り当てられている定数値をフェッチするか、属性の問合せをフェッチして実行します。動的使用の属性がヘッダー・レベルの属性の場合、AMEでは、トランザクション全体に対して問合せを1回実行します。属性が明細項目レベルの属性の場合は、トランザクションの各明細項目に対して問合せをそれぞれ1回実行します。
有効な属性の値すべてをフェッチした後は、トランザクション・タイプの各ルールがトランザクションに適用されているかどうかをチェックします。
これは、ルールの各条件がtrueかどうかを判断することでチェックされます。ヘッダー・レベルの属性に定義されている条件がtrueと判断されるのは、属性の値が、その条件で定義される値のリストまたは範囲内にある場合です。明細項目レベルの属性に定義されている条件がtrueと判断されるのは、いずれか1つの明細項目の属性の値が、その条件で定義される値のリストまたは範囲内にある場合です。
理想的な場合、AMEのトランザクション・タイプには、組織に必要な属性名と属性使用が事前に定義されています。ただし、ビジネス要件を満たすために、属性とその使用を追加したり、事前定義の使用を変更することができます。
注意: 事前定義の属性やその使用を変更する必要がない場合でも、それらの内容がビジネス要件を満たしていることを確認する必要があります。
次の各ステップでは、作成または編集する必要がある属性とその使用を判断する一般的な手順のほか、必要に応じてそれらを追加または編集し、結果をテストする方法を示しています。
統合アプリケーションのマニュアルを参照して、事前定義されている各属性の目的と意義を確認します。
事前定義属性の使用を、トランザクション・タイプのインプリメンテーション・マニュアルに指定されている使用と比較します。「AMEでのビジネス・ケースの表現」の必須属性に関する項を参照してください。
要件を満たしていない属性使用を編集します。
実装に必要だが、事前に定義されていない属性名と属性使用を作成します。
「テスト・ワークベンチ」タブを使用して、定義されているテスト・ケースの属性値とその予定値を比較します。
アプリケーション・アカウントを使用して、テスト・ケースに対するSQL*Plusコマンドラインから動的属性使用を実行し、「テスト・ワークベンチ」タブの属性値とSQL*Plusの属性値が同じであることを検証します。
属性は、「属性」タブを使用して表示できます。
トランザクション・タイプに含まれている属性は、「属性」ページを使用して表示できます。また、このページでは、新規属性を作成したり、既存の属性を再利用して、Oracle Approvals Managementでビジネス・ファクトをトランザクションからフェッチする方法を定義できます。
トランザクション・タイプの属性のリストを表示する手順は、次のとおりです。
ビジネス・ダッシュボードおよび「属性」ページを使用します。
ビジネス・ダッシュボードにある「承認プロセス設定」で、必要なトランザクション・タイプを選択します。
「属性」リンクをクリックします。
「属性」ページがオープンし、属性リストが表示されます。
属性を作成する手順は、次のとおりです。
属性の作成ページを使用します。
「属性」ページの「作成」をクリックして、属性の作成ページをオープンします。
属性名を入力します。
属性を参照するルールを1つ以上作成し、それらのルールを複数のトランザクション・タイプで共有することを予定している場合は、最初のトランザクション・タイプについて属性名を作成し、残りのトランザクション・タイプについては、共有可能な属性名のリストからその属性名を選択します。トランザクション・タイプごとに、属性名に対して個別の使用を入力する必要があります。
すべての属性名は、作成した属性名も含めて、共有できます。したがって、作成者の意図が属性名の汎用性レベルに反映されていることを確認してください。たとえば、Web経費トランザクション・タイプ固有の属性を作成する場合は、WEB_EXPENSES_という接頭辞で始まる属性名を指定できます。
注意: 小文字または大/小文字の組合せで入力した属性名は、作業内容を保存する際にすべて大文字に変換されます。
トランザクション・タイプに有効な明細項目属性がある場合は、属性のレベル(ヘッダーまたは明細項目)を選択します。
属性タイプを選択します。金額を反映する属性には通貨タイプを使用してください。
必要に応じて、数値データ型の承認者タイプを選択します。
値セットを選択します。
注意: 値セットには、ビジネス固有のデータが含まれています。この値セットは、数値、文字列または通貨データ型を選択すると有効になります。
属性使用を選択します。動的使用を選択した場合は、SQL問合せを入力します。次に「検証」をクリックして問合せが正しいことを確認します。
必要に応じて「別の作成」をクリックし、別の属性を作成します。
「適用」をクリックして、属性をトランザクション・タイプに追加します。
新しい属性が属性リストの適切なセクションに表示されます。
属性を編集する手順は、次のとおりです。
「属性の更新」ページを使用します。
「属性」ページに属性のリストを表示します。
編集する属性の「更新」アイコンをクリックします。
「属性の更新」ページで属性を変更します。
「適用」をクリックして属性を更新します。
属性の摘要を変更すると、変更内容がすべてのトランザクション・タイプに適用されます。属性使用への変更は、変更しているトランザクション・タイプにのみ適用されます。
事前定義属性の名称、タイプまたは摘要は変更できません。かわりに、希望する名称、タイプおよび摘要を使用して新しい属性を作成する必要があります。事前定義属性の使用は、場合によっては作成または編集できます。属性の使用および値セットは変更できます。使用タイプを静的から動的に変更する場合は、それに応じて使用値を変更する必要があります。
注意: 動的な必要属性の問合せでは、その問合せに、トランザクションIDに加え、項目区分と項目IDのバインド変数が含まれている場合、トランザクションの各下位項目に対して異なる最初の承認者を生成できます。「属性の分類」の必要属性に関する項を参照してください。
属性を削除する手順は、次のとおりです。
「属性」ページを使用します。
属性のリストを表示します。
削除する属性の「削除」アイコンをクリックします。
プロンプトに従って削除を確認します。
注意: 事前定義の属性は削除できません。属性に基づいた条件(現行または将来のルールで使用)がある場合、その属性は削除できません。また、他のトランザクション・タイプと共有していない属性を削除すると、この属性に関連付けられているすべての条件が削除されます。
既存の属性をトランザクション・タイプにコピーする手順は、次のとおりです。
「既存属性の使用」ページを使用します。
「属性」ページの「既存属性の使用」をクリックして、「既存属性の使用」ページをオープンします。
属性を選択して「続行」をクリックし、既存の属性をトランザクション・タイプにコピーします。
属性の使用を変更します。
注意: 動的な必要属性の問合せでは、その問合せに、トランザクションIDに加え、項目区分と項目IDのバインド変数が含まれている場合、トランザクションの各下位項目に対して異なる最初の承認者を生成できます。「属性の分類」の必要属性に関する項を参照してください。
「終了」をクリックして、選択した既存の属性をトランザクション・タイプで使用します。