機械翻訳について

拡張機能を使用したメッセージの管理のガイドライン

拡張機能を使用してメッセージを定義します。

メッセージの設定

メッセージを定義するコード

ノート

  1. messageType. messageTypeをWARNINGまたはERRORとして定義します。 オーダー管理作業領域では、タイプごとに異なるアイコンが使用されます。

  2. 参照 設定およびメンテナンス作業領域の「オーダー参照の管理」ページを使用してメッセージを分類し、コードからメッセージを参照します。

    事前定義済参照を使用するか、独自の参照を作成します。 カテゴリ化は、オーダー入力スペシャリストがメッセージを検索し、アナリティク・チャートで表示するのに役立ちます。

    エラーがエラー・タイプ属性で作業領域オーダー管理に表示されるため、エラーを使用して検索および表示を改善します。

    この例では、内容を顧客関係不一致として定義するとします。

  3. 「ヘッダーまたは明細」. エラーの発生場所を指定します。 次の値のいずれかを使用します。

    • 「ヘッダー」. オーダー・ヘッダーで発生するエラーにメッセージを適用します。

    • 「メロディ」. オーダー明細で発生するエラーにメッセージを適用します。

      画面印刷の例では、lineを使用します。 この例には、lineを変数として定義し、これを使用して販売オーダー内のすべての明細を反復処理し、エラーが発生したオーダー明細番号(3行目など)を保存するthrow new ValidationExceptionの上のコード(簡潔にするために表示されない)が含まれています。 実行時に、オーダー管理では、オーダー入力スペシャリストがメッセージ詳細を確認するためにクリックできるアイコンが3行目に表示されます。

  4. メッセージの管理 設定およびメンテナンス作業領域の「メッセージの管理」ページを使用します。

    • メッセージを参照すると、メッセージをハード・コーディングすることよりも利点があります。

    • 別の拡張機能からメッセージを参照し、拡張機能とは無関係にメッセージを管理し、メッセージを英語以外の言語に翻訳します。

    • 「メッセージの管理」ページを使用すると、メッセージ管理を簡略化できます。他の開発者や管理者は、拡張機能のhard codedメッセージを変更するかわりに「メッセージの管理」を使用できるため、Groovyでの書込みに関する知識が必要です。

    • 開発中の拡張機能のトラブルシューティングに役立つメッセージを定義することもできます。 様々なオブジェクトの状態を表示するメッセージに詳細を含めると、問題領域を特定しやすくなります。 拡張機能を本番環境にデプロイする準備ができたら、メッセージを削除します。

  5. トークンを変数コンテンツのプレースホルダーとして使用します。

オーダー入力スペシャリストは、エラー・タイプまたはメッセージ・タイプに従って、オーダー管理作業領域でデータを表示および検索できます。 この例では、Overview(概要)ページにCustomer Relationship Mismatch(顧客関係不一致)がDraft Orders in Error(エラーの下書きオーダー)ダイアグラムのラベルとして表示されています。

エラー・タイプまたはメッセージ・タイプに応じた作業領域オーダー管理のデータ

オーダー入力スペシャリストは処理を実行できます。

  • 円のオレンジ色の部分をクリックして、不一致のためにエラーが発生した販売オーダーにドリルします。

  • 「顧客関係不一致」の「オーダーの管理」ページで「エラー・タイプ」属性を検索します。

エラー・メッセージの累計および表示

メッセージを累計し、オーダー管理作業領域に一度にまとめて表示します。

たとえば、エラー状態をチェックする3行を含む拡張子x、y、zを記述するとします。 実行時に、x、yおよびzがすべてエラー条件を満たしていると仮定します。ただし、xが検出されると、拡張子はただちに停止し、エラーxのメッセージが表示されます。

かわりに、yおよびzを経由して実行し続けるように拡張を記述し、各メッセージを一時リストに保存し、x、yおよびzのメッセージを1つのダイアログにまとめて表示します。 この手法により、オーダー・エントリ・スペシャリストは、すべてのエラーをまとめて確認し、それらを修正してから、xの修正、発行、修正、発行、修正および発行ではなく、販売オーダーを再発行できます。

たとえば:

メッセージを蓄積するコード

販売実績の収益率が30%未満の場合、拡張によってメッセージが作成され、ローカル・リストに格納されます。 拡張はすべての販売実績を処理します。 販売実績の処理が終了した後にローカル・リストにメッセージが含まれている場合は、オーダー管理作業領域のダイアログに拡張に表示されます。

この例で各販売実績を確認するために使用するコードを次に示します。

コード

摘要

import oracle.apps.scm.doo.common.extensions.ValidationException;

ValidationExceptionメソッドをインポートして、コードで使用できるようにします。

import oracle.apps.scm.doo.common.extensions.Message;

Messageメソッドをインポートして、コードで使用できるようにします。

def salesCredits = header.getAttribute("SalesCredits");

salesCreditsというローカル変数を定義し、getAttributeメソッドを使用してオーダー・ヘッダーからSalesCredits属性の値を取得し、この変数の値をgetAttributeが返す値に設定します。

getAttrbute("SalesCredits")は、販売実績行へのアクセスに使用できるイテレータを返します。 たとえば、コードはこのトピックの後半でsalesCreditsを参照して、SalesCreditTypeCode、パーセントおよび営業担当を取得します。

List<Message> msgs = new ArrayList<Message>();

このコードを使用します。

  • List<Message> msgs. msgsというローカル変数をリスト・タイプとして定義します。 この手法は、ValidationExceptionが一度にすべてのメッセージを作成できるように、複数のメッセージをリストに追加する場合に使用します。

    通常、この手法は、複数の条件を含む長い拡張で使用します。 拡張コードは最初のメッセージを表示すると停止するため、ValidationExceptionを使用してすべての検証を実行できるようにしてから、すべてのエラーを含むダイアログを表示できます。

  • new ArrayList<Message>(). リスト・フォーマットを使用する配列を定義します。 この配列を使用して、whileループが作成するメッセージを格納します。

whileループ

すべての販売実績の処理が終了するまで、各販売実績を繰り返します。

各販売実績の属性SalesCreditTypeCode、パーセントおよび営業担当を確認します。

def percent = salesCredit.getAttribute("Percent")

percentというローカル変数を定義し、メソッドgetAttributeを使用してローカル変数salesCreditから属性Percentの値を取得し、この変数をgetAttributeが返す値に設定します。

if ( percent < 30 )

条件がTrueの場合は、メッセージを作成し、ローカルのmsgsリストに追加します。 拡張機能がすべての販売実績の処理を終了するまで、メッセージはmsgsリストに累積されます。

def tokens

これらのトークンを定義します。

  • SALESPERSON。def tokensは、このトークンの値を、ローカル変数salesCreditの属性Salespersonに対してメソッドgetAttributeが取得する値に設定します。

  • PERCENT。def tokensは、このトークンの値を、whileループで定義される変数percentの値に設定します。

Message msg = new Message

msgというローカル変数を定義し、それをローカル配列Messageに追加します。msgは、コードがリスト・オブジェクトmsgsに追加する各メッセージを格納します。

(Message.MessageType.ERROR, "SALES_CREDIT_TOO_LOW_MSG", tokens);

このコードを使用します。

  • Message.メッセージを定義するには、メソッドMessageを使用します。

  • MessageType.ERROR. メッセージ・タイプをERRORに設定します。

  • SALES_CREDIT_TOO_LOW_MSG. メッセージの管理ページからメッセージSALES_CREDIT_TOO_LOW_MSGからメッセージ・テキストの詳細を取得し、このテキストをローカル変数msgに追加します。

  • tokens. ローカル変数トークンの値を取得し、メッセージ・テキストSALES_CREDIT_TOO_LOW_MSGの直後にローカル変数msgに追加します。

msgs.add(msg);

単一のメッセージを含むローカル変数msgの内容を、このシナリオでコードが作成するすべてのメッセージを含む配列であるローカル・リスト変数msgsに追加します。

if( !msgs.isEmpty() ) {
throw new ValidationException(msgs);
}

ローカル・リストmsgsが空でない場合は、メソッドValidationExceptionを実行します。 ローカル・リストmsgsに含まれるすべてのメッセージを表示します。

whileループがすべての販売実績の処理を終了した後に、このチェックを実行します。

コメントのない完全なコードを次に示します。

import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;
def salesCredits = header.getAttribute("SalesCredits");
List<Message> msgs = new ArrayList<Message>();
while( salesCredits.hasNext() ) {
 def salesCredit = salesCredits.next();
  if( "1".equals(salesCredit.getAttribute("SalesCreditTypeCode")) ) {
   def percent = salesCredit.getAttribute("Percent");
    if ( percent < 30 ) {
def tokens = [SALESPERSON: salesCredit.getAttribute("Salesperson"), PERCENT: percent];
Message msg = new Message(Message.MessageType.ERROR, "SALES_CREDIT_TOO_LOW_MSG", tokens);
msgs.add(msg);
  }
 }
}
if( !msgs.isEmpty() ) {
 throw new ValidationException(msgs);
}

オーダー・インポート動作の考慮

インポートの動作は、拡張によって警告メッセージまたはエラー・メッセージが作成されるかどうかによって異なります。

動作の違いは、拡張によって警告メッセージまたはエラー・メッセージが作成されるかどうかによって異なります

ノート

  • 「オーダー管理作業領域に入力された販売オーダー」. 作業領域の警告ダイアログ・オーダー管理では、オーダー入力スペシャリストが警告を確認してから、販売オーダーを送信するか、取り消すことができます。

  • 「ソース・システムからインポートされたソース・オーダー」. エラーが発生した場合のみ、オーダー処理は停止します。 警告のみが発生した場合はメッセージを表示できますが、インポートによって販売オーダーがオーダー履行に送信されます。 ユーザーの介入は許可されません。