cancel
Showing results for 
Search instead for 
Did you mean: 

ebXML

Former Member
0 Kudos

Dear Forum

We are currently implementing e-invoice for Finland using the following concept:

1. Generate invoice IDOC via EDI output type in SAP ERP

2. Send the IDOC to XI

3. Map the IDOC structure to the XML structure (xsd) for the "Finvoice" standard.

Now we face the problem that we have to generate an XML file which contains several invoices and for each of the XML invoice we should get a kind of SOAP enveloppe header :

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd">

<SOAP-ENV:Header>

<eb:MessageHeader xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd" SOAP-ENV:mustUnderstand="1" eb:id="20021209133003285">

<eb:From>

<eb:PartyId>FI1120921800010210</eb:PartyId>

<eb:Role>Sender</eb:Role>

</eb:From>

<eb:From>

<eb:PartyId>NDEAFIHH</eb:PartyId>

<eb:Role>Intermediator</eb:Role>

</eb:From>

<eb:To>

<eb:PartyId>003717655142</eb:PartyId>

<eb:Role>Receiver</eb:Role>

</eb:To>

<eb:To>

<eb:PartyId>003703575029</eb:PartyId>

<eb:Role>Intermediator</eb:Role>

</eb:To>

<eb:CPAId>yoursandmycpa</eb:CPAId>

<eb:ConversationId></eb:ConversationId>

<eb:Service>Routing</eb:Service>

<eb:Action>ProcessInvoice</eb:Action>

<eb:MessageData>

<eb:MessageId>20060829-0105151141</eb:MessageId>

<eb:Timestamp>2006-08-29T11:07:39+02</eb:Timestamp>

<eb:RefToMessageId></eb:RefToMessageId>

</eb:MessageData>

</eb:MessageHeader>

</SOAP-ENV:Header>

<SOAP-ENV:Body>

<eb:Manifest eb:id="Manifest" eb:version="2.0">

<eb:Reference eb:id="Finvoice" xlink:href="20060829-0105151141">

<eb:schema eb:location="http://www.pankkiyhdistys.fi/verkkolasku/finvoice/finvoice.xsd" eb:version="2.0"/>

</eb:Reference>

</eb:Manifest>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Could you give me any hint how we could get this "header" into the XML file in XI ?

Many thanks

Regards Stefan

Accepted Solutions (0)

Answers (5)

Answers (5)

Former Member
0 Kudos

Hi Stefan Gruber ,

if you implemented the scenario please send the documents if you have any......

Regards,

h

Former Member
0 Kudos

Dear Prakash

No it's the opposite - I would like to ADD the following part to the XML File:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd">

<SOAP-ENV:Header>

<eb:MessageHeader xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd" SOAP-ENV:mustUnderstand="1" eb:id="20021209133003285">

<eb:From>

<eb:PartyId>FI1120921800010210</eb:PartyId>

<eb:Role>Sender</eb:Role>

</eb:From>

<eb:From>

<eb:PartyId>NDEAFIHH</eb:PartyId>

<eb:Role>Intermediator</eb:Role>

</eb:From>

<eb:To>

<eb:PartyId>003717655142</eb:PartyId>

<eb:Role>Receiver</eb:Role>

</eb:To>

<eb:To>

<eb:PartyId>003703575029</eb:PartyId>

<eb:Role>Intermediator</eb:Role>

</eb:To>

<eb:CPAId>yoursandmycpa</eb:CPAId>

<eb:ConversationId></eb:ConversationId>

<eb:Service>Routing</eb:Service>

<eb:Action>ProcessInvoice</eb:Action>

<eb:MessageData>

<eb:MessageId>20060829-0105151141</eb:MessageId>

<eb:Timestamp>2006-08-29T11:07:39+02</eb:Timestamp>

<eb:RefToMessageId></eb:RefToMessageId>

</eb:MessageData>

</eb:MessageHeader>

</SOAP-ENV:Header>

<SOAP-ENV:Body>

<eb:Manifest eb:id="Manifest" eb:version="2.0">

<eb:Reference eb:id="Finvoice" xlink:href="20060829-0105151141">

<eb:schema eb:location="http://www.pankkiyhdistys.fi/verkkolasku/finvoice/finvoice.xsd" eb:version="2.0"/>

</eb:Reference>

</eb:Manifest>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

0 Kudos

Hello Stefan,

I'm also working with Finvoice and is supposed to send the soap message as a file via file/ftp adapter.

I have managed to create the Envelope correctly via an xslt mapping but I'm struggling with how to add the payload to the message. It needs to look as shown below, (I'm just showing the essential part)

My problem is that I don't know how to add the doctype part via xslt:

<?xml version="1.0" encoding="ISO-8859-15"?>

<!DOCTYPE Finvoice SYSTEM "Finvoice.dtd">

I get validation errors when adding this. The content of the payload looks good.

Did you have the same requirements?

Do you know how it can be solved?

</SOAP-ENV:Header>

<SOAP-ENV:Body>

<eb:Manifest eb:id="Manifest" eb:version="2.0">

<eb:Reference eb:id="Finvoice" xlink:href="1017000018">

<eb:schema eb:location="http://www.pankkiyhdistys.fi/verkkolasku/finvoice/finvoice.xsd" eb:version="2.0"/>

</eb:Reference>

</eb:Manifest>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

<?xml version="1.0" encoding="ISO-8859-15"?>

<!DOCTYPE Finvoice SYSTEM "Finvoice.dtd">

<?xml-stylesheet type="text/xsl" href="Finvoice.xsl"?>

<Finvoice Version="1.2">

<SellerPartyDetails>

<SellerPartyIdentifier>SellerPartyIdentifier23456789012345</SellerPartyIdentifier>

<SellerOrganisationName>SellerOrganisationName3456789012345</SellerOrganisationName>

// Best regards Hans

Former Member
0 Kudos

Hi,

According to the Q what i think is you need to match on the namespaces of the SC to the XMLSchema and validate it first on XMLspy and i guess if it as related XMLschema which are dependent.. then you need to tie them together before uploading to External Definations.

Amaresh

Former Member
0 Kudos

Hi,

Maybe try to do like that:

IDOC (occurency: 1) to File adapter (add this envelope in xsd editor) or SOAP if it's possible (occurency: many) using message split on adapter engine. You need to have SP14 or above.

Regards,

wojciech

former_member206604
Active Contributor
0 Kudos

Hi,

If I understood correctly.. you are looking for removing the SOAP Envelope form the above payload given right... In that case you can go for XSLT mapping to remove that. Here is a sample XSL for removing the SOAP envelope

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
<xsl:copy-of select="Envelope/Body/EmployeeMsg"/>
</xsl:template>
</xsl:stylesheet>

You might need to handle the namespaces to make this work as expected.

Regards,

Prakash