Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

idoc error - field. does not exist in the screen SAPMV45A 4002

Former Member
0 Kudos

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

MODE input_method

UPDATE 'S'

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.

6 REPLIES 6

former_member776318
Participant
0 Kudos

Hi,

Looks like it is unable to find the Guarantee Date (VBAK-GWLDT) in background mode.

Also, I see from the line that you posted that the date format is 02/03/2012. In Background-Mode The date-format in the user-profile should match with the input data. For ex: if your date-format in user-profile is YYYY/MM/DD while the input date-format is MM/DD/YYYY; then bdc will error out. This will especially happen in background mode.

Another thing: instead of using BDC, you can use IDOC_INPUT_ORDERS

0 Kudos

I checked my user profile date format and it is in MM/DD/YYYY format as in the data. Also, I am reposting the idoc using BD87 which calls the IDOC_INPUT_ORDERS for reposting and it errors out.

Former Member
0 Kudos

Well, from 4.5B to ECC6, the screens and screen flow may have changed. You'll have to sit down with a functional analyst and determine which screen this goes on and then change your program.

Rob

0 Kudos

Rob, I understand that there are a lot of screen changes. Going through SHDB, I see that we are passing exactly what the system is looking for. Also, it still mystifies me that, it posts successfully with no error when I use the same data in foreground mode instead of background.

0 Kudos

Yes - you get an error but can continue because the field isn't needed here.

Rob

0 Kudos

Hi Anjana,

As of Release 6.20, you can specify the "Simulate Background Mode" option when recording in the transaction recorder. SAP standard tranactions may have different screen sequences in foreground and background.

It is important that the batch input is run in the same mode as the recording in SHDB was done.

Regards,

Clemens