abap snippet
TRANSCRIPT
-
8/19/2019 Abap Snippet
1/24
Open Doc url for Jump report from BW report to Crystal Report 2011
http://ESSHAZSRV83.srhouse.com:8080/BOE/OpenDocument/opendoc/openDocument.jsp?
iDocD!A"d#$D"O%&ZHuh'#()*+E,-sD$pe!1DsRe#resh!,)2ZVAR4EE56'E7
)sS2,A4ZDSRHA5S7
Authorization code
WHEN 'YCCS_PROFIT_CTRS'.
IF i_step = 0. " if 1
CLEAR l_s_range.
IF n_re!r"s = 0. " if 3
SELECT # FRO$ %&i%aa(t)_!*00 INTO CORRESPON+IN, FIEL+S OF TA-LEit_se_atris
WHERE (sernae = s/(nae.
EN+IF. " eof 3
+ESCRI-E TA-LE it_se_atris LINES n_re!r"s .
LOOP AT it_se_atris INTO ls_aa(t)_!*.
IF ls_aa(t)_!*%&i%p(rp_1r E2 '' OR ls_aa(t)_!*%&i%p(rp_t!
E2 '' .
l_s_rangel!3 = '#'. l_s_rangesign = 'I'.
l_s_range!pt = 'CP'.
APPEN+ l_s_range TO e_t_range.
CLEAR l_s_range.
ELSE.
l_s_rangel!3 = ls_aa(t)_!*%&i%p(rp_1r.
l_s_rangesign = 'I'.
l_s_range!pt = '-T'.
l_s_range)ig) = ls_aa(t)_!*%&i%p(rp_t!.
APPEN+ l_s_range TO e_t_range.
CLEAR l_s_range.
EN+IF.
EN+LOOP.
EN+IF
-
8/19/2019 Abap Snippet
2/24
Pr!ess C)ain Pr!gra
REPORT 4PC_CR$_E5ENTS_ACT5_PR,.
+ATA6 e7enti" LI8E t&t9!&e7enti":
e7entpar LI8E t&t9!&e7entpar:
3a_t7ar7 TYPE t7ar7:
3a_t7ar7* TYPE t7ar7:
3a_t7ar7; TYPE t7ar7:
EN+_+ATE TYPE s/"at(:
al_"ate TYPE s/"at(.
e7enti" = '4PC_CR$_ACT5_E5ENTS'. "we defined this event in sm62.
e7entpar = '4CR$E5ENTACT5PARA$'. "this we will set directly in process chain
.
CASE s/"at(;?. " to trigger CRM PC thrice during 2th to !th of every m
onth
WHEN ';@' OR ';' OR ';' OR ';B' OR ';' OR 'D0' OR 'D*' !r '0*' OR '0;' OR
'0D' OR '0' OR '0@' OR '0' OR '0'.
IF s/(eit ,E '*00000' an" s/eit LE '*D000'. " to trigger only duri
ng woring hours
SELECT SIN,LE # FRO$ t7ar7 INTO 3a_t7ar7* WHERE nae = '4CR$_PC_ACT5_T
I$E'.
SELECT SIN,LE # FRO$ t7ar7 INTO 3a_t7ar7 WHERE nae = '4CR$_PC_ACT5_+A
TE'.
IF s/s(&r = 0.
IF s/(eit ,E 3a_t7ar7*l!3.
CALL FNCTION 'RSS$_E5ENT_RAISE'
EGPORTIN,
i_e7enti" = e7enti"
i_e7entpar = e7entpar
EGCEPTIONS
&a"_e7enti" = *
e7enti"_"!es_n!t_eist = ;
e7enti"_issing = D raise_1aile" =
OTHERS = @.
IF SYS-RC J 0.
$ESSA,E I+ s/sgi" TYPE s/sgt/ N$-ER s/sgn!
WITH s/sg7* s/sg7; s/sg7D s/sg7.
ELSE.
CASE 3a_t7ar7*l!3.
-
8/19/2019 Abap Snippet
3/24
WHEN '**0000'.
3a_t7ar7*l!3 = '*@0000'.
$O+IFY t7ar7 FRO$ 3a_t7ar7*.
WRITE ' t)rie "ail/ 1irst r(n'.
WHEN '*@0000'.
3a_t7ar7*l!3 = '*BD000'.
$O+IFY t7ar7 FRO$ 3a_t7ar7*.
WRITE ' t)rie "ail/ se!n" r(n'.
3)en '*BD000'.
3a_t7ar7*l!3 = '**0000'.
$O+IFY t7ar7 FRO$ 3a_t7ar7*.
WRITE ' t)rie "ail/ t)ir" r(n'.
# wa$tvarvc%low & sy%datum ' 1.
# M()*+, tvarvc +R(M wa$tvarvc.
all 1(nti!n 'SLI$_,ET_START_EN+_+AY'
ep!rting
SLI$_$EAS_+ATE = s/"at(
+AYS_-AC8 = 0
+AYS_FORWAR+ = *
ip!rting
EN+_+ATE = al_"ate.
3a_t7ar7l!3 = al_"ate.
WRITE 3a_t7ar7l!3.
$O+IFY t7ar7 FRO$ 3a_t7ar7.
lear 6 al_"ate.
EN+CASE.
EN+IF.
EN+IF.
EN+IF.
EN+IF.
WHEN OTHERS.
SELECT SIN,LE # FRO$ t7ar7 INTO 3a_t7ar7 WHERE nae = '4CR$_PC_ACT5_+ATE
'.
IF SYS-RC = 0. SELECT SIN,LE # FRO$ t7ar7 INTO 3a_t7ar7; WHERE nae = '4CR$_PC_CO
NTER'.
IF s/s(&r = 0.
IF 3a_t7ar7l!3 = s/"at(.
3a_t7ar7;l!3 = '0'.
IF s/(eit ,E ';D0000'.
CALL FNCTION 'RSS$_E5ENT_RAISE'
-
8/19/2019 Abap Snippet
4/24
EGPORTIN,
i_e7enti" = e7enti"
i_e7entpar = e7entpar
EGCEPTIONS
&a"_e7enti" = *
e7enti"_"!es_n!t_eist = ;
e7enti"_issing = D
raise_1aile" =
OTHERS = @.
3a_t7ar7;l!3 = '*'.
$O+IFY t7ar7 FRO$ 3a_t7ar7;.
all 1(nti!n 'SLI$_,ET_START_EN+_+AY'
ep!rting
SLI$_$EAS_+ATE = s/"at(
+AYS_-AC8 = 0
+AYS_FORWAR+ = *
ip!rting
EN+_+ATE = al_"ate.
3a_t7ar7l!3 = al_"ate.
$O+IFY t7ar7 FRO$ 3a_t7ar7.
ELSE.
WRITE 'Tie Is Lesser T)an **'.
EN+IF.
EN+IF.
EN+IF.
EN+IF.
EN+CASE.
Fe A!ap "nippets#
"nippet 1#
ase i_"atas!(re.
3)en '0FI_AR_'.
per1!r 1et)_pr!1it_enter
ta&les
i_t_selet
i_t_1iel"s
_t_"ata
_t_essages
(sing
-
8/19/2019 Abap Snippet
5/24
i_"atas!(re.
3)en '0FI_AP_'.
per1!r Fet)_ser_+etails
ta&les
i_t_selet
i_t_1iel"s
_t_"ata
_t_essages
(sing
i_"atas!(re.
"nippet 2#
FOR$ 1et)_pr!1it_enter TA-LES p_i_t_selet
p_i_t_1iel"s
p__t_"ata STRCTRE "t1iar_D
p__t_essages
SIN, p_i_"atas!(re.
TYPES6 -E,IN OF t/_1agl1lea:
&elnr TYPE 1agl1lea&elnr:
r&(Krs TYPE 1agl1lear&(Krs:
g9a)r TYPE 1agl1leag9a)r:
&(ei TYPE 1agl1lea&(ei:
rat TYPE 1agl1learat:
rl"nr TYPE 1agl1learl"nr:
prtr TYPE 1agl1leaprtr:
EN+ OF t/_1agl1lea.
+ATA6 it_1agl1lea TYPE STAN+AR+ TA-LE OF t/_1agl1lea:
3a_1agl1lea TYPE t/_1agl1lea.
+ATA6 t_(st_line_ites LI8E "t1iar_D.
+ATA6 l_ta&i LI8E s/ta&i.
CLEAR 6 it_1agl1leaM.
IF p__t_"ataM IS NOT INITIAL.
SELECT &elnr r&(Krs g9a)r &(ei rat rl"nr prtr FRO$ 1agl1lea
INTO CORRESPON+IN, FIEL+S OF TA-LE it_1agl1lea
FOR ALL ENTRIES IN p__t_"ata
WHERE &elnr = p__t_"ata&elnr AN+
r&(Krs = p__t_"ata&(Krs AN+
-
8/19/2019 Abap Snippet
6/24
g9a)r = p__t_"atag9a)r AN+
&(ei = p__t_"ata&(ei AN+
rat = p__t_"ata)K!nt AN+
rl"nr = '0L'.
IF s/s(&r = 0.
SORT it_1agl1lea ASCEN+IN, -Y &elnr r&(Krs g9a)r &(ei rat rl"nr.
EN+IF.
EN+IF.
LOOP AT p__t_"ata INTO t_(st_line_ites.
l_ta&i = s/ta&i.
REA+ TA-LE it_1agl1lea INTO 3a_1agl1lea WITH 8EY
&elnr = t_(st_line_ites&elnr
r&(Krs = t_(st_line_ites&(Krs
g9a)r = t_(st_line_itesg9a)r
&(ei = t_(st_line_ites&(ei
rat = t_(st_line_ites)K!nt
rl"nr = '0L' -INARY SEARCH.
IF s/s(&r = 0.
t_(st_line_itesprtr = 3a_1agl1leaprtr.
EN+IF.
$O+IFY p__t_"ata FRO$ t_(st_line_ites IN+EG l_ta&i.
CLEAR 6 t_(st_line_ites:l_ta&i: 3a_1agl1lea.
EN+LOOP.
EN+FOR$.
Snippet D
+ATA 6 it_re1 TYPE STAN+AR+ TA-LE OF "t1iap_D: it_"!t/pe TYPE STAN+AR+ TA-LE OF "t1iap_D:
it_ta& TYPE STAN+AR+ TA-LE OF t/_ta&:
it_&Kp1 TYPE STAN+AR+ TA-LE OF t/_&Kp1:
it_lr_&Kp1 TYPE STAN+AR+ TA-LE OF t/_&Kp1:
it_lear TYPE STAN+AR+ TA-LE OF t/_ta&:
it_1agl1lea t/pe STAN+AR+ TA-LE OF t/_1agl1lea:
3a_1agl1lea t/pe t/_1agl1lea:
-
8/19/2019 Abap Snippet
7/24
3a_lear TYPE t/_ta&:
3a_&Kp1 TYPE t/_&Kp1:
3a_ta& TYPE t/_ta&.
FIEL+SY$-OLS6 l3_ta&J TYPE "t1iap_D.
LOOP AT p__t_"ata ASSI,NIN, l3_ta&J. IF l3_ta&J(sK = 'A' OR l3_ta&Jre&g IS NOT INITIAL.
REA+ TA-LE it_ta& INTO 3a_ta&
WITH 8EY
&(Krs = l3_ta&J&(Krs
li1nr = l3_ta&Jli1nr
(sK = l3_ta&J(sK
a(g"t = l3_ta&Ja(g"t
a(g&l = l3_ta&Ja(g&l
g9a)r = l3_ta&Jg9a)r
&elnr = l3_ta&J&elnr
&(ei = l3_ta&J&(ei -INARY SEARCH.
IF s/s(&r = 0.
IF l3_ta&Jre&g IS NOT INITIAL.
l3_ta&Jre&t = 3a_ta&re&t.
EN+IF.
IF l3_ta&J(sK = 'A'.
l3_ta&Je&eln = 3a_ta&e&eln.
l3_ta&Je&elp = 3a_ta&e&elp.
EN+IF.
EN+IF.
IF l3_ta&Jre&g IS NOT INITIAL.
REA+ TA-LE it_&Kp1 INTO 3a_&Kp1 WITH 8EY
&(Krs = l3_ta&J&(Krs &elnr = l3_ta&Jre&g
g9a)r = l3_ta&Jre&9 -INARY SEARCH.
IF s/s(&r = 0.
l3_ta&Jre&lart = 3a_&Kp1&lart.
EN+IF.
EN+IF.
EN+IF.
IF l3_ta&Ja(g&l IS NOT INITIAL.
CLEAR6 3a_&Kp1: 3a_lear.
REA+ TA-LE it_lear INTO 3a_lear
WITH 8EY &(Krs = l3_ta&J&(Krs
li1nr = l3_ta&Jli1nr (sK = l3_ta&J(sK
a(g"t = l3_ta&Ja(g"t
a(g&l = l3_ta&Ja(g&l
g9a)r = l3_ta&Jg9a)r
&elnr = l3_ta&J&elnr
&(ei = l3_ta&J&(ei -INARY SEARCH.
IF s/s(&r = 0.
REA+ TA-LE it_lr_&Kp1 INTO 3a_&Kp1 WITH 8EY
-
8/19/2019 Abap Snippet
8/24
&(Krs = 3a_lear&(Krs
&elnr = 3a_leara(g&l
g9a)r = 3a_leara(gg9 -INARY SEARCH.
IF s/s(&r = 0.
l3_ta&Jl&lart = 3a_&Kp1&lart.
EN+IF.
EN+IF.
EN+IF.
rea" ta&le it_1agl1lea int! 3a_1agl1lea 3it) Ke/
&elnr = l3_ta&J&elnr
r&(Krs = l3_ta&J&(Krs
g9a)r = l3_ta&Jg9a)r
&(ei = l3_ta&J&(ei
rat = l3_ta&J)K!nt
rl"nr = '0L' -INARY SEARCH.
i1 s/s(&r = 0.
l3_ta&Jprtr = 3a_1agl1leaprtr.
en"i1.
CLEAR6 3a_ta&: 3a_&Kp1: 3a_lear: 3a_1agl1lea.
EN+LOOP.
EN+IF.
Snippet
IF it_ta&M IS NOT INITIAL.
SORT it_ta& ASCEN+IN, -Y &(Krs li1nr (sK a(g"t a(g&l g9a)r &elnr &(ei
EN+IF.
Snippet @.
IF it_re1M IS NOT INITIAL. SELECT &(Krs li1nr (sK a(g"t a(g&l g9a)r &elnr &(ei e&eln e&elp re&g
re&9 re& re&t a(gg9
FRO$ &saK
INTO CORRESPON+IN, FIEL+S OF TA-LE it_lear
FOR ALL ENTRIES IN it_re1
WHERE &(Krs = it_re1&(Krs AN+
li1nr = it_re1li1nr AN+
(sK = it_re1(sK AN+
-
8/19/2019 Abap Snippet
9/24
a(g"t = it_re1a(g"t AN+
a(g&l = it_re1a(g&l AN+
g9a)r = it_re1g9a)r AN+
&elnr = it_re1&elnr AN+
&(ei = it_re1&(ei.
IF it_re1M IS NOT INITIAL. SELECT &(Krs li1nr (sK a(g"t a(g&l g9a)r &elnr &(ei e&eln e&elp re&g
re&9 re& re&t a(gg9
FRO$ &siK
INTO CORRESPON+IN, FIEL+S OF TA-LE it_ta&
FOR ALL ENTRIES IN it_re1
WHERE &(Krs = it_re1&(Krs AN+
li1nr = it_re1li1nr AN+
(sK = it_re1(sK AN+
a(g"t = it_re1a(g"t AN+
a(g&l = it_re1a(g&l AN+
g9a)r = it_re1g9a)r AN+
&elnr = it_re1&elnr AN+
&(ei = it_re1&(ei.
SELECT &(Krs li1nr (sK a(g"t a(g&l g9a)r &elnr &(ei e&eln e&elp re&g
re&9 re& re&t a(gg9
FRO$ &saK
APPEN+IN, CORRESPON+IN, FIEL+S OF TA-LE it_ta&
FOR ALL ENTRIES IN it_re1
WHERE &(Krs = it_re1&(Krs AN+
li1nr = it_re1li1nr AN+
(sK = it_re1(sK AN+
a(g"t = it_re1a(g"t AN+ a(g&l = it_re1a(g&l AN+
g9a)r = it_re1g9a)r AN+
&elnr = it_re1&elnr AN+
&(ei = it_re1&(ei.
EN+IF.
"nippet $#
l!!p at p__t_"ata int! t_p(r_it_line.
l_ta&i = s/ta&i.
i1 t_p(r_it_line8NTTP is n!t initial.
Rea" ta&le it_eKKn int! 3a_eKKn
3it) Ke/ e&eln = t_p(r_it_linee&eln
e&elp = t_p(r_it_linee&elp &inar/ sear).
i1 s/s(&r = 0.
Rea" ta&le it_prps int! 3a_prps
3it) Ke/ pspnr = 3a_eKKnps_psp_pnr &inar/ sear).
-
8/19/2019 Abap Snippet
10/24
i1 s/s(&r = 0.
t_p(r_it_lineps_psp_pnr = 3a_prpsp!si".
t_p(r_it_lineprtr = 3a_prpsprtr.
en"i1.
en"i1.
else.
rea" ta&le it_eKp! int! 3a_eKp!
3it) Ke/ e&eln = t_p(r_it_linee&eln
e&elp = t_p(r_it_linee&elp &inar/ sear).
i1 s/s(&r = 0.
t_p(r_it_lineprtr = 3a_eKp!prtr.
en"i1.
en"i1.
i1 t_p(r_it_line-SART CP '44#'.
rea" ta&le it_eKK! int! 3a_eKK! 3it) Ke/ e&eln = t_p(r_it_linee&eln &i
nar/ sear).
i1 s/s(&r = 0.
t_p(r_it_line44FR,8E = 3a_eKK!1rgKe.
en"i1.
else.
rea" ta&le it_ere7 int! 3a_ere7 3it) Ke/ -STYP = t_p(r_it_line-STYP
E+O8N = t_p(r_it_lineE-ELN
RE5NO = '00000000' -INARY SEARC
H.
i1 s/s(&r = 0 an" 3a_ere7F,+AT is n!t initial.
t_p(r_it_line44FR,8E = 'R'.
en"i1.
EN+IF.
!"i1/ p__t_"ata 1r! t_p(r_it_line in"e l_ta&i.
lear 6 t_p(r_it_line:l_ta&i: 3a_eKKn :3a_prps: 3a_eKp!.
en"l!!p.
"nippet %
FOR$ FETCH_5EN+OR TA-LES P_I_T_SELECT
P_I_T_FIEL+S
P_C_T_+ATA STRCTRE +TFI,L_ P_C_T_$ESSA,ES
SIN, P_I_+ATASORCE.
"ata6 IT_44LIFNR liKe +TFI,L_.
"ata6 5_ta&i liKe s/ta&i.
-
8/19/2019 Abap Snippet
11/24
l!!p at P_C_T_+ATA int! IT_44LIFNR.
5_ta&i = s/ta&i.
selet single LIFNR 1r! -SE,
int! IT_44LIFNR44LIFNR
3)ere -8RS = IT_44LIFNR-8RS an"
-ELNR = IT_44LIFNR-ELNR an"
,AHR = IT_44LIFNRFISCPER? an"
LIFNR ne ''.
!"i1/ p__t_"ata 1r! IT_44LIFNR in"e 5_ta&i.
lear 6 IT_44LIFNR.
lear 6 5_ta&i.
en"l!!p.
"-nd of endor
" /tart of 0/ % li (da
"ata6 IT_W-S liKe +TFI,L_.
"ata6 W_ta&i liKe s/ta&i.
l!!p at P_C_T_+ATA int! IT_W-S.
W_ta&i = s/ta&i.
selet single PRO8 1r! -SE,
int! IT_W-S44PRO8
3)ere -8RS = IT_W-S-8RS an"
-ELNR = IT_W-S-ELNR an"
,AHR = IT_W-SFISCPER? AN+ -4EI = IT_W-S-4EI.
CALL FNCTION 'CON5ERSION_EGIT_A-PSP_OTPT'
EGPORTIN,
INPT = IT_W-S44PRO8
I$PORTIN,
OTPT = IT_W-S44PRO8.
!"i1/ p__t_"ata 1r! IT_W-S in"e W_ta&i.
lear 6 IT_W-S.
lear 6 W_ta&i.
en"l!!p.
-
8/19/2019 Abap Snippet
12/24
"ata6 IT_PC liKe +TFI,L_.
"ata6 P_ta&i liKe s/ta&i.
l!!p at P_C_T_+ATA int! IT_PC.
P_ta&i = s/ta&i.
selet single PRCTR 1r! FA,LFLEGA
int! IT_PC44PRCTR
3)ere R-8RS = IT_PC-8RS an"
+OCNR = IT_PC-ELNR an"
RYEAR = IT_PCFISCPER? an"
RL+NR = '0L'.
!"i1/ p__t_"ata 1r! IT_PC in"e P_ta&i.
lear 6 IT_PC.
lear 6 P_ta&i.
en"l!!p.
Snippet B
FOR$ 1et)_in7!ie TA-LES p_i_t_selet
p_i_t_1iel"s
p__t_"ata STRCTRE 0_0it
p__t_essages
SIN, p_i_"atas!(re.
TYPES6 -E,IN OF t/_rseg:
&elnr TYPE rseg&elnr:
g9a)r TYPE rsegg9a)r:
&(ei TYPE rseg&(ei:
e&eln TYPE rsege&eln:
EN+ OF t/_rseg.
TYPES6 -E,IN OF t/_r&Kp:
&elnr TYPE r&Kp&elnr:
g9a)r TYPE r&Kpg9a)r:
li1nr TYPE r&Kpli1nr:
EN+ OF t/_r&Kp.
TYPES 6 -E,IN OF t/_eK&e:
e&eln TYPE eK&ee&eln:
e&elp TYPE eK&ee&elp:
eKKn TYPE eK&eeKKn:
7ga&e TYPE eK&e7ga&e:
g9a)r TYPE eK&eg9a)r:
&elnr TYPE eK&e&elnr:
&(ei TYPE eK&e&(ei:
-
8/19/2019 Abap Snippet
13/24
l1&nr TYPE eK&el1&nr:
l1g9a TYPE eK&el1g9a:
l1p!s TYPE eK&el1p!s:
3r&tr TYPE eK&e3r&tr:
3aers TYPE eK&e3aers:
sr7p!s TYPE eK&esr7p!s:
paKn! TYPE eK&epaKn!:
intr!3 TYPE eK&eintr!3:
&("at TYPE eK&e&("at:
EN+ OF t/_eK&e.
TYPES 6 -E,IN OF t/_eKp!:
e&eln TYPE eKp!e&eln:
e&elp TYPE eKp!e&elp:
paKn! TYPE eKp!paKn!:
EN+ OF t/_eKp!.
TYPES 6 -E,IN OF t/_esll:
paKn! TYPE esllpaKn!:
s(&_paKn! TYPE eslls(&_paKn!:
EN+ OF t/_esll.
TYPES 6 -E,IN OF t/_esll*:
paKn! TYPE esllpaKn!:
sr7p!s TYPE esllsr7p!s:
net3r TYPE esllnet3r:
etr!3 TYPE eslletr!3:
intr!3 TYPE esllintr!3:
EN+ OF t/_esll*.
TYPES 6 -E,IN OF t/_esll;:
paKn! TYPE esllpaKn!:
intr!3 TYPE esllintr!3:
pln_paKn! TYPE esllpln_paKn!:
pln_intr!3 TYPE esllpln_intr!3:
EN+ OF t/_esll;.
+ATA6 it_ite TYPE STAN+AR+ TA-LE OF 0_0it:
it_rseg TYPE STAN+AR+ TA-LE OF t/_rseg:
it_gr TYPE STAN+AR+ TA-LE OF 0_0it: it_sr TYPE STAN+AR+ TA-LE OF 0_0it:
it_gr_all TYPE STAN+AR+ TA-LE OF 0_0it:
3a_gr_all TYPE 0_0it:
it_eK&e_gr TYPE STAN+AR+ TA-LE OF t/_eK&e:
it_eK&e_sr TYPE STAN+AR+ TA-LE OF t/_eK&e:
3a_eK&e_gr TYPE t/_eK&e:
3a_eK&e_sr TYPE t/_eK&e:
-
8/19/2019 Abap Snippet
14/24
3a_rseg TYPE t/_rseg:
it_r&Kp TYPE STAN+AR+ TA-LE OF t/_r&Kp:
3a_r&Kp TYPE t/_r&Kp:
3a_"ata TYPE 0_0it:
a3Ke/ TYPE &Kp1a3Ke/:
it_eKp! TYPE STAN+AR+ TA-LE OF t/_eKp!:
3a_eKp! TYPE t/_eKp!:
it_esll TYPE STAN+AR+ TA-LE OF t/_esll:
3a_esll TYPE t/_esll:
it_esll* TYPE STAN+AR+ TA-LE OF t/_esll*:
3a_esll* TYPE t/_esll*:
it_esll; TYPE STAN+AR+ TA-LE OF t/_esll;:
3a_esll; TYPE t/_esll;.
FIEL+SY$-OLS 6 l3_"ataJ TYPE 0_0it.
IF p__t_"ataM IS NOT INITIAL.
CLEAR6 it_iteM: it_rsegM: it_r&KpM: 3a_"ata: 3a_rseg: 3a_r&Kp: a3Ke/:
it_grM: it_srM:
it_eK&e_grM: it_eK&e_srM: 3a_eK&e_gr: 3a_eK&e_sr: it_gr_allM:
3a_gr_all: it_eKp!M:
it_esllM: 3a_eKp!: 3a_esll: it_esll*M: 3a_esll*: it_esll;M: 3a
_esll;.
it_grM = p__t_"ataM. " eep only lines with R 4o.
+ELETE it_gr WHERE l1&nr = ''.
# it$gr$all5 & it$gr5.
SORT it_gr ASCEN+IN, -Y l1&nr l1g9a l1p!s.
+ELETE A+ACENT +PLICATES FRO$ it_gr CO$PARIN, l1g9a l1&nr l1g9a l1p!s.
it_srM = it_grM.
it_gr_allM = it_grM.
# /(R7 it$gr$all descending , 8elnr g9ahr 8u:ei co8l$nr.
# delete );C-47 )
-
8/19/2019 Abap Snippet
15/24
INTO CORRESPON+IN, FIEL+S OF TA-LE it_eK&e_gr
FOR ALL ENTRIES IN it_gr
WHERE e&eln = it_gre&eln
AN+ e&elp = it_gre&elp
AN+ 7ga&e = '*'
AN+ g9a)r = it_grl1g9a
AN+ &elnr = it_grl1&nr
AN+ &(ei = it_grl1p!s.
IF s/s(&r = 0.
SORT it_eK&e_gr ASCEN+IN, -Y e&eln e&elp 7ga&e g9a)r &elnr &(ei.
EN+IF.
EN+IF.
IF it_srM IS NOT INITIAL.
SELECT e&eln e&elp paKn!
FRO$ eKp! INTO CORRESPON+IN, FIEL+S OF TA-LE it_eKp! FOR ALL ENTRIES IN
it_sr
WHERE e&eln = it_sre&eln AN+
e&elp = it_sre&elp.
IF s/s(&r = 0.
SORT it_eKp! ASCEN+IN, -Y e&eln e&elp.
EN+IF.
SELECT paKn! s(&_paKn!
FRO$ esll INTO CORRESPON+IN, FIEL+S OF TA-LE it_esll FOR ALL ENTRIES IN
it_eKp!
WHERE paKn! = it_eKp!paKn!.
IF s/s(&r = 0.
SORT it_esll ASCEN+IN, -Y paKn!.
EN+IF.
SELECT paKn! sr7p!s net3r etr!3 intr!3
FRO$ esll INTO CORRESPON+IN, FIEL+S OF TA-LE it_esll* FOR ALL ENTRIES IN
it_esll
WHERE paKn! = it_eslls(&_paKn!.
IF s/s(&r = 0.
SORT it_esll* ASCEN+IN, -Y paKn! sr7p!s intr!3.
EN+IF.
SELECT e&eln e&elp eKKn 7ga&e g9a)r &elnr &(ei l1g9a l1&nr l1p!s 3r&tr
3aers sr7p!s paKn! intr!3 &("at
FRO$ eK&e
INTO CORRESPON+IN, FIEL+S OF TA-LE it_eK&e_sr
FOR ALL ENTRIES IN it_sr
-
8/19/2019 Abap Snippet
16/24
WHERE e&eln = it_sre&eln
AN+ e&elp = it_sre&elp
AN+ 7ga&e = '*'
AN+ l1&nr = it_srl1&nr
AN+ l1g9a = it_srl1g9a
AN+ l1p!s = it_srl1p!s.
IF s/s(&r = 0.
# /(R7 it$e8e$sr /C-4)*4 , e8eln e8elp vga8e g9ahr lf8nr lfg9a lfp
os.
SORT it_eK&e_sr ASCEN+IN, -Y e&eln e&elp 7ga&e l1g9a l1&nr l1p!s.
SELECT paKn! intr!3 pln_paKn! pln_intr!3 FRO$ esll
INTO CORRESPON+IN, FIEL+S OF TA-LE it_esll;
FOR ALL ENTRIES IN it_eK&e_sr
WHERE paKn! = it_eK&e_srpaKn!
AN+ intr!3 = it_eK&e_srintr!3.
IF s/s(&r = 0.
SORT it_esll; ASCEN+IN, -Y paKn! intr!3.
EN+IF.
EN+IF.
EN+IF.
it_iteM = p__t_"ataM.
# )-=-7- it$item 0>-R- 8u:ei & ?. " delete all header lines
# delete it$item where C(=$4R & ?. " delete 8lan se@uence no SORT it_ite ASCEN+IN, -Y &elnr g9a)r &(ei !&l_nr.
+ELETE A+ACENT +PLICATES FRO$ it_ite CO$PARIN, &elnr g9a)r. " eep onl
y the first line item
SELECT &elnr g9a)r &(ei e&eln " get po from rseg
FRO$ rseg
INTO CORRESPON+IN, FIEL+S OF TA-LE it_rseg
FOR ALL ENTRIES IN it_ite
WHERE &elnr = it_ite&elnr
AN+ g9a)r = it_iteg9a)r.
# 4) 8u:ei & it$item%8u:ei.
SORT it_rseg ASCEN+IN, -Y &elnr g9a)r &(ei.
+ELETE A+ACENT +PLICATES FRO$ it_rseg CO$PARIN, &elnr g9a)r.
SORT it_rseg ASCEN+IN, -Y &elnr g9a)r.
SELECT &elnr g9a)r li1nr " get vendor from r8p
FRO$ r&Kp
-
8/19/2019 Abap Snippet
17/24
INTO CORRESPON+IN, FIEL+S OF TA-LE it_r&Kp
FOR ALL ENTRIES IN it_ite
WHERE &elnr = it_ite&elnr
AN+ g9a)r = it_iteg9a)r.
SORT it_r&Kp ASCEN+IN, -Y &elnr g9a)r.
LOOP AT p__t_"ata ASSI,NIN, l3_"ataJ.
IF l3_"ataJ&(ei = 0.
REA+ TA-LE it_r&Kp INTO 3a_r&Kp
WITH 8EY &elnr = l3_"ataJ&elnr
g9a)r = l3_"ataJg9a)r -INARY SEARCH.
IF s/s(&r = 0.
l3_"ataJli1nr = 3a_r&Kpli1nr.
EN+IF.
REA+ TA-LE it_rseg INTO 3a_rseg
WITH 8EY &elnr = l3_"ataJ&elnr
g9a)r = l3_"ataJg9a)r -INARY SEARCH.
IF s/s(&r = 0.
l3_"ataJe&eln = 3a_rsege&eln.
EN+IF.
ELSEIF NOT l3_"ataJl1&nr IS INITIAL.
CASE l3_"ataJpst/p.
WHEN ''.
REA+ TA-LE it_eKp! INTO 3a_eKp! WITH 8EY
e&eln = l3_"ataJe&eln
e&elp = l3_"ataJe&elp.
IF s/s(&r = 0.
l3_"ataJpaKn! = 3a_eKp!paKn!.
EN+IF.
REA+ TA-LE it_esll INTO 3a_esll WITH 8EY
paKn! = l3_"ataJpaKn!.
IF s/s(&r = 0.
l3_"ataJs(&paK = 3a_eslls(&_paKn!.
EN+IF.
REA+ TA-LE it_eK&e_sr INTO 3a_eK&e_sr
WITH 8EY e&eln = l3_"ataJe&eln
e&elp = l3_"ataJe&elp
7ga&e = '*'
# g9ahr & Alw$dataB%lfg9a
-
8/19/2019 Abap Snippet
18/24
l1g9a = l3_"ataJl1g9a
l1&nr = l3_"ataJl1&nr
l1p!s = l3_"ataJl1p!s -INARY SEARCH.
IF s/s(&r = 0.
l3_"ataJ&elnr = 3a_eK&e_sr&elnr.
l3_"ataJsr7p!s = 3a_eK&e_srsr7p!s.
l3_"ataJgrn"ate = 3a_eK&e_sr&("at.
REA+ TA-LE it_esll; INTO 3a_esll; WITH 8EY paKn! = 3a_eK&e_sr
paKn!
intr!3 = 3a_eK&e_sr
intr!3 -INARY SEARCH.
IF s/s(&r = 0.
l3_"ataJintr!3 = 3a_esll;pln_intr!3.
EN+IF.
REA+ TA-LE it_esll* INTO 3a_esll* WITH 8EY paKn! = l3_"ataJ
s(&paK
sr7p!s = l3_"ataJsr7p!s
intr!3 = l3_"ataJintr!3 -I
NARY SEARCH.
IF s/s(&r = 0.
l3_"ataJetr!3 = 3a_esll*etr!3.
EN+IF.
REA+ TA-LE it_gr_all INTO 3a_gr_all
WITH 8EY &elnr = l3_"ataJ&elnr
&(ei = l3_"ataJ&(ei
g9a)r = l3_"ataJg9a)r
!&l_nr = l3_"ataJ!&l_nr -INARY SEARCH.
IF s/s(&r = 0.
l3_"ataJ3r&tr = 3a_eK&e_sr3r&tr. l3_"ataJ3aers = 3a_eK&e_sr3aers.
EN+IF.
EN+IF.
WHEN OTHERS.
l3_"ataJ&elnr = l3_"ataJl1&nr.
REA+ TA-LE it_eK&e_gr INTO 3a_eK&e_gr
WITH 8EY e&eln = l3_"ataJe&eln
e&elp = l3_"ataJe&elp
7ga&e = '*'
g9a)r = l3_"ataJl1g9a
&elnr = l3_"ataJl1&nr &(ei = l3_"ataJl1p!s -INARY SEARCH.
IF s/s(&r = 0.
l3_"ataJgrn"ate = 3a_eK&e_gr&("at.
REA+ TA-LE it_gr_all INTO 3a_gr_all
WITH 8EY &elnr = l3_"ataJ&elnr
&(ei = l3_"ataJ&(ei
g9a)r = l3_"ataJg9a)r
-
8/19/2019 Abap Snippet
19/24
!&l_nr = l3_"ataJ!&l_nr -INARY SEARCH.
IF s/s(&r = 0.
l3_"ataJ3r&tr = 3a_eK&e_gr3r&tr.
l3_"ataJ3aers = 3a_eK&e_gr3aers.
EN+IF.
EN+IF.
EN+CASE.
EN+IF.
CLEAR 6 3a_r&Kp: 3a_rseg: 3a_eK&e_gr: 3a_eK&e_sr: 3a_gr_all: 3a_esll;: 3
a_eKp!: 3a_esll: 3a_esll*.
EN+LOOP.
EN+IF.
EN+FOR$.
Snippet
FOR$ )ge_7!p TA-LES p_i_t_selet
p_i_t_1iel"s
p__t_"ata STRCTRE !n7"0;@
p__t_essages
SIN, p_i_"atas!(re.
TYPES 6 -E,IN OF t/_t0;B):
7t/p TYPE t0;B)7t/p:
7gan TYPE t0;B)7gan:
7!p TYPE t0;B)7!p:
intag TYPE t0;B)intag:
EN+ OF t/_t0;B).
+ATA 6 it_t0;B) TYPE TA-LE OF t/_t0;B):
3a_t0;B) TYPE t/_t0;B):
3a_1igl_7ie3 TYPE !n7"0;@:
l_ta&i LI8E s/ta&i.
IF p__t_"ataM IS NOT INITIAL.
SELECT
7t/p
7gan
7!p
intag
FRO$ t0;B) INTO CORRESPON+IN, FIEL+S OF TA-LE it_t0;B) FOR ALL ENTRIES IN
-
8/19/2019 Abap Snippet
20/24
p__t_"ata
WHERE 7gan = p__t_"ata7gan.
IF s/s(&r = 0.
SORT it_t0;B) ASCEN+IN, -Y 7gan.
EN+IF.
EN+IF.
LOOP AT p__t_"ata INTO 3a_1igl_7ie3.
l_ta&i = s/ta&i.
REA+ TA-LE it_t0;B) INTO 3a_t0;B) WITH 8EY 7gan = 3a_1igl_7ie37gan -INA
RY SEARCH.
IF 3a_t0;B)7!p = ''.
3a_1igl_7ie37!p = 3a_t0;B)7!p.
3a_1igl_7ie3r3&tr = * # 3a_1igl_7ie3r3&tr.
EN+IF.
$O+IFY p__t_"ata FRO$ 3a_1igl_7ie3 IN+EG l_ta&i.
CLEAR 6 3a_1igl_7ie3: 3a_t0;B).
EN+LOOP.
"nippet 10
lear6 it_"M: 3a_":it_apM: 3a_ap: 3a_init_1lag.
selet single # 1r! t7ar7 int! 3a_init_1lag
3)ere nae = '4LI5_+SO*_INIT_ON'.
i1 SORCE_PAC8A,EM is n!t initial.
selet # 1r! %-IC%A4P;P_O0D00
int! CORRESPON+IN, FIEL+S OF TA-LE it_"
1!r all entries in SORCE_PAC8A,E
3)ere +OC_N$ = SORCE_PAC8A,E--P_PO_I+ an"
SORSYSTE$ = SORCE_PAC8A,ESORSYSTE$.
i1 s/s(&r = 0. s!rt it_" asen"ing &/ +OC_N$ SORSYSTE$.
en"i1.
selet CO$P_CO+E AC_+OC_NO FISCYEAR AC_+OC_TYP PS$_AW8EY
1r! %-IC%A4FIAP_OD00
int! CORRESPON+IN, FIEL+S OF TA-LE it_ap
1!r all entries in SORCE_PAC8A,E
3)ere CO$P_CO+E = SORCE_PAC8A,ECO$P_CO+E an"
-
8/19/2019 Abap Snippet
21/24
PS$_AW8EY = SORCE_PAC8A,EPS$_AW8EY an"
AC_+OC_TYP = 'RE'.
i1 s/s(&r = 0.
s!rt it_ap asen"ing &/ CO$P_CO+E PS$_AW8EY.
en"i1.
en"i1.
Snippet **
SELECT %-IC%4TCTSRN$
%-IC%4SER_S-
%-IC%4SR_CITY
%-IC%4SR_NA$
%-IC%4SRFNA$E
FRO$ %-IC%A4SRS-00 int! CORRESPON+IN, FIEL+S OF TA-LE it_(srs&(.
SORT it_(srs&( &/ %-IC%4SR_NA$.
lear 3a_(srs&(.
REA+ TA-LE it_(srs&( int! 3a_(srs&( 3it) Ke/ %-IC%4SR_NA$ =
SORCE_FIEL+STCTSERN$ -INARY SEARCH.
i1 s/s(&r = 0.
RESLT = 3a_(srs&(%-IC%4SER_S-.
ELSE. RESLT = ' '.
EN+IF.
!n"ense RESLT.
Snippet *;
"ata 6 it_ta t/pe STAN+AR+ TA-LE OF ta:
RETRNCO+E t/pe s/s(&r:
3a_ta t/pe ta.
lear6 it_taM: 3a_ta: RESLT.
i1 SORCE_FIEL+S--P_EGP5AL ne 0.
-
8/19/2019 Abap Snippet
22/24
CALL FNCTION '4_PO_TAG_CALCLATE'
EGPORTIN,
i_&(Krs = SORCE_FIEL+SCO$P_CO+E
i_3sK = SORCE_FIEL+S--P_TAGCO+
i_3aers = SORCE_FIEL+SOR+ER_CRR
i_3r&tr = SORCE_FIEL+S--P_EGP5AL
TA-LES
t_3"at = it_ta
EGCEPTIONS
TAG_PROC_NOT_FON+ = *
TAG_CO+E_NOT_FON+ = ;
OTHERS = D
.
IF s/s(&r J 0.
RETRNCO+E = .
else.
i1 it_taM is n!t initial.
s!rt it_ta asen"ing &/ %-IC%4STNR.
" /7
-
8/19/2019 Abap Snippet
23/24
lear it_paKageM.
L!!p at RESLT_PAC8A,E int! 3a_paKage.
i1 3a_paKage!p_!"e e ';*'.
rea" ta&le it_pers_area 3it) Ke/
pers_area = 3a_paKagepers_area
transp!rting n! 1iel"s.
i1 s/s(&r = 0.
appen" 3a_paKage t! it_paKage.
en"i1.
else.
appen" 3a_paKage t! it_paKage.
en"i1.
en"l!!p.
lear RESLT_PAC8A,EM.
lear 3a_paKage.
L!!p at it_paKage int! 3a_paKage.
3a_paKagere!r" = s/ta&i.
appen" 3a_paKage t! RESLT_PAC8A,E.
en"l!!p.
Snippet *
CALL FNCTION 'CR$_CON5ERT_CRRENCY' EGPORTIN,
I5_EGCH_RATE_+ATE = SY+ATLO
I5_SORCE_CRRENCY = '4INCR'
I5_LOCAL_CRRENCY = '4INCR'
I5_TAR,ET_CRRENCY = '4S$N'
CHAN,IN,
C5_5ALE = it_!pp_I44EPL_PRICE.
Snippet *@
"ata6 l_i" liKe s/ta&i.
"ata 6 liKe T00-POPER:
!nt)>;? t/pe :
/ear liKe T00--+AT.
rea" ta&le l_t_range 3it) Ke/
1iel"nae = 'CAL$ONTH'.
-
8/19/2019 Abap Snippet
24/24
l_i" = s/ta&i.
CALL FNCTION '+ATE_TO_PERIO+_CON5ERT'
EGPORTIN,
i_"ate = s/"at(
# *$M(4M*7 & ??
i_peri7 = '4H'
I$PORTIN,
E_-PER =
E_,AHR = /ear
# -DC-P7*(4/
# *4P