on 2020 Jun 29 10:08 AM
Hello
I am writing regarding to an integration issue we’re facing and can’t seem to find a solution.
We are currently trying to integrate SAP ByDesgin and an outside web service provider.
We would like to send Customer Invoices to the outside service provider. In the same time, we would like to use transformation explorer to change the output XML form with XSLT transformation.
There seems to be a problem performing these two actions at the same time. For example, when we use SAP original “Output Management XML Integration” communication scenario then the system only uses the original scenario and the XML won’t go through the XSLT transformation.
Is there any way to use our own communication scenario for the webservice and at the same time use the XSLT transformation for the XML?
What has been set up in the system:
If you have any more questions, please let me know!
Thank you!
Kind regards,
Siim
Request clarification before answering.
Hi Siim,
Please refer to this blog post about step-by-step how to custom XSLT transformation for output management message in detail.
https://blogs.sap.com/2020/10/16/sap-business-by-design-output-management-part-2/
Kind Regards, Yatsea
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I would really like an answer to this too. Whenever I put xslt file I get error for xml output. I even tried it with an example on an official SAP blog and still I get errors when I check output history
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hey Josip,
Please share a screenshot of Your "Transformation repository" configuration, I might be able to help you. Be sure that the version is Active and the XSLT is deployed+Validated. Also check the Output settings and be sure to add the transformation ID there also.
Regarding the external system there is a blog post - https://blogs.sap.com/2020/10/16/sap-business-bydesign-output-management/comment-page-1/
In the comments section You can see that it is not possible, they also created a Note regarding that.
Kind Regards,
Siim
Hello Siim thank you for the information and kind offer to help.
This is what it looks like. Whenever I trigger deployment I get an error, no matter what I put in the xslt file. I cant replace or delete the xslt file either so each time I have to delete the versions and transformations and create new ones.
This is the example I copy - pasted from Trinidads blog.
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<xsl:output encoding="UTF-8" indent="yes" method="xml" />
<xsl:strip-space elements="*" />
<xsl:template match="/">
<b1i-xs1:Invoice xmlns:b1i-xs1="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:n0="http://sap.com/xi/SAPGlobal20/Global" xmlns:prx="urn:sap.com:proxy:Q2Q:/1SAI/TAS369B8FA8185C943E30C3:711:2008/09/23">
<cbc:ID>
<xsl:value-of select="/n0:FormInvoiceRequest/CustomerInvoice/ID" />
</cbc:ID>
<cbc:DueDate>
<xsl:value-of select="/n0:FormInvoiceRequest/CustomerInvoice/Date" />
</cbc:DueDate>
<cac:PayeeParty>
<cac:PartyIdentification>
<cbc:ID>
<xsl:value-of select="/n0:FormInvoiceRequest/CustomerInvoice/BuyerParty/InternalID" />
</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>
<xsl:value-of select="/n0:FormInvoiceRequest/CustomerInvoice/BuyerParty/FormattedName" />
</cbc:Name>
</cac:PartyName>
</cac:PayeeParty>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyCode="USD">
<xsl:value-of select="/n0:FormInvoiceRequest/CustomerInvoice/PriceAndTax/NetAmount" />
</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyCode="USD">
<xsl:value-of select="/n0:FormInvoiceRequest/CustomerInvoice/PriceAndTax/TaxAmount" />
</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyCode="USD">
<xsl:value-of select="/n0:FormInvoiceRequest/CustomerInvoice/PriceAndTax/GrossAmount" />
</cbc:TaxInclusiveAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
<xsl:for-each select="/n0:FormInvoiceRequest/CustomerInvoice/Item">
<cac:Item>
<cbc:ID>
<xsl:value-of select="ID" />
</cbc:ID>
<cbc:Description>
<xsl:value-of select="Description" />
</cbc:Description>
</cac:Item>
</xsl:for-each>
</cac:InvoiceLine>
</b1i-xs1:Invoice>
</xsl:template>
</xsl:transform>
<br>
Unfortunately I have no experience with xslt transformations so I have been trying to just get anything here to see how the process works.
I found out the hard way that the only possible option is the standard arrangement for XML output, but I was thinking maybe putting a custom BO as the target, and then get the XML in a custom BO where I could then use it to call my custom scenario for external integration. That way I have a tightly coupled solution with no need for additional products and cost. Not sure if that is possible or if it is even a good idea. I cant just send the generated XML because the web service I am using (provided by 3rd party for e-invoicing) has to have username and password and some other parameters in the POST request body.
Thank you, kind regards
Josip
Hello,
I can see that the XSLT is not deployed or validated. These must be okay, otherwise it will show an empty transformation.
Please try to add another version of the transformation, set the old one to obsolete and upload the file again in the new version. If You set the status to "Active", It should be deployed and validated automatically. If this does not happen, there is something wrong with the xslt file.
Regarding the solution, I think the only option right now is to use an Integration Platform. Unfortunately, custom scenarios are not allowed.
Please vote for this if You want to see it happen!
https://influence.sap.com/sap/ino/#/idea/258859
Kind Regards,
Siim
This is my issue with XSLT. I uploadeda file that was not sucesfuly deployed. Then 2 days later I come and just press deploy and it gets deployed.
Then when I want to change the file, I upload a new file with minor changes and then again I cant deploy anything. It really feels like a bug.
When I upload the old file that worked and was sucefuly deployed it now tells me for that same file that it cant be deployed.
Do you perhaps have the information is it possible to upload only XSLT 1.0 or can we use XSLT 2.0 ?
Thank you
I cant find any official information, how did you come by that info that it only works with XSLT 1.0 ? It makes things a whole lot harder...
Did you experience the same difficulties when trying to change the version of XSLT file ? I create a new version of transformation and upload a file in it, I set the old version to obsolete and delete it. Even if the XSLT file is the exact same file I get errors when trying to deploy the new configuration.
Kind regards,
Josip
There is no official information, I created a ticket and got this information. It makes it harder, but it's still possible. I recommend using "Altova MapForce" for mapping.
I had some problems with the version also, but in the end worked fine for me. Try to add the new file after deleting the old version. Then set it the new version to active and "save and close".
Kind regards,
Siim
User | Count |
---|---|
90 | |
15 | |
10 | |
8 | |
4 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.