メッセージ処理終了の評価ルールの設定
メッセージ処理を終了するためのルールを実装する必要があります。
実行する必要がある手順を次に示します。
-
ルールを実装するメッセージのメッセージ定義(エクスポート変換パッケージ)のXSLファイルをダウンロードし、ステップ2で概説したシナリオの情報を使用してコードを追加します:
<xsl:choose> <xsl:when test="/[xpath to the field you want evaluated]= '<value>'"> <cmk:ProcessingConfiguration> <cmk:MessageValidationStatus><xsl:text>Skipped</xsl:text></cmk:MessageValidationStatus> <cmk:ValidationStatusDetail><xsl:text>Outbound Processing Rule Validation </xsl:text></cmk:ValidationStatusDetail> <cmk:ValidationStatusDescription><xsl:text>[Description]</xsl:text></cmk:ValidationStatusDescription> <cmk:LogMessage><xsl:text>false</xsl:text></cmk:LogMessage> </cmk:ProcessingConfiguration> </xsl:when> </xsl:choose>
-
次のように情報を挿入します:
-
[XPath to the field you want to evaluate]
: 評価をトリガーする値が含まれるように変更できるフィールドにXPathを追加します。 -
<Value>
: その評価の値を追加します。 -
MessageValidationStatus
を、メッセージ・ステータスとして設定する「スキップ済」または「エラー」に設定します。 -
アウトバウンド・メッセージまたはインバウンド・メッセージの評価機能を実装しているかどうかに応じて、
ValidationStatusDetail
を「アウトバウンド処理ルール検証」または「インバウンド処理ルール検証」に設定します。 -
ValidationStatusDescription
には、請求用に作成されたオーダーのみなど、そのメッセージのメッセージ処理を終了する理由を反映した説明を指定できます。 入力した値は、「コラボレーション・メッセージング履歴の管理」ページのログの「エラーの説明」に表示されます。 -
LogMessage値をFalseに設定するとメッセージがログに記録されず、Trueに設定するとメッセージがログに記録されます。
ノート: LogMessageは、追加の受信者のアウトバウンド・メッセージにのみ適用されますが、プライマリ受信者には適用されません。
-
XMLペイロードで渡された値がXPath評価と一致する場合、ステータス変数は「スキップ済」または「エラー」に設定され、それ以上のメッセージ処理は停止されます。 アウトバウンド・メッセージは(LogMessage値に応じて)配信を試行せずにログに記録され、インバウンド・メッセージはログに記録され、アプリケーションに配信されません。
事前定義済購買オーダー・メッセージのメッセージ処理終了を決定するルール
事前定義済メッセージ定義OAGIS_10.1_PROCESS_PO_OUTおよびOAGIS_10.1_PROCESS_PO_COLLAB_MSG_OUTに関連付けられたXSLファイルには、次に示すように、メッセージ処理の終了を評価するコードが含まれています。 このコードは、デフォルトではコメント・アウトされています。 ルールを実装するには、コードを有効にし、実装要件に基づいて評価されるXPathを更新します。
<xsl:choose>
<xsl:when test="/cmk:processOutboundCollaboration/cmk:OutboundCollaboration/tns:findOrderByPoHeaderIdResponse/tns:result/ns1:SupplierDFFAttribute1 = 'Skip'">
cmk:ProcessingConfiguration>
<cmk:MessageValidationStatus><xsl:text>Skipped</xsl:text></cmk:MessageValidationStatus>
<cmk:ValidationStatusDetail><xsl:text>Outbound Processing Rule Validation </xsl:text></cmk:ValidationStatusDetail>
<cmk:ValidationStatusDescription><xsl:text>Order created for billing only</xsl:text></cmk:ValidationStatusDescription>
</cmk:ProcessingConfiguration>
</xsl:when>
<xsl:when test="/cmk:processOutboundCollaboration/cmk:OutboundCollaboration/tns:getCmkInputPayloadResponse/tns:result/nsv2:PdfDraftPurchaseOrderHeaderVORow/nsv2:SupplierDFFAttribute1 = 'Skip'">
<cmk:ProcessingConfiguration>
<cmk:MessageValidationStatus><xsl:text>Skipped</xsl:text></cmk:MessageValidationStatus>
<cmk:ValidationStatusDetail><xsl:text>Outbound Processing Rule Validation </xsl:text></cmk:ValidationStatusDetail>
<cmk:ValidationStatusDescription><xsl:text>Order created for billing only</xsl:text></cmk:ValidationStatusDescription>
</cmk:ProcessingConfiguration>
</xsl:when>
ヘッダーSupplierDFFAttribute1
の値がSkip
の場合、アウトバウンドPOはスキップされます。
-
OrderByPOHeaderResponse
は、B2Bメッセージングに使用されるカスタムPOテンプレートがない場合(プロファイル・オプションPO_ELECTRONIC_COMM_DATA_MODEL
がNoに設定されている場合)に適用されます。 -
getCmkInputPayloadResponse
は、B2BメッセージングにカスタムPOテンプレートが使用されている場合に適用できます(プロファイル・オプションPO_ELECTRONIC_COMM_DATA_MODEL
がYesに設定されている場合)。