契約の重要な条件の分類
ビジネス固有のルールに基づいて、契約キー条件を分類または分類できます。 分類では、注意が必要な主要な用語を簡単にプレビューできます。 契約におけるリスクを強調し、標準ではない条件に注意を払い、契約における有利な条件および有利でない条件の概要を示します。
- 5を超える場合、分類は良好です
- 3から5の間では、中立として分類される場合があります
- 5未満の場合、分類は不良である可能性があります。
主要な条件は、契約文書から抽出された後に分類できます。 重要な用語を分類すると、利害関係者が情報に基づいたディシジョンを行うことができるように、契約から迅速なインサイトを得ることができます。
契約キー条件の分類機能の有効化
- にナビゲートします。
- 「企業契約」オファリングをクリックします。
- 「オプトイン」をクリックします。
- 「機能」 (鉛筆アイコン)をクリックし、次のように
Extract Key Terms from Contract Documents Using Generative AI
親機能に移動します: - 親を展開して
Classify Contract Key Terms
子機能を表示し、「有効化」列のチェック・ボックスを選択します。ノート: 親オプト・インを有効にしないと、子オプト・インを有効にできません。 - 「完了しました」をクリックして変更を保存し、「オファリング」ページに戻ります。
詳細は、Oracle Help Center (docs.oracle.com)のOracle Applications Cloud - Functional Setup Managerの使用ガイドの「新機能オプトイン」セクションを参照してください。
主要な用語を分類するためのセキュリティおよび権限
- キー用語値の編集(OKC_EDIT_KEY_TERM_VALUES_PRIV)
- 営業での生成AI機能の使用(ZCA_USE_GENAI_IN_SALES_PRIV)
- 契約の編集(OKC_EDIT_CONTRACT_PRIV)
分類コード参照
分類コードはユーザー定義であり、「主要条件分類コード」参照で追加できます。 ユーザー定義参照「主要条件分類メジャー」を使用して、時間、分、日数、パーセントなどのメジャーを入力します。 このフィールドは、出力タイプが「数値」の主要な用語でのみ使用できます。 たとえば、「更新期間」キー用語の場合、「更新値」は3、「メジャー」は年、「更新率」キー用語の場合、「更新値」は10、「メジャー」はパーセントです。
キー用語分類ルール
主要な用語を分類するためのGroovyスクリプトの構成は、スクリプトを開発およびテストするためのサンドボックスを使用してアプリケーション・コンポーザで実行されます。 サンドボックスを作成する方法を次に示します:
- にナビゲートします。
- 「サンドボックスの作成」をクリックします。
- 名前を指定し、 を選択します。
- 「公開可能」フィールドで、「はい」を選択します。
- 「作成して入る」をクリックして入力します
- 「アプリケーション・コンポーザ」アイコンをクリックします。
名前 | 説明 |
---|---|
Rule 1 | If the key term Renewal Cap Percentage is more than 2, then the key term is classified as Non-standard , else classified as Standard |
Rule 2 | If the key term Price Hold value is Yes, then the key term is classified as Present, else classified as Absent |
ルール 3 | If the contract type is Sell : No lines and Renewal Period is < 3 years, it’s Non-standard, if it’s >= 3 years it’s Standard |
キー条件分類ルールをアクティブ化するフィールド・トリガーを作成する方法を次に示します。
- をクリックします。
- 「アプリケーション」フィールドで、「ERPおよびSCM Cloud」を選択します。
- 「オブジェクト」領域から、次のように を選択します:
- 「トリガー」タブの「フィールド・トリガー」リージョンで、「追加」をクリックして、次のように新しいフィールド・トリガーを作成します:
- Groovyスクリプトを検証し、「保存してクローズ」をクリックします。
Groovyスクリプトを検証したら、次のように契約の「キー用語値」タブから主要な条件を分類できます:
「分類」をクリックしてGroovyスクリプトをコールし、記述したルールに基づいて分類が発生し、「分類」フィールドに値が表示されます。 「更新値」フィールドに入力した値は、分類に使用できます。 LLMによって返されるレスポンスは、「抽出値」および「更新値」フィールドに移入されます。 レスポンスが分類の形式でない場合、「更新値」フィールドの値を変更し、その値を分類に使用できます。
キー用語分類ルールのサンプルGroovyスクリプト
ルールのサンプルGroovyスクリプトは、「キー用語分類ルール」の項で説明しています。
def typeName;
def count = 0;
def renewal;
def renewalCapVal;
def renewalCapPrcnt;
try{
//Below snippet will get Contract Type Name Using Id and MajorVersion of the
Contract def vo = newView('ContractVO')
def vc = newViewCriteria(vo)
def vcr = vc.createRow()
def vci1 = vcr.ensureCriteriaItem('Id')
vci1.setOperator('=')
vci1.setValue(DnzChrId)
def vci2 = vcr.ensureCriteriaItem('MajorVersion')
vci2.setOperator('=')
vci2.setValue(MajorVersion)
vc.insertRow(vcr)
vo.appendViewCriteria(vc)
vo.executeQuery()
def row = vo.first();
if(row != null)
{
typeName = row.getAttribute('ContractTypeName')
}
//Iterate through KeyTerms to classify key terms such as Renewal Cap Percentage,
//Based on the rules, user must populate ClassificationCode with appropriate Lookup Code
def contKeyTerms = contractKeyTerms
while(contKeyTerms.hasNext()){
def keyTermrow = contKeyTerms.next();
// Implementing Rule #1
if(keyTermrow.getAttribute('KeyTermName') == 'Renewal Cap Percentage'){
renewalCapPrcnt = keyTermrow.getAttribute('UpdatedValue')
if(renewalCapPrcnt > '2')
keyTermrow.setAttribute("ClassificationCode","OKC_CLASSIFY_NON_STD")
else
keyTermrow.setAttribute("ClassificationCode","OKC_CLASSIFY_STD")
}
// Implementing Rule #2
if(keyTermrow.getAttribute('KeyTermName') == 'Price Hold'){
if(keyTermrow.getAttribute('UpdatedValue') == 'Yes')
keyTermrow.setAttribute("ClassificationCode","OKC_CLASSIFY_PRESENT")
else
keyTermrow.setAttribute("ClassificationCode","OKC_CLASSIFY_ABSENT")
}
}
// Implementing Rule #3
//Re-Iterate through KeyTerms to Classify the Renewal Period
def contKeyTermsUpd = contractKeyTerms
while(contKeyTermsUpd.hasNext()){
def keyTermUpdrow = contKeyTermsUpd.next();
if(keyTermUpdrow.getAttribute('KeyTermName') == 'Renewal Periodâ){
if(typeName == "Sell : No lines"){
if(keyTermrow.getAttribute('UpdatedValue') < 3 != 'NONE'){
keyTermUpdrow.setAttribute("ClassificationCode","OKC_CLASSIFY_NON_STD")
}
if(keyTermrow.getAttribute('UpdatedValue') >= 3){
keyTermUpdrow.setAttribute("ClassificationCode","OKC_CLASSIFY_STD")
}
}
}
}
}
catch(Exception e){
def message = "There is an error in the implementation. Please contact Administrator";
adf.error.warn(message)
}