04-13-2010 7:38 AM
Hi all,
I am facing some problem in BDC call transaction.Call transacion f.80 returns with the error message.I want to know where the error message is getting populated inside the call transaction.And also i tried debugging with update value as "A".Still i didn't find the error message where it is populated.
04-13-2010 8:25 AM
It's a functionality of CALL TRANSACTION, which stores all messages for each run in an internal table of type BDCMSGCOLL.
Please let us know your exact requirement.
04-13-2010 7:41 AM
Hello,
Are you populating the messages using the MESSAGES INTO addition of the call transaction? If yes check that. Also try running the bdc in the mode 'E'. It will exactly stop where the error is encountered
Vikranth
04-13-2010 7:42 AM
04-13-2010 8:19 AM
I am using the following code
CALL TRANSACTION c_f80 USING i_bdcdata
MODE v_mode " 'N'
UPDATE v_update " 'S'
MESSAGES INTO i_messtab.
*---Save the return code
MOVE sy-subrc TO v_subrc.
*---Get the last message
DESCRIBE TABLE i_messtab LINES v_msglines.
READ TABLE i_messtab INTO w_messtab INDEX v_msglines.
i_messtab has two values in it.As per the code the second value is taken into w_messtab.
I want to know how these values are populated in the i_messtab
Edited by: ManjuRamani on Apr 13, 2010 9:23 AM
04-13-2010 8:26 AM
Simple answer is you cannot.
To explain the behaviour, CALL TRANSACTION is kind of a blackbox where you dont know why & where the messages are triggered.
I am not sure if a Batch Input method can help you in this, but you can give it a try. May be you can try replicating the scenario by manually using the transaction. Does the message text not throw some light on what might be the possible cause ?
BR,
Suhas
04-13-2010 8:36 AM
The messages are populated into messtab, based on the standard code written for the T-Code for which BDC is recorded.
Regards
Vinod
04-13-2010 7:49 AM
Hi
Try this piece of code
data : messtab like bdcmsgcoll occurs 0 with header line.
data : it_msg type standard table of ty_msg,
wa_msg type ty_msg.
call transaction <tcode> using bdcdata
mode bdcmode
messages into messtab.
refresh : it_msg.
loop at messtab.
clear : wa_msg.
move-corresponding messtab to wa_msg.
call function 'FORMAT_MESSAGE'
exporting
id = messtab-msgid
lang = sy-langu
no = messtab-msgnr
v1 = messtab-msgv1
v2 = messtab-msgv2
v3 = messtab-msgv3
v4 = messtab-msgv4
importing
msg = wa_msg-msg
exceptions
not_found = 1
others = 2.
append wa_msg to it_msg.
endloop.
internal table it_msg will have the formatted BDC Messages.
Regards
Vinod
04-13-2010 8:25 AM
It's a functionality of CALL TRANSACTION, which stores all messages for each run in an internal table of type BDCMSGCOLL.
Please let us know your exact requirement.
04-13-2010 8:46 AM
I_messtab has two values as
SA38 SAPMSSY0 1000 S E FU 050 PROCESSING COMPLETED.
SA38 SAPLKKBL 0500 S E SY 374 00000005275 LOCL
The exact problem is that we are call transaction in bdc f.80 to reverse the document and save the status to custom table.
After the system upgrade to SAP ECC6.0 , while running the code in background mode.It shows some error in updating the table.We found the error lies in call transaction i_messtab.
In the above i_messab values , second row is taken into the code and throws error.
Want to know how the value SY and 374 is getting populated in the i_messtab
How to overcome this error?Please help me.
Edited by: ManjuRamani on Apr 13, 2010 9:49 AM
04-13-2010 9:12 AM
Hi,
SA38 SAPLKKBL 0500 S E SY 374 00000005275 LOCL = "Spool request (number 00000005275) sent to SAP printer LOCL"
is not an error message. It is just an information.
Regards
Vinod
04-13-2010 9:50 AM
04-13-2010 9:57 AM
What is the issue you are facing here? The message clearly tells that the processing is completed and as pointed out, the spool is sent to the LOCL printer which is a information message. Is the table not being updated now ?
04-13-2010 9:58 AM
Messtab doesn't have any records with message type E (Error), means transaction has been successfully completed.
Regards
Vinod
04-13-2010 8:57 AM
Hi,
You wont be able to check that with BDC.
You will have to run the transaction manually. Before that put a dynamic break-point on the statement message.
This way you can check at which point you are getting the message.
Hopr it helps,
Raj