cancel
Showing results for 
Search instead for 
Did you mean: 

File-to-Idoc, work flow trigger

Former Member
0 Kudos

Hi All,

I need on help in taking decision of the following scenario.

1) I have a file contains multiple records

2) If record starts with 00-02 i need to send the information to idoc processing

3) If others (03-04 etc) I need to send the record information to particular mail-ids on base of 03 0r 04.

4) If any record does not supprot mapping then also i need to send ionformation to particular persons.

It would be greate help in taking design decision.

Thanks and regards,

venu.

Accepted Solutions (0)

Answers (3)

Answers (3)

STALANKI
Active Contributor
0 Kudos

Venu,

You do not need any splits.

I suggest you to have 3 reciever determainations and 3 interface mappings which will generate the target mapping and in the condition editor chk the values of target interface and route it.

1-File to idoc->Mapping will generated only records with 02-03 as expected.

2-File to Mail->mapping will generate records with 03-04 required for the mails.

3.File to Mail2->mapping will generate records with other than 00-04 ..

In the content based routing route it to the reciever if there are values in the target XML node..:)..LIKE 00 OR 01..ETC.

I donot like to use BPM in this case.

That should solve your problem easily.

bhavesh_kantilal
Active Contributor
0 Kudos

Hi venu,

This scenario you are trying can be done using <b>CONDITIONAL RECEIVER DETERMINATION and RB SPLIT

without using a BPM.</b>

To do this,

1.create your mapping program that will map the information from the source file

into the destination idoc. This has to be a 1:N split. Just make sure that the destination message type and message interface are are of occurence N.

2. Also, you will have 2 destination interfaces and <b>2 interface mapping, one for the IDOC and one for the mail.</b>

Now, there are a few essential steps in your configuration,

1. In the receiver determination, specify the 2 receiver systems, one for your IDOC and the other for your MAIL.

2. Now, you will have a <b>condition window</b>. Just type the condition on the basis of which the reciver has to be determined for the mail and the idoc business system. Just remember that the <b>condition can be specified only for the source message.</b>

2. In the Interface Determination, you have an option called RB CLASSIC and <b>RB SPLIT.</b>To do a 1:N split, you will have to do a RB_SPLIT.

Thus, your solution can be devised without a BPM.

Hope this helps,

Do let me know if you have any clarification,

Regards,

Bhavesh

PS : This will workonly on SP14 and abover.

manish_bhalla2
Contributor
0 Kudos

Hi Bahvesh,

Nice one ! I was sure there was an easier way to do it than what I had proposed... but I couldn't think of it at the moment.

Just one query on your solution. Would we really want to do a split at the receiver determination? If I understand Venu correctly, you will have all types of records simultaneously in the same message. So you might want to have the same receiver, but just use a 4-way message split in the mapping to cater for all possibilities.

Also, since the absence of a particular type of record might just crash the mapping... care will have to be taken to handle exception conditions in the mapping itself.

What do you think?

Cheers

Manish

Former Member
0 Kudos

Hi Bhavesh,

Thank u for ur response.

Regarding mail sending do I need to have any

pre-requsisites like building target interface and mapping etc.

Regards,

venu

bhavesh_kantilal
Active Contributor
0 Kudos

Hi Venu,

//Regarding mail sending do I need to have any

pre-requsisites like building target interface and mapping etc.

Yes, you will have to do all the steps including mapping, creating of inbound interfaces, communication channel, datatype, ,message type ,etc

Regards,

bhavesh

Former Member
0 Kudos

Hi Bhavesh,

RB-SPLIT option does not support IDoc adapter. I guess this can be done only using BPM.

Check this thread

<a href="http://help.sap.com/saphelp_nw04/helpdata/en/42/f3b31d48fb1bc8e10000000a11466f/frameset.htm">http://help.sap.com/saphelp_nw04/helpdata/en/42/f3b31d48fb1bc8e10000000a11466f/frameset.htm</a>

Regards,

Dhana

Former Member
0 Kudos

Hi Bhavesh,

I saw one of ur posts regarding RB_SPLIT.

sayinmg....

For your scenario, instead of going for the complexity of RB_SPLIT, one solution i would suggest is, creating to inbound interfaces, interface mapping..etc.

U have given this solution in case of of two inbound RFCs.

Is it possible in my case also.

Cheers,

venu

bhavesh_kantilal
Active Contributor
0 Kudos

Hi Venu,

I think there is a small problem which I didnt know about and has been correctly been pointed out by Dhana.

In the link, under the topic Pre requisites,

http://help.sap.com/saphelp_nw04/helpdata/en/42/f3b31d48fb1bc8e10000000a11466f/content.htm

<b>Messages that result from the split in a mapping-based message split are sent using one Adapter Engine. For this reason, only those adapters that run on the Adapter Engine are supported</b>

IDOC runs on the ABAP engine and not on the J2EE engine. As this note says, RB_SPLIT is possible only for adapters running on J2EE engine and what this implies is that for IDOCs, the solution I have suggested will unfortunately not work.

I had tried the RB_SPLIT scenario from a file adapter and not for an IDOC adapter. I think we will have to go for a solution based on a BPM if you want to use an IDOC adapter.

I apologize for mis leading you. I hope you understand that the forum is a place to learn and mistakes are bound to happen.

Regards,

Bhavesh

Former Member
0 Kudos

Hi bavesh,

No problem..

Pls guide me..

So the solution u have given works in case of Idoc to file right?

Now could u pls give me a consolidated solution? Pls don't mind bcz I'm bit of confusion.

Regards,

venu.

bhavesh_kantilal
Active Contributor
0 Kudos

Hi Venu,

The soltuion I suggested <b>will not work with an IDOC adapter at all</b>. What I tried was a file to file scenario using RB_SPLIT and conditional receiver determination.

Newayz, for your solution using BPM, these are the steps you need to follow,

1. Receive Step --> This is used to collect your source file.

2. Transfrom Step --> This will split your 1 message into N messages. The container element for the target should be multiline as it is a 1:N split

3. Block step --> Each of these N messages have to be passed , so use a block with either FOR EACH or PAR FOR EACH.

4. SELECT step --> this is used to determine whether the message is to be sent to mail or idoc adapter. the select step wil have 2 branches. One for IDOC and other for mail. The condition has to be specified for the branches. You can keep mail as default branch.

5. SEND step --> Each of the branch of the SELECT Step with have a send step. One send will be for IDOC and the other for MAIL.

Remember, your block will contain a SELECT and your SELECT will contain 2 send in 2 different branches.

Hope this solution helps you,

Regards,

Bhavesh

Former Member
0 Kudos

Bhavesh,

We are not able to find the SELECT step. Can you guide me what is the SELECT step.

thx,

Siva

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

Sorry for the confusion here. its not a SELECT step, but called the SWITCH step.

http://help.sap.com/saphelp_nw04/helpdata/en/62/dcef46dae42142911c8f14ca7a7c39/content.htm

Regards,

bhavesh

manish_bhalla2
Contributor
0 Kudos

Hi Venu,

I can think of one option for you (although it is slightly tedious to implement). Use a BPM process with the following logic...

1. The receive step should receive your original message.

2. Use step type Fork with 4 branches.

3. In the 1st branch, use a message mapping (transformation step) to filter out records of type 00-02. The next step on that branch will be to send the message for Idoc processing.

4. In the 2nd branch, use another message mapping (transformation step) to filter out record types 03. THe next step on this branch can be to trigger an alert ( this will send an email to the concerned person.

5. The 3rd branch will be the same as the 2nd, just filter for record types 04.

6. The 4th branch will be to filter out all the remaining record types using a mapping. Then an control step can trigger an alert to the relevant people.

you will need to have exception handling for each of these branches, else if there are no records of a certain type, it will crash your BPM process.

I am sure you can refine this idea further.

Cheers

Manish

bhavesh_kantilal
Active Contributor
0 Kudos

Hi Manish/ Venu,

The RB SPLIT option is done in the INTERFACE DETERMINATION and not in RECEIVER DETERMINATION.

Let me sum the solution to clarify the doubts,

1. Message Mapping

One between the source file and the destination idoc messagetyep

one between the source file and the destination mail messagetype.

2. Like wise 2 Interface mapping.

occurence of both message types and message interface has to be set to unbounded during message mapping and interface mapping.

Now, in cofiguration XI first does RECEIVER DETERMINATION--> INTERFACE DETERMINATION and then INTERFACE MAPPING.

So, you give the condition in the RECEIVER DETERMINATION on the basis of which the receiver is choosen and then you create the 2 interface determination. one for each Idoc and the mail.

Prior to SP14, when 1:N split was to be done, you had to go for a BPM. Now, the same is not needed due to presence of RB_SPLIT.

Check this link on how RB SPLIT works,

http://help.sap.com/saphelp_nw04/helpdata/en/42/ed364cf8593eebe10000000a1553f7/content.htm

Any further clarification guys??,

Regards,

Bhavesh

Message was edited by: Bhavesh Kantilal