on 05-03-2009 4:30 PM
Hi,
I am creating a JDBC to RFC interface.
The JDBC is working fine, I see the payload in the communication channel monitoring.
There is no error in the communication channel monitoring regarding the RFC Receiver, and I see the right payload.
When I execute the RFC in SE37 the relevant tables are updated.
The interface (RFC Receiver) fails to update the relevant tables.
I selected "Commit Handling for Single BAPI Calls" in the RFC Receiver adapter.
The quality of service of the JDBC Sender is exactly once, but I see in the audit log that the message is synchronous. maybe its related ?
In the log I see that BAPI response is 0 rows.
In the RFC Receiver adapter I selected "Commit Handling for Single BAPI Calls" .
The last rows of the Audit Log of the RFC Receiver are (The status of all the rows are success):
RFC adapter received a synchronous message: Attempting to send sRFC for ZXI......(function name).
RFC adapter received a synchoronus message. Attempting to send sRFC to J2EE_GUEST.
BAPI response was a table of type BAPIRET2 with 0 rows.
BAPI executed successfully.
Commit transaction with BAPI_TRANSACTION_COMMIT
MP: Leaving module processor
The message was successfully delivered to the application using connection RFC_http:// .....
The message status set to DLVD
Thanks,
Ofir
Hi Ofir,
From the log, i can see that you are calling a Custome RFC FM.
How did you handle the database commits in the RFC function module?
YOu can try the following design inside the RFC function module/
if the call to the stadrad bapi/ API/ FM is succesful, then call the bapi BAPI+TRANSACTION_COMMIT explicitly in your Z Function module code.
Regards,
Ravi
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I used "Commit Handling for Single BAPI Calls".
As Ravi suggested, I unchecked "Commit Handling for Single BAPI Calls" and
the Z function calls to BAPI_TRANSACTION_COMMIT .
The RFC still doesn't update the relevant tables.
Now, the end of the Audit Log is (The status of all of the rows is success):
RFC adapter received an asynchronous message. Attempting to send tRFC for ZXI..... with TID .....
RFC adapter received an asynchronous message. Attempting to send tRFC for J2EE_GUEST with TID ....
MP: Leaving module processor
The message was successfully delivered to the application using connection RFC_http://......
The message status set to DLVD
Regards,
Ofir
Imported Parameters (Parameter Name - Associated Type):
NOTIFHEADER - BAPI2080_NOTHDRI
NOTIFHEADER_X - BAPI2080_NOTHDRI_X
NOTIF_NO - QNUM
Tables:
RETURN - BAPIRET2
Source Code:
FUNCTION ZXI_NOTIFY_TO_ECC.
DATA: RETURN2 TYPE BAPIRET2.
CALL FUNCTION 'BAPI_ALM_NOTIF_DATA_MODIFY'
EXPORTING
NUMBER = NOTIF_NO
NOTIFHEADER = NOTIFHEADER
NOTIFHEADER_X = NOTIFHEADER_X
TABLES
RETURN = RETURN.
CALL FUNCTION 'BAPI_ALM_NOTIF_SAVE'
EXPORTING
NUMBER = NOTIF_NO
TABLES
RETURN = RETURN.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = ''
IMPORTING
RETURN = RETURN2.
ENDFUNCTION.
Thanks,
Ofir
Edited by: Ofir Nimitz on May 4, 2009 3:17 PM
The Debuugger is now working (maybe there was a performance problem) and I see the values that are transfered from the jdbc adapter.
Using the Debugger, I can't find the reason for the failure.
As I wrote before, when I execute the function in se37 the tables are updated successfully.
Regards,
Ofir
I didn't mention that the RFC calls to BAPI flags for notification header.
(I must type the character X for every field which is transfered).
Thanks,
Ofir
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
83 | |
24 | |
12 | |
9 | |
7 | |
6 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.