on 02-24-2007 7:00 AM
Hi:
I've made a subrouting program to be called in sap script printing.This program is showing a lot of errors in EPC check.I'm putting the code below.Please help me out to clean EPC/SLIN.
&----
*& Form GET_SGL_ACCOUNT
&----
Read the SGL ACCOUNT No..
----
-->IN_TAB text
-->OUT_TAB text
----
FORM GET_SGL_ACCOUNT TABLES in_tab STRUCTURE itcsy out_tab STRUCTURE itcsy.
DATA : L_BUKRS TYPE VTBFHAZU-BUKRS,
L_RFHA TYPE VTBFHAZU-RFHA ,
L_NORDEXT TYPE VTBFHAZU-NORDEXT,
L_SGSART TYPE VTBFHAZU-SGSART,
L_SFHAART TYPE VTBFHAZU-SFHAART,
L_XTEXT TYPE AT10T-XTEXT,
L_RPORTB TYPE VTBFHA-RPORTB,
L_XPORTB TYPE TWPOB-XPORTB,
L_DELFZ TYPE VTBFHAZU-DELFZ,
L_DELFZ1 TYPE VTBFHAZU-DELFZ,
L_BZBETR TYPE VTBFHAPO-BZBETR,
L_DVTRAB TYPE VTBFHAZU-DVTRAB,
L_DVTRAB1 TYPE VTBFHAZU-DVTRAB,
L_DBLFZ TYPE VTBFHAZU-DBLFZ,
L_DBLFZ1 TYPE VTBFHAZU-DBLFZ,
L_RDEALER TYPE VTBFHAZU-RDEALER,
L_NAME_ORG1 TYPE BUT000-NAME_ORG1,
L_MERKM TYPE VTBFHA-MERKM,
L_REFER TYPE VTBFHA-REFER,
L_GSPPART TYPE VTBFHAZU-GSPPART,
L_BZBETR1 TYPE VTBFHAPO-BZBETR,
L_BZBETR2 TYPE VTBFHAPO-BZBETR,
L_BZBETR3 TYPE VTBFHAPO-BZBETR,
L_BZBETR4 TYPE VTBFHAPO-BZBETR,
L_BZBETR5 TYPE VTBFHAPO-BZBETR.
DATA : L_WORDS TYPE SPELL.
CONSTANTS : C_SFHAZBA TYPE VTBFHAPO-SFHAZBA VALUE '1120'.
CONSTANTS : C_SFHAZBA1 TYPE VTBFHAPO-SFHAZBA VALUE '9500'.
CONSTANTS : C_SFHAZBA2 TYPE VTBFHAPO-SFHAZBA VALUE '9502'.
CONSTANTS : C_RFHAZU TYPE VTBFHAPO-RFHAZU VALUE '00001'.
READ TABLE in_tab INDEX 1 .
L_BUKRS = IN_TAB-VALUE.
READ TABLE in_tab INDEX 2 .
L_RFHA = IN_TAB-VALUE.
SELECT SINGLE NORDEXT FROM VTBFHAZU INTO L_NORDEXT
WHERE BUKRS = L_BUKRS
AND RFHA = L_RFHA.
READ TABLE out_tab WITH KEY NAME = 'NORDEXT' .
MOVE L_NORDEXT TO out_tab-value.
MODIFY out_tab INDEX 1.
SELECT SINGLE SGSART FROM VTBFHAZU INTO L_SGSART
WHERE BUKRS = L_BUKRS
AND RFHA = L_RFHA.
READ TABLE OUT_TAB WITH KEY NAME = 'SGSART' .
MOVE L_SGSART TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX 2.
SELECT SINGLE SFHAART FROM VTBFHAZU INTO L_SFHAART
WHERE BUKRS = L_BUKRS
AND RFHA = L_RFHA.
READ TABLE OUT_TAB WITH KEY NAME = 'SFHAART' .
MOVE L_SFHAART TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX 3.
SELECT SINGLE XTEXT FROM AT10T INTO L_XTEXT
WHERE SGSART = L_SGSART
AND SFHAART = L_SFHAART
AND SPRAS = SY-LANGU.
READ TABLE OUT_TAB WITH KEY NAME = 'XTEXT' .
MOVE L_XTEXT TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX 4.
SELECT SINGLE RPORTB FROM VTBFHA INTO L_RPORTB
WHERE BUKRS = L_BUKRS
AND RFHA = L_RFHA.
READ TABLE OUT_TAB WITH KEY NAME = 'RPORTB' .
MOVE L_RPORTB TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX 5.
SELECT SINGLE XPORTB FROM TWPOB INTO L_XPORTB
WHERE BUKRS = L_BUKRS
AND RPORTB = L_RPORTB.
READ TABLE OUT_TAB WITH KEY NAME = 'XPORTB' .
MOVE L_XPORTB TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX 6.
SELECT SINGLE DELFZ FROM VTBFHAZU INTO L_DELFZ
WHERE BUKRS = L_BUKRS
AND RFHA = L_RFHA.
WRITE L_DELFZ TO L_DELFZ1 DD/MM/YY.
READ TABLE OUT_TAB WITH KEY NAME = 'DELFZ' .
MOVE L_DELFZ1 TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX 7.
SELECT SINGLE BZBETR FROM VTBFHAPO INTO L_BZBETR
WHERE RFHA = L_RFHA
AND SFHAZBA = C_SFHAZBA.
READ TABLE OUT_TAB WITH KEY NAME = 'BZBETR' .
MOVE L_BZBETR TO OUT_TAB-VALUE.
CONDENSE OUT_TAB-VALUE NO-GAPS.
MODIFY OUT_TAB INDEX 8.
SELECT SINGLE DVTRAB FROM VTBFHAZU INTO L_DVTRAB
WHERE BUKRS = L_BUKRS
AND RFHA = L_RFHA.
WRITE L_DVTRAB TO L_DVTRAB1 DD/MM/YY.
READ TABLE OUT_TAB WITH KEY NAME = 'DVTRAB' .
MOVE L_DVTRAB1 TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX 9.
SELECT SINGLE DBLFZ FROM VTBFHAZU INTO L_DBLFZ
WHERE BUKRS = L_BUKRS
AND RFHA = L_RFHA.
WRITE L_DBLFZ TO L_DBLFZ1 DD/MM/YY.
READ TABLE OUT_TAB WITH KEY NAME = 'DBLFZ' .
MOVE L_DBLFZ1 TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX 10.
SELECT SINGLE RDEALER FROM VTBFHAZU INTO L_RDEALER
WHERE BUKRS = L_BUKRS
AND RFHA = L_RFHA.
READ TABLE OUT_TAB WITH KEY NAME = 'RDEALER' .
MOVE L_RDEALER TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX 11.
SELECT SINGLE NAME_ORG1 FROM BUT000 INTO L_NAME_ORG1
WHERE BU_SORT1 = L_RDEALER.
READ TABLE OUT_TAB WITH KEY NAME = 'NAME_ORG1' .
MOVE L_NAME_ORG1 TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX 12.
SELECT SINGLE MERKM FROM VTBFHA INTO L_MERKM
WHERE BUKRS = L_BUKRS
AND RFHA = L_RFHA.
READ TABLE OUT_TAB WITH KEY NAME = 'MERKM' .
MOVE L_merkm TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX 13.
SELECT SINGLE REFER FROM VTBFHA INTO L_REFER
WHERE BUKRS = L_BUKRS
AND RFHA = L_RFHA.
READ TABLE OUT_TAB WITH KEY NAME = 'REFER' .
MOVE L_REFER TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX 14.
SELECT SINGLE GSPPART FROM VTBFHAZU INTO L_GSPPART
WHERE BUKRS = L_BUKRS
AND RFHA = L_RFHA.
READ TABLE OUT_TAB WITH KEY NAME = 'GSPPART' .
MOVE L_GSPPART TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX 15.
SELECT SINGLE BZBETR FROM VTBFHAPO INTO L_BZBETR1
WHERE SFHAZBA = C_SFHAZBA1
AND RFHAZU = C_RFHAZU.
READ TABLE OUT_TAB WITH KEY NAME = 'BZBETR1' .
MOVE L_BZBETR1 TO OUT_TAB-VALUE.
CONDENSE OUT_TAB-VALUE NO-GAPS.
MODIFY OUT_TAB INDEX 16.
SELECT SINGLE BZBETR FROM VTBFHAPO INTO L_BZBETR2
WHERE SFHAZBA = C_SFHAZBA2
AND RFHAZU = C_RFHAZU.
READ TABLE OUT_TAB WITH KEY NAME = 'BZBETR2' .
MOVE L_BZBETR2 TO OUT_TAB-VALUE.
CONDENSE OUT_TAB-VALUE NO-GAPS.
MODIFY OUT_TAB INDEX 17.
SELECT SINGLE BZBETR FROM VTBFHAPO INTO L_BZBETR3
WHERE SFHAZBA = '1100'
AND RFHAZU = '00001'.
L_BZBETR3 = ( L_BZBETR3 ) + ( L_BZBETR1 ) - ( L_BZBETR2 ).
READ TABLE OUT_TAB WITH KEY NAME = 'BZBETR3' .
MOVE L_BZBETR3 TO OUT_TAB-VALUE.
CONDENSE OUT_TAB-VALUE NO-GAPS.
MODIFY OUT_TAB INDEX 18.
SELECT SINGLE BZBETR FROM VTBFHAPO INTO L_BZBETR4
WHERE SFHAZBA = '9503'
AND SSIGN = '-'.
READ TABLE OUT_TAB WITH KEY NAME = 'BZBETR4' .
MOVE L_BZBETR4 TO OUT_TAB-VALUE.
MODIFY OUT_TAB INDEX 19.
L_BZBETR5 = L_BZBETR4 + L_BZBETR3.
READ TABLE OUT_TAB WITH KEY NAME = 'BZBETR5' .
MOVE L_BZBETR5 TO OUT_TAB-VALUE.
CONDENSE OUT_TAB-VALUE NO-GAPS.
MODIFY OUT_TAB INDEX 20.
CALL FUNCTION 'Z006_SPELL_AMOUNT'
EXPORTING
AMOUNT = L_BZBETR5
CURRENCY = 'INR'
LANGUAGE = SY-LANGU
IMPORTING
IN_WORDS = L_WORDS
EXCEPTIONS
TOO_LARGE = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE out_tab WITH KEY NAME = 'WORDS' .
MOVE l_words-word TO out_tab-value.
MODIFY out_tab INDEX 21.
ENDFORM. "FORM GET_SGL_ACCOUNT
Hi,
Currently i may not check the table in sap but do check the following things which will be pointed in EPC:
1. Naming convention (Local variables).
2. When select single is used all the primary keys should be used in the where clause else do select and end select with up to 1 rows.
3. Do use the Write to stmt for char types. character fields (types C, D, N, T, or X). you should not use a target field with a numeric data type (F, I , or P).
4. Check the FM import and Export parameters.
Br,
Laxmi.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
84 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.