電子請求書の処理
Oracle Payablesでは、サプライヤから電子請求書を受信できます。Oracle Fusion Collaboration Messaging Framework (CMK)は、取引先との企業間(B2B)通信を設定するための最も簡単な方法を提供します。
CMKは、取引先とのB2Bメッセージングを設定するために2つのモデルをサポートしています。
-
サービス・プロバイダの使用: このモデルでは、サービス・プロバイダは取引先とOracle Fusion Applicationsのお客様の間の仲介として機能します。Oracle Business Network (OBN)は、CMKですぐに使用できるサービス・プロバイダです。取引先がOBNに加入すると、どのOracle Fusion Applicationsクライアントともメッセージを交換できるようになります。OBN以外でも、必要に応じて他のサービス・プロバイダも定義できます。
-
CMK Webサービスの使用: CMKには、OBNまたは他のサービス・プロバイダを使用せずにメッセージを交換するためのWebサービスが用意されています。これにより、サプライヤはCMKで直接連絡できます。
この図は、コラボレーション・メッセージング・フレームワークを使用したEメールによる請求書処理を示しています。

コラボレーション・メッセージング・フレームワークの構成方法
CMKを構成する方法は2つあります。
- サービス・プロバイダを使用して電子請求を設定できます。
- CMK Webサービスを使用して電子請求を直接設定できます。
サービス・プロバイダを使用した電子請求の設定
CMKには、すぐに使用できるサービス・プロバイダとしてOBNが含まれているため、非常に簡単な設定でネットワーク上の取引先と接続できます。他のサービス・プロバイダは「コラボレーション・メッセージング」作業領域で構成する必要があります。次の手順に従ってください:
-
「コラボレーション・メッセージング・サービス・プロバイダの管理」ページにナビゲートします。
-
新規サービス・プロバイダを作成します。
-
「送信方法」に、サービス・プロバイダが送信メッセージを受信する方法を指定できます。
-
「インバウンド・コラボレーション・メッセージ」タブを選択してサービス・プロバイダのXML請求書書式を構成します。CMKでサポートされる各XML書式は、個別のメッセージ定義として使用できます。たとえば、UBL書式のEN 16931請求書にはUBL_2.1_EN_16931_INVOICE_INを選択します。
-
「アウトバウンド・コラボレーション・メッセージ」タブでは、サービス・プロバイダが必要とするアウトバウンド・メッセージのリストを構成できます。
-
「保存してクローズ」をクリックします。
次に、次のステップを実行して、このサービス・プロバイダを使用する取引先を構成する必要があります:
-
B2Bの管理ページに移動します。
-
サービス・プロバイダを選択し、取引先識別を入力します。
-
「インバウンド・コラボレーション・メッセージ」タブを選択し、このサプライヤのXML請求書書式を追加します。
電子請求に使用するサプライヤ・サイトを取引先に関連付ける必要があります。次にその方法を示します:
-
サプライヤ・サイトに移動し、B2B通信方法をコラボレーション・メッセージング・フレームワークとして選択します。
-
関連付けられたコラボレーション文書で「編集」をクリックします。作成しておいた取引先を追加し、「コラボレーション文書」にPROCESS_INVOICE_INを追加します。
CMK Webサービスを使用した電子請求の設定
サプライヤがCMK Webサービスを使用して直接連絡を取る場合、サービス・プロバイダを設定する必要はありません。次のステップに従って、電子請求を構成します:
-
「B2B取引先の管理」ページにナビゲートします。
-
「サービス・プロバイダ」で「なし」を選択し、取引先識別を入力します。
-
「送信方法」に、サプライヤが送信メッセージを受信する方法を指定できます。
-
「インバウンド・コラボレーション・メッセージ」タブを選択してサプライヤのXML請求書書式を構成します。CMKでサポートされる各XML書式は、個別のメッセージ定義として使用できます。たとえば、UBL書式のEN 16931請求書にはUBL_2.1_EN_16931_INVOICE_INを選択します。
-
「アウトバウンド・コラボレーション・メッセージ」タブでは、サプライヤが必要とするアウトバウンド・メッセージのリストを構成できます。
-
「保存してクローズ」をクリックします。
次のステップを実行して、サプライヤ・サイトを取引先に関連付けます:
-
サプライヤ・サイトに移動し、B2B通信方法をコラボレーション・メッセージング・フレームワークとして選択します。
-
関連付けられたコラボレーション文書で「編集」をクリックします。作成しておいた取引先を追加し、「コラボレーション文書」にPROCESS_INVOICE_INを追加します。
サプライヤへの否認済請求書の送信
CMKが受信した電子請求書は、「買掛/未払金請求書のインポート」を使用してインポートする必要があります。サプライヤ・エラーが原因で否認された請求書は、修正のためにサプライヤにEメールで自動的に送信されます。サプライヤは修正後、請求書ペイロードを再送信する必要があります。
否認済請求書詳細を含むEメールは、XML請求書にサプライヤEメールIDが指定されている場合にのみサプライヤに送信されます。
サービス・プロバイダを使用してサプライヤが構成されている場合に、否認Eメールをサプライヤに自動的に送信するためには、次のステップに従います:
-
「コラボレーション・メッセージング・サービス・プロバイダの管理」ページにナビゲートし、サービス・プロバイダを編集します。
-
「配信方法タイプ」として「Eメール」を追加します。
-
「アウトバウンド・コラボレーション・メッセージ」タブを選択し、メッセージ定義OAGIS_10.1_ACKNOWLEDGE_INVOICE_COLLAB_MSG_OUTを追加します。前述の手順で作成した配信方法を選択します。
-
サプライヤ・サイトに移動します。
-
「関連付けられたコラボレーション文書」で、「編集」ボタンをクリックし、「コラボレーション文書」にACK_REJECTED_INVOICE_OUTを追加します。
サプライヤがサービス・プロバイダなしで構成されている場合は、次のステップに従って、否認Eメールを自動的に送信するために必要な設定を完了してください:
-
「B2B取引先の管理」ページにナビゲートします。
-
「配信方法タイプ」として「Eメール」を追加します。
-
「アウトバウンド・コラボレーション・メッセージ」タブを選択し、メッセージ定義OAGIS_10.1_ACKNOWLEDGE_INVOICE_COLLAB_MSG_OUTを追加します。前述の手順で作成した配信方法を選択します。
-
サプライヤ・サイトに移動します。
-
「関連付けられたコラボレーション文書」で、「編集」ボタンをクリックし、「コラボレーション文書」にACK_REJECTED_INVOICE_OUTを追加します。
否認済電子請求書の自動通知の送信
否認済請求書についてサプライヤに知らせる自動通知を構成することもできます。この構成は業界標準のXML書式で実行されているため、電子応答を処理できるサプライヤは自分のアプリケーションで請求書エラーを表示できます。手動のステータス問合せや処理をしなくても、否認済請求書を修正して返送できます。
否認済請求書詳細はUBL 2.1の請求書応答メッセージ形式で送信されます。他の業界標準の形式でレスポンスを構成することもできます。
これは、UBL 2.1レスポンス・メッセージ形式のサンプルXSLTです。これをXSLファイルとして保存して、否認済請求書の自動通知を構成するために使用できます。
<?xml version="1.0" encoding="UTF-8"?><?oracle-xsl-mapper <!-- SPECIFICATION OF MAP SOURCES AND TARGETS, DO NOT MODIFY. --> <mapSources> <source type="XSD"> <schema location="oramds:/apps/oracle/apps/scm/cmk/xsd/document/AcknowledgeInvoiceOutbound.xsd"/> <rootElement name="processOutboundCollaboration" namespace="http://xmlns.oracle.com/apps/scm/cmk"/> </source> </mapSources> <mapTargets> <target type="XSD"> <schema location="oramds:/apps/oracle/apps/scm/cmk/xsd/message/ApplicationResponse-UBL2.1-Outbound-CollaborationMessage.xsd"/> <rootElement name="processOutboundCollaborationMessage" namespace="http://xmlns.oracle.com/apps/scm/cmk"/> </target> </mapTargets> <substitutions> <sourceSubst substPath="/cmk:processOutboundCollaboration/cmk:OutboundCollaboration" substType="cmk:ApplicationResponseUBL2.1OutboundType"/> </substitutions> <!-- GENERATED BY ORACLE XSL MAPPER 11.1.1.7.0(build 130301.0647.0008) AT [WED JUN 15 18:22:15 EDT 2016]. -->?><xsl:stylesheet version="2.0" xmlns:ns11="http://xmlns.oracle.com/apps/scm/receiving/supplierTransactions/createASN/RcvCreateASNB2BConnectorComposite/schema" xmlns:aia="http://www.oracle.com/XSL/Transform/java/oracle.apps.aia.core.xpath.AIAFunctions" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns3="http://xmlns.oracle.com/soa/b2b/OAG/7.2.1/PROCESS_INVOICE_002/OAG_DEF/" xmlns:bpm="http://xmlns.oracle.com/bpmn20/extensions" xmlns:ns12="http://xmlns.oracle.com/apps/scm/receiving/receiptsInterface/receiptConfirmation/receiptConfirmationService/" xmlns:oa="http://www.openapplications.org/oagis/10" xmlns:ns2="http://xmlns.oracle.com/apps/scm/receiving/receiptsInterface/transactions/processorServiceV2/" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:socket="http://www.oracle.com/XSL/Transform/java/oracle.tip.adapter.socket.ProtocolTranslator" xmlns:ns9="http://xmlns.oracle.com/adf/svc/errors/" xmlns:ns1="http://xmlns.oracle.com/apps/scm/receiving/receiptsInterface/transactions/processorServiceV2/types/" xmlns:tns="http://xmlns.oracle.com/apps/financials/payables/invoices/quickInvoices/invoiceInterfaceService/" xmlns:mhdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.mediator.service.common.functions.MediatorExtnFunction" xmlns:oraext="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc" xmlns:dvm="http://www.oracle.com/XSL/Transform/java/oracle.tip.dvm.LookupValue" xmlns:ns7="http://xmlns.oracle.com/adf/svc/types/" xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath" xmlns:ns10="commonj.sdo/java" xmlns:med="http://schemas.oracle.com/mediator/xpath" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ids="http://xmlns.oracle.com/bpel/services/IdentityService/xpath" xmlns:xdk="http://schemas.oracle.com/bpel/extension/xpath/function/xdk" xmlns:xref="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions" xmlns:cmk="http://xmlns.oracle.com/apps/scm/cmk" xmlns:ns5="commonj.sdo" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:types="http://xmlns.oracle.com/apps/financials/payables/invoices/quickInvoices/invoiceInterfaceService/types/" xmlns:bpmn="http://schemas.oracle.com/bpm/xpath" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" exclude-result-prefixes="xsl ns11 ns3 oa xsd ns12 ns2 ns9 ns1 ns7 ns10 ns5 aia bpws xp20 bpel bpm ora socket mhdr oraext dvm hwf med ids xdk xref bpmn ldap"> <xsl:variable name="prod" select="true()"/> <xsl:variable name="dvm" select="$prod"/> <xsl:variable name="responseListID" select="'UNCL4343OpSubset'"/> <xsl:variable name="documentTypeCodeListID" select="'UNCL1001'"/> <xsl:variable name="statusReasCodeListID" select="'OPStatusReason'"/> <xsl:variable name="AppPartnerCode" select="/cmk:processOutboundCollaboration/cmk:OutboundCollaboration/cmk:ProcessingConfiguration/cmk:ProcActionCode"/> <xsl:variable name="SupplierNumber" select="/cmk:processOutboundCollaboration/cmk:OutboundCollaboration/cmk:ProcessingConfiguration/cmk:PartnerKey4"/> <xsl:variable name="SupplierName" select="/cmk:processOutboundCollaboration/cmk:OutboundCollaboration/cmk:ProcessingConfiguration/cmk:PartnerKey3"/> <xsl:variable name="otherStatusReasonCodeList"> <value> <code>CAN MATCH TO ONLY 1 LINE</code> <desc>Can match to only one line</desc> </value> <value> <code>DUPLICATE INVOICE NUMBER</code> <desc>Duplicate invoice number</desc> </value> <value> <code>DUPLICATE LINE NUMBER</code> <desc>Duplicate Line Number</desc> </value> <value> <code>INCONSISTENT CURR</code> <desc>Inconsistent currency information</desc> </value> <value> <code>INVALID INVOICE AMOUNT</code> <desc>Invalid invoice amount</desc> </value> <value> <code>INVALID PRICE/QUANTITY/AMOUNT</code> <desc>Inconsistent price, quantity, and amount</desc> </value> </xsl:variable> <xsl:variable name="refStatusReasonCodeList"> <value> <code>INCONSISTENT PO LINE INFO</code> <desc>Inconsistent PO line information</desc> </value> <value> <code>INCONSISTENT PO SUPPLIER</code> <desc>Inconsistent PO supplier information</desc> </value> <value> <code>INVALID ITEM</code> <desc>Invalid Item</desc> </value> <value> <code>INVALID PO INFO</code> <desc>Invalid PO information</desc> </value> <value> <code>INVALID PO NUM</code> <desc>Invalid PO number</desc> </value> <value> <code>INVALID PO RELEASE INFO</code> <desc>Invalid PO release information</desc> </value> <value> <code>INVALID PO RELEASE NUM</code> <desc>Invalid PO release number</desc> </value> <value> <code>INVALID PO SHIPMENT NUM</code> <desc>Invalid PO schedule number</desc> </value> <value> <code>NO PO LINE NUM</code> <desc>No PO line number</desc> </value> <value> <code>RELEASE MISSING</code> <desc>No blanket PO release information</desc> </value> <value> <code>MISSING PO NUM</code> <desc>Missing PO Number</desc> </value> <value> <code>INVALID PO LINE NUM</code> <desc>Invalid PO line number</desc> </value> <value> <code>NO PO SHIPMENT NUM</code> <desc>No PO schedule number</desc> </value> </xsl:variable> <xsl:variable name="qtyStatusReasonCodeList"> <value> <code>NEGATIVE QUANTITY BILLED</code> <desc>Billed quantity is below zero</desc> </value> <value> <code>INVALID QUANTITY</code> <desc>Invalid quantity</desc> </value> </xsl:variable> <!-- /cmk:processOutboundCollaboration/cmk:OutboundCollaboration/types:getSupplierRejectionsResponse --> <xsl:template match="/"> <cmk:processOutboundCollaborationMessage> <cmk:OutboundCollaborationMessage> <xsl:attribute name="xsi:type"><xsl:text disable-output-escaping="no">cmk:ApplicationResponseUBL2.1OutboundType</xsl:text></xsl:attribute> <cmk:EmailContent> <cmk:Body> <cmk:EmailBodyHeader> </cmk:EmailBodyHeader> <xsl:for-each select="//types:result"> <xsl:sort select="./tns:Invoicenum"/> <xsl:sort select="./tns:Invoicenumber"/> <cmk:EmailBodyTableHeader> <cmk:ColumnName ColumnNumber="1"> <cmk:ColumnValue> <!-- 20210318 - bug: 32452823 change mapping from ProcessingConfig to mapping from the object <xsl:value-of select="$SupplierNumber"/> --> <xsl:value-of select="tns:Vendornumber"/> </cmk:ColumnValue> </cmk:ColumnName> <cmk:ColumnName ColumnNumber="2"> <cmk:ColumnValue> <!-- 20210318 - bug: 32452823 change mapping from ProcessingConfig to mapping from the object <xsl:value-of select="$SupplierName"/> --> <xsl:value-of select="tns:VendorName"/> </cmk:ColumnValue> </cmk:ColumnName> <cmk:ColumnName ColumnNumber="3"> <cmk:ColumnValue> <xsl:choose> <xsl:when test="tns:Invoicenum"> <xsl:value-of select="tns:Invoicenum"/> </xsl:when> <xsl:when test="tns:Invoicenumber"> <xsl:value-of select="tns:Invoicenumber"/> </xsl:when> </xsl:choose> </cmk:ColumnValue> </cmk:ColumnName> <cmk:ColumnName ColumnNumber="4"> <cmk:ColumnValue> <xsl:value-of select="tns:InvoiceDate"/> </cmk:ColumnValue> </cmk:ColumnName> <cmk:ColumnName ColumnNumber="5"> <cmk:ColumnValue> <xsl:value-of select="tns:InvoiceCurrencyCode"/> </cmk:ColumnValue> </cmk:ColumnName> <cmk:ColumnName ColumnNumber="6"> <cmk:ColumnValue> <xsl:value-of select="tns:InvoiceAmount"/> </cmk:ColumnValue> </cmk:ColumnName> <cmk:ColumnName ColumnNumber="7"> <cmk:ColumnValue> <xsl:value-of select="tns:Linenumber"/> </cmk:ColumnValue> </cmk:ColumnName> <cmk:ColumnName ColumnNumber="8"> <cmk:ColumnValue> <xsl:value-of select="tns:DisplayedField"/> </cmk:ColumnValue> </cmk:ColumnName> <cmk:ColumnName ColumnNumber="9"> <cmk:ColumnValue> <xsl:value-of select="tns:Description"/> </cmk:ColumnValue> </cmk:ColumnName> </cmk:EmailBodyTableHeader> </xsl:for-each> </cmk:Body> </cmk:EmailContent> <xsl:call-template name="getInvoice"/> </cmk:OutboundCollaborationMessage> </cmk:processOutboundCollaborationMessage> </xsl:template> <xsl:template name="getInvoice"> <ubl:ApplicationResponse> <cbc:CustomizationID> <xsl:text>urn:fdc:peppol.eu:poacc:trns:invoice_response:3</xsl:text> </cbc:CustomizationID> <cbc:ProfileID> <xsl:text>urn:fdc:peppol.eu:poacc:bis:invoice_response:3</xsl:text> </cbc:ProfileID> <cbc:ID> <xsl:value-of select="/cmk:processOutboundCollaboration/cmk:OutboundCollaboration/cmk:MessageID"/> </cbc:ID> <cbc:IssueDate> <xsl:if test="$prod"> <xsl:value-of select="xp20:current-date()"/> </xsl:if> </cbc:IssueDate> <cac:SenderParty> <cbc:EndpointID> <xsl:attribute name="schemeID"> <xsl:text>VAT</xsl:text> </xsl:attribute> <xsl:value-of select="/cmk:processOutboundCollaboration/cmk:OutboundCollaboration/cmk:ProcessingConfiguration/cmk:GlobalSenderId"/> </cbc:EndpointID> </cac:SenderParty> <cac:ReceiverParty> <cbc:EndpointID> <xsl:attribute name="schemeID"> <xsl:text>VAT</xsl:text> </xsl:attribute> <xsl:value-of select="/cmk:processOutboundCollaboration/cmk:OutboundCollaboration/cmk:ProcessingConfiguration/cmk:ExtPartnerId"/> </cbc:EndpointID> <cac:PartyLegalEntity> <cbc:RegistrationName> <xsl:value-of select="//types:result[1]/tns:VendorName"/> </cbc:RegistrationName> </cac:PartyLegalEntity> </cac:ReceiverParty> <xsl:variable name="sortedCopy"> <xsl:for-each select="//types:result"> <xsl:sort select="tns:Invoicenum"/> <xsl:sort select="tns:Invoicenumber"/> <xsl:sort select="tns:Linenumber"/> <xsl:copy-of select="current()"/> </xsl:for-each> </xsl:variable> <xsl:for-each select="$sortedCopy/types:result"> <xsl:variable name="num"> <xsl:choose> <xsl:when test="tns:Invoicenum"> <xsl:value-of select="tns:Invoicenum"/> </xsl:when> <xsl:when test="tns:Invoicenumber"> <xsl:value-of select="tns:Invoicenumber"/> </xsl:when> </xsl:choose> </xsl:variable> <xsl:variable name="prevnum"> <xsl:choose> <xsl:when test="position() = 1"> <xsl:value-of select="''"/> </xsl:when> <xsl:when test="preceding-sibling::types:result[1]/tns:Invoicenum"> <xsl:value-of select="preceding-sibling::types:result[1]/tns:Invoicenum"/> </xsl:when> <xsl:when test="preceding-sibling::types:result[1]/tns:Invoicenumber"> <xsl:value-of select="preceding-sibling::types:result[1]/tns:Invoicenumber"/> </xsl:when> </xsl:choose> </xsl:variable> <xsl:if test="string($num) != string($prevnum)"> <cac:DocumentResponse> <cac:Response> <cbc:ResponseCode> <xsl:attribute name="listID"> <xsl:value-of select="$responseListID"/> </xsl:attribute> <xsl:text>RE</xsl:text> </cbc:ResponseCode> <cbc:EffectiveDate> <xsl:if test="$prod"> <xsl:value-of select="xp20:current-date()"/> </xsl:if> </cbc:EffectiveDate> <xsl:call-template name="getStatus"> <xsl:with-param name="num" select="$num"/> <xsl:with-param name="sortedCopy" select="$sortedCopy"/> </xsl:call-template> </cac:Response> <cac:DocumentReference> <cbc:ID> <xsl:choose> <xsl:when test="tns:Invoicenum"> <xsl:value-of select="tns:Invoicenum"/> </xsl:when> <xsl:when test="tns:Invoicenumber"> <xsl:value-of select="tns:Invoicenumber"/> </xsl:when> </xsl:choose> </cbc:ID> <cbc:DocumentTypeCode> <xsl:attribute name="listID"> <xsl:value-of select="$documentTypeCodeListID"/> </xsl:attribute> <xsl:text>380</xsl:text> <!-- 380 - Invoice --> </cbc:DocumentTypeCode> </cac:DocumentReference> </cac:DocumentResponse> </xsl:if> </xsl:for-each> </ubl:ApplicationResponse> </xsl:template> <xsl:template name="getStatus"> <xsl:param name="num"/> <xsl:param name="sortedCopy"/> <xsl:for-each select="$sortedCopy/types:result[tns:Invoicenum = $num or tns:Invoicenumber = $num]"> <xsl:variable name="rejectionCode" select="tns:DisplayedField"/> <cac:Status> <xsl:choose> <xsl:when test="$otherStatusReasonCodeList/value[desc = $rejectionCode]"> <cbc:StatusReasonCode> <xsl:attribute name="listID"> <xsl:value-of select="$statusReasCodeListID"/> </xsl:attribute> <xsl:value-of select="'OTH'"/> </cbc:StatusReasonCode> </xsl:when> <xsl:when test="$refStatusReasonCodeList/value[desc = $rejectionCode]"> <cbc:StatusReasonCode> <xsl:attribute name="listID"> <xsl:value-of select="$statusReasCodeListID"/> </xsl:attribute> <xsl:value-of select="'REF'"/> </cbc:StatusReasonCode> </xsl:when> <xsl:when test="$qtyStatusReasonCodeList/value[desc = $rejectionCode]"> <cbc:StatusReasonCode> <xsl:attribute name="listID"> <xsl:value-of select="$statusReasCodeListID"/> </xsl:attribute> <xsl:value-of select="'QTY'"/> </cbc:StatusReasonCode> </xsl:when> </xsl:choose> <xsl:variable name="conditions"> <xsl:call-template name="getNameValue"> <xsl:with-param name="name" select="tns:TokenName1"/> <xsl:with-param name="value" select="tns:TokenValue1"/> </xsl:call-template> <xsl:call-template name="getNameValue"> <xsl:with-param name="name" select="tns:TokenName2"/> <xsl:with-param name="value" select="tns:TokenValue2"/> </xsl:call-template> <xsl:call-template name="getNameValue"> <xsl:with-param name="name" select="tns:TokenName3"/> <xsl:with-param name="value" select="tns:TokenValue3"/> </xsl:call-template> <xsl:call-template name="getNameValue"> <xsl:with-param name="name" select="tns:TokenName4"/> <xsl:with-param name="value" select="tns:TokenValue4"/> </xsl:call-template> <xsl:call-template name="getNameValue"> <xsl:with-param name="name" select="tns:TokenName5"/> <xsl:with-param name="value" select="tns:TokenValue5"/> </xsl:call-template> <xsl:call-template name="getNameValue"> <xsl:with-param name="name" select="tns:TokenName6"/> <xsl:with-param name="value" select="tns:TokenValue6"/> </xsl:call-template> <xsl:call-template name="getNameValue"> <xsl:with-param name="name" select="tns:TokenName7"/> <xsl:with-param name="value" select="tns:TokenValue7"/> </xsl:call-template> <xsl:call-template name="getNameValue"> <xsl:with-param name="name" select="tns:TokenName8"/> <xsl:with-param name="value" select="tns:TokenValue8"/> </xsl:call-template> <xsl:call-template name="getNameValue"> <xsl:with-param name="name" select="tns:TokenName9"/> <xsl:with-param name="value" select="tns:TokenValue9"/> </xsl:call-template> <xsl:call-template name="getNameValue"> <xsl:with-param name="name" select="tns:TokenName10"/> <xsl:with-param name="value" select="tns:TokenValue10"/> </xsl:call-template> </xsl:variable> <cbc:StatusReason> <xsl:choose> <xsl:when test="tns:Description != ''"> <xsl:value-of select="concat(tns:Description,$conditions)"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="concat($rejectionCode,$conditions)"/> </xsl:otherwise> </xsl:choose> </cbc:StatusReason> </cac:Status> </xsl:for-each> </xsl:template> <xsl:template name="getNameValue"> <xsl:param name="name"/> <xsl:param name="value"/> <xsl:if test="$name != '' or $value != ''"> <xsl:value-of select="' :'"/> <xsl:if test="$name != ''"> <xsl:value-of select="'-'"/> <xsl:value-of select="$name"/> </xsl:if> <xsl:if test="$value != ''"> <xsl:value-of select="' -'"/> <xsl:value-of select="$value"/> </xsl:if> </xsl:if> </xsl:template> </xsl:stylesheet>
自動通知を構成する方法を次に示します:
-
「コラボレーション・メッセージング」作業領域から、「コラボレーション・メッセージ定義の管理」ページに移動します。
-
「作成」ボタンをクリックします。
-
コラボレーション・メッセージ定義の作成ダイアログ・ボックスで、次の必要な詳細を入力します:
名前 自動通知応答の名前を入力します。 外部メッセージ定義 外部メッセージ定義としてUBL-ApplicationResponse-2.1を選択します。 コラボレーション文書 コラボレーション文書として、請求書承認 - アウトバウンドを選択します。 XSLTファイル UBL 2.1応答メッセージ書式で作成したXSLファイルをアップロードします。前述のサンプルXSLTを参照できます。 -
「保存してクローズ」をクリックします。
-
サービス・プロバイダの設定で、アウトバウンド・コラボレーション・メッセージに移動して、以前に作成した外部メッセージ定義を追加します。
-
サプライヤ設定に移動します。B2B通信セクションに、請求書承認 - アウトバウンドというメッセージを追加します。
電子請求書構成の拡張
CMKには、XSLTファイルを使用して請求書などのOracle Fusionアプリケーション・オブジェクトにXMLペイロード・フィールドをマップする事前定義済メッセージ定義が用意されています。お客様は、すぐに使用できる状態で提供されているマッピングを変更して、取引先固有の差異や、すぐに使用できるマッピングでは対応していない特定の要件に対応できます。
マッピングを更新する場合は、次のステップに従ってください:
-
「コラボレーション・メッセージング」作業領域から、「コラボレーション・メッセージ定義の管理」ページに移動します。
-
「方向」で「インバウンド」を選択し、「文書」でPROCESS_INVOICE_INを選択してメッセージを検索します。OAG 7.2.1の場合はメッセージORCL_CMK_PROCESS_INVOICE_002を、OAG 10.1の場合はOAGIS_10.1_PROCESS_INVOICE_COLLAB_MSG_INを検索結果から選択します。「処理」 > 「変換パッケージのエクスポート」を選択して、変換パッケージをダウンロードします。
-
変換パッケージは、ソースおよびターゲットのXSDおよびXSLTを含む.zipファイルとしてダウンロードされます。
-
ダウンロードしたXSLTのマッピングを更新し、ローカル・フォルダに保存できます。
-
事前定義済メッセージ定義は変更できません。ただし、事前定義済メッセージを複製し、変更したXSLTを使用して構成できます。変更するメッセージを選択し、「処理」 > 「コラボレーション・メッセージの複製」を選択します。
-
必要に応じて、デフォルトのメッセージ名を編集できます。以前に保存した変更済XSLTを選択します。
-
「保存してクローズ」をクリックします。
作成した新規メッセージは、B2B取引先またはサービス・プロバイダに関連付ける必要があります。
取引先がOracle Business Networkなどのサービス・プロバイダを介して請求書を送信する場合は、新しいメッセージ定義をサービス・プロバイダに追加します。次にその作成方法を示します。
-
「コラボレーション・メッセージング・サービス・プロバイダの管理」タスクのページにナビゲートし、サービス・プロバイダを編集します。
-
「インバウンド・コラボレーション・メッセージ」タブを選択します。名前を入力し、作成した新しいメッセージ定義を選択します。新しいメッセージを「アクティブ」としてマークします。
-
既存のメッセージを「非アクティブ」としてマークし、そのメッセージを複製します。
-
「保存してクローズ」をクリックします。
取引先がCMK Webサービスに請求書を直接送信する場合は、取引先に新しいメッセージ定義を追加しますこれを行うには、次のステップを実行します。
-
「B2B取引先の管理」ページにナビゲートし、取引先を選択します。
-
「インバウンド・コラボレーション・メッセージ」タブを選択します。
-
既存のメッセージがある場合は、それを「非アクティブ」としてマークします。
-
名前を入力し、作成した新しいメッセージ定義を選択して、新しいメッセージを追加します。
-
新しいメッセージを「アクティブ」としてマークします。
-
「保存してクローズ」をクリックします。