SAP SCRIPT PERFORM ERROR

HI,
I AM USING FOLLOWING CODE IN SAP SCRIPT
/:           PERFORM SUM IN PROGRAM ZSUM
/:           USING &REGUD-WRBTR&
/:           USING &REGUD-WABZG&
/:           CHANGING &VAR&
/:           ENDPERFORM
AND PROGRAM
FORM SUM USING TABLES IN_PAR STRUCTURE ITCSY
              changing OUT_PAR STRUCTURE ITCSY.
READ TABLE IN_PAR WITH KEY NAME = ‘VAR1’.
var1_sc = IN_PAR-VALUE.
READ TABLE IN_PAR WITH KEY NAME = ‘VAR2’.
var2_sc = IN_PAR-VALUE.
tot = var1_sc - var2_sc.
READ TABLE OUT_PAR WITH KEY NAME = ‘VAR’.
Out_PAR-VALUE = tot.
ENDFORM.
NOW ITS GIVING DUMP TELLING "This routine contains 3 formal para , but the current call contains 4 actual parameters."  IF I COMMENT CODE IN FORM.
IF I REMOVE CODE IN FORM THEN IT GIVE SYSTAX ERROR :
& ALSO in_PAR IS NOT INTERNAL TABLE\
PLEASE HELP ME

Hi
You are using 2 parameters ®UD-WRBTR&
®UD-WABZG& only with perform
see the sample code and do accordingly
How to call a subroutine form SAPscripts
The Form :
/:PERFORM CDE_CENT IN PROGRAM ZKRPMM_PERFORM_Z1MEDRUCK
/:USING &EKKO-EBELN&
/:CHANGING &CDECENT&
/:ENDPERFORM
The report :
REPORT zkrpmm_perform_z1medruck .
DATA : BEGIN OF it_input_table OCCURS 10.
INCLUDE STRUCTURE itcsy.
DATA : END OF it_input_table.
déclaration de la table output_table contenant les
variables exportées
DATA : BEGIN OF it_output_table OCCURS 0.
INCLUDE STRUCTURE itcsy.
DATA : END OF it_output_table.
DATA : w_ebeln LIKE ekko-ebeln,
w_vbeln LIKE vbak-vbeln,
w_zcdffa LIKE vbak-zcdffa.
FORM CDE_CENT
FORM cde_cent TABLES input output.
it_input_table[] = input[].
it_output_table[] = output[].
READ TABLE it_input_table INDEX 1.
MOVE it_input_table-value TO w_ebeln.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = w_ebeln
IMPORTING
output = w_ebeln.
SELECT SINGLE zcdffa FROM ekko
INTO w_zcdffa
WHERE ebeln = w_ebeln.
it_output_table-name = 'CDECENT'.
MOVE w_zcdffa TO it_output_table-value.
MODIFY it_output_table INDEX 1.
output[] = it_output_table[].
ENDFORM.
REPORT ZMPO1 .
form get_freight tables in_par structure itcsy out_par structure itcsy.
tables: ekko,konv,t685t.
data: begin of itab occurs 0,
         ebeln like ekko-ebeln,
         knumv like ekko-knumv,
       end of itab.
data: begin of itab1 occurs 0,
         knumv like konv-knumv,
         kposn like konv-kposn,
         kschl like konv-kschl,
         kbetr like konv-kbetr,
         waers like konv-waers,
         kwert like konv-kwert,
       end of itab1.
data: begin of iout occurs 0,
         kschl like konv-kschl,
         vtext like t685t-vtext,
         kbetr like konv-kbetr,
         kwert like konv-kwert,
       end of iout.
data v_po like ekko-ebeln.
read table in_par with key 'EKKO-EBELN'.
if sy-subrc = 0.
   v_po = in_par-value.
   select
     ebeln
     knumv
  from ekko
  into table itab
  where ebeln = v_po.
  if sy-subrc = 0.
    loop at itab.
      select
        knumv
        kposn
        kschl
        kbetr
        waers
        kwert
      into table itab1
      from konv
      where knumv = itab-knumv and
            kappl = 'M'.
    endloop.
    loop at itab1.
      if itab1-kposn <> 0.
        select single * from t685t
                          where kschl = itab1-kschl
                            and kappl = 'M'
                            and spras = 'EN'.
        iout-vtext = t685t-vtext.
        iout-kschl = itab1-kschl.
        iout-kbetr = itab1-kbetr.
        iout-kwert = itab1-kwert.
        append iout.
        clear iout.
      endif.
    endloop.
    sort itab1 by kposn.
    loop at iout.
      sort iout by kschl.
      if ( iout-kschl eq 'GSDC' OR
           iout-kschl eq 'GSFR' OR
           iout-kschl eq 'GSIR' ).
        at end of kschl.
          read table iout index sy-tabix.
          sum.
         write:/ iout-kschl,iout-vtext,iout-kwert.
      out_par-name = 'A1'.
      out_par-value = iout-vtext.
      append out_par.
      out_par-name = 'A2'.
      out_par-value = iout-kwert.
      append out_par.
          endat.
        endif.
      endloop.
    endif.
  endif.
endform.
IN THE FORM I AM WRITING THIS CODE.
/:DEFINE &A1& = ' '
/:DEFINE &A2& = ' '
/:PERFORM GET_FREIGHT IN PROGRAM ZMFORM_PO1
/:USING &EKKO-EBELN&
/:CHANGING &A1&
/:CHANGING &A2&
/:ENDPERFORM
&A1&
&A2&
Reward points for useful Answers
Regards
Anji
Message was edited by:
        Anji Reddy Vangala

Similar Messages

  • Sap script perform statement.

    hi all,
       i have a problem with modifying standard sap script form. i have added a field in the line item of my form using perform statement in sap script. but only the corresponding to last line item is getting displayed for all.please help me on this issue my code and sap script is as follows.
    **&      Form  material_wt
         -->IN_TAB     text
         -->OUT_TAB    text
    FORM MATERIAL_WT TABLES in_tab STRUCTURE itcsy
                            out_tab STRUCTURE itcsy.
      DATA : BEGIN OF IT_MAT OCCURS 0,
               ZEILE LIKE J_1IEXCDTL-ZEILE,
               MENGE LIKE J_1IEXCDTL-MENGE,
               MATNR LIKE J_1IEXCDTL-MATNR,
               NTGEW TYPE MARA-NTGEW,
             END OF IT_MAT.
      DATA : V_DOCNO TYPE J_1IEXCDTL-DOCNO,
             V_NTWT TYPE CHAR20.
           READ TABLE in_tab WITH KEY name = 'J_1IEXCDTL-DOCNO'.
           CHECK sy-subrc = c_zero.
           V_DOCNO = in_tab-value.
           SELECT ZEILE MATNR MENGE INTO CORRESPONDING FIELDS OF TABLE IT_MAT FROM J_1IEXCDTL
                                  WHERE DOCNO = V_DOCNO AND TRNTYP = '57FC'.
                   LOOP AT IT_MAT.
                         SELECT SINGLE NTGEW INTO IT_MAT-NTGEW FROM MARA WHERE MATNR = IT_MAT-MATNR.
                   modify it_mat.
                  ENDLOOP.
             loop at it_mat.
                       IF not it_mat[] IS INITIAL.
                       READ TABLE out_tab WITH KEY name =  'NETWT'.
                                  IF sy-subrc = 0.
                                    V_NTWT = IT_MAT-NTGEW * IT_MAT-MENGE.
                                        CONDENSE:V_NTWT.
                                    out_tab-value  =  V_NTWT.
                                    MODIFY out_tab INDEX sy-tabix.
                                  ENDIF.
                        ENDIF.
             endloop.
    endform.
    and my perform statement is as follows,
    /E  ITEM_VALUES
    /:   PERFORM MATERIAL_WT IN PROGRAM ZMM_RPT_CHALLAN
    /:   USING &J_1IEXCDTL-DOCNO&
    /:   CHANGING &NETWT&
    /:   ENDPERFORM
    I1  &J_1IEXCDTL-ZEILE&,,&J_1IEXCDTL-MATNR&,,&NETWT&

    answered

  • Sap Script - LVSLABELS error

    Hi All,
    I tried to print data through LVSLABELS but nothing print .
    Is someone have idea about the SAP SCRIPT LAYOUT used in this .
    Any Suggestions welcome,
    Thanks,

    Hi All,
    I tried to print data through LVSLABELS but nothing print .
    Is someone have idea about the SAP SCRIPT LAYOUT used in this .
    Any Suggestions welcome,
    Thanks,

  • Sap script perform subroutine

    i got this sample code from sdn, but i have a dobt in this code.
    here in form subroutine giving i_intpar and i_outpar i just wanted to know should we declare this structure before writing the subroutine,and what would be that structure
    just explain this below code in detail,
    pls help
    Code this form routine in your script.
    /: PERFORM GET_PYMT_DUE_IN IN PROGRAM ZSROINVOICE
    /: USING &VBDKR-VBELN&
    /: USING &VBDKR-FKDAT&
    /: USING &VBDKR-ZTERM&
    /: CHANGING &PYMNTDUE&
    code it in ur driver program to fetch the details.
    FORM get_pymt_due TABLES i_intpar STRUCTURE itcsy
    i_outpar STRUCTURE itcsy.
    DATA : wa_fkdat LIKE sy-datum,
    wa_ztag2 LIKE t052-ztag2,
    wa_pymnt LIKE sy-datum.
    READ TABLE i_intpar WITH KEY name = 'VBDKR-FKDAT'.
    IF sy-subrc = 0.
    CONCATENATE i_intpar-value6(4) i_intpar-value3(2)
    i_intpar-value+0(2)
    INTO wa_fkdat.
    ENDIF.
    READ TABLE i_intpar WITH KEY name = 'VBDKR-ZTERM'.
    IF sy-subrc = 0.
    Payment Terms
    SELECT SINGLE ztag2
    INTO wa_ztag2
    FROM t052
    WHERE zterm = i_intpar-value.
    ENDIF.
    wa_pymnt = wa_fkdat + wa_ztag2.
    MOVE 'PYMNTDUE' TO i_outpar-name.
    CONCATENATE wa_pymnt6(2) '.' wa_pymnt4(2) '.' wa_pymnt+0(4) INTO
    i_outpar-value.
    APPEND i_outpar.
    CLEAR i_outpar.
    ENDFORM.
    pls help

    Hi
    Hope it will help you.
    Pls reward if help.
    How to call a subroutine form SAPscripts
    The Form :
    /:PERFORM CDE_CENT IN PROGRAM ZKRPMM_PERFORM_Z1MEDRUCK
    /:USING &EKKO-EBELN&
    /:CHANGING &CDECENT&
    /:ENDPERFORM
    The report :
    REPORT zkrpmm_perform_z1medruck .
    DATA : BEGIN OF it_input_table OCCURS 10.
    INCLUDE STRUCTURE itcsy.
    DATA : END OF it_input_table.
    déclaration de la table output_table contenant les
    variables exportées
    DATA : BEGIN OF it_output_table OCCURS 0.
    INCLUDE STRUCTURE itcsy.
    DATA : END OF it_output_table.
    DATA : w_ebeln LIKE ekko-ebeln,
    w_vbeln LIKE vbak-vbeln,
    w_zcdffa LIKE vbak-zcdffa.
    FORM CDE_CENT
    FORM cde_cent TABLES input output.
    it_input_table[] = input[].
    it_output_table[] = output[].
    READ TABLE it_input_table INDEX 1.
    MOVE it_input_table-value TO w_ebeln.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
    input = w_ebeln
    IMPORTING
    output = w_ebeln.
    SELECT SINGLE zcdffa FROM ekko
    INTO w_zcdffa
    WHERE ebeln = w_ebeln.
    it_output_table-name = 'CDECENT'.
    MOVE w_zcdffa TO it_output_table-value.
    MODIFY it_output_table INDEX 1.
    output[] = it_output_table[].
    ENDFORM.
    /: PERFORM
    /: USING &INVAR1&
    /: USING &INVAR2&
    /: CHANGING &OUTVAR1&
    /: CHANGING &OUTVAR2&
    /: ENDPERFORM
    INVAR1 and INVAR2 are variable symbols and may be of any of the four SAPscript symbol types.
    OUTVAR1 and OUTVAR2 are local text symbols and must therefore be character strings.
    Example:
    In script form
    /: PERFORM READ_TEXTS IN PROGRAM 'Z08M1_FORM_EKFORM1'
    /: USING &EKKO-EKORG&
    /: USING &EKPO-WERKS&
    /: USING &EKKO-EKGRP&
    /: USING &EKKO-BSTYP&
    /: CHANGING &COMPNAME&
    /: CHANGING &SENDADR&
    /: CHANGING &INVCADR&
    /: CHANGING &COMPADR&
    /: CHANGING &COVERLTR&
    /: CHANGING &SHIPADR&
    /: CHANGING &REMINDER&
    /: CHANGING &REJECTION&
    /: CHANGING &POSTADR&
    /: CHANGING &LOGO&
    /: ENDPERFORM
    In program
    FORM Read_texts - To extract the standard texts from the table *
    FORM READ_TEXTS TABLES IN_PAR STRUCTURE ITCSY
    OUT_PAR STRUCTURE ITCSY.
    DATA : L_EKORG TYPE EKORG,
    L_WERKS TYPE WERKS_D,
    L_BSTYP TYPE BSTYP,
    L_EKGRP TYPE BKGRP.
    READ TABLE IN_PAR WITH KEY 'EKKO-EKORG' .
    CHECK SY-SUBRC = 0.
    L_EKORG = IN_PAR-VALUE.
    READ TABLE IN_PAR WITH KEY 'EKPO-WERKS' .
    CHECK SY-SUBRC = 0.
    L_WERKS = IN_PAR-VALUE.
    READ TABLE IN_PAR WITH KEY 'EKKO-EKGRP' .
    CHECK SY-SUBRC = 0.
    L_EKGRP = IN_PAR-VALUE.
    READ TABLE IN_PAR WITH KEY 'EKKO-BSTYP' .
    CHECK SY-SUBRC = 0.
    L_BSTYP = IN_PAR-VALUE.
    CLEAR Z08M1_ORG_TEXTS.
    SELECT SINGLE * FROM Z08M1_ORG_TEXTS WHERE EKORG = L_EKORG
    AND WERKS = L_WERKS
    AND EKGRP = L_EKGRP
    AND BSTYP = L_BSTYP.
    IF SY-SUBRC NE 0.
    SELECT SINGLE * FROM Z08M1_ORG_TEXTS WHERE EKORG = L_EKORG
    AND WERKS = L_WERKS
    AND EKGRP = L_EKGRP
    AND BSTYP = SPACE.
    ENDIF.
    READ TABLE OUT_PAR WITH KEY 'COMPNAME'.
    OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_COMP.
    MODIFY OUT_PAR INDEX SY-TABIX.
    READ TABLE OUT_PAR WITH KEY 'SENDADR'.
    OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_ADRS.
    MODIFY OUT_PAR INDEX SY-TABIX.
    READ TABLE OUT_PAR WITH KEY 'INVCADR'.
    OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_INVC.
    MODIFY OUT_PAR INDEX SY-TABIX.
    READ TABLE OUT_PAR WITH KEY 'COMPADR'.
    OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_CPAD.
    MODIFY OUT_PAR INDEX SY-TABIX.
    READ TABLE OUT_PAR WITH KEY 'COVERLTR'.
    OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_COVR.
    MODIFY OUT_PAR INDEX SY-TABIX.
    READ TABLE OUT_PAR WITH KEY 'SHIPADR'.
    OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_SHIP.
    MODIFY OUT_PAR INDEX SY-TABIX.
    READ TABLE OUT_PAR WITH KEY 'REMINDER'.
    OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_RMDR.
    MODIFY OUT_PAR INDEX SY-TABIX.
    READ TABLE OUT_PAR WITH KEY 'REJECTION'.
    OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_RJCT.
    MODIFY OUT_PAR INDEX SY-TABIX.
    READ TABLE OUT_PAR WITH KEY 'POSTADR'.
    OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_POST.
    MODIFY OUT_PAR INDEX SY-TABIX.
    READ TABLE OUT_PAR WITH KEY 'LOGO'.
    OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_LOGO.
    MODIFY OUT_PAR INDEX SY-TABIX.
    ENDFORM.
    REPORT ZMPO1 .
    form get_freight tables in_par structure itcsy out_par structure itcsy.
    tables: ekko,konv,t685t.
    data: begin of itab occurs 0,
             ebeln like ekko-ebeln,
             knumv like ekko-knumv,
           end of itab.
    data: begin of itab1 occurs 0,
             knumv like konv-knumv,
             kposn like konv-kposn,
             kschl like konv-kschl,
             kbetr like konv-kbetr,
             waers like konv-waers,
             kwert like konv-kwert,
           end of itab1.
    data: begin of iout occurs 0,
             kschl like konv-kschl,
             vtext like t685t-vtext,
             kbetr like konv-kbetr,
             kwert like konv-kwert,
           end of iout.
    data v_po like ekko-ebeln.
    read table in_par with key 'EKKO-EBELN'.
    if sy-subrc = 0.
       v_po = in_par-value.
       select
         ebeln
         knumv
      from ekko
      into table itab
      where ebeln = v_po.
      if sy-subrc = 0.
        loop at itab.
          select
            knumv
            kposn
            kschl
            kbetr
            waers
            kwert
          into table itab1
          from konv
          where knumv = itab-knumv and
                kappl = 'M'.
        endloop.
        loop at itab1.
          if itab1-kposn <> 0.
            select single * from t685t
                              where kschl = itab1-kschl
                                and kappl = 'M'
                                and spras = 'EN'.
            iout-vtext = t685t-vtext.
            iout-kschl = itab1-kschl.
            iout-kbetr = itab1-kbetr.
            iout-kwert = itab1-kwert.
            append iout.
            clear iout.
          endif.
        endloop.
        sort itab1 by kposn.
        loop at iout.
          sort iout by kschl.
          if ( iout-kschl eq 'GSDC' OR
               iout-kschl eq 'GSFR' OR
               iout-kschl eq 'GSIR' ).
            at end of kschl.
              read table iout index sy-tabix.
              sum.
             write:/ iout-kschl,iout-vtext,iout-kwert.
          out_par-name = 'A1'.
          out_par-value = iout-vtext.
          append out_par.
          out_par-name = 'A2'.
          out_par-value = iout-kwert.
          append out_par.
              endat.
            endif.
          endloop.
        endif.
      endif.
    endform.
    IN THE FORM I AM WRITING THIS CODE.
    /:DEFINE &A1& = ' '
    /:DEFINE &A2& = ' '
    /:PERFORM GET_FREIGHT IN PROGRAM ZMFORM_PO1
    /:USING &EKKO-EBELN&
    /:CHANGING &A1&
    /:CHANGING &A2&
    /:ENDPERFORM
    &A1&
    &A2&
    This Code is to be written in the PO form under ADDRESS window.
    /:DEFINE &A1& = ' '
    /:DEFINE &A2& = ' '
    /:DEFINE &A3& = ' '
    /:DEFINE &A4& = ' '
    /:DEFINE &A5& = ' '
    /:DEFINE &A6& = ' '
    /:PERFORM GET_VENDOR IN PROGRAM ZMFORM_PO
    /:USING &EKKO-EBELN&
    /:CHANGING &A1&
    /:CHANGING &A2&
    /:CHANGING &A3&
    /:CHANGING &A4&
    /:CHANGING &A5&
    /:CHANGING &A6&
    /:ENDPERFORM
    &A1&
    &A2&
    &A3&
    &A4&
    &A5&
    &A6&

  • Sap script - Perform returning multiple line items

    I am making payment advice layout which is called from the transaction f-58. I do not need to change the standard program, since all information is available in the standard layout, but I need to display line items in the new layout I am preparing!
    So to display line items, I have copied the layout and used perform statement and called another se38 prog to retrieve line items.
    The following is written in se71-
    PERFORM FORM_GET_DATA IN PROGRAM ZFR005_PAYMENT_ADVICE
    USING &VV_VBLNR& (this is my header data)
    CHANGING &V_XBLNR1&
    CHANGING &V_BLDAT1&
    CHANGING &V_BELNR1&
    This works fine if I just have to retrieve one line item , but to get multiple , I need to declare multiple changing parameter and print it, because perform is called only once.
    PERFORM FORM_GET_DATA IN PROGRAM ZFR005_PAYMENT_ADVICE
    USING &VV_VBLNR& (this is my header data)
    CHANGING &V_XBLNR1&
    CHANGING &V_BLDAT1&
    CHANGING &V_BELNR1&
    CHANGING &V_XBLNR2&
    CHANGING &V_BLDAT2&
    CHANGING &V_BELNR2&
    .................3
    .................4
    How do I call this perform multiple times so that I do not have to create multiple changing parameters to retrieve line items?

    Hi,
    In the SAPSCRIPT , we can write abap code if the tag column has '/:' command line....
    So, any looping operation can be done to retrieve the data.
    Pass the item no. also (in the 'USING' part), for which the details are required.
    Hope this helps.
    Regards,
    Renjith

  • Error "AND, OR or end of condition expected" in sap script IF statement

    Hi all,
    /:   IF  &WA_BSEG_IN-BUKRS& EQ '1000' OR &WA_BSEG_IN-BUKRS& EQ'2000'
    =    OR &WA_BSEG_IN-BUKRS& EQ '4000' OR  &WA_BSEG_IN-BUKRS& EQ '5000'
    /:   CASE  &WA_BSEG_IN-BLART&
    /:   WHEN 'DZ'
    /:   IF  &SAVE_EVENT& EQ u2018ZPR01u2019 OR &SAVE_EVENT& EQ u2018ZPR06u2019
    D1   <C4>Cheque Number/Bank Reference,,Payment Method,,Amount,,Cur,,</>
    /:   ENDIF
    /:   WHEN OTHERS
    D1   <C4>Payment Method,,Cheque Number/Bank Reference,,Amount,,Cur,,</>
    /:   ENDCASE
    /:   ENDIF
    I am getting below error in the the if statement (5th line) in sap script.
    Error is "AND, OR or end of condition expected".
    What is error in the 5th line?
    Thanks in advance

    Hi,
    In sap script, always give conditon in a sinlge line. Dont break the condition into many lines.
    /: IF &WA_BSEG_IN-BUKRS& EQ '1000' OR &WA_BSEG_IN-BUKRS& EQ'2000' OR &WA_BSEG_IN-BUKRS& EQ '4000'
    Thanks.

  • Calling subroutine from SAP script

    I am using the below code within my SAP script form that prints GR/GI Slips but its not working.  And the only way I can issue the output is from MB02 whcih doesn't seem to allow to call the debuger, so I'm at a lost as to what to do.
    Code in SAP script
    /:           PERFORM GET_BINS IN PROGRAM ZMM_SAPSCRIPT_FORMS                                                                               
    USING &MSEG-MATNR&
    /:                                                           USING &MSEG-LGNUM&
    /:                                                           CHANGING &MABDR-LGPBE&
    /:           ENDPERFORM
    CODE from my subroutine program:
    FORM get_bins TABLES input_table STRUCTURE itcsy
                         output_table STRUCTURE itcsy.
      DATA: lc_matnr    TYPE matnr,
            lc_lgnum    TYPE lgnum,
            lc_lgpla    TYPE lgpla,
            lc_index    TYPE sy-tabix.
    * Material no
      READ TABLE input_table WITH KEY name = 'MSEG-MATNR'.
      MOVE input_table-value TO lc_matnr.
    * Warehouse number
      READ TABLE input_table WITH KEY name = 'MSEG-LGNUM'.
      MOVE input_table-value TO lc_lgnum.
    * Get BIN
      SELECT SINGLE lgpla INTO lc_lgpla
             FROM mlgt
             WHERE matnr = lc_matnr
             AND   lgnum = 'CPT'  "lc_lgnum
             AND   lgtyp = '001'.
      IF sy-subrc = 0.
        READ TABLE output_table WITH KEY name = 'MABDR-LGPBE'.
        lc_index = sy-tabix.
        MOVE lc_lgpla TO output_table-value.
        MODIFY output_table INDEX lc_index.
      ENDIF.

    /:           PERFORM GET_BINS IN PROGRAM ZMM_SAPSCRIPT_FORMS
    /:                                                              USING &MSEG-MATNR&
    /:                                                           USING &MSEG-LGNUM&
    /:                                                           CHANGING &MABDR-LGPBE&
    /:           ENDPERFORM
    FORM get_bins TABLES input_table STRUCTURE itcsy
                         output_table STRUCTURE itcsy.
      DATA: lc_matnr    TYPE matnr,
            lc_lgnum    TYPE lgnum,
            lc_lgpla    TYPE lgpla,
            lc_index    TYPE sy-tabix.
    Material no
      READ TABLE input_table WITH KEY name = 'MSEG-MATNR'.
      MOVE input_table-value TO lc_matnr.
    Warehouse number
      READ TABLE input_table WITH KEY name = 'MSEG-LGNUM'.
      MOVE input_table-value TO lc_lgnum.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT         = lc_matnr
      IMPORTING
       OUTPUT        = lc_matnr         .
    Get BIN
      SELECT SINGLE lgpla INTO lc_lgpla
             FROM mlgt
             WHERE matnr = lc_matnr
             AND   lgnum = 'CPT'  "lc_lgnum
             AND   lgtyp = '001'.
      IF sy-subrc = 0.
        READ TABLE output_table WITH KEY name = 'MABDR-LGPBE'.
        lc_index = sy-tabix.
        MOVE lc_lgpla TO output_table-value.
        MODIFY output_table TRANSPORTING VALUE WHERE NAME = 'MABDR-LGPBE'.
      ENDIF.

  • Dump error when clicked on text elements in SAP Script window

    Hi All,
    There is an inclusion in SAP Script. I have written the code in driver program. I need to pass the value to SAP Script in the requested position. But when I go to SE71 > Form Name > Change or Display > MAIN Window > Text Elements > I get a dump error.
    Category               ABAP Programming Error
    Runtime Errors         DATA_LENGTH_TOO_LARGE
    Except.                CX_SY_RANGE_OUT_OF_BOUNDS
    ABAP Program           SAPLSTXK
    Application Component  BC-SRV-SCR
    Date and Time          30.04.2014 20:00:08
    Short text
         Invalid partial field access: Length is too large
    What happened?
         Error in the ABAP Application Program
         The current ABAP program "SAPLSTXK" had to be terminated because it has
         come across a statement that unfortunately cannot be executed.
    What can you do?
         Note down which actions and inputs caused the error.
         To process the problem further, contact you SAP system
         administrator.
         Using Transaction ST22 for ABAP Dump Analysis, you can look
         at and manage termination messages, and you can also
         keep them for a long time.
    Error analysis
         An exception occurred that is explained in detail below.
         The exception, which is assigned to class 'CX_SY_RANGE_OUT_OF_BOUNDS', was not
          caught in
         procedure "TOKEN_COMMENT" "(FORM)", nor was it propagated by a RAISING clause.
         Since the caller of the procedure could not have anticipated that the
         exception would occur, the current program is terminated.
        The reason for the exception is:
        In the executed program "SAPLSTXK", the system attempted to access the field
        "ITF_TOKEN" of the type "C" and with the length 255 using the length 272.
        However, a partial field access with a length specification that is
        larger than the field length is not allowed.
    How to correct the error
        Reduce the length used to access the field.
        If the error occures in a non-modified SAP program, you may be able to
        find an interim solution in an SAP Note.
        If you have access to SAP Notes, carry out a search with the following
        keywords:
        "DATA_LENGTH_TOO_LARGE" "CX_SY_RANGE_OUT_OF_BOUNDS"
        "SAPLSTXK" or "LSTXKFRN"
        "TOKEN_COMMENT"
        If you cannot solve the problem yourself and want to send an error
        notification to SAP, include the following information:
        1. The description of the current problem (short dump)
           To save the description, choose "System->List->Save->Local File
        (Unconverted)".
        2. Corresponding system log
           Display the system log by calling transaction SM21.
           Restrict the time interval to 10 minutes before and five minutes
        after the short dump. Then choose "System->List->Save->Local File
    2937 * todo empty comment ???
    2938       if g_tm_open    eq true or     " Section
    2939          g_tm_b_close eq true.
    2940         l_token = '\chcbpat0'.
    2941         l_len = strlen( l_token ).
    2942         token_control = true.
    2943         assign l_token to <itf1>.
    2944         perform put_itf1_new using l_len.
    2945         perform token_line_begin changing l_next_token.
    2946       else.                          " without section
    2947         concatenate '\chcbpat0\line' g_cf_string l_cbpat_token into l_token.
    2948         l_len = strlen( l_token ).
    2949         token_control = true.
    2950         assign l_token to <itf1>.
    2951         perform put_itf1_new using l_len.
    2952       endif.
    2953     elseif l_next_token-code eq ')L'.         " \par
    2954       l_token = '\par'.
    2955       l_len = strlen( l_token ).
    2956       token_control = true.
    2957       assign l_token to <itf1>.
    2958       perform put_itf1_new using l_len.
    2959     elseif l_next_token-code eq '(C' or       " \par + format
    2960            l_next_token-code eq ')C' or
    2961            l_next_token-code eq '(&' or
    2962            l_next_token-code eq 'TA' or
    2963            l_next_token-code eq 'SC' or
    2964            l_next_token-code eq 'ST'.
    2965       concatenate '\chcbpat0\par' g_pf_string g_cf_string l_cbpat_token into l_token.
    2966       l_len = strlen( l_token ).
    >>>>>       itf_token(l_len) = l_token.
    2968       token_control = true.
    2969       assign l_token to <itf1>.
    2970       perform put_itf1_new using l_len.
    2971     endif.
    2972
    2973 * Step 7: (L to disarm
    2974   if g_compose eq true and
    2975      l_next_token-code eq '(L'.
    2976     perform read_next_itf_token(rstxscan) using p_token.
    2977   endif.
    2978
    2979 ENDFORM.                    " token_comment
    2980 *&---------------------------------------------------------------------*
    2981 *&      Form  create_lang_info
    2982 *&---------------------------------------------------------------------*
    2983 *       add default language to rtf
    2984 *----------------------------------------------------------------------*
    2985 *      -->P_HEADER  text
    2986 *      <--P_RESULT  text
    How do I open the text elements? I need to pass the variable inside SAP Script.
    Please Help. The requirement is pending from very long. Not able to rectify this issue.
    Regards,
    Rekha

    Hi,
    There is a SAP Note about this problem
    566794 - Runtime error: STRING_OFFSET_TOO_LARGE during conversion
    Correction Instructions
    Correction Instructions
    Software Component
    Valid from
    Valid to
    Number
    SAP_BASIS
    46B
    46D
    473267
    SAP_BASIS
    610
    620
    473185
    Support Packages & Patches
    Support Packages
    Software Component
    Release
    Support Package
    SAP_BASIS
    46B
    SAPKB46B48
    46C
    SAPKB46C39
    46D
    SAPKB46D28
    610
    SAPKB61027
    620
    SAPKB62014
    Regards
    Miguel

  • Perform in SAP script

    how should i call a perform statement in SAP script
    I have been trying to use it in sap script but it is giving me a dump
    the code extract looks as follows:
    iN DRIVER'S PROGRAM
    FORM POP_ADD USING V_parvw like vbpa-parvw.
    READ TABLE i_addr WITH KEY WF_PARVW = 'WE'.
    ENDFORM.
    IN SAP SCRIPT
    /:   DEFINE &V_PARVW& = &VBPA-PARVW&          
    /:   PERFORM POP_ADD IN PROGRAM ZSD_SCR_INVOICE
    /:   USING            &V_PARVW&               
    /:   ENDPERFORM                               
    /    &i_addr-WF_PARVW&                        
    IT IS GIVING SHORT DUMP SAYING
    In a subroutine call, there were more parameters than in the                  
    routine definition.                                                           
    Error in ABAP application program.                                                                               
    The current ABAP program "ZSD_SCR_INVOICE " had to be terminated because one of
    the                                                                          
    statements could not be executed.                                                                               
    This is probably due to an error in the ABAP program.

    Hi,
    The PERFORM in your program should have the following syntax:
    FORM POP_ADD TABLES IN_TAB  STRUCTURE ITCSY
                        OUT_TAB STRUCTURE ITCSY.
    READ TABLE in_tab WITH KEY 'V_PARVW'.
    CHECK sy-subrc EQ 0.
    ENDFORM.
    Take a look at http://www.sapfans.com/forums/viewtopic.php?t=131082&highlight=perform for an example of the required syntax.
    Hope this helps.
    Regards

  • Please help for using perform in SAP script

    As subject.
    My sap script code as below:
    /: PERFORM GET_CHAMT_DATE IN PROGRAM ZRAP004
    /:USING    &SPELL-WORD&
    /:CHANGING &SPELL-WORD&
    /:ENDPERFORM
    My program ZRAP004 code as below:
    FORM get_chamt_date USING u_iword TYPE spell-word
                       CHANGING u_oword TYPE spell-word.
    CONCATENATE u_iword '&#20803;&#25972;'(t01) INTO u_oword.
    endform.
    This form is for check printing.
    It's by standard function 'F110' to excute check printing.
    But when i finished this transaction. System return error message as below:
    <b>This routine contains 2 formal parameters, but the current call
    contains 4 actual parameters.</b>
    Please help. Thanks a lot!!

    Hiii
    PERFORM CDE_CENT IN PROGRAM ZKRPMM_PERFORM_Z1MEDRUCK
    /:USING &EKKO-EBELN&
    /:CHANGING &CDECENT&
    /:ENDPERFORM
    The report :
    REPORT zkrpmm_perform_z1medruck .
    DATA : BEGIN OF it_input_table OCCURS 10.
           INCLUDE STRUCTURE itcsy.
    DATA : END OF it_input_table.
    déclaration de la table output_table contenant les
    variables exportées
    DATA : BEGIN OF it_output_table OCCURS 0.
           INCLUDE STRUCTURE itcsy.
    DATA : END OF it_output_table.
    DATA : w_ebeln LIKE ekko-ebeln,
          w_vbeln LIKE vbak-vbeln,
          w_zcdffa LIKE vbak-zcdffa.
    FORM CDE_CENT
    FORM cde_cent TABLES input output.
    it_input_table[] = input[].
    it_output_table[] = output[].
    READ TABLE it_input_table INDEX 1.
    MOVE it_input_table-value TO w_ebeln.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
          EXPORTING
               input  = w_ebeln
          IMPORTING
               output = w_ebeln.
    SELECT SINGLE zcdffa FROM ekko
    INTO w_zcdffa
    WHERE ebeln = w_ebeln.
    it_output_table-name = 'CDECENT'.
    MOVE w_zcdffa TO it_output_table-value.
    MODIFY it_output_table INDEX 1.
    output[] = it_output_table[].
    ENDFORM.

  • Currency field in PERFORM, -- SAP Script

    Hi,
    I am calling a zperform from SAP Script and sending two currency values as input and after doing subtraction , I want the result value from the Zperform.
    When I send 1,000,000.00 as input to PERFORM. I am getting a dump when I try to assign the in_par-value to a currency field in FORM.
    The error is "Unable to interpret "1,000,000.00 " as a number." Please let me know how to handle this case. I mean is there any converstion routine to convert the external currency value to internal format?

    You must remove the commas.
    Warren

  • Error in printing SAP Script

    Dear All,
    I need some help frm u gurus.
    Theres a Z-SAP Script that I made.........the same is running fine in quality but when transported to production client it gives error in PERFORM START_FORM USING FORMNAME LANG 'MAIN'. saying that the form doesnot exist in language 'EN'.
    What can be the problem?? Any suggestion....?
    Thnx.

    just check it out whether you will have properly released and whether it is reached to the destination client.
    one more thing check in language option of that script in se71 screen in language option whether english is maintained.
    if further information please reply
    rewards points if useful

  • How to use perform statements in sap scripts

    how to use perform statements in sap scripts . and pls send me one progam for this
    thnaks
    raja

    Hi Raja,
    <b>PERFORM</b> key work is used to include subroutine in sapscript form...
    But the processing is lttle bit different form the one we use in ABAP.
    Here the paramters passed to form is stored in internal table of name-value table. there are two table one for inbound parameter and other for outbound parameters.
    Check out the example below to see how this is used..
    <b>Definition in the SAPscript form:</b>
    /: PERFORM GET_BARCODE IN PROGRAM QCJPERFO
    /: USING &PAGE&
    /: USING &NEXTPAGE&
    /: CHANGING &BARCODE&
    /: ENDPERFORM
    / &BARCODE&
    <b>Coding of the calling ABAP program:</b>
    REPORT QCJPERFO.
    FORM GET_BARCODE TABLES IN_PAR STUCTURE ITCSY
    OUT_PAR STRUCTURE ITCSY.
    DATA: PAGNUM LIKE SY-TABIX, "page number
    NEXTPAGE LIKE SY-TABIX. "number of next page
    READ TABLE IN_PAR WITH KEY ‘PAGE’.
    CHECK SY-SUBRC = 0.
    PAGNUM = IN_PAR-VALUE.
    READ TABLE IN_PAR WITH KEY ‘NEXTPAGE’.
    CHECK SY-SUBRC = 0.
    NEXTPAGE = IN_PAR-VALUE.
    READ TABLE OUT_PAR WITH KEY ‘BARCODE’.
    CHECK SY-SUBRC = 0.
    IF PAGNUM = 1.
    OUT_PAR-VALUE = ‘|’. "First page
    ELSE.
    OUT_PAR-VALUE = ‘||’. "Next page
    ENDIF.
    IF NEXTPAGE = 0.
    OUT_PAR-VALUE+2 = ‘L’. "Flag: last page
    ENDIF.
    MODIFY OUT_PAR INDEX SY-TABIX.
    ENDFORM.
    Hope this is clear to understand...
    Enjoy SAP.
    Pankaj Singh.

  • How to write a perform in Sap Script

    Hi Guys,
    Can anyone let me know how to write a perform statement in Sap Script.
    Thanks,
    Ramesh

    I just took this example from SAP Help
    =======================================
    Syntax in a form window:
    /: PERFORM <form> IN PROGRAM <prog>
    /: USING &INVAR1&
    /: USING &INVAR2&
    /: CHANGING &OUTVAR1&
    /: CHANGING &OUTVAR2&
    /: ENDPERFORM
    INVAR1 and INVAR2 are variable symbols and may be of any of the four SAPscript symbol types.
    OUTVAR1 and OUTVAR2 are local text symbols and must therefore be character strings.
    The ABAP subroutine called via the command line stated above must be defined in the ABAP report prog as follows:
    FORM <form> TABLES IN_TAB STRUCTURE ITCSY
    OUT_TAB STRUCTURE ITCSY.
    ENDFORM.

  • Sap script form perform statement

    HI ALL ,
    CAN ANYONE HELP ME WITH SAP-SCRIPT FORM AND PERFORM SYNTAX. THAT IS WHEN U NEED TO ADD A FIELD TO AN EXISTING SAPSCRIPT, BY USING AN EXTERNAL SUBROUTINE.
    i NEED THE SYNTAX BOTH FOR PERFORM AND ENDPERFORM STATEMENT AND ALSO THE FORM STSEMENT. ANOTHER TRHING IS IF CAN LET ME KNOW HOW TO USE DEFINE STATEMENT IN SAPSCRIPT. WHATS ITS USE AND IS IT RELATED TO THE QUERY ABOVE.
    else,
    U PLZ LET ME KNOW ANY HELPFUL LINKS TO GO THROUGH.
    THANLS IN ADVANCE,
    ANUPMA.

    Hi anupma,
    1. while calling subroutines from sapscripts,
    there is a special technique,
    which has got its own limitations.
    2.
    FORM abc
    TABLES
    in_tab STRUCTURE itcsy
    out_tab STRUCTURE itcsy.
    ENDFORM.
    3. The perform in se38 program should be of the
    above format only.
    4. We cannot pass internal tables.
    5. Rather we need to pass
    VARIABLE NAME
    VARIABLE VALUE
    (see the structure of itcsy in se11)
    6. In this form, we have to read
    the internal table in_tab
    to capture the variable name and its value.
    7. Similary, to return the values,
    we have to put one record (for each variable)
    in out_tab.
    regards,
    amit m.

Maybe you are looking for