cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with SAP-SCRIPT TO UPDATE MULTIPLE VALUES

Former Member
0 Kudos

Hi ,

I have problem with SAP-SCRIPT.problem is i want to update multiple values in the sap-script at a time.The values will come from Zprogram .From Zprogram i want to pass the internal table to sap script.so for this i am using the following code.

In SAP-SCRIPT.

/: PERFORM GET_TEXT IN PROGRAM ZSGTEXT_FORM

/: USING &RFDUZI01-KUNNR&

/: USING &RFDUZI01-BELNR&

/: CHANGING &I-SGTXT0&

/: CHANGING &I-SGTXT1&

/: CHANGING &I-SGTXT2&

/: CHANGING &I-SGTXT3&

/: CHANGING &I-SGTXT4&

/: CHANGING &I-SGTXT5&

/: ENDPERFORM

/: IF &I-SGTXT0& NE &SPACE&

/: SET DATE MASK = 'YYYY/MM/DD'.

/* SET COUNTRY = 'AF'

B1 &BKPF-BLDAT& ,,&I-SGTXT0+0(25)&&RFDUZI01-WRSHB&,,

/* &RFDUZI01-DATEO8(2)& ,,&RFDUZI01-DATEN0(2)&&RFDUZI01-DATEN+3(2)&

= ,,&RFDUZI01-TGEU&

/: SET DATE MASK = ' '

/: ENDIF

/: IF &I-SGTXT1& NE &SPACE&

/: SET DATE MASK = 'YYYY/MM/DD'.

/* SET COUNTRY = 'AF'

B1 &BKPF-BLDAT& ,,&I-SGTXT1+0(25)&&RFDUZI01-WRSHB&,,

/* &RFDUZI01-DATEO8(2)& ,,&RFDUZI01-DATEN0(2)&&RFDUZI01-DATEN+3(2)&

= ,,&RFDUZI01-TGEU&

/: SET DATE MASK = ' '

/: ENDIF

/: IF &I-SGTXT2& NE &SPACE&

/: SET DATE MASK = 'YYYY/MM/DD'.

/* SET COUNTRY = 'AF'

B1 &BKPF-BLDAT& ,,&I-SGTXT2+0(25)&&RFDUZI01-WRSHB&,,

/* &RFDUZI01-DATEO8(2)& ,,&RFDUZI01-DATEN0(2)&&RFDUZI01-DATEN+3(2)&

= ,,&RFDUZI01-TGEU&

/: SET DATE MASK = ' '

/: ENDIF

/: IF &I-SGTXT3& NE &SPACE&

/: SET DATE MASK = 'YYYY/MM/DD'.

/* SET COUNTRY = 'AF'

B1 &BKPF-BLDAT& ,,&I-SGTXT3+0(25)&&RFDUZI01-WRSHB&,,

/* &RFDUZI01-DATEO8(2)& ,,&RFDUZI01-DATEN0(2)&&RFDUZI01-DATEN+3(2)&

= ,,&RFDUZI01-TGEU&

/: SET DATE MASK = ' '

/: ENDIF

/: IF &I-SGTXT4& NE &SPACE&

/: SET DATE MASK = 'YYYY/MM/DD'.

/* SET COUNTRY = 'AF'

B1 &BKPF-BLDAT& ,,&I-SGTXT4+0(25)&&RFDUZI01-WRSHB&,,

/* &RFDUZI01-DATEO8(2)& ,,&RFDUZI01-DATEN0(2)&&RFDUZI01-DATEN+3(2)&

= ,,&RFDUZI01-TGEU&

/: SET DATE MASK = ' '

/: ENDIF

/: IF &I-SGTXT5& NE &SPACE&

/: SET DATE MASK = 'YYYY/MM/DD'.

/* SET COUNTRY = 'AF'

B1 &BKPF-BLDAT& ,,&I-SGTXT5+0(25)&&RFDUZI01-WRSHB&,,

IN SE38 Program

FORM GET_TEXT TABLES IN_TAB STRUCTURE ITCSY

OUT_TAB STRUCTURE ITCSY.

data: i_kunnr like bsid-kunnr,

i_xblnr like bsid-xblnr,

  • ,

i_sgtxt type sgtxt,

v_kunnr type kunnr.

data: begin of lt_belnr occurs 0,

lv_belnr type BELNR_D,

lv_sgtxt type sgtxt,

end of lt_belnr.

data: v_belnr type belnr_d.

READ TABLE IN_TAB INDEX 1.

WRITE IN_TAB-VALUE TO i_kunnr .

read table in_tab index 2.

WRITE IN_TAB-VALUE TO i_xblnr.

CLEAR V_KUNNR.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = i_kunnr

IMPORTING

OUTPUT = v_kunnr.

select belnr sgtxt from bsid into table lt_belnr where kunnr = v_kunnr

and xblnr = i_xblnr.

.

refresh out_tab.

clear out_tab.

loop at lt_belnr.

out_tab-name = 'I-SGTXT '.

out_tab-name+7(1) = sy-tabix - 1.

out_tab-value = lt_belnr-lv_sgtxt.

APPEND out_tab.

CLEAR OUT_TAB.

ENDloop.

endform. "GET_TEXT

But after this it is printing items in multiple times.Like each item it is printing 4 to 5 times.How to solve this.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

hi,

Try removing the && sign in &SPACE&. Only write

IF &I-SGTXT0& NE ' '.

ENDIF.

Try and let me know.

Thanks

Nayan

Former Member
0 Kudos

No It is not working like that.Can you please tell me how to call the write element in loop.