2005 Dec 19 4:48 PM
Hi All,
I am trying to do a BDC for stock putaway using LT01.
When I run this BDC in foreground
it runs successfully and transfers the stock OK with the following message:-
Field RL03T-ANFME. input value is longer than screen field (this is not an error message)
but when
I try to run it in background it gives me the following errors :-
Field RL03T-ANFME. input value is longer than screen field (this is not an error message in foreground)
Transaction error.
I know that a potential solution would be to write the LT01 using a BAPI or direct input etc but I would rather not go down this route.
Amny ideas?
I am using ECC5.0
Thanks,
N.
2005 Dec 19 9:09 PM
You are entering a quantity into this field and the quantity has formatting characters or the thousands seperators in it. The field online will contain more characters to accommodate these seperators compared to background processing. The easiest thing to do is to find out this limit by entering 1234567890123 in it and see if it can accommodate this value. If not start deleting a digit from the end. At the point where it accepts your input value online, is the maximum number of characters that you can use.
Hope this helps,
Srinivas
2005 Dec 19 4:52 PM
Hi Niall,
Why dont you check the length of the field through which you are populating RL03T-ANFME?If the field lenght is more ,just make it as the lenght of RL03T-ANFME & run it in background.
Note: Some Success messages in the background will stop the BDC's.
2005 Dec 19 4:54 PM
Run the BDC in MODE 'E' so that you can see, if any errors which you can't find.
regards
vijay
2005 Dec 19 8:02 PM
Hi Niall,
I have seen BDC behaving the way you have mentioned. This is because in Foreground the error is taken as soft error/warning(Green light flashes) and it allows you to continue. Even though the data upload is sucessful, you will have problems when you go into the actual transaction. An error pops up saying 'Please enter all the required fields' etc.
But at the same time when it runs in background, the same error is taken as hard error(red status light) and it will not allow further process.
Try to debug this BDC program in foreground and when it comes to this stage make the system field SY-BATCH = 'X'. Then you will understand what exactly happens.
The background process should be taken as the way to go and you need to correct the data.
I think this is helpful.
Kannan
2005 Dec 19 8:28 PM
2005 Dec 19 9:09 PM
You are entering a quantity into this field and the quantity has formatting characters or the thousands seperators in it. The field online will contain more characters to accommodate these seperators compared to background processing. The easiest thing to do is to find out this limit by entering 1234567890123 in it and see if it can accommodate this value. If not start deleting a digit from the end. At the point where it accepts your input value online, is the maximum number of characters that you can use.
Hope this helps,
Srinivas
2005 Dec 20 9:06 AM
Much thanks to all who replied.
I have solved it now. It was indeed relating to the length of the numeric field.
I have tried to spread out the points
Thanks!
N.
2005 Dec 19 9:21 PM
Hi,
Try this.
Data: ANFME like RL03T-ANFME.
ANFME = VALUE ( Value - currently you are assigning to RL03T-ANFME in BDC).
perform bdc_field using 'RL03T-ANFME' ANFME.
Thanks
2005 Dec 19 9:23 PM
Hi,
This ANFME is a quantity field so its better you define a
data : V_qty(18) type C,
Write : RL03T-ANFME to v_qty.
condense v_qty.
Then pass the v_qty BDC table.
Thanks
Rajeev
2005 Dec 19 10:17 PM
The first rule of BDC is that everything has to be passed in 'Character' format. If you pass any quantity or amount field as numeric, you will always get the same message.
Even though the BDC does not show this as error message in foreground, but BDC stops right there where it encounters this situation.
Therefore convert your numeric input to character input in BDC and things will start working.