Application Development and Automation 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: 
Read only

Problem in Script Perform

Former Member
0 Likes
876

Hi,

I have to add 3 values for this i have written a perform in text element of main window as follows.

/: DEFINE &DO_TOT& := '0'.

/: PERFORM DO_TOTAL IN PROGRAM Z_1IEXCP_OUTPUT

/: USING &J_1IEXCHDR-EXBED&

/: USING &J_1IEXCHDR-ECS&

/: USING &J_1IEXCHDR-EXADDTAX1&

/: CHANGING &DO_TOT&

and in print program i have written the code as follows

FORM DO_TOTAL TABLES IN_VAR

OUT_VAR.

DATA : IN_VAR1 TYPE STANDARD TABLE OF ITCSY WITH HEADER LINE,

OUT_VAR1 TYPE STANDARD TABLE OF ITCSY WITH HEADER LINE.

DATA : VAL1 TYPE I ,

VAL2 TYPE I,

VAL3 TYPE I.

IN_VAR1[] = IN_VAR[].

OUT_VAR1[] = OUT_VAR[].

READ TABLE IN_VAR1 WITH KEY NAME = 'J_1IEXCHDR-EXBED'.

VAL1 = IN_VAR1-VALUE.

CALL FUNCTION 'CHAR_NUMC_CONVERSION'

EXPORTING

INPUT = IN_VAR1-VALUE

IMPORTING

NUMCSTR = VAL1.

.

READ TABLE IN_VAR1 WITH KEY NAME = 'J_1IEXCHDR-ECS'.

CALL FUNCTION 'CHAR_NUMC_CONVERSION'

EXPORTING

INPUT = IN_VAR1-VALUE

IMPORTING

NUMCSTR = VAL2.

READ TABLE IN_VAR1 WITH KEY NAME ='J_1IEXCHDR-EXADDTAX1'.

CALL FUNCTION 'CHAR_NUMC_CONVERSION'

EXPORTING

INPUT = IN_VAR1-VALUE

IMPORTING

NUMCSTR = VAL3.

DATA X TYPE I.

DATA C_X(255) TYPE C.

X = VAL1 + VAL2 + VAL3.

C_X = X.

OUT_VAR1-VALUE = C_X.

OUT_VAR[] = OUT_VAR1[].

ENDFORM.

but I am not getting the values into &DO_TOT&

can you please correct the error. its urgent

Thanks in advance

9 REPLIES 9
Read only

Former Member
0 Likes
846

Befor to this code

OUT_VAR1-VALUE = C_X.

OUT_VAR[] = OUT_VAR1[].

Read internal table out_var for field &DO_TOT& and modify internal table accordingly.

Thanks,

Saida Rao

Message was edited by:

Saida Rao Devarasetty

Read only

Former Member
0 Likes
846

Hi,

FORM DO_TOTAL TABLES IN_VAR
OUT_VAR.
DATA : IN_VAR1 TYPE STANDARD TABLE OF ITCSY WITH HEADER LINE,
OUT_VAR1 TYPE STANDARD TABLE OF ITCSY WITH HEADER LINE.

DATA : VAL1 TYPE I ,
VAL2 TYPE I,
VAL3 TYPE I.
IN_VAR1[] = IN_VAR[].
OUT_VAR1[] = OUT_VAR[].

READ TABLE IN_VAR1 WITH KEY NAME = 'J_1IEXCHDR-EXBED'.
VAL1 = IN_VAR1-VALUE.

CALL FUNCTION 'CHAR_NUMC_CONVERSION'
EXPORTING
INPUT = IN_VAR1-VALUE
IMPORTING
NUMCSTR = VAL1.
.

READ TABLE IN_VAR1 WITH KEY NAME = 'J_1IEXCHDR-ECS'.

CALL FUNCTION 'CHAR_NUMC_CONVERSION'
EXPORTING
INPUT = IN_VAR1-VALUE
IMPORTING
NUMCSTR = VAL2.

READ TABLE IN_VAR1 WITH KEY NAME ='J_1IEXCHDR-EXADDTAX1'.

CALL FUNCTION 'CHAR_NUMC_CONVERSION'
EXPORTING
INPUT = IN_VAR1-VALUE
IMPORTING
NUMCSTR = VAL3.

DATA X TYPE I.
DATA C_X(255) TYPE C.
X = VAL1 + VAL2 + VAL3.
C_X = X.
OUT_VAR1-VALUE = C_X.
OUT_VAR[] = OUT_VAR1[].

" Use the Modify statment for OUT_VAR to modify the line

ENDFORM.

Regards

Sudheer

Read only

Former Member
0 Likes
846

Hi,

Do this way.

READ TABLE OUT_VAR1 WITH KEY NAME = 'DO_TOT'.

modify table out_var1 with field OUT_VAR1-VALUE = C_X.

Regards,

Richa

Read only

dev_parbutteea
Active Contributor
0 Likes
846

HI,

<b>I CORRECTED YOUR MISTAKES. JUST COPY AND PASTE</b>

FORM DO_TOTAL TABLES IN_VAR structure itcsy

OUT_VAR structure itcsy.

DATA : VAL1 TYPE I ,

VAL2 TYPE I,

VAL3 TYPE I.

DATA X TYPE I.

DATA C_X(255) TYPE C.

constants : c_cons1(16) type c value 'J_1IEXCHDR-EXBED',

c_cons2(15) type c value 'J_1IEXCHDR-ECS',

c_cons3(21) type c value 'J_1IEXCHDR-EXADDTAX1',

c_cons4(6) TYPE c VALUE 'DO_TOT'.

READ TABLE IN_VAR WITH KEY c_cons1.

if sy-subrc = 0.

VAL1 = IN_VAR-VALUE.

CALL FUNCTION 'CHAR_NUMC_CONVERSION'

EXPORTING

INPUT = VAL1

IMPORTING

NUMCSTR = VAL1.

endif .

READ TABLE IN_VAR WITH KEY c_cons2.

if sy-subrc = 0.

VAL2 = IN_VAR-VALUE.

CALL FUNCTION 'CHAR_NUMC_CONVERSION'

EXPORTING

INPUT = VAL2

IMPORTING

NUMCSTR = VAL2.

endif .

READ TABLE IN_VAR WITH KEY c_cons3.

if sy-subrc = 0.

VAL3 = IN_VAR-VALUE.

CALL FUNCTION 'CHAR_NUMC_CONVERSION'

EXPORTING

INPUT = VAL3

IMPORTING

NUMCSTR = VAL3.

endif .

X = VAL1 + VAL2 + VAL3.

C_X = X.

read table out_var with key c_cons4. "#EC *

if sy-subrc = 0.

OUT_VAR-VALUE = C_X.

endif.

ENDFORM.

Regards,

Sooness

Read only

0 Likes
846

Hi,

addition

FORM DO_TOTAL TABLES IN_VAR structure itcsy

OUT_VAR structure itcsy.

DATA : VAL1 TYPE I ,

VAL2 TYPE I,

VAL3 TYPE I.

DATA X TYPE I.

DATA C_X(255) TYPE C.

constants : c_cons1(16) type c value 'J_1IEXCHDR-EXBED',

c_cons2(15) type c value 'J_1IEXCHDR-ECS',

c_cons3(21) type c value 'J_1IEXCHDR-EXADDTAX1',

c_cons4(6) TYPE c VALUE 'DO_TOT'.

READ TABLE IN_VAR WITH KEY c_cons1.

if sy-subrc = 0.

VAL1 = IN_VAR-VALUE.

CALL FUNCTION 'CHAR_NUMC_CONVERSION'

EXPORTING

INPUT = VAL1

IMPORTING

NUMCSTR = VAL1.

endif .

READ TABLE IN_VAR WITH KEY c_cons2.

if sy-subrc = 0.

VAL2 = IN_VAR-VALUE.

CALL FUNCTION 'CHAR_NUMC_CONVERSION'

EXPORTING

INPUT = VAL2

IMPORTING

NUMCSTR = VAL2.

endif .

READ TABLE IN_VAR WITH KEY c_cons3.

if sy-subrc = 0.

VAL3 = IN_VAR-VALUE.

CALL FUNCTION 'CHAR_NUMC_CONVERSION'

EXPORTING

INPUT = VAL3

IMPORTING

NUMCSTR = VAL3.

endif .

X = VAL1 + VAL2 + VAL3.

C_X = X.

read table out_var with key c_cons4. "#EC *

if sy-subrc = 0.

OUT_VAR-VALUE = C_X.

<b>modify out_var index sy-tabix.</b>

endif.

ENDFORM.

Read only

0 Likes
846

Hi Sooness Munogee,

Actualy out_var is not an internal table, it is just a char type. In this case we cant use Modify.

and more over I have changed out_var in debugging mode , but it is not comming into script.

Read only

0 Likes
846

Hi,

i think that there is a misunderstanding!!!!

OUT_VAR IS A TABLE!!

<b>proof:</b>

FORM DO_TOTAL <b>TABLES</b> IN_VAR structure itcsy

OUT_VAR structure itcsy.

Note; Everything sent and received in sapscripts are sent and received in tables!

So, the 3 variables sent from sapscript will be found in table IN_VAR,

and the variable received will be sent in table OUT_VAR.

So, you may use the routine i've modified.

Revert back in case of doubts,

Regards,

Sooness.

Read only

dev_parbutteea
Active Contributor
0 Likes
846

Hi,

Also,

/: DEFINE &DO_TOT& := '0'.

/: PERFORM DO_TOTAL IN PROGRAM Z_1IEXCP_OUTPUT

/: USING &J_1IEXCHDR-EXBED&

/: USING &J_1IEXCHDR-ECS&

/: USING &J_1IEXCHDR-EXADDTAX1&

/: CHANGING &DO_TOT&

its missing the /: ENDPERFORM statement.

Regards,

Sooness.

Read only

Former Member
0 Likes
846

The Problem is solved by myself