cancel
Showing results for 
Search instead for 
Did you mean: 

How to make a multiline Container for BPM

inigo_sacramento
Participant
0 Kudos

Hi.

I thing i've finished my BPM but i still have an error.

When i put a 'block', i must indicate a multiline element.

I uderstand that this element is my container that receives info from the XML file. the problem is that if i check this container as multiline, i get an error in the 'receiver'. i think 'receivers' don't allow multiline containers.

Can anyone help me?

Thanks.

Accepted Solutions (0)

Answers (2)

Answers (2)

inigo_sacramento
Participant
0 Kudos

Hi Manish. thats what i've done.

First i've created a loop. This loop is going to append (i hope so) in a multiline container. Then i will be able to use this multiline container in the 'block'.

Then in the block i will use a transformation in order to transform the message contained in the multiline container into the output structure (the one that will create the IDOC). Thats how i0'm going to make as many IDOCS as message i have in the XML outbound file.

I think this is ok .. isn't it?

Former Member
0 Kudos

Hi,

Are you getting multiple input message if yes than you can use recieve and collect step in loop. if there is only one message coming than what is the use of loop.

Change the occurence of Idoc message interface as 0..unbounded and have your transformation step before Block. the output of ur transformation step is multiline output.

keep a send step in block.

If you keep transformation step in parforeach block than it sends same message multiple times....

Hope I am clear..

Regards,

satish

inigo_sacramento
Participant
0 Kudos

Hi again. I finished the BPM and of course it isn't working.

Lets make again a summary of what i've done.

i have to simple message type.

source message :

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

<ns:datos_personales xmlns:ns="http://dga.es/demo_envio_masivo">

<datos>

<id>00001</id>

<nombre>john</nombre>

<apellido>smith</apellido>

</datos>

<datos>

<id>00001</id>

<nombre>michael</nombre>

<apellido>johnson</apellido>

</datos>

</ns:datos_personales>

the target message is like this :

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

<ns:datos_personales_fichero xmlns:ns="http://dga.es/demo_envio_masivo">

<datos>

<ID>00001</ID>

<nombre_apellido>john smith</nombre_apellido>

</datos>

<datos>

<ID>00001</ID>

<nombre_apellido>michael johnson</nombre_apellido>

</datos>

</ns:datos_personales_fichero>

My interface mapping ocurrencies are set 1:1

Then, the BPM is defined like this :

first i have a loop.

inside the loop, i have a receiver (to get the XML file) with its container. Then i have a container operation wich appends in its container every row of XML file (that's what i'm trying to do).

After this, i have a BLOCK. Inside the block there is a transformation step, which transforms XML row into target type via the interface mapping. Then i have a send step that will send the message via file adapter into a folder. Then the BLOCK fichises.

Is that correct?

Thanks.

manish_bhalla2
Contributor
0 Kudos

Hi Inigo,

One solution could be to receive the message in a container, then use a container operation step to append the received message into a multiline container. Then proceed with your processing.

Cheers

Manish