ARIBA CIG TO SAP S4HANA or ecc

<xsl:when test="n0:DsptchdDelivNotifMsg">DsptchdDelivNotifMsg</xsl:when>

                <xsl:when test="n0:ComponentAcknowledgement">ComponentAcknowledgement</xsl:when>

                <xsl:when test="n0:ComponentConsumption">ComponentConsumption</xsl:when>

                <xsl:when test="n0:CreditMemoMsg">CreditMemoMsg</xsl:when>

                <xsl:when test="n0:DocumentStatusUpdateRequest"                    >DocumentStatusUpdateRequest</xsl:when>

                <xsl:when test="n0:LiabilityTransfer">LiabilityTransfer</xsl:when>

                <xsl:when test="n0:ProductReplenishment">ProductReplenishment</xsl:when>

                <xsl:when test="n0:RemittanceAdvice">RemittanceAdvice</xsl:when>

                <xsl:when test="n0:ServiceEntrySheetRequest">ServiceEntrySheetRequest</xsl:when>

                <xsl:when test="n0:QualityIssueNotificationMessage"                    >QualityIssueNotificationMessage</xsl:when>

                <xsl:when test="n0:PurchasingContractERPCreateRequest"                    >PurchasingContractERPCreateRequest</xsl:when>

                <xsl:when test="n1:ARBCIG_QUOTE">QuoteMessageOrder</xsl:when>

                <xsl:when test="ns0:PurchasingContractERPRequest_V1"                    >PurchasingContractERPRequest_V1</xsl:when>

<xsl:when test="sapg20:BusinessPartnerSUITEBulkReplicateRequest"                  >BusinessPartnerSUITEReplicateRequest</xsl:when>

                <xsl:when test="sapg20:BusinessPartnerSUITEBulkReplicateConfirmation"                    >BusinessPartnerSUITEReplicateConfirmation</xsl:when>

                <xsl:when test="sapg20:KeyMappingBulkReplicateConfirmation"                    >KeyMappingBulkReplicateConfirmation</xsl:when>

                <xsl:when test="sapg20:BusinessPartnerRelationshipSUITEBulkReplicateRequest"                    >BusinessPartnerRelationshipSUITEBulkReplicateRequest</xsl:when>

                <xsl:when test="sapg20:BusinessPartnerRelationshipSUITEBulkReplicateConfirmation"                    >BusinessPartnerRelationshipSUITEBulkReplicateConfirmation</xsl:when>

                <xsl:when test="n0:SpendVisibilityConfirmation">SpendAnalysisConfirmation</xsl:when>

                <xsl:when test="ARBCIGR_ARTMAS">ArticleMaster</xsl:when>

                <xsl:when test="ARBCIGR_BOMMAT">ArticleComponents</xsl:when>

                <xsl:when test="n0:AssetRequisitionAsyncExportRequest">AssetRequisitionAsyncExportRequest</xsl:when>

                <xsl:when test="n0:QualityInspectionResult">qualityinspectionresultrequest</xsl:when>

                <xsl:when test="n0:OrdConfAppReqMsg">ordconfappreqmsg</xsl:when>

                <xsl:when test="n0:ReplenishmentOrderRequest">ReplenishmentOrderRequest</xsl:when>

                <xsl:when test="n0:SchedulingAgreementERPRequest">schedulingagreementerprequest</xsl:when>

                <xsl:when test="n0:InvoiceERPRequest">InvoiceERPRequest</xsl:when>

                <xsl:when test="n0:PaymentReceiptConfirmationRequest">paymentreceiptconfrequest</xsl:when>

                <xsl:when test="n0:FileAttachRequest">fileattachrequest</xsl:when>

                <!--  P2P documents -->

        <xsl:when test="n1:ARBCIG_BAPI_PO_CREATE1">PurchaseOrderExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_BAPI_PO_CHANGE">PurchaseOrderChangeExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_BAPI_PO_CANCEL">PurchaseOrderCancelExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_BAPI_PO_CLOSE">PurchaseOrderCloseStatusExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_GOODS_RECEIPT_CREATE">ReceiptExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_ADV_PAYMENT_POST">AdvancePaymentExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_ADV_PAYMENT_REV_POST">CancelAdvancePaymentExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_BAPI_INVOICE_CREATE">PaymentExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_BAPI_ASSET_CREATE">AssetRequisitionExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_BATCH_PURREQ_DELETE">AggregatedRequisitionRevertBudgetRequest</xsl:when>

<xsl:when test="n0:BuyerStatusUpdateRequest">BuyerStatusUpdateRequest</xsl:when>

<xsl:when test="n0:BuyerCatalogStatusResponseMsg">CatalogStatusResponse</xsl:when>

<!-- includes stock create and delete -->

<xsl:when test="n1:ARBCIG_STK_RESERVATION">ReservationAsyncExportRequest</xsl:when>

<xsl:when test="n0:StockCheckRequest">StockCheckRequest</xsl:when>



SAP CIG  SOAP -->    XSLT -> GROOVY-->  SOAP SAP

(VALUE MAPPING)

---------

<?xml version="1.0" encoding="UTF-8"?>

<!-- allowed header from ariba    DocumentType|SystemID|eccURL-->

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:hci="http://sap.com/it/"

    xmlns:n0="http://sap.com/xi/ARBCIG1" xmlns:ns0="http://sap.com/xi/ARBCIG2" xmlns:sapg20="http://sap.com/xi/SAPGlobal20/Global"  xmlns:n1="urn:sap-com:document:sap:rfc:functions" xmlns:ns2="http://ariba.com/s4/dms/schema/pir"  xmlns:ns3="http://sap.com/xi/Procurement" xmlns:ns4="urn:Ariba:Buyer:vsap"

    version="2.0" exclude-result-prefixes="hci n0 ns0 sapg20 n1 ns2 ns3 ns4">

    <xsl:param name="exchange"/>

    <xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes"/>

    <xsl:template match="@* | *">

        <xsl:copy>

            <xsl:apply-templates select="@* | *"/>

        </xsl:copy>

    </xsl:template>

    <xsl:template match="/">

        <!-- TODO: Auto-generated template -->

        <!-- For SP01 through SP03 use RCVPRN for Inbound ERP IDOC System ID reference-->

        <xsl:param name="idocSysId" select="normalize-space(//IDOC/EDI_DC40/RCVPRN)"/> 

        <!--For SP04 onwards Use E1ARBCIG_ADDITIONAL_DATA/ERPSYSTEMID for Inbound ERP IDOC System ID reference-->

        <xsl:param name="idocSysId_Addl" select="normalize-space(//E1ARBCIG_ADDITIONAL_DATA/ERPSYSTEMID)"/>

        <xsl:param name="idocType" select="normalize-space(//IDOC/EDI_DC40/IDOCTYP)"/>

        <xsl:param name="soapSysId" select="normalize-space(//RecipientParty/InternalID)"/>

        <xsl:param name="soapSysIdQuote" select="normalize-space(//MESSAGEHEADER/RECIPIENTBUSINESSSYSTEMID)"/>

        <!--Use RecipientBusinessSystemID for SLP inbound documents-->

        <xsl:param name="slpSysId"  select="normalize-space((//MessageHeader/RecipientBusinessSystemID)[1])"/>

         <!--Use RecipientBusinessSystemID for Sourcing Contracts inbound documents-->

        <xsl:param name="srcContractSysId"  select="normalize-space((//n0:PurchasingContractERPCreateRequest/MessageHeader/RecipientBusinessSystemID)[1])"/>

        <xsl:param name="srcContractServicesSysId"  select="normalize-space((//ns0:PurchasingContractERPRequest_V1/MessageHeader/RecipientBusinessSystemID)[1])"/>

        <!-- Status Update scenario -->

<xsl:param name="surSoapSysId" select="normalize-space(//RecipientParty/InternalID)" />

        <xsl:param name="surSoapSysId1" select="normalize-space(//n0:DocumentStatusUpdateRequest/LogicalSystem)" />

        <xsl:param name="buyerCatalogSURSysId" select="normalize-space(//n0:BuyerCatalogStatusResponseMsg/Item/SystemID)"/>

<!-- p2p/sourcing scenario -->

        <xsl:param name="soapRealmId" select="normalize-space(//VARIANT)" />

        <xsl:param name="sesSoapRealmId" select="normalize-space(//@variant)" />

        <xsl:param name="buyerSURSoapRealmId" select="normalize-space(//n0:BuyerStatusUpdateRequest/MessageHeader/variant)"/>

        <xsl:param name="buyerCatalogSURSoapRealmId" select="normalize-space(//n0:BuyerCatalogStatusResponseMsg/Item/RealmID)"/>

        <!-- stock check request, only ID ex: 100  -->

        <xsl:param name="stockRealmId" select="normalize-space(//@RealmName)" />

        <xsl:param name="pirSysId" select="normalize-space(ns2:PIRPushRequest/ns2:ERPId)" />

        <xsl:param name="bomSysID" select="normalize-space(n0:BOMConfirmation/MessageHeader/ERPID)"/>

        <xsl:variable name="docType">

            <xsl:choose>

                <xsl:when test="n0:DsptchdDelivNotifMsg">DsptchdDelivNotifMsg</xsl:when>

                <xsl:when test="n0:ComponentAcknowledgement">ComponentAcknowledgement</xsl:when>

                <xsl:when test="n0:ComponentConsumption">ComponentConsumption</xsl:when>

                <xsl:when test="n0:CreditMemoMsg">CreditMemoMsg</xsl:when>

                <xsl:when test="n0:DocumentStatusUpdateRequest"

                    >DocumentStatusUpdateRequest</xsl:when>

                <xsl:when test="n0:LiabilityTransfer">LiabilityTransfer</xsl:when>

                <xsl:when test="n0:ProductReplenishment">ProductReplenishment</xsl:when>

                <xsl:when test="n0:RemittanceAdvice">RemittanceAdvice</xsl:when>

                <xsl:when test="n0:ServiceEntrySheetRequest">ServiceEntrySheetRequest</xsl:when>

                <xsl:when test="n0:QualityIssueNotificationMessage"

                    >QualityIssueNotificationMessage</xsl:when>

                <xsl:when test="n0:PurchasingContractERPCreateRequest"

                    >PurchasingContractERPCreateRequest</xsl:when>

                <xsl:when test="n1:ARBCIG_QUOTE">QuoteMessageOrder</xsl:when>

                <xsl:when test="ns0:PurchasingContractERPRequest_V1"

                    >PurchasingContractERPRequest_V1</xsl:when>

<xsl:when test="sapg20:BusinessPartnerSUITEBulkReplicateRequest"

                    >BusinessPartnerSUITEReplicateRequest</xsl:when>

                <xsl:when test="sapg20:BusinessPartnerSUITEBulkReplicateConfirmation"

                    >BusinessPartnerSUITEReplicateConfirmation</xsl:when>

                <xsl:when test="sapg20:KeyMappingBulkReplicateConfirmation"

                    >KeyMappingBulkReplicateConfirmation</xsl:when>

                  <xsl:when test="sapg20:BusinessPartnerRelationshipSUITEBulkReplicateRequest"

                    >BusinessPartnerRelationshipSUITEBulkReplicateRequest</xsl:when>

                <xsl:when test="sapg20:BusinessPartnerRelationshipSUITEBulkReplicateConfirmation"

                    >BusinessPartnerRelationshipSUITEBulkReplicateConfirmation</xsl:when>

                <xsl:when test="n0:SpendVisibilityConfirmation">SpendAnalysisConfirmation</xsl:when>

                <xsl:when test="ARBCIGR_ARTMAS">ArticleMaster</xsl:when>

                <xsl:when test="ARBCIGR_BOMMAT">ArticleComponents</xsl:when>

                <xsl:when test="n0:AssetRequisitionAsyncExportRequest">AssetRequisitionAsyncExportRequest</xsl:when>

                <xsl:when test="n0:QualityInspectionResult">qualityinspectionresultrequest</xsl:when>

                <xsl:when test="n0:OrdConfAppReqMsg">ordconfappreqmsg</xsl:when>

                <xsl:when test="n0:ReplenishmentOrderRequest">ReplenishmentOrderRequest</xsl:when>

                <xsl:when test="n0:SchedulingAgreementERPRequest">schedulingagreementerprequest</xsl:when>

                <xsl:when test="n0:InvoiceERPRequest">InvoiceERPRequest</xsl:when>

                <xsl:when test="n0:PaymentReceiptConfirmationRequest">paymentreceiptconfrequest</xsl:when>

                <xsl:when test="n0:FileAttachRequest">fileattachrequest</xsl:when>

                <!--  P2P documents -->

        <xsl:when test="n1:ARBCIG_BAPI_PO_CREATE1">PurchaseOrderExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_BAPI_PO_CHANGE">PurchaseOrderChangeExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_BAPI_PO_CANCEL">PurchaseOrderCancelExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_BAPI_PO_CLOSE">PurchaseOrderCloseStatusExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_GOODS_RECEIPT_CREATE">ReceiptExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_ADV_PAYMENT_POST">AdvancePaymentExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_ADV_PAYMENT_REV_POST">CancelAdvancePaymentExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_BAPI_INVOICE_CREATE">PaymentExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_BAPI_ASSET_CREATE">AssetRequisitionExportRequest</xsl:when>

<xsl:when test="n1:ARBCIG_BATCH_PURREQ_DELETE">AggregatedRequisitionRevertBudgetRequest</xsl:when>

<xsl:when test="n0:BuyerStatusUpdateRequest">BuyerStatusUpdateRequest</xsl:when>

<xsl:when test="n0:BuyerCatalogStatusResponseMsg">CatalogStatusResponse</xsl:when>

<!-- includes stock create and delete -->

<xsl:when test="n1:ARBCIG_STK_RESERVATION">ReservationAsyncExportRequest</xsl:when>

<xsl:when test="n0:StockCheckRequest">StockCheckRequest</xsl:when>

<!-- Sourcing Master data -->

<xsl:when test="ns2:PIRPushRequest">PurchaseInfoRecord</xsl:when>

<xsl:when test="n0:BOMConfirmation">BomConfirmation</xsl:when>

            </xsl:choose>

        </xsl:variable>

        <xsl:variable name="systemId">

            <xsl:choose>

                <xsl:when test="$idocSysId_Addl != ''">

                    <xsl:value-of select="$idocSysId_Addl"/>

                </xsl:when>

                <xsl:when test="$idocSysId != ''">

                    <xsl:value-of select="$idocSysId"/>

                </xsl:when>

                <xsl:when test="$soapSysId != ''">

                    <xsl:value-of select="$soapSysId"/>

                </xsl:when>

                 <xsl:when test="$soapSysIdQuote != ''">

                    <xsl:value-of select="$soapSysIdQuote"/>

                </xsl:when>

                 <xsl:when test="$srcContractSysId != ''">

                    <xsl:value-of select="$srcContractSysId"/>

                </xsl:when>

                <xsl:when test="$srcContractServicesSysId != ''">

                    <xsl:value-of select="$srcContractServicesSysId"/>

                </xsl:when>  

                <xsl:when test="$slpSysId != ''">

                    <xsl:value-of select="$slpSysId"/>

                </xsl:when>

                 <xsl:when test="$pirSysId != ''">

                    <xsl:value-of select="$pirSysId"/>

                  </xsl:when>

                <xsl:when test="$bomSysID != ''">

                    <xsl:value-of select="$bomSysID"/>

                  </xsl:when>  

                <xsl:when test="$surSoapSysId1 != ''">

                    <xsl:value-of select="$surSoapSysId1"/>

                </xsl:when>

                 <xsl:when test="$buyerCatalogSURSysId != ''">

                    <xsl:value-of select="$buyerCatalogSURSysId"/>

                </xsl:when>

<xsl:otherwise>

<xsl:value-of select="$surSoapSysId" />

</xsl:otherwise>

            </xsl:choose>

        </xsl:variable>

        <xsl:variable name="docStd">

            <xsl:choose>

                <xsl:when test="$idocSysId_Addl != ''">IDoc</xsl:when>

                <xsl:when test="$idocSysId != ''">IDoc</xsl:when>

                <xsl:otherwise>SOAP</xsl:otherwise>

            </xsl:choose>

        </xsl:variable>

    <xsl:variable name="realmId">

         <xsl:choose>

            <xsl:when test="$sesSoapRealmId != ''">

               <xsl:value-of select="$sesSoapRealmId" />

            </xsl:when> 

            <xsl:when test="$soapRealmId != ''">

               <xsl:value-of select="$soapRealmId" />

            </xsl:when>

            <xsl:when test="$stockRealmId != ''">

               <xsl:value-of select="$stockRealmId" />

            </xsl:when>

            <xsl:when test="$buyerSURSoapRealmId != ''">

                <xsl:value-of select="$buyerSURSoapRealmId"/>

            </xsl:when>

            <xsl:when test="$buyerCatalogSURSoapRealmId != ''">

                <xsl:value-of select="$buyerCatalogSURSoapRealmId"/>

            </xsl:when>

         </xsl:choose>

        </xsl:variable>  

        <xsl:copy>

            <xsl:apply-templates select="@*"/>

            <xsl:copy-of select="."/>

        </xsl:copy>

        <!-- Output Variables -->

        <xsl:value-of select="hci:setHeader($exchange, 'docType', $docType)"/>

        <xsl:value-of select="hci:setHeader($exchange, 'systemId', $systemId)"/>

        <xsl:value-of select="hci:setHeader($exchange, 'documentStandard', $docStd)"/>

        <xsl:value-of select="hci:setHeader($exchange, 'realmId', $realmId)" />

    </xsl:template>

</xsl:stylesheet>


----------

import com.sap.gateway.ip.core.customdev.util.Message;

import java.util.HashMap;

import java.util.*;

import java.util.Map.Entry;

import com.sap.it.api.ITApiFactory;

import com.sap.it.api.ITApi;

import com.sap.it.api.mapping.ValueMappingApi;

import com.sap.it.spi.ITApiHandler;

import com.sap.xi.mapping.camel.valmap.VMStore;

import com.sap.xi.mapping.camel.valmap.VMValidationException;

import com.sap.xi.mapping.camel.valmap.ValueMappingApiHandler;

import com.sap.it.api.exception.InvalidContextException;

def Message processData(Message message) {

def map = message.getHeaders();

def messageLog = messageLogFactory.getMessageLog(message);

def docType = map.get("docType");

def systemID = map.get("systemId");

def documentStandard = map.get("documentStandard");

def realmID = map.get("realmId");

def xclientid = map.get("x-client-id");

message.setHeader("DocumentType",docType);

addCustomHeader(message,"Documenttype",docType);

message.setHeader("X-client-ID", xclientid);

addCustomHeader(message,"X-client-ID", xclientid);

message.setHeader("SystemID",systemID);

addCustomHeader(message,"SystemID",systemID);

message.setHeader("DocumentStandard",documentStandard);

addCustomHeader(message,"documentStandard",documentStandard);

addCustomHeader(message,"RealmID",realmID);

String eccURL=null;

def address;

def clientID;

def ccLocationID;

def credentialName;

try

{  

                def service = ITApiFactory.getApi(ValueMappingApi.class, null);

                def  anid = service.getMappedValue("Ariba","ANID", 'AribaNetworkID', "ECC", "ANIdentifier");

                message.setHeader("anid", anid)

                addCustomHeader(message,"anid",anid);

                String xcheck = false

                if (xclientid) {

                    xcheck = (anid.contains(xclientid));

                    message.setHeader('xcheck', xcheck);

                    addCustomHeader(message,"xcheck",xcheck);

                }

                if( xcheck == 'true' || anid == "ANID")

                {

                    if( service != null)

                    {

            if ( systemID == null || systemID == '' || systemID == 'SystemID')

                        {

                  address = service.getMappedValue("Ariba", "RealmID", realmID, "ECC", "Address");

                  clientID = service.getMappedValue("Ariba", "RealmID", realmID, "ECC", "ClientID");

                  ccLocationID = service.getMappedValue("Ariba", "RealmID", realmID, "ECC", "CCLocationID");

                  credentialName = service.getMappedValue("Ariba", "RealmID", realmID, "ECC", "Credentials");

                  }

                  else

                  {

            address = service.getMappedValue("Ariba", "SystemID", systemID, "ECC", "Address");

            clientID = service.getMappedValue("Ariba", "SystemID", systemID, "ECC", "ClientID");

            ccLocationID = service.getMappedValue("Ariba", "SystemID", systemID, "ECC", "CCLocationID");

            credentialName = service.getMappedValue("Ariba", "SystemID", systemID, "ECC", "Credentials");

            }

              }

              if(documentStandard == 'IDoc')

              {

                  eccURL = address+"sap"+"/bc"+"/srt"+"/IDoc"+"?sap"+"-"+"client"+"="+clientID;

              }

              else

              {

                eccURL = address+"sap"+"/bc"+"/srt"+"/xip"+"/arba"+"/"+docType+"/"+clientID;

              }

              docType

                }

                else

                {

                    throw new  Exception("Please maintain ANID in the Value Mapping correctly")

                }

}    

                catch(Exception e)

                {

                    messageLog.setStringProperty("Exception",e.toString())

                    return null;

                }

                message.setHeader("eccURL",eccURL);

            addCustomHeader(message,"eccURL",eccURL);

                message.setHeader("ccLocationID",ccLocationID);

                message.setHeader("credentialName",credentialName);

                 //addCustomHeader(message,"ccLocationID",ccLocationID);

                //addCustomHeader(message,"credentialName",credentialName);

            return message;

            }

def addCustomHeader(Message message, String key, String val) {

def messageLog = messageLogFactory.getMessageLog(message)

if (val != null) {

messageLog.addCustomHeaderProperty(key, val);

}

}

---------------------


ariba soap receiver for cig, cig ariaba soap cig sender; common one;





Popular posts from this blog

pss book : శ్రీకృష్ణుడు దేవుడా, భగవంతుడా completed , second review needed. 26th April 2024

pss book: గురు ప్రార్థనామంజరి . completed 21st july 2024

pss book: కధల జ్ఞానము read review pending. 25th june 2024