SAP SCRIPT PERFORM ERROR
HI,
I AM USING FOLLOWING CODE IN SAP SCRIPT
/: PERFORM SUM IN PROGRAM ZSUM
/: USING ®UD-WRBTR&
/: USING ®UD-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
-
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, -
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 helpHi
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 advanceHi,
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,
RekhaHi,
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 -
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 '元整'(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 -
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
rajaHi 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,
RameshI 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
-
How can I use Microsoft Access on my Mac?
How can I use Microsoft Access on my Mac Pro?
-
Itunes wont install on vista, No digital signature
I had a problem were Itunes would not update or anything Apple related (quicktime etc) so i deleted Itunes and tried to run it as a fresh copy. Yet when i download it and try to run the application i get the box from windows asking me if i want to ru
-
Primary key, unique key impdp problem
Hi, during my impdp I came across problems with constraints being violated. So I disabled all constraints in a proper order. It didn't help. There are still the same errors. I checked some individual constraints that were problematic and it turned ou
-
Files transcoded to ProRes from Sony NX5 Crash everything...
Using FCP 7 on a MacPro our client has been using FCP's Log & Transfer to transcode the AVCHD files shot w/ a Sony NX5 to Apple's ProRes. I was told "The transcoded files crash the finder, quicktime and FCP and often flicker green with distorted audi
-
I want to install a video card PALIT Super JetStream 960 in my computer HP PRO 3500
My HP has this configuration: Intel i5 3470 3.2 GHz AMD Radeon HD 8570 8 Gb RAM. I want to install PALIT GTX 960 Super JetStream (http://www.palit.biz/palit/vgapro.php?id=2440) Unfortunately I do not know the model of my motherboard, msinfo32 says th