task text doc

Upload: narasimhareddy

Post on 07-Aug-2018

221 views

Category:

Documents


0 download

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  

  • 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