I am trying to post an idoc which does a VA01 transaction with reference to scheduling agreement. It errors out with the message, "Field VBAK-GWLDT . does not exist in the screen SAPMV45A 4002".
I notice a period next to the field name in the error message. The data in the BDCDATA table that is getting passed seems to be correct. Below is the screen print of the table data with the VBAK-GWLDT field that we are passing.
46 SAPMV45A 4002 X
47 0000 BDC_OKCODE PAPO
48 SAPLV09C 0666 X
49 0000 DV_PARVW WE
50 SAPMV45A 4002 X
51 SAPMV45A 4002 X
52 0000 VBAK-GWLDT 02/03/2012
53 0000 BDC_OKCODE KKAU
I put a breakpoint at the place where it is executing the transaction VA01 to get this data.
CALL TRANSACTION 'VA01' USING bdcdata
MESSAGES INTO xbdcmsgcoll.
After it stepped through this statement, here is what the message table, xbdcmsgcoll data looks like.
9 SAPMV45A 4002 S E 00 349 VBAK-GWLDT .
Field MSGV1 has value,' VBAK-GWLDT' and MSGV2 has value' . 'which is a period. I also noticed that the message type for this is 'S' which is meant for success. But it errors out and puts the idoc in 51 status. While in the debug, if I delete the line in BDCDATA which has the GWLDT field, the idoc posts successfully.
The input_method used while calling VA01 is by default 'N'. I changed the input_method to 'A' to go through the screens interactively and this posts the idoc with no errors. But when I look in the message table, it still shows the same error along with some more warnings and informational messages.
We are currently doing an upgrade from 45B to ECC6 and we came across this issue while doing the test for upgrade.
Any help is appreciated. Thanks.