task text doc
TRANSCRIPT
-
8/20/2019 Task Text Doc
1/55
*&---------------------------------------------------------------------*
*& Copy From : ZMIRV000 (ZOCR03) *
*& Copy Details: To improve te per!orma"#e o! te report *
*&---------------------------------------------------------------------*
* $ro%ram ame: Z'OCR'IVOIC'I'MOITOR *
* Title : OCR I"voi#e or Item Mo"itori"% Report *
* Create Date : +,0.,0+3 *
* Re/est : RI-$M++0+3+.1 *
* 2tor : DI$M4 - Dipi" M"5al *
* Des#riptio" : or Item mo"itori"% report !or OCR 6or!lo6s *
*&---------------------------------------------------------------------*
*7 I8RT F09;;0.1. +
* $ro%ram ame: Z'OCR'IVOIC'I'MOITOR *
* Title : OCR I"voi#e or Item Mo"itori"% Report *
* Ca"%e Date : 01+TC2M - >etsie Camoro *
* Des#riptio" : or Item mo"itori"% report !or OCR 6or!lo6s *
* Mo?i!ie? #o?e to i"#l?e 2> ?o#me"ts i" te reporti"%*
*&---------------------------------------------------------------------**
*@ I8RT
REPORT z_ocr_invoice_wi_monitor MESSAGE-ID 00.
INCLUDE z_ocr_invoice_wi_monitor_to.
INITIALI!ATION.
"_rei# $ %&-rei#. PER'ORM ()&o*t_init USING "%_()&o*t.
PER'ORM eventt)+_+*i(# USING "t_event%,.
PER'ORM +*i(#_ie(#c)t USING "t_ie(#c)t,.
"%_v)ri)nt-reort $ "_rei#.
"_%)ve $ /A/.
AT SELECTION-SCREEN ON LOC1 %e(2.
* Aoa? #ompa"y#o?es !or at #e#
RE'RES34 it_+*5r%.
SELECT +*5r% INTO TALE it_+*5r%
'ROM t002
63ERE +*5r% IN %_+*5r%.
* Ce# atoriBatio" !or ea# #omp #o?e
LOOP AT it_+*5r% INTO w)_+*5r%.
AUT3ORIT7-C3EC1 O8ECT /'_1P'_U1/
-
8/20/2019 Task Text Doc
2/55
ID /U1RS/ 'IELD w)_+*5r%-+*5r%
ID /ACT9T/ 'IELD /0:/.
* it o" !irst !o"? a? #omp #o?e
I' %&-%*+rc ;< 0.
MESSAGE e=2>
6IT3 te?t-m02 w)_+*5r%-+*5r%.
ENDI'.
ENDLOOP.
START-O'-SELECTION.
* Re!res te mai" I"ter"al tales
CLEAR4 it_(i%t).
RE'RES34 it_v+%e"5@
it_r+5.
**>e%i" o! re"
LOOP AT _+()rt.
MO9E-CORRESPONDING _+()rt TO w)_+()rt.
I' _+()rt-(ow NE /1G/ OR
_+()rt-(ow NE /7/.
APPEND w)_+()rt TO "t_+()rt.
CLEAR 4 w)_+()rt.
ENDI'. ENDLOOP.
**"? o! re"
PER'ORM %e(ect.
END-O'-SELECTION.
*EAist =ea?er !or Top-O!-$a%e
I' %_i(e IS INITIAL.
NE6-PAGE LINE-SI!E 20 6IT3-3EADING.
* #a"%e tet i"!o !or ZZF>DT
w)_c)t-%e(te?t_% $ /D*e P)&m/. w)_c)t-rete?t_##ic $ /D*e P)&m/.
w)_c)t-##ic_o*t*t(en $ B.
MODI'7 "t_ie(#c)t 'ROM w)_c)t
TRANSPORTING %e(te?t_% rete?t_##ic ##ic_o*t*t(en
63ERE row_o% E 0 AND co(_o% E 22.
*-G8>28
w)_c)t-%e(te?t_% $ /PO N*m+er/.
-
8/20/2019 Task Text Doc
3/55
w)_c)t-rete?t_##ic $ /PO N*m+er/.
w)_c)t-##ic_o*t*t(en $ 20.
w)_c)t-ie(#n)me $ /EELN/.
w)_c)t-re_t)+n)me $ /E11O/.
w)_c)t-int(en $ 20.
MODI'7 "t_ie(#c)t 'ROM w)_c)t
TRANSPORTING %e(te?t_% rete?t_##ic ##ic_o*t*t(en ie(#n)me
re_t)+n)me int(en
63ERE row_o% E 0 AND co(_o% E 2.
* #a"%e tet i"!o !or ZZF>DT
PER'ORM comment_+*i(# USING "t_(i%t_to_o_)"e,.
*EDisplay Aist
it_(i%t)_o(#, $ it_(i%t),.
CALL 'UNCTION /REUSE_AL9_LIST_DISPLA7/
EPORTING
i_c)((+)c5_ro"r)m $ "_rei#
i_c)((+)c5__%t)t*%_%et $ "_%t)t*%_%et
i_c)((+)c5_*%er_comm)n# $ "_*%er_comm)n#
i_%tr*ct*re_n)me $ /!DUE_LIST_STRUC/
i%_()&o*t $ "%_()&o*t
it_ie(#c)t $ "t_ie(#c)t
i_%)ve $ "_%)ve
i%_v)ri)nt $ "%_v)ri)nt
it_event% $ "t_event%,
TALES
t_o*tt)+ $ it_(i%t).
I' %&-%*+rc $ 0.
I' "_e?it_c)*%e#_+&_c)((er $ //.
*E For#e? it y #alli"% pro%ram
*E H?o'someti"%
ELSE.
*E 4ser le!t list via F3 F+, or F+<
I' "%_e?it_c)*%e#_+&_*%er-+)c5 $ //. EF3
*E H?o'someti"%
PER'ORM cec5_c)n"e%.
ELSE.
I' "%_e?it_c)*%e#_+&_*%er-e?it $ //. EF+<*E H?o'someti"%
PER'ORM cec5_c)n"e%.
ELSE.
I' "%_e?it_c)*%e#_+&_*%er-c)nce( $ //. EF+,
*E H?o'someti"%
PER'ORM cec5_c)n"e%.
ELSE.
-
8/20/2019 Task Text Doc
4/55
*E sol? "ot o##rJ
*E H?o'2"ormal'"?
ENDI'.
ENDI'.
ENDI'.
ENDI'.
ELSE.
*EFatal error #alli" 2AV
* M882K 2(L) IT=
ENDI'.
ELSE.
* a??e? #o?e to prepare list !or ?o6"loa?
NE6-PAGE LINE-SI!E >> NO-3EADING.
6RITE4 F02 /Doc.no./@
2: /T&/@
2 /Reerence/@
:H /Amt (oc)( c*rr/@
> /D*e P)&m/@
H /9en#or/@
H /N)me 2/@
20B /U%er N)me/@
2 /Com(ete N)me/@
0: /T)%5 Te?t/@
/PO N*m+er/.
6RITE4 F02J:>K %&-*(ine@ %&-#)t*m@ %&-*zeit.
LOOP AT it_(i%t) INTO w)_(i%t).
C3EC1 NOT w)_(i%t)-+e(nr IS INITIAL.
6RITE4 F2 w)_(i%t)-+e(nr@
2: w)_(i%t)-+()rt@
2 w)_(i%t)-?+(nr@
:> w)_(i%t)-#m+tr@
> w)_(i%t)-zz+#t@
H w)_(i%t)-(inr@
H w)_(i%t)-n)me2@
20B w)_(i%t)-+n)me@
2 w)_(i%t)-n)me_te?tc@
0: w)_(i%t)-wi_rte?t@ w)_(i%t)-e+e(n.
3IDE4 w)_(i%t)-")r@
w)_(i%t)-+e(nr@
w)_(i%t)-inv_t&e.
ENDLOOP.
-
8/20/2019 Task Text Doc
5/55
ENDI'.
*&&*
AT LINE-SELECTION.
*&&*
SET PARAMETER ID /G8R/ 'IELD w)_(i%t)-")r.
CASE w)_(i%t)-inv_t&e.
63EN /'I/.
SET PARAMETER ID /LP/ 'IELD w)_(i%t)-+e(nr.
CALL TRANSACTION /'9:/ AND S1IP 'IRST SCREEN.
63EN /MM/.
SET PARAMETER ID /RN/ 'IELD w)_(i%t)-+e(nr.
CALL TRANSACTION /MIR/ AND S1IP 'IRST SCREEN.
63EN OT3ERS.
ENDCASE.
*---------------------------------------------------------------------*
* FORM A2LO4T'IIT *
*---------------------------------------------------------------------*
'ORM ()&o*t_init USING r%_()&o*t T7PE %(i%_()&o*t_)(v.
*E>il? layot !or list ?isplay r%_()&o*t-#et)i(_o* $ //.
r%_()&o*t-+o?_ie(#n)me $ /!SEL/.
r%_()&o*t-+o?_t)+n)me $ /!_LISTA/.
END'ORM. Elayot'i"it
*---------------------------------------------------------------------*
* FORM VTT2>'>4IAD *
*---------------------------------------------------------------------*
'ORM eventt)+_+*i(# USING rt_event% T7PE %(i%_t_event.
*ERe%istratio" o! eve"ts to appe" ?ri"% list ?isplay
DATA4 (%_event T7PE %(i%_)(v_event.
CALL 'UNCTION /REUSE_AL9_E9ENTS_GET/
EPORTING
i_(i%t_t&e $ 0
IMPORTING
-
8/20/2019 Task Text Doc
6/55
et_event% $ rt_event%.
READ TALE rt_event% INTO (%_event
6IT3 1E7 n)me $ %(i%_ev_to_o_)"e.
I' %&-%*+rc $ 0.
MO9E "_to_o_)"e TO (%_event-orm.
APPEND (%_event TO rt_event%.
ENDI'.
END'ORM. Eeve"tta'il?
*---------------------------------------------------------------------*
* FORM TO$'OF'$2K *
*---------------------------------------------------------------------*
'ORM to_o_)"e.
CALL 'UNCTION /REUSE_AL9_COMMENTAR7_6RITE/
EPORTING
i_(o"o $ /EN8O7SAP_LOGO/
it_(i%t_comment)r& $ "t_(i%t_to_o_)"e.
END'ORM. Etop'o!'pa%e
*---------------------------------------------------------------------*
* FORM COMMT'>4IAD *
*---------------------------------------------------------------------**---------------------------------------------------------------------*
* -- AT'TO$'OF'$2K *
*---------------------------------------------------------------------*
'ORM comment_+*i(# USING (t_to_o_)"e T7PE
%(i%_t_(i%te)#er.
DATA4 (%_(ine T7PE %(i%_(i%te)#er.
CLEAR (%_(ine.
(%_(ine-t& $ /3/.
(%_(ine-ino $ te?t-200.
APPEND (%_(ine TO (t_to_o_)"e.
CLEAR (%_(ine.
END'ORM. E#omme"t'il?
*---------------------------------------------------------------------*
-
8/20/2019 Task Text Doc
7/55
* FORM 48R'COMM2D *
*---------------------------------------------------------------------*
* =a"?li"% o! ser #omma"? !rom 2AV
*---------------------------------------------------------------------*
'ORM *%er_comm)n# USING r_*comm LI1E %&-*comm
r%_%e(ie(# T7PE %(i%_%e(ie(#.
* D2T2: A'T2(1) TL$ C V2A4 NF>V3N
DATA4 (_t)JK T7PE c.
DATA4 w_co*nter T7PE .
DATA4 *%er LI1E *%er_)##r-+n)me.
DATA4 te?t_t)+(e LI1E t(ine OCCURS 0 6IT3 3EADER LINE.
DATA4 (in T7PE i.
DATA 4 EGIN O' (#_wor5item OCCURS 0@
wi_i# T7PE %wwwie)#-wi_i#@
END O' (#_wor5item.
CASE r_*comm.
*>e%i" o! Dipi"*
63EN /AC1/.
CALL SCREEN 0.
CLEAR r_*comm.
*"? o! Dipi"*
63EN /C3NG/. EMe"-tto" C=K to #a"%e te ser
* #e# i! ro6s is mare? to e #a"%e?
LOOP AT it_(i%t) INTO w)_(i%t) 63ERE NOT +e(nr IS INITIAL
AND NOT z%e( IS INITIAL.
ADD 2 TO w_co*nter.
ENDLOOP.
I' w_co*nter E 0.
MESSAGE eH0=J00K. E$lease mae a sele#tio"
ENDI'.
C3EC1 w_co*nter GT 0.
* #e# i! ro6s is mare? to e #a"%e?
CALL 'UNCTION /TR_POPUP_INPUT_SAPUSER/
EPORTING
iv_cec5_*%er_e?i%tence $ //
C3ANGING
-
8/20/2019 Task Text Doc
8/55
cv_*%ern)me $ *%er
ECEPTIONS
)ction_)+orte#_+&_*%er $ 2
OT3ERS $ .
I' %&-%*+rc ;< 0.
EIT.
ENDI'.
LOOP AT it_(i%t) INTO w)_(i%t)
63ERE NOT z%e( IS INITIAL.
(#_wor5item-wi_i# $ w)_(i%t)-wi_i# .
APPEND (#_wor5item.
ENDLOOP.
CLEAR4 w)_*%rt)+.
SELECT +n)me
n)me_te?tc
INTO w)_*%rt)+
'ROM *%er_)##r
63ERE +n)me $ *%er.
ENDSELECT .
it_(i%t), $ it_(i%t)_o(#,.
LOOP AT (#_wor5item.
LOOP AT it_(i%t) INTO w)_(i%t)
63ERE wi_i# $ (#_wor5item-wi_i#.
w)_(i%t)-+n)me $ w)_*%rt)+-+n)me.
w)_(i%t)-n)me_te?tc $ w)_*%rt)+-n)me_te?tc.
w)_(i%t)-z%e( $ / /.
I' NOT w)_(i%t)-?r" IS INITIAL.
ENDI'.
MODI'7 it_(i%t) 'ROM w)_(i%t).
ENDLOOP.
-
8/20/2019 Task Text Doc
9/55
ENDLOOP.
DESCRIE TALE te?t_t)+(e LINES (in.
r%_%e(ie(#-rere% $ //.
I' it_(i%t), NE it_(i%t)_o(#,.
PER'ORM cec5_c)n"e%.
ENDI'.
I' (in < 0.
CALL 'UNCTION /COPO_POPUP_TO_DISPLA7_TETLIST/
EPORTING
t)%5 $ /DISPLA7/
tite( $ te?t-00
TALES
te?t_t)+(e $ te?t_t)+(e.
ENDI'.
CLEAR r_*comm.
63EN /IC2/. E?ole#li# #all tra"sa#tio" F>V3MIR1
READ TALE it_(i%t) INTO w)_(i%t)
INDE r%_%e(ie(#-t)+in#e?.
* a??e? #o?e to ?ispaly 6or items
I' w)_(i%t)-+e(nr IS INITIAL
AND NOT w)_(i%t)-wi_i# IS INITIAL.
CALL 'UNCTION /S6L_6I_DISPLA7/
EPORTING
wi_i# $ w)_(i%t)-wi_i#
e?ten#e#_#i%()& $ //.
I' %&-%*+rc ;< 0.
ENDI'.
ELSE.
* a??e? #o?e to ?ispaly 6or items
SET PARAMETER ID /U1/ 'IELD w)_(i%t)-+*5r%.
* ?isplay i"voi#es !rom ot FI a"? MM
-
8/20/2019 Task Text Doc
10/55
C3EC1 NOT w)_(i%t)-+e(nr IS INITIAL.
CASE w)_(i%t)-+()rt.
63EN /1R/ OR /1G/ OR /A/ OR /72/ OR /7/.
(_t) $ /'9:/. EFI-i"voi#es
SET PARAMETER ID /LP/ 'IELD w)_(i%t)-+e(nr.
63EN OT3ERS.
(_t) $ /MIR/. EMM-i"voi#es
SET PARAMETER ID /RN/ 'IELD w)_(i%t)-+e(nr.
ENDCASE.
* ?isplay i"voi#es !rom ot FI a"? MM
SET PARAMETER ID /G8R/ 'IELD w)_(i%t)-")r.
CALL TRANSACTION (_t) AND S1IP 'IRST SCREEN.
ENDI'.
CLEAR r_*comm.
63EN /SA9E/.
I' it_(i%t), NE it_(i%t)_o(#,.
PER'ORM %)ve_c)n"e%.
ENDI'.
r%_%e(ie(#-rere% $ //.
CLEAR r_*comm.
63EN OT3ERS.
ENDCASE.
END'ORM. Eser'#omma"?
*-----------------------------------------------------------------------
* FORM $F'8T2T48'8T
*-----------------------------------------------------------------------'ORM _%t)t*%_%et USING e?t)+ T7PE %(i%_t_e?t)+.
SET P'-STATUS /!STANDARD/ ECLUDING e?t)+.
END'ORM. Ep!'stats'set
*&---------------------------------------------------------------------*
*& Form >4IAD'FIADC2T
-
8/20/2019 Task Text Doc
11/55
*&---------------------------------------------------------------------*
'ORM +*i(#_ie(#c)t USING "t_ie(#c)t T7PE %(i%_t_ie(#c)t_)(v.
CALL 'UNCTION /REUSE_AL9_'IELDCATALOG_MERGE/
EPORTING
* I'8TR4CT4R'2M NZD='FORF2AAOD2K8'R2$$'8TR4CN
i_%tr*ct*re_n)me $ /!DUE_LIST_STRUC/
C3ANGING
ct_ie(#c)t $ "t_ie(#c)t
ECEPTIONS
OT3ERS $ 0. Eo "ee? to a"?le
LOOP AT "t_ie(#c)t INTO %tr*ct_ie(#c)t.
CASE %tr*ct_ie(#c)t-ie(#n)me.
63EN /G8A3R/.
%tr*ct_ie(#c)t-no_o*t $ //.
63EN /U1RS/.
%tr*ct_ie(#c)t-no_o*t $ //.
63EN /LI'NR/.
%tr*ct_ie(#c)t-row_o% $ .
63EN /NAME2/.
%tr*ct_ie(#c)t-row_o% $ .
63EN /NAME/.
%tr*ct_ie(#c)t-row_o% $ .
63EN /NAME_TETC/.
%tr*ct_ie(#c)t-row_o% $ .
%tr*ct_ie(#c)t-o*t*t(en $ :0.
63EN /6I_'ILLB0/. EM00+
%tr*ct_ie(#c)t-row_o% $ :. EM00+
63EN /6I_R3TET/.
%tr*ct_ie(#c)t-row_o% $ . %tr*ct_ie(#c)t-o*t*t(en $ :0.
%tr*ct_ie(#c)t-%e(te?t_( $ te?t-:00.
%tr*ct_ie(#c)t-%e(te?t_m $ te?t-:02.
%tr*ct_ie(#c)t-%e(te?t_% $ te?t-:0.
63EN /6I_ID/.
%tr*ct_ie(#c)t-no_o*t $ //.
63EN /PR'G/.
%tr*ct_ie(#c)t-no_o*t $ //.
63EN OT3ERS.
ENDCASE.
MODI'7 "t_ie(#c)t 'ROM %tr*ct_ie(#c)t.
ENDLOOP.
END'ORM. E >4IAD'FIADC2T
*&---------------------------------------------------------------------*
*& Form C=C'C=2K8
*&---------------------------------------------------------------------*
-
8/20/2019 Task Text Doc
12/55
'ORM cec5_c)n"e%.
DATA4 (v_)n%wer.
I' it_(i%t), NE it_(i%t)_o(#,.
CALL 'UNCTION /POPUP_TO_CON'IRM_6IT3_MESSAGE/
EPORTING
#i)"no%ete?t2 $ /C)n"e% m)#e .../
te?t(ine2 $ /S)ve c)n"e% /
tite( $ / /
c)nce(_#i%()& $ / /
IMPORTING
)n%wer $ (v_)n%wer.
I' (v_)n%wer $ /8/.
PER'ORM %)ve_c)n"e%.
ELSE.
it_(i%t), $ it_(i%t)_o(#,.
ENDI'.
ENDI'.
END'ORM. E C=C'C=2
*&---------------------------------------------------------------------*
*& Form 82V'C=2K8
*&---------------------------------------------------------------------*'ORM %)ve_c)n"e%.
LOOP AT it_(i%t) INTO w)_(i%t).
READ TALE it_(i%t)_o(# INTO w)_(i%t)_o(# INDE %&-t)+i?.
I' w)_(i%t)-+n)me NE w)_(i%t)_o(#-+n)me.
* 8tart o! #a"%e M00,
CLEAR %wwwie)#.
SELECT SINGLE 'ROM %wwwie)#
63ERE wi_i# $ w)_(i%t)-wi_i#.
I' %wwwie)#-wi_%t)t $ /READ7/.
CALL 'UNCTION /SAP_6API_'OR6ARD_6OR1ITEM/
EPORTING
-
8/20/2019 Task Text Doc
13/55
wor5item_i# $ w)_(i%t)-wi_i#
*%er_i# $ w)_(i%t)-+n)me.
ELSE.
CLEAR z_orw)r#_)"ent.
RE'RES3 z_orw)r#_)"ent.
CONCATENATE /US/ w)_(i%t)-+n)me INTO z_orw)r#_)"ent.
APPEND z_orw)r#_)"ent.
CALL 'UNCTION /S66_6I_'OR6ARD/
EPORTING
c*rrent_*%er $ w)_(i%t)_o(#-+n)me
wi_i# $ w)_(i%t)-wi_i#
#o_commit $ //
TALES
new_)"ent% $ z_orw)r#_)"ent.
ENDI'.
ENDI'.
ENDLOOP.
it_(i%t)_o(#, $ it_(i%t),.
END'ORM. E save'C=2
*----------------------------------------------------------------------*
***ICA4D ZZ'FORM'ICA4D
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form 8ACT
*&---------------------------------------------------------------------*
'ORM %e(ect.
T7PES4 EGIN O' (t&_tot)(@
+*5r% T7PE +5-+*5r%@
+e(nr T7PE +5-+e(nr@ ")r T7PE +5-")r@
#m+tr T7PE +%e"-#m+tr@
END O' (t&_tot)(.
T7PES4 EGIN O' (t&_v+%e"5@
AUS1 T7PE AUS1@
ELNR T7PE ELNR_D@
-
8/20/2019 Task Text Doc
14/55
G8A3R T7PE G8A3R@
U1RS T7PE U1RS@
U!EI T7PE U!EI@
SC3L T7PE SC3L@
S31!G T7PE S31!G@
DMTR T7PE DMTR@
6RTR T7PE 6RTR@
SGTT T7PE SGTT@
LI'NR T7PE LI'NR@
!'DT T7PE D!'DT@
S6AER T7PE 6AERS@
LART T7PE LART@
LNR T7PE LNR2@
PR'G T7PE PR'G@
e+e(n T7PE r%e"-e+e(n@
wi_i# T7PE %wwwie)#-wi_i#@
END O' (t&_v+%e"5.
T7PES4 EGIN O' (t&_%wwie)#@
wi_i# T7PE %ww_wii#@
wi_te?t T7PE %ww_wite?t@
wi_r_t)%5 T7PE %ww_t)%5@
wi_%t)t T7PE %ww_wi%t)t@
END O' (t&_%wwie)#.
T7PES4 EGIN O' (t&_5e&@
+*5r% LI1E v+%e"5-+*5r%@
+e(nr LI1E v+%e"5-+e(nr@
")r LI1E v+%e"5-")r@ END O' (t&_5e&.
**&& OR 2R2 DCA2R2TIO8 &&**
DATA4 (w_v+%e"5 T7PE (t&_v+%e"5@
(w_r+5 T7PE T7_R1P@
(w_%wwie)# T7PE (t&_%wwie)#@
(w_v+%e"% T7PE T7_9SEGS@
(w_cont)iner T7PE %wr_cont@
(w_tot)( T7PE (t&_tot)(@
(w_5e& T7PE (t&_5e&.
**&& ITR2A T2>A DCA2R2TIO8 &&**
DATA4 (t_v+%e"5 T7PE STANDARD TALE O' t&_v+%e"5@
(t_r+5 T7PE STANDARD TALE O' T7_R1P@
(t_v+%e"% T7PE STANDARD TALE O' T7_9SEGS@
(t_cont)iner T7PE STANDARD TALE O' %wr_cont@
(t_tot)( T7PE STANDARD TALE O' (t&_tot)(.
-
8/20/2019 Task Text Doc
15/55
**&& V2RI2>A8 DCA2R2TIO8 &&**
DATA4 (v_)w5e& T7PE )w5e&@
(v_")r T7PE ")r@
(v_e+e(n T7PE e+e(n@
(v_wr+tr T7PE wr+tr@
(v_retco#e T7PE %&-%*+rc@
(v_(occ*rr T7PE w)er%@
(v_wi_i# T7PE %ww_wii#@
(v_wi_i#2 T7PE %ww_wii#@
(v_t)+i? T7PE %&-t)+i?@
(v_o+ect T7PE %wo_o+t&@
(v_o+5e& T7PE %wo_t&ei#@
(v_+#t LI1E v+%e"5-z+#t@
(v_#m+tr T7PE +%e"-#m+tr.
*2s #o"tai"er eleme"ts #a" "ot e rea? !or D8$ 6oritems si"% 8'COTO> ta
le 6e are ?e#lari"% te sele#tio" #riteria
* tass a"? rea?i"% te #o"tai"er eleme"ts !or tose si"% 2$I R2D #o"tai"e
r FM
**&& R2K8 DCA2R2TIO &&**
* R2K8 lr'tas'sel FOR s666iea?-6i'r'tas *Comme"te?
y Dipi" (DI$M4)
*8tart o! Dipi" (DI$M4)*
T7PES4 EGIN O' T7_S66I3EAD_6I_R3_TAS1@
SIGN T7PE C3AR2@ OPTION T7PE C3AR@
LO6 T7PE C3AR2@
3IG3 T7PE C3AR2@
END O' T7_S66I3EAD_6I_R3_TAS1.
DATA4 LR_TAS1_SEL T7PE STANDARD TALE O' T7_S66I3EAD_6I_R3_TAS1 6IT3 3EADER
LINE@
w)_t)%5_%e( T7PE T7_S66I3EAD_6I_R3_TAS1.
LOOP AT %_+n)me.
6A_TAS1_SEL-SIGN $ %_+n)me-SIGN.
6A_TAS1_SEL-OPTION $ %_+n)me-OPTION. 6A_TAS1_SEL-LO6 $ %_+n)me-LO6.
6A_TAS1_SEL-3IG3 $ %_+n)me-3IG3.
APPEND 6A_TAS1_SEL TO LR_TAS1_SEL.
CLEAR 6A_TAS1_SEL.
ENDLOOP.
-
8/20/2019 Task Text Doc
16/55
*D o! Dipi" (DI$M4)*
DATA4 item(i%t LI1E %wwwie)# OCCURS 0 6IT3 3EADER LINE.
DATA4 (w_)"ent% T7PE %w)ctor@
(w_*%er_(i%t T7PE %w)ctor.
DATA4 (t_)"ent% T7PE STANDARD TALE O' %w)ctor@
(t_*%er_(i%t T7PE STANDARD TALE O' %w)ctor.
DATA4 (t_t)%5i(ter T7PE TALE O' %wr_t)%5@
(w_t)%5i(ter T7PE %wr_t)%5@
(t_wor5(i%t T7PE TALE O' %wr_wi#r@
(w_wor5(i%t T7PE %wr_wi#r@
(t_receiient% T7PE TALE O' %wr)"ent@
(w_receiient T7PE %wr)"ent.
*******************************************************
* 8T2RT OF AOKIC FOR E48R 82RC=E CRTRI2
*******************************************************
*****************************************************
* TL$8 DCA2R2TIO
*****************************************************
T7PES4 EGIN O' t&_wi_i#%@
*%er_i# T7PE ?*+n)me@
wi_i# T7PE %ww_wii#@
END O' t&_wi_i#%@
EGIN O' t&_wi_i#%2@
wi_i# T7PE %ww_wii#@
wi_t)%5 T7PE %wwwie)#-wi_r_t)%5@
END O' t&_wi_i#%2@
EGIN O' t&_o+5e&@
wi_i# T7PE %ww_wii#@
e(ement T7PE %wc_e(em@
o+5e& T7PE %wo_t&ei#@
END O' t&_o+5e&@
EGIN O' t&_iinv@ +e(nr T7PE v_v+%e"5-+e(nr@
+*5r% T7PE +*5r%@
?+(nr T7PE ?+(nr2@
* 2??e? tis !iel? l"r !or testi"% y Dipi"
")r T7PE ")r@
wi_i# T7PE %ww_wii#@
END O' t&_iinv@
-
8/20/2019 Task Text Doc
17/55
EGIN O' t&_mminv@
+e(nr T7PE r+5-+e(nr@
+*5r% T7PE +*5r%@
")r T7PE ")r@
wi_i# T7PE %ww_wii#@
END O' t&_mminv@
EGIN O' t&_wite?t@
wi_i# T7PE %ww_wii#@
wi_te?t T7PE %ww_wite?t@
END O' t&_wite?t@
EGIN O' t&_ven#or@
n)me2 T7PE n)me2_"@
(inr T7PE ()2-(inr@
END O' t&_ven#or.
**************************************************
* D2T2 DCA2R2TIO
**************************************************
DATA4 (t_wi_i#%2 T7PE TALE O' t&_wi_i#%@
(t_wi_i#% T7PE TALE O' t&_wi_i#%2@
(%_wi_i#%2 T7PE t&_wi_i#%2@
(t_o+5e& T7PE TALE O' t&_o+5e&@
(%_o+5e& T7PE t&_o+5e&@
(t_o+5e&2 LI1E (%_o+5e& OCCURS 0 6IT3 3EADER LINE@ (t_iinv T7PE TALE O' t&_iinv@
(%_iinv T7PE t&_iinv@
(%_wite?t T7PE t&_wite?t@
(t_wite?t T7PE TALE O' t&_wite?t@
(%_ven#or T7PE t&_ven#or@
(t_ven#or T7PE TALE O' t&_ven#or@
(v_+n)me T7PE *%er_)##r-+n)me@
(v_n)me_te?tc T7PE *%er_)##r-n)me_te?tc@
(t_mminv T7PE TALE O' t&_mminv@
(%_mminv T7PE t&_mminv@
(%_mmwite?t T7PE t&_wite?t@
(t_mmwite?t T7PE TALE O' t&_wite?t@ (%_mmven#or T7PE t&_ven#or@
(t_mmven#or T7PE TALE O' t&_ven#or.
DATA 4 wi_cont_t)+ LI1E %wr_cont OCCURS 0 6IT3 3EADER LINE@
i_i#_o(# LI1E %woto+i#@
i_i#_)rc LI1E %woto+i#@ E82MC=2
"t_item(i%t2 LI1E %wwwie)# OCCURS 0 6IT3 3EADER LINE@
-
8/20/2019 Task Text Doc
18/55
"t_item(i%t LI1E %wwwie)# OCCURS 0 6IT3 3EADER LINE@
"%_item(i%t T7PE %wwwie)#.
DATA4 item(i%t2 LI1E %wwwie)# OCCURS 0 6IT3 3EADER LINE.
DATA4 z_v+%e"% T7PE STANDARD TALE O' T7_9SEGS 6IT3 3EADER LINE.
RE'RES3 (r_t)%5_%e(,.
CLEAR (r_t)%5_%e(,.
(r_t)%5_%e(-%i"n $ /I/.
(r_t)%5_%e(-otion $ /E/.
(r_t)%5_%e(-(ow $ /TS=000:H:/.
APPEND (r_t)%5_%e(.
(r_t)%5_%e(-%i"n $ /I/.
(r_t)%5_%e(-otion $ /E/.
(r_t)%5_%e(-(ow $ /TS=000:H/.
APPEND (r_t)%5_%e(.
(r_t)%5_%e(-%i"n $ /I/.
(r_t)%5_%e(-otion $ /E/.
(r_t)%5_%e(-(ow $ /TS=000:H>/.
APPEND (r_t)%5_%e(.
(r_t)%5_%e(-%i"n $ /I/.
(r_t)%5_%e(-otion $ /E/.
(r_t)%5_%e(-(ow $ /TS=000:H/.
APPEND (r_t)%5_%e(.
(r_t)%5_%e(-%i"n $ /I/.
(r_t)%5_%e(-otion $ /E/.
(r_t)%5_%e(-(ow $ /TS=000:HB/.
APPEND (r_t)%5_%e(.
(r_t)%5_%e(-%i"n $ /I/.
(r_t)%5_%e(-otion $ /E/.
(r_t)%5_%e(-(ow $ /TS=000:0/.
APPEND (r_t)%5_%e(.
(r_t)%5_%e(-%i"n $ /I/. (r_t)%5_%e(-otion $ /E/.
(r_t)%5_%e(-(ow $ /TS=000:0/.
APPEND (r_t)%5_%e(.
(r_t)%5_%e(-%i"n $ /I/.
(r_t)%5_%e(-otion $ /E/.
(r_t)%5_%e(-(ow $ /TS=20002/.
-
8/20/2019 Task Text Doc
19/55
APPEND (r_t)%5_%e(.
(r_t)%5_%e(-%i"n $ /I/.
(r_t)%5_%e(-otion $ /E/.
(r_t)%5_%e(-(ow $ /TS=20002H/.
APPEND (r_t)%5_%e(.
(r_t)%5_%e(-%i"n $ /I/.
(r_t)%5_%e(-otion $ /E/.
(r_t)%5_%e(-(ow $ /TS=0000/.
APPEND (r_t)%5_%e(.
(r_t)%5_%e(-%i"n $ /I/.
(r_t)%5_%e(-otion $ /E/.
(r_t)%5_%e(-(ow $ /TS=20000/.
APPEND (r_t)%5_%e(.
********************************************************
* AOKIC
********************************************************
I' %_+n)me IS NOT INITIAL.
RE'RES34 (t_wi_i#%2@
(t_wi_i#%@
(t_r+5@
(t_o+5e&@
(t_o+5e&2@
(t_cont)iner@
(t_iinv@
(t_mminv@ (t_v+%e"5@
(t_v+%e"% @
(t_wite?t@
(t_ven#or@
(t_mmven#or@
(t_mmwite?t@
(t_mminv@(t_r+5.
CLEAR4 (w_r+5@
(%_mminv@
(%_mmwite?t@
(%_mmven#or@ (%_iinv@
(%_wite?t@
(%_ven#or@
(%_o+5e&@
(%_wi_i#%2.
LOOP AT %_+n)me.
-
8/20/2019 Task Text Doc
20/55
%_+n)me $ %_+n)me:JK.
* Ket te 6or item i?s !or te ser
SELECT *%er_i#
wi_i#
INTO TALE (t_wi_i#%2
'ROM %ww*%erwi
63ERE *%er_i# $ %_+n)me
AND no_%e( NE //
AND no_e?ec*te NE //.
*8tart o! Dipi" (DI$M4)*
*Ce#i"% i! te i"ter"al Tale is I"itial or "ot*
I' (t_wi_i#%2, IS NOT INITIAL.
*"? o! Dipi" (DI$M4)*
*Remove te 6oritems 6i# are #omplete? or lo%i#ally ?elete?
SELECT wi_i#
wi_r_t)%5
'ROM %wwwie)#
INTO TALE (t_wi_i#%
'OR ALL ENTRIES IN (t_wi_i#%2
63ERE wi_i# $ (t_wi_i#%2-wi_i#
AND J wi_%t)t $ c_re)#&
OR wi_%t)t $ c_%t)rte#
OR wi_%t)t $ c_%e(ecte#
OR wi_%t)t $ c_committe# K.ENDI'.
SELECT SINGLE +n)me
n)me_te?tc
'ROM *%er_)##r
INTO J(v_+n)me@ (v_n)me_te?tcK
63ERE +n)me $ %_+n)me.
I' (t_wi_i#%, IS NOT INITIAL.
* Ket te o5e#t eys !or te 6or items i" sers i"o
SELECT wi_i# e(ement
o+5e&
'ROM %ww_conto+
INTO TALE (t_o+5e&
'OR ALL ENTRIES IN (t_wi_i#%
63ERE wi_i# $ (t_wi_i#%-wi_i#
AND J e(ement $ c_invoice
-
8/20/2019 Task Text Doc
21/55
OR e(ement $ c__wi_o+ect_i#
OR e(ement $ c__)#oc_o+ect%
OR e(ement $ c_ii# K.
ELSE.
MESSAGE te?t-m0 T7PE /I/ .
EIT.
ENDI'.
** >e%i" o! Dipi" (DI$M4)
T7PES4 EGIN O' T7_L9_6I_ID@
6I_ID T7PE S66_6IID@
6I_C3C16I T7PE S66_C3C16I@
END O' T7_L9_6I_ID.
T7PES4 EGIN O' T7_L9_6I_ID2@
6I_ID T7PE S66_6IID@
6I_C3C16I T7PE S66_C3C16I@
END O' T7_L9_6I_ID2.
DATA4 IT_L9_6I_ID T7PE STANDARD TALE O' T7_L9_6I_ID@
6A_L9_6I_ID T7PE T7_L9_6I_ID.
DATA4 IT_L9_6I_ID2 T7PE STANDARD TALE O' T7_L9_6I_ID2@
6A_L9_6I_ID2 T7PE T7_L9_6I_ID2.
I' LT_6I_IDS IS NOT INITIAL.
Se(ect wi_i# wi_cc5wi
rom %wwwie)#
into TALE it_(v_wi_i#
'OR ALL ENTRIES IN LT_6I_IDS
were wi_i# $ (t_wi_i#%-wi_i#.
ENDI'.
I' it_(v_wi_i# IS NOT INITIAL.
Se(ect wi_i# wi_cc5wi
rom S666I3EAD
INTO TALE IT_L9_6I_ID2
'OR ALL ENTRIES IN IT_L9_6I_ID
63ERE wi_i# $ it_(v_wi_i#-wi_i#
AND 6I_R3_tAS1 $ C_6S=0000=.
-
8/20/2019 Task Text Doc
22/55
ENDI'.
SORT it_(v_wi_i# +& wi_i#.
SORT it_(v_wi_i#2 +& wi_i#.
** D OF DI$I (DI$M4)
LOOP AT (t_wi_i#% INTO (%_wi_i#%2
63ERE wi_t)%5 IN (r_t)%5_%e(.
READ TALE it_(v_wi_i# into w)_(v_wi_i# wit 5e& wi_i# $ (%_wi_i#%2-wi_i# INA
R7 SEARC3.
I' S7-SURC EQ 0.
READ TALE IT_L9_6I_ID2 INTO 6A_L9_6I_ID2 6IT3 1E7 wi_i# $ (%_wi_i#%2-wi_i# I
NAR7 SEARC3.
En#i.
I' %&-%*+rc $ 0.
6A_L9_6I_ID-wi_cc5wi $ 6A_L9_6I_ID2-wi_cc5wi.
ENDI'.
CALL 'UNCTION /SAP_6API_READ_CONTAINER/
EPORTING
wor5item_i# $ 6A_(v_wi_i#-wi_cc5wi
TALES
%im(e_cont)iner $ (t_cont)iner.
I' %&-%*+rc $ 0.
I' (%_wi_i#%2-wi_t)%5 $ c_t%=000:0.
READ TALE (t_cont)iner INTO (w_cont)iner
6IT3 1E7 e(ement $ c_ii#. I' %&-%*+rc IS INITIAL.
(t_o+5e&2-o+5e& $ (w_cont)iner-v)(*e0J2BK.
ENDI'.
ELSE.
-
8/20/2019 Task Text Doc
23/55
READ TALE (t_cont)iner INTO (w_cont)iner
6IT3 1E7 e(ement $ c_invoice.
I' %&-%*+rc IS INITIAL.
(t_o+5e&2-o+5e& $ (w_cont)iner-v)(*e0J2K.
ENDI'.
ENDI'.
(t_o+5e&2-wi_i# $ (%_wi_i#%2-wi_i#.
(t_o+5e&2-e(ement $ c_invoice.
APPEND (t_o+5e&2.
RE'RES34 (t_cont)iner.
ENDI'.
ENDLOOP.
APPEND LINES O' (t_o+5e&2 TO (t_o+5e&.
* Colle#t ?ata !or FI i"voi#es i! EI"#l?e FI i"voi#esE is sele#te?
I' %_iinv $ //.
* Colle#t te i"voi#e "mer#ompa"y#o?e a"? !is#al year ?etails #ompari"% 6i
t te !is#al year a"? #ompa"y#o?e i"pt ?ata provi?e?
LOOP AT (t_o+5e& INTO (%_o+5e&
63ERE o+5e&0JK IN %_+*5r%
AND o+5e&2JK IN %_")r.
I' n*moc)rJ (%_o+5e&-o+5e& K $ 2B. EFI i"voi#e
(%_iinv-+e(nr $ (%_o+5e&-o+5e&J20K.
(%_iinv-")r $ (%_o+5e&-o+5e&2JK.
(%_iinv-+*5r% $ (%_o+5e&-o+5e&0JK.
(%_iinv-wi_i# $ (%_o+5e&-wi_i#.
APPEND (%_iinv TO (t_iinv.
ENDI'.
ENDLOOP.
DELETE AD8ACENT DUPLICATES 'ROM (t_iinv COMPARING +e(nr +*5r% ")r.
I' (t_iinv, IS NOT INITIAL.
****>KI OF Dipi"********
T7PES4 EGIN O' t&_new_+5@
-
8/20/2019 Task Text Doc
24/55
+*5r% T7PE +*5r%@
")r T7PE ")r@
?+(nr T7PE ?+(nr@
)w5e& T7PE )w5e&@
END O' t&_new_+5.
DATA4 (t_)w5e& T7PE STANDARD TALE O' t&_new_+5@
(v_)w5e&_2 T7PE t&_new_+5.
T7PES4 EGIN O' t&_new_+%e"@
+*5r% T7PE +*5r%@
+e(nr T7PE +e(nr_#@
")r T7PE ")r@
(inr T7PE (inr@
z+#t T7PE #z+#t@
END O' t&_new_+%e".
DATA4 (t_+%e" T7PE STANDARD TALE O' t&_new_+%e"@
(v_+%e" T7PE t&_new_+%e".
* Ket FI i"voi#e ?etails
* 8ACT * Comme"te?
y Dipi" o" 0,0+,0+1 a"? a??e? a" p?ate? /ery
SELECT AUS1 ELNR G8A3R U1RS U!EI SC3L S31!G DMTR 6RTR SGTT LI'NR !'DT
S6AER LART LNR PR'G 'ROM v_v+%e"5
INTO TALE (t_v+%e"5
'OR ALL ENTRIES IN (t_iinv
63ERE +e(nr $ (t_iinv-+e(nr
AND ")r $ (t_iinv-")r
AND +*5r% $ (t_iinv-+*5r%.
* Ket 2> ?o# i"voi#e ?etails
* 8ACT * Comme"te? y
Dipi" o" 0,0+,0+1 a"? a??e? a" p?ate? /ery
SELECT ELNR G8A3R U1RS U!EI DMTR !'DT LART CPUDT LNR PR'G
'ROM v_v+%e"% INTO TALE (t_v+%e"%
'OR ALL ENTRIES IN (t_iinv
63ERE +e(nr $ (t_iinv-+e(nr
AND ")r $ (t_iinv-")r
AND +*5r% $ (t_iinv-+*5r%
AND +*zei E /002/
AND J +()rt NE /1R/
-
8/20/2019 Task Text Doc
25/55
OR +()rt NE /1G/
OR +()rt NE /72/
OR +()rt NE /7/ K.
****** >KI OF Dipi" ************
I' (t_v+%e"%, IS NOT INITIAL.
SELECT +*5r% ")r ?+(nr )w5e&
'ROM +5
INTO TALE (t_)w5e&
'OR ALL ENTRIES IN (t_v+%e"%
63ERE +*5r% E (t_v+%e"%-+*5r%
AND ?+(nr E (t_v+%e"%-?+(nr
AND ")r E (t_v+%e"%-")r.
T7PES4 EGIN O' t&_v+%e"%_2@
+*5r% T7PE +*5r%@
?+(nr T7PE +e(nr_#@
END O' t&_v+%e"%_2.
DATA4 (t_v+%e"%_2 T7PE STANDARD TALE O' t&_v+%e"%_2@
(w_v+%e"%_2 T7PE t&_v+%e"%_2.
LOOP AT (t_v+%e"% INTO (w_v+%e"%.
(w_v+%e"%_2-+*5r% $ (w_v+%e"%-+*5r%.
(w_v+%e"%_2-?+(nr $ (w_v+%e"%-?+(nr.
APPEND (w_v+%e"%_2 TO (t_v+%e"%_2.
CLEAR4 (w_v+%e"%_2@ (w_v+%e"%.
ENDLOOP.
I' (t_v+%e"%_2, IS NOT INITIAL.
SELECT +*5r% +e(nr ")r (inr z+#t
'ROM +%e"
INTO TALE (t_+%e"
'OR ALL ENTRIES IN (t_v+%e"%_2
63ERE +*5r% E (t_v+%e"%_2-+*5r% AND +e(nr E (t_v+%e"%_2-?+(nr.
ENDI'.
ENDI'.
**** D OF Dipi" ************
-
8/20/2019 Task Text Doc
26/55
LOOP AT (t_v+%e"% INTO (w_v+%e"%.
MO9E-CORRESPONDING (w_v+%e"% TO (w_v+%e"5.
READ TALE (t_)w5e&
INTO (v_)w5e&_2
6IT3 1E7 +*5r% $ (w_v+%e"%-+*5r%
?+(nr $ (w_v+%e"%-?+(nr
")r $ (w_v+%e"%-")r.
(v_)w5e& $ (v_)w5e&_2-)w5e&.
I' %&-%*+rc IS INITIAL.
(v_")r $ (v_)w5e&2JK.
READ TALE (t_+%e"
INTO (v_+%e"
6IT3 1E7 +e(nr $ (w_v+%e"%-?+(nr
")r $ (v_")r
+*5r% $ (w_v+%e"%-+*5r%.
(w_v+%e"5-(inr $ (v_+%e"-(inr.
(w_v+%e"5-z+#t $ (v_+%e"-z+#t.
ELSE.
READ TALE (t_+%e"
INTO (v_+%e"
6IT3 1E7 +*5r% $ (w_v+%e"%-+*5r% +e(nr $ (w_v+%e"%-?+(nr
")r $ (w_v+%e"%-")r.
(w_v+%e"5-(inr $ (v_+%e"-(inr.
(w_v+%e"5-z+#t $ (v_+%e"-z+#t.
ENDI'.
I' %&-%*+rc $ 0.
APPEND (w_v+%e"5 TO (t_v+%e"5.
ELSE.
(w_v+%e"%-")r $ (w_v+%e"%-")r - 2.
READ TALE (t_+%e"
INTO (v_+%e"
6IT3 1E7 +*5r% $ (w_v+%e"%-+*5r%
-
8/20/2019 Task Text Doc
27/55
+e(nr $ (w_v+%e"%-?+(nr
")r $ (w_v+%e"%-")r.
(w_v+%e"5-(inr $ (v_+%e"-(inr.
(w_v+%e"5-z+#t $ (v_+%e"-z+#t.
ENDI'.
APPEND (w_v+%e"5 TO (t_v+%e"5.
ENDLOOP.
DELETE AD8ACENT DUPLICATES 'ROM (t_v+%e"5
COMPARING +e(nr +*5r% ")r.
* Ket 6or item tet
SELECT wi_i#
wi_rte?t
'ROM %wwwie)#
INTO TALE (t_wite?t
'OR ALL ENTRIES IN (t_iinv
63ERE wi_i# $ (t_iinv-wi_i#.
ENDI'.
I' (t_v+%e"5, IS NOT INITIAL.
* Ket te ve"?or "ame SELECT n)me2 (inr
'ROM ()2
INTO TALE (t_ven#or
'OR ALL ENTRIES IN (t_v+%e"5
63ERE (inr $ (t_v+%e"5-(inr.
ENDI'.
* $repare otpt tale
SORT (t_ven#or 7 (inr.
SORT (t_wite?t 7 wi_i#.
SORT (t_iinv 7 +*5r% +e(nr ")r. SORT (t_v+%e"5 7 +*5r% +e(nr ")r +*zei.
LOOP AT (t_v+%e"5 INTO (w_v+%e"5.
MO9E-CORRESPONDING (w_v+%e"5 TO w)_(i%t).
* $ass ser ?etails to otpt tale
-
8/20/2019 Task Text Doc
28/55
MO9E4 (v_+n)me TO w)_(i%t)-+n)me@
(v_n)me_te?tc TO w)_(i%t)-n)me_te?tc.
* $ass 6or item i? a"? tet to otpt tale
READ TALE (t_iinv INTO (%_iinv
6IT3 1E7 +*5r% $ (w_v+%e"5-+*5r%
+e(nr $ (w_v+%e"5-+e(nr
")r $ (w_v+%e"5-")r
INAR7 SEARC3.
I' %&-%*+rc $ 0.
READ TALE (t_wite?t INTO (%_wite?t
6IT3 1E7 wi_i# $ (%_iinv-wi_i#
INAR7 SEARC3.
I' %&-%*+rc $ 0.
MO9E4 (%_wite?t-wi_i# TO w)_(i%t)-wi_i#@
(%_wite?t-wi_te?t TO w)_(i%t)-wi_rte?t.
ENDI'.
ENDI'.
* $ass ve"?or "ame to otpt tale
READ TALE (t_ven#or INTO (%_ven#or
6IT3 1E7 (inr $ (w_v+%e"5-(inr
INAR7 SEARC3.
I' %&-%*+rc $ 0.
MO9E (%_ven#or-n)me2 TO w)_(i%t)-n)me2.
ENDI'.
*$ass payme"t ?e ?ate o! te i"voi#e to te list
MO9E (w_v+%e"5-z+#t TO w)_(i%t)-zz+#t.
* #al#late payme"t ?e ?ate
* Ao%i# a??e? to #al#late te ?e payme"t ?ate !or FI i"voi#es
PER'ORM )&m_#*e_#)te USING w)_(i%t)-zz+#t
w)_(i%t)-z+#2t w)_(i%t)-z+#t
w)_(i%t)-z+#:t
(v_+#t.
w)_(i%t)-zz+#t $ (v_+#t.
APPEND w)_(i%t) TO it_(i%t).
-
8/20/2019 Task Text Doc
29/55
CLEAR w)_(i%t).
ENDLOOP.
ENDI'.
* ------------------>e%i" o! Dipi"---------------
T7PES4 EGIN O' t&_")r@
%i"n T7PE c)r2@
otion T7PE c)r@
(ow T7PE c)r@
i" T7PE c)r@
END O' t&_")r.
DATA 4 (t_")r T7PE STANDARD TALE O' t&_")r@
w)_")r T7PE t&_")r.
LOOP AT %_")r.
w)_")r-%i"n $ %_")r-%i"n.
w)_")r-otion $ %_")r-otion.
w)_")r-(ow $ %_")r-(ow.
w)_")r-i" $ %_")r-i".
APPEND w)_")r To (t_")r.
CLEAR w)_")r.
ENDLOOP.* * ------------------"? o! Dipi"---------------
* Colle#t ?ata !or MM i"voi#es i! EI"#l?e MM i"voi#esE is sele#te?
I' %_mminv $ //.
* Colle#t te i"voi#e "mer a"? #ompa"y#o?e ?etails #ompari"% 6it te !is#a
l year i"pt ?ata provi?e?
LOOP AT (t_o+5e& INTO (%_o+5e&
63ERE o+5e&20JK IN (t_")r.
I' n*moc)rJ (%_o+5e&-o+5e& K $ 2. EMM i"voi#e
(%_mminv-+e(nr $ (%_o+5e&-o+5e&0J20K.
(%_mminv-")r $ (%_o+5e&-o+5e&20JK.
(%_mminv-wi_i# $ (%_o+5e&-wi_i#.
APPEND (%_mminv TO (t_mminv.
-
8/20/2019 Task Text Doc
30/55
ENDI'.
ENDLOOP.
DELETE AD8ACENT DUPLICATES 'ROM (t_mminv COMPARING +e(nr.
I' (t_mminv, IS NOT INITIAL.
* Ket MM i"voi#e ?eta ils
* 8ACT * *Comme"te? y Dipi"
(DI$M4) o" 0P0+,0+3
SELECT ELNR G8A3R LART LDAT UDAT USNAM TCODE CPUDT CPUTM 9GART LNR U1RS
LI'NR 6AERS 1URS' RM66R E!N1 M6S1!2 !TERM !D2T REC3 SAPRL LOGS7S I9T7P
RSTAT !'DT NAME2
'ROM r+5
INTO TALE (t_r+5
'OR ALL ENTRIES IN (t_mminv
63ERE +e(nr $ (t_mminv-+e(nr
AND ")r $ (t_mminv-")r.
* Ket 6or item tet
SELECT wi_i# wi_rte?t
'ROM %wwwie)#
INTO TALE (t_mmwite?t
'OR ALL ENTRIES IN (t_mminv
63ERE wi_i# $ (t_mminv-wi_i#.
ENDI'.
I' (t_r+5, IS NOT INITIAL.
* Ket te ve"?or "ame
SELECT n)me2
(inr
'ROM ()2
INTO TALE (t_mmven#or
'OR ALL ENTRIES IN (t_r+5
63ERE (inr $ (t_r+5-(inr.
ENDI'.
* $repare otpt tale
SORT (t_mmven#or 7 (inr.
SORT (t_mmwite?t 7 wi_i#.
SORT (t_mminv 7 +e(nr ")r.
-
8/20/2019 Task Text Doc
31/55
LOOP AT (t_r+5 INTO (w_r+5
63ERE +*5r% IN %_+*5r%.
MO9E-CORRESPONDING (w_r+5 TO w)_(i%t).
* $ass ser ?etails to otpt tale
MO9E4 (v_+n)me TO w)_(i%t)-+n)me@
(v_n)me_te?tc TO w)_(i%t)-n)me_te?tc.
* $ass 6or item i? a"? tet to otpt tale
READ TALE (t_mminv INTO (%_mminv
6IT3 1E7 +e(nr $ (w_r+5-+e(nr
")r $ (w_r+5-")r
INAR7 SEARC3.
I' %&-%*+rc $ 0.
READ TALE (t_mmwite?t INTO (%_mmwite?t
6IT3 1E7 wi_i# $ (%_mminv-wi_i#
INAR7 SEARC3.
I' %&-%*+rc $ 0.
MO9E4 (%_mmwite?t-wi_i# TO w)_(i%t)-wi_i#@
(%_mmwite?t-wi_te?t TO w)_(i%t)-wi_rte?t.
ENDI'.
ENDI'.
* $ass ve"?or "ame to otpt tale
READ TALE (t_mmven#or INTO (%_mmven#or
6IT3 1E7 (inr $ (w_r+5-(inr
INAR7 SEARC3.
I' %&-%*+rc $ 0.
MO9E (%_mmven#or-n)me2 TO w)_(i%t)-n)me2.
ENDI'.
CLEAR4 (v_e+e(n@
(v_wr+tr.
SELECT SINGLE e+e(n
wr+tr
INTO J(v_e+e(n@
(v_wr+trK
'ROM r%e"
63ERE +e(nr E (w_r+5-+e(nr
-
8/20/2019 Task Text Doc
32/55
AND ")r E (w_r+5-")r.
* Ket lo#al #rre"#y o! te #ompa"y#o?e
SELECT SINGLE w)er%
INTO (v_(occ*rr
'ROM t002
63ERE +*5r% $ (w_r+5-+*5r%.
* Co"vert i"voi#e amo"t i"to lo#al #rre"#y amo"t
PER'ORM (oc)(_c*rr USING (w_r+5-+(#)t
(w_r+5-w)er%
(w_r+5-5*r%
(v_(occ*rr
C3ANGING (w_r+5-rmwwr
(v_wr+tr.
6RITE4 (v_wr+tr TO w)_(i%t)-#m+tr CURRENC7 (w_r+5-w)er%.
*$ass payme"t ?e ?ate & $O "mer o! te i"voi#e to te list
MO9E (w_r+5-z+#t TO w)_(i%t)-zz+#t.
MO9E (v_e+e(n TO w)_(i%t)-e+e(n.
* #al#late payme"t ?e ?ate
* Ao%i# a??e? to #al#late te ?e payme"t ?ate !or MM i"voi#es
PER'ORM )&m_#*e_#)te USING w)_(i%t)-zz+#t
w)_(i%t)-z+#2t
w)_(i%t)-z+#t
w)_(i%t)-z+#:t
(v_+#t.
w)_(i%t)-zz+#t $ (v_+#t.
APPEND w)_(i%t) TO it_(i%t).
CLEAR w)_(i%t).
ENDLOOP.
ENDI'.
ENDLOOP.
* 8ort te ?isplay list
SORT it_(i%t) 7 wi_i#.
DELETE AD8ACENT DUPLICATES 'ROM it_(i%t) COMPARING wi_i#.
ELSE.
-
8/20/2019 Task Text Doc
33/55
* 8ele#t all prelimi"ary posti"%s !or ve"?ors
* #e# tat FI-i"voi#es is sele#te?
I' %_iinv $ //.
* 8ACT * **C
omme"te? y Dipi" (DI$M4) o" +L D
I$I (DI$M4) O 0P0+,0+3
*7 R$A2C F09;;0.1. +
*Q8ACT >AR K2=R >4R8 >4ZI DM>TR ZF>DT >A2RT C$4DT >AR $RFK
SELECT AUS1 Ea??e? y >TC2M 01+1,0+<
ELNR
G8A3R
U1RS
U!EI
DMTR !'DT
LART
CPUDT
LNR
PR'G
*@ R$A2C
'ROM v_v+%e"%
INTO TALE z_v+%e"%
63ERE +*5r% IN %_+*5r%
AND ")r IN %_")r
AND +()rt IN "t_+()rt
AND ?+(nr IN %_?+(nr AND +*zei $ /002/. ETis #o"?itio" elps "ot to sele#t all items
I' %&-%*+rc E 0. ETere are KA pare? ?o#s
LOOP AT z_v+%e"%.
CLEAR4 w)_v+%e"5@
-
8/20/2019 Task Text Doc
34/55
(v_")r.
MO9E-CORRESPONDING z_v+%e"% TO w)_v+%e"5.
I' NOT z_v+%e"%-c*#t IS INITIAL
AND z_v+%e"%-+()rt $ c_)+ .
(v_")r $ z_v+%e"%-c*#tJK.
SELECT SINGLE (inr
z+#t
'ROM +%e"
INTO Jw)_v+%e"5-(inr@ w)_v+%e"5-z+#tK
63ERE +*5r% E z_v+%e"%-+*5r%
AND +e(nr E z_v+%e"%-?+(nr
AND ")r E (v_")r
AND J +%c( E c_2
OR +%c( E c_:2 K.
I' %&-%*+rc NE 0.
(v_")r $ (v_")r - 2.
SELECT SINGLE (inr
z+#t
'ROM +%e"
INTO Jw)_v+%e"5-(inr@ w)_v+%e"5-z+#tK
63ERE +*5r% E z_v+%e"%-+*5r%
AND +e(nr E z_v+%e"%-?+(nr
AND ")r E (v_")r AND J +%c( E c_2
OR +%c( E c_:2 K.
ENDI'.
ELSE.
SELECT SINGLE (inr
z+#t
'ROM +%e"
INTO Jw)_v+%e"5-(inr@ w)_v+%e"5-z+#tK
63ERE +*5r% E z_v+%e"%-+*5r% AND +e(nr E z_v+%e"%-?+(nr
AND ")r E z_v+%e"%-")r.
* Ce# !or te previos !is#al year o! RK ?o#
I' %&-%*+rc $ .
z_v+%e"%-")r $ z_v+%e"%-")r - 2.
-
8/20/2019 Task Text Doc
35/55
SELECT SINGLE (inr
z+#t
'ROM +%e"
INTO Jw)_v+%e"5-(inr@ w)_v+%e"5-z+#tK
63ERE +*5r% E z_v+%e"%-+*5r%
AND +e(nr E z_v+%e"%-?+(nr
AND ")r E z_v+%e"%-")r.
ENDI'.
I' w)_v+%e"5-(inr IS INITIAL
OR w)_v+%e"5-z+#t IS INITIAL.
SELECT SINGLE ")r E4p?ate? y Dipi" (D
I$M4)
'ROM +5
INTO z_v+%e"%-")r
* 4$ TO + RO8 Comme"te? y Dipi" (D
I$M4)
63ERE +*5r% E z_v+%e"%-+*5r%
AND +e(nr E z_v+%e"%-?+(nr
AND +()rt E /1R/.
* D8ACT EComme"te? y Dipi" (
DI$M4)
I' %&-%*+rc $ 0.
SELECT SINGLE (inr z+#t
'ROM +%e"
INTO Jw)_v+%e"5-(inr@ w)_v+%e"5-z+#tK
63ERE +*5r% E z_v+%e"%-+*5r%
AND +e(nr E z_v+%e"%-?+(nr
AND ")r E z_v+%e"%-")r.
ENDI'.
ENDI'.
ENDI'.
APPEND w)_v+%e"5 TO it_v+%e"5.
ENDLOOP.
ENDI'.
-
8/20/2019 Task Text Doc
36/55
ENDI'.
* a??e? #o?e to #olle#t MM i"voi#es as 6ell ROLC ,003-0KI OF DI$I (DI$M4)
T7PES4 EGIN O' T7_RSEG_NE6@
ELNR T7PE ELNR_D@
G8A3R T7PE G8A3R@
EELN T7PE EELN@
6RTR T7PE 6RTR@
END O' T7_RSEG_NE6.
DATA4 IT_T7_RSEG_NE6 T7PE STANDARD TALE O' T7_RSEG_NE6@
6A_T7_RSEG_NE6 T7PE T7_RSEG_NE6.
I' IT_R1P, IS NOT INITIAL.
SELECT ELNR G8A3R EELN 6RTR
'ROM RSEG
INTO TALE IT_T7_RSEG_NE6
'OR ALL ENTRIES IN IT_R1P
63ERE ELNR E IT_R1P-ELNR
AND G8A3R E IT_R1P-G8A3R.
ENDI'.
** D OF DI$I (DI$M4)
SORT4 IT_R1P +& ELNR@
IT_T7_RSEG_NE6 +& ELNR.
LOOP AT it_r+5 INTO w)_r+5.
MO9E-CORRESPONDING w)_r+5 TO w)_v+%e"5.
-
8/20/2019 Task Text Doc
37/55
MO9E w)_r+5-w)er% TO w)_v+%e"5-%w)er.
CLEAR4 w)_v+%e"5-)*%+5@
w)_v+%e"5-wr+tr@
w)_v+%e"5-#m+tr@
w_wr+tr@
(v_e+e(n.
** >KI OF COMMTIK >L DI$I (DI$M4)
* 8ACT eel"
* 6rtr
* ITO (lv'eel" 6'6rtr)
* FROM rse%
* =R el"r G 6a'vse%-el"r
* 2D %5ar G 6a'vse%-%5ar
** D OF COMMTIK >L DI$I (DI$M4)
**>e%i" o! I"sertio" o! Dipi" (DI$M4)
READ TALE IT_T7_RSEG_NE6 INTO 6A_T7_RSEG_NE6 6IT3 1E7 ELNR $ 6A_9SEG1-ELNR
G8A3R $ 6A_9SEG1-G8A3R
INAR7 SEARC3.
** "? o! I"sertio" y Dipi"
ADD 6A_T7_RSEG_NE6-wr+tr TO w)_v+%e"5-wr+tr.
* D8ACT E Comme"te? y Dipi"
MO9E w)_v+%e"5-wr+tr TO w)_v+%e"5-#m+tr.
w)_v+%e"5-e+e(n $ 6A_T7_RSEG_NE6-e+e(n.
APPEND w)_v+%e"5 TO it_v+%e"5.
CLEAR 6A_T7_RSEG_NE6.
ENDLOOP.
'REE it_r+5.
* a??e? #o?e to #olle#t MM i"voi#es as 6ell SORT it_v+%e"5.
DELETE it_v+%e"5 63ERE +()rt E /1R/ AND +%c( NE /:2/.
DELETE it_v+%e"5 63ERE +()rt E /72/ AND +%c( NE /:2/.
CLEAR4 w)_(i%t)@
-
8/20/2019 Task Text Doc
38/55
(t_tot)(@
(w_tot)(.
** >e%i" O! Dipi" (DI$M4)
T7PES4 EGIN O' T7_9SEG1_NE6_ONE@
LI'NR T7PE LI'NR@
NAME2 T7PE NAME2_GP@
END O' T7_9SEG1_NE6_ONE.
DATA4 IT_T7_9SEG1_NE6_ONE T7PE STANDARD TALE O' T7_9SEG1_NE6_ONE@
6A_T7_9SEG1_NE6_ONE T7PE T7_9SEG1_NE6_ONE.
I it_v+%e"5, IS NOT INITIAL.
SELECT LI'NR NAME2
'ROM L'A2
INTO TALE IT_T7_9SEG1_NE6_ONE
'OR ALL ENTRIES IN IT_9SEG1
63ERE LI'NR E IT_9SEG1-LI'NR.
ENDI'.
SORT IT_T7_9SEG1_NE6_ONE 7 LI'NR.
** "? O! Dipi"
LOOP AT it_v+%e"5 INTO w)_v+%e"5.
*-----$repare te 8m o! amo"t to e ?isplaye? a%ai"st ea# ?o#me"t
ON C3ANGE O' w)_v+%e"5-+e(nr
OR w)_v+%e"5-+*5r%
OR w)_v+%e"5-")r.
(w_tot)(-#m+tr $ (v_#m+tr.
I' NOT (w_tot)(-+e(nr IS INITIAL.
APPEND (w_tot)( TO (t_tot)(.
ENDI'.
CLEAR (v_#m+tr.
ENDON.
I' w)_v+%e"5-%5z" E /S/.
-
8/20/2019 Task Text Doc
39/55
(v_#m+tr $ (v_#m+tr w)_v+%e"5-#m+tr.
ENDI'.
MO9E-CORRESPONDING w)_v+%e"5 TO w)_(i%t).
6RITE4 w)_v+%e"5-#m+tr TO w)_(i%t)-#m+tr CURRENC7 w)_v+%e"5-%w)er.
CLEAR (w_tot)(.
(w_tot)(-+e(nr $ w)_v+%e"5-+e(nr.
(w_tot)(-+*5r% $ w)_v+%e"5-+*5r%.
(w_tot)(-")r $ w)_v+%e"5-")r.
(w_tot)(-#m+tr $ (v_#m+tr.
I' w)_v+%e"5-+()rt E /A/.
6RITE4 (v_#m+tr TO w)_(i%t)-#m+tr CURRENC7 w)_v+%e"5-%w)er.
ENDI'.
w)_(i%t)-zz+#t $ w)_v+%e"5-z+#t.
C3EC1 w)_(i%t)-+(#)t IN %_i#)t*m.
C3EC1 w)_(i%t)-c*#t IN %_c*#)t.
* a??e? #o?e to #e# i"voi#e amo"ts
I' %_wr+tr-(ow NE 0.
C3EC1 w)_v+%e"5-wr+tr GE %_wr+tr-(ow.
ENDI'.
I' %_wr+tr-i" NE 0.
C3EC1 w)_v+%e"5-wr+tr LE %_wr+tr-i".
ENDI'.
I' %_#m+tr-(ow NE 0.
C3EC1 w)_v+%e"5-#m+tr GE %_#m+tr-(ow.
ENDI'.
I' %_#m+tr-i" NE 0.
C3EC1 w)_v+%e"5-#m+tr LE %_#m+tr-i".
ENDI'.
* %et ve"?or "ames
-
8/20/2019 Task Text Doc
40/55
* 8ACT 8IKA "ame+
* FROM l!a+
* ITO 6a'lista-"ame+
* =R li!"r 6a'vse%-li!"r EComme"te? y Dipi"
** >e%i" o! I"sertio" y DI$I
READ TALE IT_T7_9SEG1_NE6_ONE INTO 6A_T7_9SEG1_NE6_ONE
6IT3 1E7 LI'NR $ 6A_9SEG1-LI'NR
INAR7 SEARC3.
** "? O! I"ertio" y Dipi"
* #al#late payme"t ?e ?ate
PER'ORM )&m_#*e_#)te USING w)_(i%t)-zz+#t
w)_(i%t)-z+#2t
w)_(i%t)-z+#t
w)_(i%t)-z+#:t
(v_+#t.
w)_(i%t)-zz+#t $ (v_+#t.
* #al#late payme"t ?e ?ate
C3EC1 w)_(i%t)-zz+#t IN %_#)t*m.
(w_5e&-+*5r% $ w)_v+%e"5-+*5r%.
(w_5e&-+e(nr $ w)_v+%e"5-+e(nr.
(w_5e&-")r $ w)_v+%e"5-")r.
(v_o+5e& $ (w_5e&.
* #o#o?e !or MM is #leare? - le!t5st
I' w)_v+%e"5-)*%+5 IS INITIAL.
S3I'T (v_o+5e& LE'T 7 PLACES.
(v_o+ect $ /US0B2/.
w)_(i%t)-inv_t&e $ /MM/.
ELSE.
(v_o+ect $ /'IPP/.
w)_(i%t)-inv_t&e $ /'I/.
ENDI'.
CLEAR4 item(i%t.
RE'RES34 item(i%t.
CALL 'UNCTION /S6I_6OR1ITEMS_O'_O8ECT_GET/
EPORTING
o+t&e $ (v_o+ect
o+5e& $ (v_o+5e&
TALES
-
8/20/2019 Task Text Doc
41/55
item(i%t $ item(i%t2.
CALL 'UNCTION /S6I_6OR1ITEMS_O'_O8ECT_GET/
EPORTING
o+t&e $ /!'IPP/
o+5e& $ (v_o+5e&
TALES
item(i%t $ item(i%t.
LOOP AT item(i%t INTO "%_item(i%t
63ERE wi_te?t $ (c_te?t.
CALL 'UNCTION /SAP_6API_READ_CONTAINER/
EPORTING
wor5item_i# $ "%_item(i%t-wi_i#
IMPORTING
ret*rn_co#e $ (v_retco#e
TALES
%im(e_cont)iner $ wi_cont_t)+.
READ TALE wi_cont_t)+ 6IT3 1E7 e(ement $ /'IPP_ID_ORIG/ .
I' %&-%*+rc $ 0.
i_i#_o(# $ wi_cont_t)+-v)(*e.
ELSE.
READ TALE wi_cont_t)+ 6IT3 1E7 e(ement $ /'IPP_ID_OLD/.
I' %&-%*+rc $ 0.
i_i#_o(# $ wi_cont_t)+-v)(*e.
ENDI'.
READ TALE wi_cont_t)+ 6IT3 1E7 e(ement $ /_AD3OC_O8ECTS/.
I' %&-%*+rc $ 0.
i_i#_)rc $ wi_cont_t)+-v)(*e.
ENDI'.
ENDI'.
ENDLOOP.
CALL 'UNCTION /S6I_6OR1ITEMS_O'_O8ECT_GET/
EPORTING
o+t&e $ (v_o+ect
o+5e& $ i_i#_o(#-o+5e&
-
8/20/2019 Task Text Doc
42/55
TALES
item(i%t $ "t_item(i%t2.
CALL 'UNCTION /S6I_6OR1ITEMS_O'_O8ECT_GET/
EPORTING
o+t&e $ (v_o+ect
o+5e& $ i_i#_)rc-o+5e&
TALES
item(i%t $ "t_item(i%t.
APPEND LINES O' "t_item(i%t2 TO item(i%t.
APPEND LINES O' "t_item(i%t TO item(i%t.
APPEND LINES O' item(i%t2 TO item(i%t.
CLEAR4 i_i#_o(#@
i_i#_)rc@
"t_item(i%t,@
wi_cont_t)+,@
"t_item(i%t2,@
item(i%t2,.
SORT item(i%t,.
DELETE AD8ACENT DUPLICATES 'ROM item(i%t.
* i! ea?er 6oritem eist !or MM > I"voi#e remove te li"e item
* relate? 6oritems !rom te list
CLEAR4 (w_t)%5i(ter.
RE'RES34 (t_t)%5i(ter@ (t_wor5(i%t.
I' w)_(i%t)-inv_t&e $ /MM/.
(w_t)%5i(ter-wi_r_t)%5 $ /TS=000:0:/.
APPEND (w_t)%5i(ter TO (t_t)%5i(ter.
(w_t)%5i(ter-wi_r_t)%5 $ /TS=000::/.
APPEND (w_t)%5i(ter TO (t_t)%5i(ter.
* OCRF Release Fee?a# (w_t)%5i(ter-wi_r_t)%5 $ /TS=00002>/.
APPEND (w_t)%5i(ter TO (t_t)%5i(ter.
CALL 'UNCTION /SAP_6API_6OR1ITEMS_TO_O8ECT/
EPORTING
o+t&e $ (v_o+ect
o+5e& $ (v_o+5e&
-
8/20/2019 Task Text Doc
43/55
to_(eve(_item% $ //
TALES
t)%5_i(ter $ (t_t)%5i(ter
wor5(i%t $ (t_wor5(i%t.
I' NOT (t_wor5(i%t, IS INITIAL.
DELETE item(i%t 63ERE wi_r_t)%5 $ /TS=0000H/
OR wi_r_t)%5 $ /TS=0000=B/.
* Ce# i! te #rre"t ser o! 6oritem is $,'RMOT i! yes ?o"t so6 it
LOOP AT (t_wor5(i%t INTO (w_wor5(i%t.
CALL 'UNCTION /SAP_6API_6OR1ITEM_RECIPIENTS/
EPORTING
wor5item_i# $ (w_wor5(i%t-wi_i#
TALES
reciient% $ (t_receiient%.
* rea? tale lt're#eipie"ts i"?e + i"to ls're#eipie"t
LOOP AT (t_receiient% INTO (w_receiient.
I' (w_receiient-o+i# E /EP_REMOTE/.
DELETE item(i%t 63ERE wi_i# E (w_wor5(i%t-wi_i#.
ENDI'.
ENDLOOP.
CLEAR4 (w_receiient@
(t_receiient%.
RE'RES34 (t_receiient%.
ENDLOOP.
ENDI'.
ENDI'.
LOOP AT item(i%t 63ERE wi_t&e $ /6/
AND J wi_%t)t $ /READ7/
OR wi_%t)t $ /SELECTED/
OR wi_%t)t $ /STARTED/
OR wi_%t)t $ /COMMITTED/ K.
CLEAR4 (v_item_co*nt.
-
8/20/2019 Task Text Doc
44/55
* I! te sele#tio" to !ilter ot a"? o"ly so6 te sipme"t i"voi#es is
* #e#e? 6e sol? #e# i! te top-6or!lo6 is te sipme"t i"voi#e
* mismat# 6or!lo6
I' %_%inv $ // AND %_mminv $ //.
SELECT COUNTJK
'ROM %wwwie)#
INTO (v_item_co*nt
63ERE wi_i# $ item(i%t-wi_cc5wi
AND wi_t&e $ /'/
AND wi_r_t)%5 $ c_w%=00022>.
I' (v_item_co*nt $ 0.
CONTINUE.
ENDI'.
ENDI'.
CALL 'UNCTION /S66_6I_AGENTS_READ/
EPORTING
wi_i# $ item(i%t-wi_i#
TALES
)"ent% $ (t_)"ent%.
LOOP AT (t_)"ent% INTO (w_)"ent%.
* a?? also "ot sele#te? 6or item i"to total list (i! "ot sersele#tio" is ?e
!i"e?) I' (w_)"ent%-ot&e IS INITIAL
AND %_+n)me-(ow IS INITIAL
AND (v_o+ect NE /'IPP/.
w)_(i%t)-+n)me $ //.
w)_(i%t)-n)me_te?tc $ //.
w)_(i%t)-wi_i# $ item(i%t-wi_i#.
w)_(i%t)-wi_rte?t $ item(i%t-wi_rte?t.
APPEND w)_(i%t) TO it_(i%t).
CLEAR w)_(i%t).
ENDI'.
* a?? also "ot sele#te? 6or item i"to total list (i! "ot sersele#tio" is ?e
!i"e?)
I' (w_)"ent%-ot&e $ /S/.
-
8/20/2019 Task Text Doc
45/55
** Co"vert a%e"t !rom or%a"isatio"al to seri?
CALL 'UNCTION /!S6I_GET_USERS_O'_ORG_UNIT/
EPORTING
ot&e $ (w_)"ent%-ot&e
o+i# $ (w_)"ent%-o+i#
TALES
*%er_(i%t $ (t_*%er_(i%t
ECEPTIONS
not_o*n# $ 2
no_)ctive_(v)r $
OT3ERS $ :.
READ TALE (t_*%er_(i%t INTO (w_*%er_(i%t INDE 2.
(w_)"ent%-o+i# $ (w_*%er_(i%t-o+i#.
RE'RES3 (t_*%er_(i%t.
CLEAR (w_*%er_(i%t.
ENDI'.
C3EC1 (w_)"ent%-o+i# IN %_+n)me.
SELECT SINGLE +n)me
n)me_te?tc
INTO w)_*%rt)+
'ROM *%er_)##r
63ERE +n)me $ (w_)"ent%-o+i#.
6A_LISTA-NAME2 $ 6A_T7_9SEG1_NE6_ONE-NAME2. w)_(i%t)-+n)me $ w)_*%rt)+-+n)me.
w)_(i%t)-n)me_te?tc $ w)_*%rt)+-n)me_te?tc.
w)_(i%t)-wi_i# $ item(i%t-wi_i#.
w)_(i%t)-wi_rte?t $ item(i%t-wi_rte?t.
APPEND w)_(i%t) TO it_(i%t).
* D8ACT
ENDLOOP.
ENDLOOP.
CLEAR w)_(i%t).
ENDLOOP.
APPEND (w_tot)( TO (t_tot)(.
-
8/20/2019 Task Text Doc
46/55
* !ree i"ter"al tale a"? ?elete ?pli#ates
'REE it_v+%e"5.
SORT it_(i%t),.
DELETE AD8ACENT DUPLICATES 'ROM it_(i%t),
COMPARING +*5r%
+e(nr
")r
(inr
n)me2
+()rt
?+(nr
wi_i#
+n)me.
*Do "ot ?isplay 6oritems 6it $,'RMOT as a%e"t
DELETE it_(i%t), 63ERE +n)me E /EP_REMOTE/.
LOOP AT it_(i%t) INTO w)_(i%t)
63ERE +()rt E /A/.
(v_t)+i? $ %&-t)+i?.
I' NOT (t_tot)(, IS INITIAL.
READ TALE (t_tot)( INTO (w_tot)(
6IT3 1E7 +*5r% $ w)_(i%t)-+*5r% +e(nr $ w)_(i%t)-+e(nr
")r $ w)_(i%t)-")r.
I' %&-%*+rc E 0.
6RITE4 (w_tot)(-#m+tr TO w)_(i%t)-#m+tr CURRENC7 w)_v+%e"5-%w)er.
MODI'7 it_(i%t) 'ROM w)_(i%t) INDE (v_t)+i?.
ENDI'.
ELSE.
6RITE4 (v_#m+tr TO w)_(i%t)-#m+tr CURRENC7 w)_v+%e"5-%w)er.
MODI'7 it_(i%t) 'ROM w)_(i%t) INDE (v_t)+i?.
ENDI'.
-
8/20/2019 Task Text Doc
47/55
ENDLOOP.
I' %_error $ //.
CLEAR4 w)_(i%t).
SELECT wi_i#
wi_te?t
'ROM %wwwie)#
INTO (w_%wwie)#
63ERE wi_t&e $ /6/
AND J wi_%t)t $ /READ7/
OR wi_%t)t $ /SELECTED/
OR wi_%t)t $ /STARTED/
OR wi_%t)t $ /COMMITTED/ K
AND J wi_r_t)%5 $ /TS=2H0000/
OR wi_r_t)%5 $ /TS=2H000/
OR wi_r_t)%5 $ /TS=2H000:/
OR wi_r_t)%5 $ /TS=2H000/
OR wi_r_t)%5 $ /TS=2H0022H/
OR wi_r_t)%5 $ /TS=2H000>B/
OR wi_r_t)%5 $ /TS=2H0020/
OR wi_r_t)%5 $ /TS=2H0020>/
OR wi_r_t)%5 $ /TS=2H0020/
OR wi_r_t)%5 $ /TS=2H00200/
OR wi_r_t)%5 $ /TS=2H000==/
OR wi_r_t)%5 $ /TS=2H0020/
OR wi_r_t)%5 $ /TS=000=0/
OR wi_r_t)%5 $ /TS0000:/
OR wi_r_t)%5 $ /TS=000:0:/ OR wi_r_t)%5 $ /TS=000::/
OR wi_r_t)%5 $ /TS=00002>/
OR wi_r_t)%5 $ /TS=20002H/
OR wi_r_t)%5 $ /TS=20002/
OR wi_r_t)%5 $ /TS=0000/
OR wi_r_t)%5 $ /TS=20000/ K.
CALL 'UNCTION /S66_6I_AGENTS_READ/
EPORTING
wi_i# $ (w_%wwie)#-wi_i#
TALES
)"ent% $ (t_)"ent%.
LOOP AT (t_)"ent% INTO (w_)"ent%.
I' (w_)"ent%-ot&e $ /S/.
** Co"vert a%e"t !rom or%a"isatio"al to seri?
CALL 'UNCTION /!S6I_GET_USERS_O'_ORG_UNIT/
-
8/20/2019 Task Text Doc
48/55
EPORTING
ot&e $ (w_)"ent%-ot&e
o+i# $ (w_)"ent%-o+i#
TALES
*%er_(i%t $ (t_*%er_(i%t
ECEPTIONS
not_o*n# $ 2
no_)ctive_(v)r $
OT3ERS $ :.
READ TALE (t_*%er_(i%t INTO (w_*%er_(i%t INDE 2.
(w_)"ent%-o+i# $ (w_*%er_(i%t-o+i#.
RE'RES3 (t_*%er_(i%t.
CLEAR (t_*%er_(i%t.
ENDI'.
C3EC1 (w_)"ent%-o+i# IN %_+n)me.
SELECT +n)me
n)me_te?tc
INTO w)_*%rt)+
'ROM *%er_)##r
63ERE +n)me $ (w_)"ent%-o+i#.
w)_(i%t)-+n)me $ w)_*%rt)+-+n)me.
w)_(i%t)-n)me_te?tc $ w)_*%rt)+-n)me_te?tc.
w)_(i%t)-wi_i# $ (w_%wwie)#-wi_i#. w)_(i%t)-wi_i((B0 $ (w_%wwie)#-wi_te?t.
APPEND w)_(i%t) TO it_(i%t).
CLEAR w)_(i%t).
ENDSELECT.
ENDLOOP.
ENDSELECT.
ENDI'.
SORT it_(i%t) 7 wi_i#.
DELETE AD8ACENT DUPLICATES 'ROM it_(i%t) COMPARING wi_i#.
ENDI'.
-
8/20/2019 Task Text Doc
49/55
END'ORM. E 8ACT
*&---------------------------------------------------------------------*
* #al#late payme"t ?e ?ate
*&---------------------------------------------------------------------*
*& Form $2LM'D4'D2T
*&---------------------------------------------------------------------*
'ORM )&m_#*e_#)te USING i_+#t
i_+#t2
i_+#t
i_+#t:
o_+#t.
o_+#t $ i_+#t.
I' NOT o_+#t IS INITIAL AND NOT i_+#t: IS INITIAL.
o_+#t $ o_+#t i_+#t:.
ELSE.
I' NOT o_+#t IS INITIAL AND NOT i_+#t IS INITIAL.
o_+#t $ o_+#t i_+#t.
ELSE.
I' NOT o_+#t IS INITIAL AND NOT i_+#t2 IS INITIAL.
o_+#t $ o_+#t i_+#t2.
ENDI'.
ENDI'.
ENDI'.
END'ORM. E $2LM'D4'D2T
*----------------------------------------------------------------------*
* FORM AOC2A'C4RR
*----------------------------------------------------------------------** Co"vert to lo#al #rre"#y
*----------------------------------------------------------------------*
'ORM (oc)(_c*rr USING (#_+(#)t
(#_w)er%
(#_5*r%
(#_(oc*rr
C3ANGING (#_r"n)mnt
-
8/20/2019 Task Text Doc
50/55
(#_(oc)mnt.
* #o"vert !orei%" amo"t to lo#al #rre"#y
CLEAR (#_(oc)mnt.
CALL 'UNCTION /CON9ERT_TO_LOCAL_CURRENC7/
EPORTING
c(ient $ %&-m)n#t
#)te $ (#_+(#)t
orei"n_)mo*nt $ (#_r"n)mnt
orei"n_c*rrenc& $ (#_w)er%
(oc)(_c*rrenc& $ (#_(oc*rr
r)te $ (#_5*r%
t&e_o_r)te $ /M/
IMPORTING
(oc)(_)mo*nt $ (#_(oc)mnt
ECEPTIONS
no_r)te_o*n# $ 2
over(ow $
no_)ctor%_o*n# $ :
no_%re)#_o*n# $
#erive#__time% $ >
OT3ERS $ H.
END'ORM. Elo#al'#rr
**************************************************************************
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
*&---------------------------------------------------------------------*
* $ro%ram ame: Z'OCR'IVOIC'I'MOITOR'TO$ *
* Title : OCR I"voi#e or Item Mo"itori"% Report TO$ i"#l?e *
* Create Date : ,P0.,0+3 *
* Re/est : RI-$M++0+3+.1 *
* 2tor : DI$M4- Dipi" M"5al (Mo?i!ie?) ** Des#riptio" : or Item mo"itori"% report !or OCR 6or!lo6s *
*&---------------------------------------------------------------------*
* alv ?ata
T7PE-POOLS4 %(i%.
******************************
-
8/20/2019 Task Text Doc
51/55
* I"#l?es
INCLUDE ;icon
-
8/20/2019 Task Text Doc
52/55
!D2T T7PE D!D2T@
REC3 T7PE REC3@
SAPRL T7PE SAPRL@
LOGS7S T7PE LOGS7S@
I9T7P T7PE I9T7P@
RSTAT T7PE RSTAT@
!'DT T7PE D!'DT@
NAME2 T7PE NAME2_GP@
END O' T7_R1P.
T7PES4 EGIN O' T7_9SEGS@
ELNR T7PE ELNR_D@
G8A3R T7PE G8A3R@
U1RS T7PE U1RS@
U!EI T7PE U!EI@
DMTR T7PE DMTR@
!'DT T7PE D!'DT@
LART T7PE LART@
CPUDT T7PE CPUDT@
LNR T7PE LNR2@
PR'G T7PE PR'G@
END O' T7_9SEGS.
T7PES4 EGIN O' t&_v+%e"5@
AUS1 T7PE AUS1@
ELNR T7PE ELNR_D@
G8A3R T7PE G8A3R@
U1RS T7PE U1RS@ U!EI T7PE U!EI@
SC3L T7PE SC3L@
S31!G T7PE S31!G@
DMTR T7PE DMTR@
6RTR T7PE 6RTR@
SGTT T7PE SGTT@
LI'NR T7PE LI'NR@
!'DT T7PE D!'DT@
S6AER T7PE 6AERS@
LART T7PE LART@
LNR T7PE LNR2@
PR'G T7PE PR'G.** D OF DI$I(DI$M4)
* ICA4D 8TR4CT4R v'vse%
T7PES4 e+e(n LI1E r%e"-e+e(n@
wi_i# T7PE %wwwie)#-wi_i#@
END O' t&_v+%e"5.
-
8/20/2019 Task Text Doc
53/55
**>e%i" o! Re"
T7PES 4 EGIN O' "t&_+()rt@
%i"nJ2K T7PE c@
otionJK T7PE c@
(owJK T7PE c@
i"JK T7PE c@
END O' "t&_+()rt.
#)t) 4 "t_+()rt T7PE STANDARD TALE O' "t&_+()rt@
w)_+()rt T7PE "t&_+()rt.
**"? o! Re"
**&& OR 2R2 DCA2R2TIO8 &&**
DATA4 w)_+*5r% T7PE t&_+*5r%@
w)_(i%t) T7PE t&_(i%t)@
w)_(i%t)_o(# T7PE t&_(i%t)@
w)_*%rt)+ T7PE t&_*%rt)+@
w)_v+%e"5 T7PE t&_v+%e"5@
w)_r+5 T7PE T7_R1P.
**&& ITR2A T2>A DCA2R2TIO8 &&**
DATA4 it_+*5r% T7PE STANDARD TALE O' t&_+*5r%@
it_(i%t) T7PE STANDARD TALE O' t&_(i%t)@
it_(i%t)_o(# T7PE STANDARD TALE O' t&_(i%t)@
it_v+%e"5 T7PE STANDARD TALE O' t&_v+%e"5@
it_r+5 T7PE STANDARD TALE O' T7_R1P.
** && V2RI2>A DCA2R2TIO8 &&**
** && CO8T2T8 DCA2R2TIO8 &&**CONSTANTS4 c_2 T7PE +%c( 9ALUE /2/@
c_:2 T7PE +%c( 9ALUE /:2/@
c_)+ T7PE +()rt 9ALUE /A/@
c_invoice T7PE %wc_e(em 9ALUE /IN9OICE/@
c__wi_o+ect_i# T7PE %wc_e(em 9ALUE /_6I_O8ECT_ID/@
c__AD3OC_O8ECTS T7PE %wc_e(em 9ALUE /_AD3OC_O8ECTS/@
c_ii# T7PE %wc_e(em 9ALUE /'IPPID/@
c_re)#& T7PE %ww_wi%t)t 9ALUE /READ7/@
c_%e(ecte# T7PE %ww_wi%t)t 9ALUE /SELECTED/@
c_%t)rte# T7PE %ww_wi%t)t 9ALUE /STARTED/@ c_committe# T7PE %ww_wi%t)t 9ALUE /COMMITTED/@
c_6S=0000= T7PE %ww_t)%5 9ALUE /6S=0000=/@ EZOCR FI s 6o
r!lo6 !or FI approval
c_TS=000:0 T7PE %ww_t)%5 9ALUE /TS=000:0/@ EZOCR FI Ma"a%e
r I"voi#e 2toriBatio"
c_6S=00022> T7PE %ww_t)%5 9ALUE /6S=00022>/@ E8ipme"t I"v
F
-
8/20/2019 Task Text Doc
54/55
(c_te?tJ>0K T7PE c 9ALUE /Doc*ment P)r5in" Eric%%on/.
*&&&&&&&&&& M24 &&&&&&& D *******
DATA4 "%_()&o*t T7PE %(i%_()&o*t_)(v@
"_e?it_c)*%e#_+&_c)((er@
"%_e?it_c)*%e#_+&_*%er T7PE %(i%_e?it_+&_*%er@
"_rei# LI1E %&-rei#.
DATA4 "t_ie(#c)t T7PE %(i%_t_ie(#c)t_)(v@
%tr*ct_ie(#c)t T7PE %(i%_ie(#c)t_)(v.
*ECalla#
DATA4
"t_event% T7PE %(i%_t_event@
"t_(i%t_to_o_)"e T7PE %(i%_t_(i%te)#er@
"_%t)t*%_%et T7PE %(i%_ormn)me 9ALUE /P'_STATUS_SET/@
"_*%er_comm)n# T7PE %(i%_ormn)me 9ALUE /USER_COMMAND/@
"_to_o_)"e T7PE %(i%_ormn)me 9ALUE /TOP_O'_PAGE/.
*EVaria"ts
DATA4 "%_v)ri)nt LI1E #i%v)ri)nt@
"_%)ve.
TALES4
z#*e_(i%t_%tr*c2@
v+5@ EDo#me"t =ea?er !or Do#me"t $ari"%
v_v+%e"5@
*%er_)##r@ %wwwie)#. E=ea?er Tale !or all or Item Types
* "e6 str#t o! Z'AI8T2 to split FIMM-i"v - ROLC ,003-0MM82 8TP
-
8/20/2019 Task Text Doc
55/55
SELECTION-SCREEN END O' LOC1 %e(2.
SELECTION-SCREEN EGIN O' LOC1 %e( 6IT3 'RAME TITLE te?t-0.
SELECT-OPTIONS4
%_#)t*m 'OR z#*e_(i%t_%tr*c2-zz+#t@
%_(inr 'OR v_v+%e"5-(inr@
%_?+(nr 'OR v_v+%e"5-?+(nr@
%_+n)me 'OR *%er_)##r-+n)me@
%_#m+tr 'OR v_v+%e"5-#m+tr@
%_i#)t*m 'OR v_v+%e"5-+(#)t@
%_c*#)t 'OR v_v+%e"5-c*#t@
%_wr+tr 'OR v_v+%e"5-wr+tr.
*$2R2MTR8: EM003
* 8'RROR+ 28 C=C>O EM003
* 8'RROR, 28 C=C>O EM003
SELECTION-SCREEN END O' LOC1 %e(.
* sele#tio" to list FI- a"?or MM-i"voi#es - ROLC ,003-0MM82 8TP