cancel
Showing results for 
Search instead for 
Did you mean: 

3 Folders in one MDM to 3 R/3s one by one. How to?

Former Member
0 Kudos

We have MDM project going on and XI system connectivity is a part of that project.

I need to connect 3 directories in one MDM system to  3 different R/3 systems one by one. All 3 connections should process the messages in the same way.

One to one integration process works fine, but then, when I'm trying to connect the second pair XI system complains about sender agreement. Sender agreement allows to use only channel  at the same time. Thus system doesn't allow me to use the same sender agreement twice. If I deleted this sender agreement system connected the second pair: MDM CChannel to R/3 Idoc  CCannel and connection of the first pair dropped.

Thanks for your answers,

Dmytro

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Dmytro,

As you mentioned below, you are trying to pick up three different files from 3 differernt directory. You cannot configure one file adapter to pick up files from three differet location eventhough file structure is same. Better would be tocreate three different adapters to pick up files from 3 different location. In that case you will not get any error.

Can you please brief your scenario again if I have understood wrong.

Nilesh

Former Member
0 Kudos

Nilesh,

Thanks for the fast response!

Communication channels created on the both sides: 3 with File type on MDM side and 3 with Idoc type on R/3(because we have 4.6c). XI wizard wants to use the same Sender Agreement with the same CCannel for all the R3s...

I configured the second one to one manually. After that the first process failed.

D.

Former Member
0 Kudos

Oh...I got it...for sender side you have only one Business System / Service.

I think you have two options, rather than creating file on 3 different folder on same system, dump all files in one folder and configure your fileadapter to pick up all files. If you have different file name you can use . for filename.

Second option would be creating 3 diff. Business Service for same system.( Which is not good idea) and then you can have 3 differnt sender agreement with 3 diff. file adapter.

Nilesh

Former Member
0 Kudos

You just got 6 points:)

About your first Idea. How can system define what file should be sent to what R/3?

You second idea looks fine. Can you explain me please what did you mean in details?

D.

Former Member
0 Kudos

Thanks for Points..!!

You can write your own UDF to read input file name. You can assign this to target field.( You can create another tag "FileName" in final structure). In receiver determination you can put condition on payload...here FileName = "X1" then R/3-1 if X2 then R/3-2...

Code to read input file name using UDF is as follows...

///////*****************************************************

//write your code here

// Function reads the input file name base on cc paremeters and returns it.

DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);

DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");

String ourSourceFileName = conf.get(key);

return ourSourceFileName;

/////*****************************************************

2. As I suggested option is to create different Business Service not Business system where you do not have to specify technical details. And then you can have different sender agreement for each system where you can specify file adapter for every input directory...

But first approach is better..

Nilesh

Former Member
0 Kudos

+6

Nilesh,

Your last idea is a fantastic!

Message was edited by:

Dmytro Golynkin

Former Member
0 Kudos

you mean to say creating different Business Service? or reading input file name?

Nilesh

Former Member
0 Kudos

I want to try both and see what way is better?

Former Member
0 Kudos

Okay..

1. Creating differnt Business Service..

Log on to your Configuration(IB). Expand your configuration scenario.Under Business service create 3 new business service. BSV_DV2, BSV_HUD and BSV_CCD.

Assign communication channel you created on each Business Service and manualy create Sender agareement for every Business system.

Thats all

In second option..

Goto Message mapping, create new UDF and copy paste code as mention above. Create new filed in target strcuture "FileName" assign output of UDF to tager structure field "FileName"

Now in receiver determination, Put condition for field FileName and correponding service.

Thats all

Hope this will solve your problem.

Nilesh

Former Member
0 Kudos

Thanks!

Answers (0)