cancel
Showing results for 
Search instead for 
Did you mean: 

Four DTD's into one message

robert_lippmann
Explorer
0 Kudos

I have to create one message, but I do not have one single format, but four DTD's which have to put together.

My scenario in detail: I have to create a RosettaNet-Message for communication with my business partner, but since we have only a few per year, it is not really reasonable to pay the licence for the RosettaNet adapter.

Our business partner provided DTD's for preamble, service header, delivery header and PIP3A4. I implemented this scenario in business connector some years ago, where I 'glued' the DTD's into one string. This works.

Now I want to migrate this interface to XI, but how ?

Regards,

Robert

Accepted Solutions (0)

Answers (4)

Answers (4)

robert_lippmann
Explorer
0 Kudos

Thanks for the answers.

I have to send one message. I thought about using the PIP-Message as source for mapping, since this is the 'real' message, and map with XSLT the header structures to it, but this is not really nice.

I do not understand tip with the existing XML document. I use a message I send today as mapping source ?

Regards,

Robert

Former Member
0 Kudos

Hi,

Yes, in Message Mapping, you can import an existing XML document as the source of the mapping. The element names of the XML document will be used during mapping.

Next to the question mark for selecting source and target message types, there is a down arrow. Click on it, and you can import the XML document.

Regards,

Bill

robert_lippmann
Explorer
0 Kudos

If I create a new external definition combining the four, I need to create a root element, which is not anymore a message according to RosettaNet standards.

Am I wrong ?

Today I send a string like this:

<!DOCTYPE Preamble SYSTEM "Preamble_MS_V02_00.dtd"> <Preamble> .... </Preamble>

<!DOCTYPE DeliveryHeader SYSTEM "DeliveryHeader_MS_V02_00.dtd"> <DeliveryHeader>.... </DeliveryHeader>

<!DOCTYPE ServiceHeader SYSTEM "ServiceHeader_MS_V02_00.dtd"> <ServiceHeader> < </ServiceHeader>

<!DOCTYPE Pip3A4PurchaseOrderRequest SYSTEM "3A4_MS_V02_03_PurchaseOrderRequest.dtd"> <Pip3A4PurchaseOrderRequest> ... </Pip3A4PurchaseOrderRequest>

The string is a concatenation of the definitions I got.

Robert

bhavesh_kantilal
Active Contributor
0 Kudos

Hmm.. do you want this to be sent as a single message to the target adapter or can you send multiple messages? If you can send multiple messages wouldnt Multi Mappng without BPM do the trick?

Another option would be to use any other mapping other than Graphical like Java Mapping so that the output / input need not confirm to the Source / Target XSD.

Regards

Bhavesh

Former Member
0 Kudos

Hi,

Yes, you will need a root element, which I though you already have when you "glued" the 4 DTDs to work with the BC.

Another possibility is that if you already have an XML document from Rosettanet, you can use this XML document as the source for Message Mapping. During configuration, you can use any Message Interface and Interface Mapping, since XI does not do any XSD validation. Whatever the source message, it will be passed to your mapping program.

Regards,

Bill

Former Member
0 Kudos

Hi,

Have you tried this?

Since you have already "glued" together the 4 DTD's into 1, you can create an External Definition in Interface Objects and import the DTD.

Once imported, you can use it in your Message Mapping, and also in Message Interface.

Regards,

Bill

bhavesh_kantilal
Active Contributor
0 Kudos

Not sure I got the entire requirement.

1. DO you want to make these 4 DTD's into a single DTD ? If yes you would need to create a new XSD and refer to these other 4 DTD's in this XSD etc.

2. If you can send these message individually to the target you can use MultiMapping without BPM ,i.e, Enahnced Interface determination.

Regards

Bhavesh

PS . If the answer did not make sense,can you give more details on the problem here?