cancel
Showing results for 
Search instead for 
Did you mean: 

Mapping Issue in JDBC-->XI-->RFC

Former Member
0 Kudos

Hi All,

I have developed a scenario, where data flow is as follows...

sql->JDBC sender-> XI->RFC Reciever---> SAP.

Now, the data is retrieved from SQL and queued in Message monitoring.

I am unable to pass it to RFC reciever and then to SAP.

I hope it may be problem with the message mapping.

In this scenario, what should be the message mapping...???

Can anyone explain me how many mappings needed...????

Regards

Pavan

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi

If the tables are getting updated using the RFC alone and data is getting picked by the JDBC adapter, check for the configurations of the RFC Adapter, whether the connection parameters are correct.Also if there is a problem with Receiver Agreement, try recreating it and let us know the error messages.

Thanks

Former Member
0 Kudos

Hi Monika,

1. SAP table gets updated if, i pass the values in Function module.

2. Mapping in the XI is perfect, as i have tested the same in XI.

3. IN SXMB_MONI, the messages are queued up and not reaching SAP.

4. In Integration Directory>Tools->Test Configuration, i have tested the configuration taking payload from SXMB_MONI.

Its giving error message as follows....

Receiver Agreement

... (4 lines)

I have created Reciever agreement again...even restarted the server....cleared cache...

Still the same error occurs............

Any idea to resolve this sort of weird errors....???????

Regards

Pavan

Former Member
0 Kudos

Hi

First of all is your FM Remote Enabled??

Then check the mapping using the payload of the inbound message i.e. IDoc coming into XI.Copy the inbound payload from SMMB_MONI and paste it in maping editor.

Recreate receiver Agreement and Interface Agreement and give it a try..and let us know

Thanks

Former Member
0 Kudos

The Function Module is Remote enabled.

The given connection parameter in RFC adapter are perfect and the no of conncetion is 4. Now i am alone accessing SAP server.

I have tested message mapping with the payload data. Its perfectly mapped to reciever message type.

I have deleted the Reciever Agreement and again created.

When tested in Integration Directory->Tools->Test Configuration using the payload from SXMB_MONI, following error message is displayed.

Receiver Agreement

... (4 lines)

Former Member
0 Kudos

Hi

I hope you are not suing bpm or any context objects or any conditions in receiver Agreement.

You may proceed by checking the following

1. Receiver agreement

2. Business system with the communication channel

3. Proper selection of Interfaces while configuring ID

Also what is the error in moni.Audit log of Sender is completely successful or not and how about receiver CC.

Thanks

Former Member
0 Kudos

I am not using any BPM or context objects.

Business systems are properly associated with the communication channels.

Doubt about the configuration.....

sql>sender jdbc-> Xi Reciever RFC---->Sap

Integration Repository:



data types:
sender_dt, reciver_dt

Message types:
sender_mt, reciever_mt

Imported RFC:
ZBAPI_pavan
(Reciver_dt will be having same structure as ZBAPI_pavan)

Message Interfaces:
jdbc_ob_mi (o/b, Async. sender_mt)
rfc_ib_mi (I/B, Async, reciever_mt)

Message Mapping:
sender_mm
(Mapped sender and reciever message types)

Interface Mapping:
jdbc_rfc_im
(Source Interface: jdbc_ob_mi and Target Interface: rfc_ib_mi)
(Source message: sender_mt, mapping pgm: sender_mm and Target mesg: reciever_mt)


Integration Directory:



Sender (sql to XI)
Business Sys: JDBC_SENDER_BS
Comm Channel: JDBC_SENDER_CC

Reciever (XI to SAP)
Business Sys: RFC_RECIEVER_BS
Comm Channel: RFC_RECIEVER_CC

Reciever Det:


In this Buss Sys wil be sender business sys.
Interface wil be jdbc_ob_mi... (sender Outbound)
Configured Recievers--->service = RFC_RECIEVER_BS (Reciever Buss sys)

Configuration Overview->RFC_RECIEVER_BS->RFC_IB_MI, jdbc_rfc_im, rfc_reciever_cc

Interface Determination:


Sender---> Buss Sys: JDBC-SENDER_BS, Interface: jdbc_ob_mi,
Reciever--->Buss Sys: RFC_RECiever_BS
Configured inbound interfaces:
I/b interface: rfc_ib_mi, interface mapping: jdbc_rfc_im

Sender Agreement:


Sender--> Buss Sys: jdbc_sender_BS, interface: jdbc_ob_mi,
sender comm channel: JDBC_SENDER_CC

Reciever Agreement:


Sender-->service: jdbc_sender_bs

Reciever:

service: rfc_reciever_bs,

Interface: rfc_ib_mi

With the above configuration, messages are qued up in the SXMB_MONI.

They are not passing into SAP.

When i tested in Configuraion->Tools-->Test Configuration,

error is displayed as follows.... Error is at Interface Determination and Mapping.

Interface Mapping

... (109 lines)

can any one Help me out.....?

Mappings are perfectly alright..

I have created interface det, rec/sender agreements again anad again.....

Restarted server...cleared cache...

Kindly go through above configurations and help m ein solving this problem....Any help...????

Message was edited by:

Pavan Sanganal

Former Member
0 Kudos

Hi

Now i feel you are getting problems in Interface Mapping.Also there is null pointer exception.What values are you passing to the RFC.That needs to be checked.Pass only those values that can be accepted by the fields of RFC.

Also, you shouldnt have created any receiver-dt coz you are importing the RFC that could be directly taken as a message interface.Anyways that should not be the problem.

Thanks

Former Member
0 Kudos

Hi

Also the format of the data values that you are sending to the RFC should be the one accepted by it.Ex-if you send the date like 2007/10/10 and the RFC accepts it like 10.10.2007, then there will be a problem.at first you can avoid check with minimal fields.

Thanks

Former Member
0 Kudos

I have removed Date and Time values from dat types and created the sender/reciever agreements again.

Now no errors found in the Test Configuration.

All the messages are populated in the SXMB_MONI.

But not updating the SAP tables. It means messages are coming out of XI and unable to pass into RFC or the RFC itself has flaws to update the database table.

In RFC, i have 3 import parameters as Employee_id, Proj_id and activity_id. Manually, i am able to update the tables using the same payload data coming out from XI.

But with XI, RFC is not working.... In source code of RFC, i have coded as follows...

tables: zpoc_time, catsdb.
data: wa type zpoc_time.
data: i_zpoc type standard table of zpoc_time with header line.

move emp_no to i_zpoc-empid.
move proj_id to i_zpoc-projid.
move act_id to i_zpoc-actid.
append i_zpoc.
clear i_zpoc.

data: v_counter type zpoc_time-counter.
select max( counter ) into v_counter from zpoc_time.
if sy-subrc <> 0.
v_counter = 1.
else.
v_counter = v_counter + 1.
endif.

loop at i_zpoc.
i_zpoc-counter = v_counter.
modify i_zpoc.
v_counter = v_counter + 1.
clear i_zpoc.
endloop.

insert zpoc_time from table i_zpoc ACCEPTING DUPLICATE KEYS.
commit work.

Unable to trace out the error causing this problem..... Any Help from your end?

Regards

Pavan

Former Member
0 Kudos

hi pavan,

if the messages are successfully processed in sxmb_moni, check the audit logs in communication channel monitoring and select the RFC channel

regards

Ramesh P

Former Member
0 Kudos

I have checked the communication channel's error logs.

The sender JDBC adapter is not having any errors. Its showing as messages have been successfully delivered.

In the Reciever RFC end, there is an error as follows...

Error: 2020-10-05

Error while processing message to remote system: com.sap.aii.af.rfc.core.client

RFC client exception: function template from repository was....

What is this error...??????????

Any Idea?

Regards

Pavan

nisarkhan_n
Active Contributor
0 Kudos

Hi pavan

question 16 from SAP note : 730870

sound silly but still check

In Receiver Agreement,make sure that the interface of receiver is a SAP function module,the namespace of receiver is urn:sap-com:document:sap:rfc:functions,

of course, the receiver CC should be RFC type.

In interface determination,the inbound interface should be the SAP function module above,and you have to assigna interface mapping for it.

regards

Nisar

Former Member
0 Kudos

Hi

What is complete Error??I think now we are close to the solution..

Thanks

Former Member
0 Kudos

Hi Nisar,

I checked both of your suggestions for reciever agreement and interface determination. If i do so, its giving null exception errors in ID>Tools->Test configuration.

Regards

Pavan

Former Member
0 Kudos

The error is with RFC reciever communication channel.. In runtime>comm channel monitoring-> short log--->

Error: 2020-10-05

Error while processing message to remote system: com.sap.aii.af.rfc.core.client

RFC client exception: function template from repository was

(After "was" there is nothing.....The error message concluded...)

Regards

Pavan

Former Member
0 Kudos

Hi

Check the specified interface mapping in the receiver determination.

Thanks

Former Member
0 Kudos

In reciever determination, the service is reciever business system.

there is no interface mapping defined.

The communication channel is reciever communication channel.

If interface mapping is to be entered, which is the correct interface mapping to be entered...????

In the repository, there is an interface mapping object called JDBC_RFC_IM

I am unable to enter this interface mapping in reciever determination.....

Regards

Pavan

nisarkhan_n
Active Contributor
0 Kudos

Pavan

Check this

Q 16:

While sending a message to the RfcAdapter the error "... functiontemplate from repository was <null>" is shown. Which reasons are possible?

from

Note 730870 - FAQ XI 3.0 RFC Adapter

i had got this error in QA box as the required RFC was not transported there...so the AF might not be able to find the required RFC there....it's just a suggestion..

pls check the above Note 730870 Q16..i think it should help you

Former Member
0 Kudos

hi pavan,

Select your receiver Business System and in Receiver Tab of your business system select the inbound interface created for this scenario, then you will be able to enter the interface mapping in your receiver determination.

Also check the sending Business system and in Sender Tab check whether there is sender interface you have created for this scenario

regards

Ramesh p

Former Member
0 Kudos

Now, there is no error message in the short log for reciever communication channel.

The short log displayes as follows....

Receiver channel 'RFC_RECIEVER_CC' for party '', service 'TR2' (internal name 'RfcClient[RFC_RECIEVER_CC]')

Client data: {jco.client.lang=EN, jco.client.snc_mode=0, jco.client.client=800, jco.client.passwd=******, jco.webas.ignore_jdsr_error=1, jco.client.user=IBABAP, jco.client.sysnr=00, jco.client.ashost=172.16.9.19}

Repository data: {jco.client.lang=EN, jco.client.snc_mode=0, jco.client.client=800, jco.client.passwd=******, jco.webas.ignore_jdsr_error=1, jco.client.user=IBABAP, jco.client.sysnr=00, jco.client.ashost=172.16.9.19}

Current pool size: 0, maximum pool size : 4

In SXMB_MONI, all the messages are queued up...

The RFC has the code as follows....

move emp_no to i_zpoc-empid.
move proj_id to i_zpoc-projid.
move act_id to i_zpoc-actid.

append i_zpoc.
clear i_zpoc.
data: v_counter type zpoc_time-counter.
select max( counter ) into v_counter from zpoc_time.
if sy-subrc <> 0.
v_counter = 1.
else.
v_counter = v_counter + 1.
endif.

loop at i_zpoc.
i_zpoc-counter = v_counter.
modify i_zpoc.
v_counter = v_counter + 1.
clear i_zpoc.
endloop.

insert zpoc_time from table i_zpoc ACCEPTING DUPLICATE KEYS.
commit work.

How exactly RFC executes this code, when the messages start reaching RFC...????

The logon parameters are correct in the RFC adapter.....

Any idea...????

Regards

Pavan

Former Member
0 Kudos

Hi

Now clear up the queues and try sending fresh messages.Cache Refresh

Thanks

nisarkhan_n
Active Contributor
0 Kudos

refresh all the queues and rerun it....

Former Member
0 Kudos

hi pavan,

There is still error you can see it in log

<i>Receiver channel 'RFC_RECIEVER_CC' for party '', service 'TR2' (internal name 'RfcClient[RFC_RECIEVER_CC]') Client data: {jco.client.lang=EN, jco.client.snc_mode=0, jco.client.client=800, jco.client.passwd=******, <b>jco.webas.ignore_jdsr_error=1, </b>jco.client.user=IBABAP, jco.client.sysnr=00, jco.client.ashost=172.16.9.19}

Repository data: {jco.client.lang=EN, jco.client.snc_mode=0, jco.client.client=800, jco.client.passwd=******, jco.webas.ignore_jdsr_error=1, jco.client.user=IBABAP, jco.client.sysnr=00, jco.client.ashost=172.16.9.19}

Current pool size: 0, maximum pool size : 4</i>

Check whether are you able make an RFC connection with the R/3 System from XI using the same username pwd given in the channel

regards

Ramesh P

Former Member
0 Kudos

I am able to connect R/3 from XI and XI from R/3.

Cache has been refreshed.

Still unable to update the Ztable.

One doubt....

In reciever determination, i have defined reciever business system.

In configuration overview--->Interface mapping is not getting displayed.

Based on the reciever Business system, the configuration overview is populating reciever message interface and reciever communication channel.

Really worried to resolve this issue.....

Regards

Pavan

Former Member
0 Kudos

hi pavan,

>>><i>In configuration overview--->Interface mapping is not getting displayed.</i>

In overview it should get displayed...

It Should show

Sender Agreement

Sender Communication Channel

Receiver Determination

Interface Determination

Receiver Agreement

Receiver communication channel

regards

Ramesh P

Former Member
0 Kudos

Hi

I feel in the last message that you have sent, there is no error.Are you getting some message ids??

Did you send some data to it?/

Thanks

Former Member
0 Kudos

Monika,

In XI server, if i analyse SXMB_MONI, there are plenty of messages (Green colr flag) in Que and also goodnumber of messages with Success (Black and White color) flag.

In the same way, i have observed SXMB-MONI of SAP R/3 server.

SAP R/3--> SXMB-MONI->Processing Statsistics, i found the following lines....

XML Messages with Errors 6

- Manually Canceled 0

Unprocessed XML Messages 0

XML Message Being Edited 0

Correctly Processed XML Messages 441

Archived XML Messages 0

XML Messages Flagged for Deletion 0

Deleted XML Messages 0

What does this mean....???

Is there any way to see these messages in SAP R/3 environment...???

Regards

Pavan

nisarkhan_n
Active Contributor
0 Kudos

Double click on any of the entries in the sxmb_moni of the R/3 you will get to c the message detail there....in these message list you have to find out your relevant message just check your RFC name in the Inbound message in the message details and check.

Former Member
0 Kudos

The current XI server has been installed with DD-MM-2020 date format.

The SAP R/3 is running on current date.

In SAP R/3->SXMB_MONI-> Monitor for processed XML Messages with current date is not showing any messages.

I tried with DD-MM-2020 dates... No messages displayed.

Only in SAP R/3.SXMB_MONI>Processing Statsistics, the error list is coming...(I have mentioned in above post)

But How to find out the exact messages in detail...??????

nisarkhan_n
Active Contributor
0 Kudos

you can find out by the following information:

when you enter the sxmb_moni jsut note down the tie when it was processed and enter that to c the list of messge in that time

get this details from XI :

Sender Interface Name

Sender Interface Namespace

Receiver Interface Name: ( This name would be your RFC name )

Receiver Interface Namespace

all the rows there keep looking for the infdormation above and cehck the mesage by double clicking on that....let us knoe the error there

Former Member
0 Kudos

Hi Nisar,

In SAP R/3, I have tried with all possible inputs as mentioned by you.

Still getting same message pop up as "No messages available".

But in Processing Statsistics, i am finding numbers.....

Plz go thourgh my previous message about possible date conflict between XI and R/3......

Any idea...?????

Pavan

nisarkhan_n
Active Contributor
0 Kudos

conflict with the R/3 date and Xi date is ok as if now...

On R/3 When you enter the SXMB_MONI-----Monitor for XML message>

Note down what's the deault start data and end date

rerun the interface now and again in the R/3 side goto sxmb_moni and select 1 week back mesages from deafult date.

when the mesage enters into R/3 it will be stored in the same date as it is dispalying in the Defalu date in SXMB_MONI so it's just we have to give correct date range in that moni.

Former Member
0 Kudos

Hi

Since there is a date conflict problem, do not specify any date.Go for all processed messaged.And just specify only one thing amongst Sender Namespace or Receiver Namespace or even receiver Interface.

If no messages come that means it still not coming into the R/3 system.

Thanks

Former Member
0 Kudos

Hi

Refer..A kind of similar problem

Thanks

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

I dont think ur problem is in mapping,Check ur mapping and test it manually and update the thread.

Check below links.

http://help.sap.com/saphelp_nw04/helpdata/en/7e/5df96381ec72468a00815dd80f8b63/content.htm

/people/saravanakumar.kuppusamy2/blog/2005/01/19/rdbms-system-integration-using-xi-30-jdbc-senderreceiver-adapter

/people/sap.user72/blog/2005/06/01/file-to-jdbc-adapter-using-sap-xi-30 http://help.sap.com/saphelp_nw2004s/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/content.htm

http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm

/people/swaroopa.vishwanath/blog/2006/12/28/send-rfc-to-sap-xi-150-asynchronous

Regards,

Phani

Reward Points if Helpful

prateek
Active Contributor
0 Kudos

The mappings are generally done based on the business requirements. But if u r developing the interface just for the testing purpose, then

1. Map the elements under "row" tab to the RFC request fields.

2. Map the Statement segment with RFC root.

Regards,

Prateek

Former Member
0 Kudos

Prateek,

Can you eloberate your answer....?????

Regards

Pavan

Former Member
0 Kudos

Hi

Give a one to one to mapping of all the fields of the DB to the fields of RFC.And finally the roots of target msg to source message.

Thanks

prateek
Active Contributor
0 Kudos

U must have created the sender side structure as shown here

http://help.sap.com/saphelp_nw04/helpdata/en/7e/5df96381ec72468a00815dd80f8b63/frameset.htm

Now in message mapping, u have to select this as sender and RFC request message as receiver. Then do 1:1 mapping between the fields under "row" segment of sender and the fields of RFC.

Regards,

Prateek

Former Member
0 Kudos

Yes me too, In a parallel thread you mentioned problems about Exchange Profile..

Former Member
0 Kudos

Exchange Profile problem has been solved by unlocking the Users.

Now, data is flowing from SQL server to XI.

All the messages are queued in the message monitor and now unable to pass to SAP.

I believe this might be possible through proper mapping.

sql-->sender JDBC> XI>reciever RFC-->SAP

For the above scenario, can you explain me how to carry out message mapping...? How many mappings needed?

Former Member
0 Kudos

Hi

Just one mapping required.Also firstly you should check whether the datatypes of the fields of the DB is compatible to that of the RFC fields.

Then test the Message Mapping and let me know.

Also check whether you are passing the data in the same format as acceptable by the RFC.For the first go avoid date/time and similar fields.

Thanks

nisarkhan_n
Active Contributor
0 Kudos

check this it might be helpfull

https://www.sdn.sap.com/irj/sdn/wiki?path=/display/xi/step-by-step+guides&;

For JDBC

http://help.sap.com/saphelp_nw04/helpdata/en/7e/5df96381ec72468a00815dd80f8b63/content.htm

/people/yining.mao/blog/2006/09/13/tips-and-tutorial-for-sender-jdbc-adapter

For RFC

/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit

Once strucutre which picks the data from D/B and Import the RFC into XI as receiver 1 MM program for this