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: 

error on excuting the Tcode.

Former Member
0 Kudos

hi experts,

i have oneZ transaction code , by excuting it is giving teh error like " unable to interpret "E" as a number".

i will give teh discription where exactly getting the error .

i have one function module in this ''V51F_HU_HEADER_UPDATE.

in this function module run timr error shows at the lines.

CONCATENATE 'ES_HEADER-' LS_CHANGED-CHANGED_F INTO FIELDNAME.

ASSIGN (FIELDNAME) TO <F>.

IF SY-SUBRC IS INITIAL.

<F> = LS_CHANGED-F_VALUE.

ENDIF.

couls any one help me in this.

11 REPLIES 11

Former Member
0 Kudos

Hi Venu,

what is the Data Type Of Field "FIELDNAME".

If the Data type of FIELDNAME is Integer means you can't Concatenate the characters to FIELDNAME.

So Change the Data type,

Thanks.

0 Kudos

HI VJ,

here FIELDNAME is declared like this FIELDNAME (30)

Former Member
0 Kudos

Hi,

Try this,

CONCATENATE 'IS_HEADER-' LS_CHANGED-CHANGED_F INTO FIELDNAME.

Change ES_HEADER as IS_HEADER.

It will works fine.

Thanks.

0 Kudos

but ho wcan i change , that code is in standard function module''V51F_HU_HEADER_UPDATE''

0 Kudos

Hi Venu,

Can you paste your code here?

Thanks.

0 Kudos

initially i have one zprogram ie. ZWMR_MAN_HU_UPDATEI01.

----


  • INCLUDE ZWMR_MAN_HU_UPDATEI01 *

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • Process Screen 100 User Command

----


MODULE USER_COMMAND_0100 INPUT.

case ok_code.

when 'BACK'.

leave to screen 0.

when 'CANC'.

leave to screen 0.

when 'PROC'.

perform convert_hu using vekp-exidv

changing w_exidv.

perform select_hu_header using w_exidv.

perform display_next_screen using '0200'.

endcase.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Module USER_COMMAND_0200 INPUT

&----


  • text

----


MODULE USER_COMMAND_0200 INPUT.

data: retcode like sy-subrc.

refresh t_values[].

case ok_code.

when 'BACK'.

perform check_for_changes.

if not t_values[] is initial.

CALL FUNCTION 'POPUP_TO_CONFIRM'

EXPORTING

TEXT_QUESTION = text-001

TEXT_BUTTON_1 = 'Yes'(002)

TEXT_BUTTON_2 = 'No'(003)

IMPORTING

ANSWER = answer.

check answer = '1'.

perform unlock_hu using w_vekp-venum.

leave to screen 0.

else.

perform unlock_hu using w_vekp-venum.

leave to screen 0.

endif.

when 'CANC'.

perform check_for_changes.

if not t_values[] is initial.

CALL FUNCTION 'POPUP_TO_CONFIRM'

EXPORTING

TEXT_QUESTION = text-001

TEXT_BUTTON_1 = 'Yes'(002)

TEXT_BUTTON_2 = 'No'(003)

IMPORTING

ANSWER = answer.

check answer = '1'.

perform unlock_hu using w_vekp-venum.

leave to screen 0.

else.

perform unlock_hu using w_vekp-venum.

leave to screen 0.

endif.

when 'UPD'.

perform check_for_changes.

perform update_hu_header using w_vekp-exidv

changing retcode.

perform unlock_hu using w_vekp-venum.

check retcode = 0.

if t_values[] is initial.

message i102(zw).

else.

message i101(zw) with w_vekp-exidv.

endif.

leave to screen 0.

endcase.

ENDMODULE. " USER_COMMAND_0200 INPUT

///// in this program HU_HEADER_UPDATE' function module is there .

in that function module ''V51F_HU_HEADER_UPDATE'' (here i am getting teh problem.)..i will paste the code of this also here .

////

FUNCTION V51F_HU_HEADER_UPDATE.

*"----


""Lokale Schnittstelle:

*" IMPORTING

*" VALUE(IF_INDEX) LIKE SY-TABIX OPTIONAL

*" VALUE(IF_WITH_UPDATE) TYPE CHAR1 DEFAULT SPACE

*" VALUE(IF_VENUM) TYPE VENUM OPTIONAL

*" VALUE(IS_HEADER) LIKE VEKPVB STRUCTURE VEKPVB OPTIONAL

*" VALUE(IT_CHANGED_FIELDS) TYPE VSEP_T_CHANGED

*" REFERENCE(IT_OVEKP) TYPE VSEP_T_OVEKP OPTIONAL

*" EXPORTING

*" VALUE(ES_HEADER) LIKE VEKPVB STRUCTURE VEKPVB

*" EXCEPTIONS

*" NOT_FOUND

*" EXIDV_ALREADY_EXIST

*" NOT_POSSIBLE

*" OVERLOADING_W

*" OVERLOADING_V

*" FATAL_ERROR

*"----


DATA: LT_CHANGED TYPE VSEP_T_CHANGED, LT_OVEKP TYPE VSEP_T_OVEKP,

lt_nametab type X031L occurs 0.

DATA: LS_CHANGED TYPE V51P_CHANGED, LS_HEADER TYPE VEKPVB,

LS_GEW_VOL TYPE V51P_GEW_VOL, LS_PAVOL TYPE V51P_GEW_VOL,

ls_hu_mm type HUM_MM_KOPFDATEN,

ls_attributes type HUM_HEADER_ATTRIBUTES_S.

DATA: FIELDNAME(30), LF_EXIDV TYPE exidv,

LF_PAGEW TYPE VEKP-BRGEW, LF_PAVOL TYPE VEKP-BTVOL,

LF_STATUS TYPE HU_STATUS, lf_table type DD02D-TABNAME,

lf_key1 type DD03D-FIELDNAME, lf_key2 type DD03D-FIELDNAME,

lf_rcode type sysubrc, lf_msgv type symsgv.

FIELD-SYMBOLS: <F>,

<nametab> type X031L.

if gs_badi-init_main is initial.

CALL METHOD CL_EXITHANDLER=>GET_INSTANCE

CHANGING INSTANCE = gs_badi-main.

gs_badi-init_main = 'X'.

endif.

IF NOT IF_INDEX IS INITIAL OR IS_HEADER-VENUM IS INITIAL OR

NOT IF_VENUM IS INITIAL.

IF NOT IF_VENUM IS INITIAL.

LS_HEADER-VENUM = IF_VENUM.

ELSE.

LS_HEADER = IS_HEADER.

ENDIF.

CALL FUNCTION 'V51P_FIND_HEADER'

EXPORTING

IF_HEADER_INDEX = IF_INDEX

IS_VEKP = LS_HEADER

IMPORTING

ES_HEADER = ES_HEADER

EXCEPTIONS

NOT_FOUND = 01

OTHERS = 99.

IF SY-SUBRC = 01.

MESSAGE E101(HUFUNCTIONS) RAISING NOT_FOUND.

ENDIF.

IF NOT SY-SUBRC IS INITIAL.

MESSAGE E099(HUGENERAL) RAISING FATAL_ERROR.

ENDIF.

CLEAR LS_HEADER.

ELSE.

ES_HEADER = IS_HEADER.

ENDIF.

LS_HEADER = ES_HEADER.

if not ls_header-aendb is initial.

write ls_header-exidv to lf_msgv using edit mask '==ALPHA'.

message e053(hugeneral) with lf_msgv raising NOT_POSSIBLE.

endif.

LOOP AT IT_CHANGED_FIELDS INTO LS_CHANGED.

move-corresponding es_header to ls_attributes.

call method gs_badi-main->HEADER_CHECKS

exporting

IS_CHANGED_FIELDS = ls_changed

is_header = es_header

changing

cs_attributes = ls_attributes

exceptions

continue = 1

others = 99.

case sy-subrc.

when 1.

continue.

when 99.

raise FATAL_ERROR.

endcase.

move-corresponding ls_attributes to es_header.

clear: lf_rcode, lf_table, lf_key1.

CASE LS_CHANGED-CHANGED_F.

WHEN 'EXIDV'.

CATCH SYSTEM-EXCEPTIONS CONVT_NO_NUMBER = 1.

UNPACK LS_CHANGED-F_VALUE TO lf_exidv.

ENDCATCH.

IF NOT SY-SUBRC IS INITIAL.

WRITE LS_CHANGED-F_VALUE TO lf_exidv

USING EDIT MASK '==ALPHA'.

ENDIF.

call function 'V51P_GET_HEADER_DATA'

importing

es_hu_mm = ls_hu_mm.

clear ls_header-exida.

call function 'V51F_DETERMINE_EXIDV'

exporting

if_vhart = es_header-vhart

is_mm_header = ls_hu_mm

changing

cf_exidv = lf_exidv

cf_exida = ls_header-exida

exceptions

EXIDV_ALREADY_EXISTS = 01

error_on_exidv = 02

others = 99.

CASE SY-SUBRC.

WHEN 00.

es_header-exidv = lf_exidv.

es_header-exida = ls_header-exida.

WHEN 01 or 02.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4

RAISING EXIDV_ALREADY_EXIST.

WHEN OTHERS. MESSAGE E099(HUGENERAL) RAISING FATAL_ERROR.

ENDCASE.

when 'VHILM'.

ls_header-vhilm = LS_CHANGED-F_VALUE.

perform change_packaging_material using ls_header

changing es_header LT_CHANGED.

WHEN 'TARAG' OR 'MAGEW' OR 'NTGEW' OR 'BRGEW' OR 'GEWEI' OR

'TAVOL' OR 'MAVOL' OR 'NTVOL' OR 'BTVOL' OR 'VOLEH' OR

'GEWEI_MAX' OR 'VOLEH_MAX' or 'GEWTO' or 'VOLTO'. "HP_388893

if not ls_header-aendb_wv is initial.

message e174(hugeneral) raising NOT_POSSIBLE.

endif.

APPEND LS_CHANGED TO LT_CHANGED.

when 'VEGR1' or 'VEGR2' or 'VEGR3' or 'VEGR4' or 'VEGR5'.

if lt_nametab is initial.

CALL FUNCTION 'DDIF_NAMETAB_GET'

EXPORTING

TABNAME = 'VEKP'

TABLES

X031L_TAB = LT_NAMETAB

EXCEPTIONS

NOT_FOUND = 01

OTHERS = 99.

if not sy-subrc is initial.

message id sy-msgid type sy-msgty number sy-msgno

with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4

raising FATAL_ERROR.

endif.

endif.

read table lt_nametab assigning <nametab>

with key FIELDNAME = ls_changed-changed_f.

if not ls_changed-f_value is initial and

not <nametab>-checktable is initial.

lf_table = <nametab>-checktable.

lf_key1 = LS_CHANGED-CHANGED_F.

perform read_table_buffered using lf_table lf_key1 space space

space ls_changed-f_value

space space space

changing lf_rcode.

if not lf_rcode is initial.

message e061(huselect) with ls_changed-f_value

raising not_possible.

endif.

endif.

case LS_CHANGED-CHANGED_F.

when 'VEGR1'.

es_header-vegr1 = ls_changed-f_value.

when 'VEGR2'.

es_header-vegr2 = ls_changed-f_value.

when 'VEGR3'.

es_header-vegr3 = ls_changed-f_value.

when 'VEGR4'.

es_header-vegr4 = ls_changed-f_value.

when 'VEGR5'.

es_header-vegr5 = ls_changed-f_value.

endcase.

WHEN OTHERS.

CONCATENATE 'ES_HEADER-' LS_CHANGED-CHANGED_F INTO FIELDNAME.

ASSIGN (FIELDNAME) TO <F>.

IF SY-SUBRC IS INITIAL.

<F> = LS_CHANGED-F_VALUE.

ENDIF.

ENDCASE.

ENDLOOP.

ES_HEADER-AENAM = SY-UNAME.

ES_HEADER-AEDAT = SY-DATUM.

ES_HEADER-AEZET = SY-UZEIT.

IF NOT LT_CHANGED[] IS INITIAL.

IF IT_OVEKP[] IS INITIAL and

( not es_header-uevel is initial or es_header-saprl < '46C' ).

*........ bestimmen der oberen VSE falls nicht schon bekannt ....

CALL FUNCTION 'V51P_OVEKP_FILL'

EXPORTING

IF_VENUM = ES_HEADER-VENUM

IMPORTING

ET_OVEKP = LT_OVEKP

EXCEPTIONS

VEKP_NOT_FOUND = 01

NO_UPPER_VSE = 02

WRONG_VEPO = 03

OTHERS = 99.

IF NOT SY-SUBRC IS INITIAL AND NOT SY-SUBRC = 02.

MESSAGE E099(HUGENERAL) RAISING FATAL_ERROR.

ENDIF.

ELSE.

LT_OVEKP = IT_OVEKP.

ENDIF.

MOVE-CORRESPONDING ES_HEADER TO LS_GEW_VOL.

IF ES_HEADER-GEWFX IS INITIAL.

*.......... determine weight/VOLum-fields check if allowed ...........

CALL FUNCTION 'V51F_CHANGING_WEIGHT_VOLUME'

EXPORTING

IS_OLD = LS_GEW_VOL

IT_FIELDS = LT_CHANGED

IT_OVEKP = LT_OVEKP

IMPORTING

ES_NEW = LS_GEW_VOL

ES_PAVOL = LS_PAVOL

EXCEPTIONS

OVERLOADING_W = 01

OVERLOADING_V = 02

VOLUM_INCONSISTENCY = 03

OTHERS = 99.

CASE SY-SUBRC.

WHEN 01.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4

RAISING OVERLOADING_W.

WHEN 02.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4

RAISING OVERLOADING_V.

WHEN 03 OR 99.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4

RAISING FATAL_ERROR.

ENDCASE.

IF NOT LT_OVEKP IS INITIAL.

IF NOT LS_PAVOL IS INITIAL.

CALL FUNCTION 'V51F_GEW_VOL_UPDATE'

EXPORTING

IF_PAGEW = LS_PAVOL-BRGEW

IF_GEWEI = LS_GEW_VOL-GEWEI_MAX

IF_PAVOL = LS_PAVOL-BTVOL

IF_VOLEH = LS_GEW_VOL-VOLEH_MAX

IF_OPERATOR = '+'

IF_ONLY_OVEKP = 'X'

CHANGING

CT_OVEKP = LT_OVEKP

EXCEPTIONS

ERROR = 01

OTHERS = 99.

IF NOT SY-SUBRC IS INITIAL.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4

RAISING FATAL_ERROR.

ENDIF.

ENDIF.

ENDIF.

else.

loop at lt_changed into ls_changed.

CONCATENATE 'LS_GEW_VOL-' LS_CHANGED-CHANGED_F INTO FIELDNAME.

ASSIGN (FIELDNAME) TO <F>.

IF SY-SUBRC IS INITIAL.

<F> = LS_CHANGED-F_VALUE.

ENDIF.

endloop.

ENDIF.

MOVE-CORRESPONDING LS_GEW_VOL TO ES_HEADER.

ENDIF.

CHECK NOT IF_WITH_UPDATE IS INITIAL.

CALL FUNCTION 'V51P_XVEKP_YVEKP_UPDATE'

EXPORTING

IF_UPDKZ = 'U'

IS_VEKP = ES_HEADER

EXCEPTIONS

NOT_FOUND = 01

OTHERS = 99.

IF NOT SY-SUBRC IS INITIAL.

MESSAGE E099(HUGENERAL) RAISING FATAL_ERROR.

ENDIF.

ENDFUNCTION.

///.

now i given total code so could u help me how can i solve this problem.

thanks

venu

Former Member
0 Kudos

hi venu

problem is in your data types

this is the data types of that function module

*" IMPORTING

*" VALUE(IF_INDEX) LIKE SY-TABIX OPTIONAL

*" VALUE(IF_WITH_UPDATE) TYPE CHAR1 DEFAULT SPACE

*" VALUE(IF_VENUM) TYPE VENUM OPTIONAL

*" VALUE(IS_HEADER) LIKE VEKPVB STRUCTURE VEKPVB OPTIONAL

*" VALUE(IT_CHANGED_FIELDS) TYPE VSEP_T_CHANGED

*" REFERENCE(IT_OVEKP) TYPE VSEP_T_OVEKP OPTIONAL

*" EXPORTING

*" VALUE(ES_HEADER) LIKE VEKPVB STRUCTURE VEKPVB

change your input fields as this types

Rewards if helpful.

0 Kudos

i didn't get compleate idea on this , ho wcan i change the input fields in this.

is there any other option for this.

0 Kudos

Hi Venu,

Remove this lines from your code and check it.

IF SY-SUBRC IS INITIAL.

<F> = LS_CHANGED-F_VALUE.

ENDIF.

Thanks.

0 Kudos

hi for removing that code also i need access, how can i do that ,is there any option to do it.

0 Kudos

Hi VJ,

have u get any idea..

main problem occuring on this line <F> = LS_CHANGED-F_VALUE.