2010 Apr 14 11:44 AM
Hey,
is there any nice way to make a check like "IS INITIAL" for char values on numc fields ? My problem is that there is a '000' in the numc field and so the "IS INITIAL" thinks that there are values.
Bad solution:
IF field IS NOT INITIAL AND NOT field EQ '000'.
***
ENDIF.
Greetz
2010 Apr 14 11:58 AM
hi,
This is just a logial way of dealing this. Not sure if there is anything else like IS INITIAL
You can try
If field + 1 NE 1
***
ENDIF .
This case if field is 000 Then field+1 will definitely have 1 and so will not enter the loop.
Edited by: Anushya S on Apr 14, 2010 4:33 PM
2010 Apr 14 11:58 AM
hi,
This is just a logial way of dealing this. Not sure if there is anything else like IS INITIAL
You can try
If field + 1 NE 1
***
ENDIF .
This case if field is 000 Then field+1 will definitely have 1 and so will not enter the loop.
Edited by: Anushya S on Apr 14, 2010 4:33 PM
2010 Apr 14 12:11 PM
Hi Anushya,
How you are able to use '+' operator in an IF condition?
You should perform this operation before if condition right...
Regards,
Lakshman.
2010 Apr 14 12:14 PM
Hi Lakshman ,
Fair enuough, i was wrong there .
It should be performed Before and stored in a variable and checked in the if condition .
Sorry for confusion there.
Thanks Lakshman for pointing it out.
Regards,
Anushya S
2010 Apr 14 12:14 PM
A simple workaround :
DATA:
v_numc TYPE numc3,
v_char TYPE char3.
v_char = v_numc.
IF v_char IS NOT INITIAL.
WRITE: / 'CHAR & NUMC do not have same initial values'.
ENDIF.
IF v_char CO '0'.
WRITE: / 'I found a work around. Yipeee !!!'.
ENDIF.
2010 Apr 14 12:07 PM
Thanks for your reply. This will work but i think there should be a nicer way.
The problem exists when you copy the numc field with its initial values into a char. At this point the initial check will not work anymore on the new char field.
The best solution at this point is check just before the copy for initial values.
2010 Apr 14 12:07 PM
IS INITIAL checks if the variable in concern has the initial values. In your case you have the variable as NUMC & initial value for this is '0' for every position (refer [http://help.sap.com/abapdocu_70/en/ABENBUILT_IN_TYPES_VALUES.htm|http://help.sap.com/abapdocu_70/en/ABENBUILT_IN_TYPES_VALUES.htm])
So your assumption that "My problem is that there is a '000' in the numc field and so the "IS INITIAL" thinks that there are values" is not correct. And your IS INITIAL check will be OK if field is defined as numc & has the value '000'
problem exists when you copy the numc field with its initial values into a char. At this point the initial check will not work anymore on the new char field.
Why dint you mention this before ? Anyways if you have character variable, and you want to check if it contains only zeroes you can go for:
IF FIELD CO '0'.
ENDIF.
BR,
Suhas
Edited by: Suhas Saha on Apr 14, 2010 4:38 PM