cancel
Showing results for 
Search instead for 
Did you mean: 

jdbc and rfc senario

Former Member
0 Kudos

hi experts,

presently i am working with jco to synchnize maxdb with r3. my senario is like that i have to send salesorder data to r3 system and change the status of salesorder on the success responce from the rfc such that the order has been created in sap.this will done every day 11pm.as we have a schedular . and we have to download the master data like customer,material.. ..from r3 to maxdb this will done for every sunday (once in a week) . it will delete the old master data and insert the fresh data .

is it posible the same with xi .i have a knowledge on xi that i have worked on file to file ,and database to file .. . but i have no knowledge on database to rfc and bpm .

regards

Guru...

Accepted Solutions (1)

Accepted Solutions (1)

former_member206760
Active Contributor
0 Kudos

Dear Bojja,

This is a typical scenario which can be implemented in XI through 2 interfaces :

1. Transaction data ( sales order ) inbound interface : from Db to R3....

here you will have to use a BPM....

have some field in the table which signifies the status of the records N new I intermedite and C completed

select say top 100 records from the DB table with status "N" and update there status with "I" after the sales order are created properly in the R3 update the status as "C"

a. receiver step

b. sync send

c. transformation step - to update only those records which were picked

d. async send - for final updation to "C"

2. Master data outbound interface - from R3 to Db- idoc to Jdbc

no bpm required , this is straight forward

Former Member
0 Kudos

Dear tarang,

thanq very much . as you told that for the master data it seems that without using bpm i can achive the same. but i have doubt that before inserting master into maxdb i have to delete the old data or i have to insert/update the delta .is it possible ?? and why we need a transsimission step for transactional data.

is it possible to implement backend push with xi that means suppose in r3 system somebody would change the customer address .as and when the data got changed in r3 it should come to the database system(max db).

regards

Guru....

Edited by: Guruvulu Bojja on Mar 27, 2009 6:02 PM

former_member206760
Active Contributor
0 Kudos

1. for master data : see technically u can either

1. insert

2. insert + update : if the record is not there it would be inserted

but if already there it is updated ...

My personal preference : do not update the records....just keep on inserting new records with a timestamp field in the table so that you can see that what data has changed over several records..

2. Transformation step : this will have the message mapping where the source message is the source structure same which is there in the 1st receive step

and target structure would be a structure which would be used to UPDATE the records

we will do the mapping such that source structure key fields will be mapped to target strcture so that only those records which were picked from source will be updated in the table..

hope this is clear

Giving points is another way to say thanks

Former Member
0 Kudos

Dear tarang.

thanq very much for your quick response. i would like to know is it possible to implement backend push for master data as was mentioned in the pervious post. and could you pls tell me clearly what are the total steps that i need to take in bpm to achive the transaction data exchange.

regards

Guru....

former_member206760
Active Contributor
0 Kudos

Dear Guru,

1. Receive step that would receive the data from the DB thru sender JDBC adapter

2. Sync send step that would send the data to R3 and take back the response

3. transformation step - here u have to specify the mapping, which will have source data type same as

the one you received in step 1 ....so that you can get the salesorder numbers that u picked and these numbers would be mapped to target structures key field which would then update only those sales orders that were picked from step 1 as "C"

i do not understand what do u mean by "is it possible to implement backend push for master data as was mentioned in the pervious post"

Former Member
0 Kudos

little correction:


3. transformation step - here u have to specify the mapping, which will have source data type same as
the one you received in step 1

Dear Tarang: do not you think the transformation step should take the message from the response of the R/3 ? so there the source message should be the response message received in step 2.

For other steps should be good.

Regards.

Liang

former_member206760
Active Contributor
0 Kudos

yup Lian you are right ....i modify the transformation step details as below

1. Receive step that would receive the data from the DB thru sender JDBC adapter

2. Sync send step that would send the data to R3 and take back the response

3. transformation step - here u have to specify the mapping, between the RFC response and target update structure where the key fields would be the sales order that were created OK in R3 and status will be changed to "C"

i do not understand what do u mean by "is it possible to implement backend push for master data as was mentioned in the pervious post"

Former Member
0 Kudos

Dear tarang,

backend push means if anybody change/create the masterdata in r3 system as and when the data got changed/created that should come to database system(max db ) . is it possible with xi ???

i think you have missed one point in the above explanation that is where/when i would change the status 'N' to 'I'.

regards

Guru....

Former Member
0 Kudos

Hi, Guru:

Very possible. Actually you are talking real time mode, rather than batch.

Whatever the change happens in Master data, there should be IDOC triggered and send to your database immedialtely after the change.

Regarding your second question, as Tarang mentioned, the BPM can have following steps


   
    Receive  -> Syn. Send -> Transformation -> Async Send
   

The last step Async send will update you database based on the response from your ECC or R/3.

Regards.

Liang

Edited by: Liang Ji on Mar 27, 2009 8:53 PM

Former Member
0 Kudos

Dear Ji,

In my scnario first i would read the records which are having the status 'N' and i would make those records status as 'I' that means those are in under process and once i got the success response from rfc i would make those records status as 'C' . this is all abt my scenario. as you suggested that once i got the confiramation then i will go for the change the status as 'C' but i have to change the status once i read the records from the database itself without waiting for the response from the rfc.

regards

Guru....

former_member206760
Active Contributor
0 Kudos

Dear Guru,

The case that you are mentioning that you want to change the status without waiting for RFC response , then in that kind of scenario you would not require a BPM..

the sender Jdbc channel itself will change the status from N to C ...but after that there are chances that the messages fail due to mapping issue or in RFC...then you should have proper alerting mechanism..so that you can ask the Db guys to change the status of XYZ records which went into error to N again so that they can be reprocessed..

Former Member
0 Kudos

Dear tarang,

i think you did't get me. my impression was suppose process would read 1000 records that are need to be sent to r3 system based on the status 'N' it would take assume that 1 mints to complete the process , in the mean time may be some other client would try to read the same data for update which are having the status N.it causes the data inconsistency . to avoid this i want make the records status 'I'(it tells us that are in underprocesss) that are presently in under process.once we got the response from the rfc i would change the status as 'C'.

regards

Guru...

former_member206760
Active Contributor
0 Kudos

That as i have specified can be done very easily...once you fetch say 100 records with status N in the select statement of JDBC sender channel...there is a update statement beneath that, where u have to specify the update statement which will immediately update the status of picked records from N to I..

after you get the RFC response you can change the status to C.

but you will have to use BPM in this case as specified by me

Former Member
0 Kudos

Dear tarang,

s i got it,but my problem is ,as i was new to bpm , not getting ideas to how to do the same with bpm. could you pls guid me abt wht are the steps i need to take in bpm like that.

regards

Guru..

Answers (3)

Answers (3)

0 Kudos

Hi ,

This is a  very old post here now. i wanted to know if this problem was resolved?

Cheers

kingsley

Former Member
0 Kudos

Better to split to two separate interfaces, one for master data and other for your tansaction data synchronization.

for your tansaction data, your secnario could be JDBC-> PI -> RFC, if you would like the response, put scenario as sync scenario, without BPM, you can also achieve this.

For master data interface, you can have different techs: e,.g. ABAP proxy -> PI -> JDBC.

Regards.

Liang

Former Member
0 Kudos

Yes this scenario can be done in XI.

If you like to have more details for the same ,Post the detail scenario like from where data for creation of sale order has to pick from?

and where the sales order response has to be updated once gets created in R/3

Rajesh