You are on page 1of 40

*----------------------------------------------------------------------*

* INCLUDE ZXRSAU01
*
*----------------------------------------------------------------------*
* Changes are done for ISBN13 - Sudha 02/03/2006
* Changed the selects in 2LIS_03_BF, Z_ON_HOLD_PO and ZMSEG data
* sources
* Request #RD1K923589 & Tracker # 109123
* Tracker # 109123 Changes are done for ISBN13 - Shyam 04/26/2006
* Commented field XMAINIDCODE if IDCODETYPE = 'Z001'.
*----------------------------------------------------------------------*
TABLES: vbak, vbap, vbrk, vbrp, vbfa, bseg, ekko, ekpo, mbew, vbpa,
bsis, mbewh, mseg,ekbe, BSAK, RBKP,COSP.
data: WKGBTR type WKGXXX,
GJAHR type GJAHR,
PERAB type CO_PERAB,
PLAN_AMT TYPE WKGXXX,
ACT_AMT TYPE WKGXXX,
FLAG TYPE C.
DATA: begin of itab_cosp occurs 0,
GJAHR type GJAHR,
WRTTP type CO_WRTTP,
KSTAR type KSTAR,
WKG001 TYPE
WKGXXX,
WKG002 TYPE
WKGXXX,
WKG003 TYPE
WKGXXX,
WKG004 TYPE
WKGXXX,
WKG005 TYPE
WKGXXX,
WKG006 TYPE
WKGXXX,
WKG007 TYPE
WKGXXX,
WKG008 TYPE
WKGXXX,
WKG009 TYPE
WKGXXX,
WKG010 TYPE
WKGXXX,
WKG011 TYPE
WKGXXX,
WKG012 TYPE
WKGXXX,
VERSN TYPE VERSN,
LEDNR TYPE LEDNR,
BEKNZ TYPE BEKNZ,
end of itab_cosp.
DATA: i_mc13vd0itm LIKE mc13vd0itm OCCURS 0 WITH HEADER LINE.
*data: I_MC13VD0ITM1 like MC13VD0ITM1 occurs 0 with header line.
data: I_ZOXRD10528 like ZOXRD10528 occurs 0 with header line.
DATA: myindex LIKE sy-tabix.
DATA: i_mc11v_0scl LIKE mc11v_0scl OCCURS 0 WITH HEADER LINE.
DATA: t_vbfa LIKE vbfa.
DATA: i_mc11va0itm LIKE mc11va0itm OCCURS 0 WITH HEADER LINE.
DATA: i_mc12vc0itm LIKE mc12vc0itm OCCURS 0 WITH HEADER LINE.
DATA: I_ZOXRD10345 LIKE ZOXRD10345 OCCURS 0 WITH HEADER LINE.
DATA: I_ZOXRD10355 TYPE ZOXRD10355 OCCURS 0 WITH HEADER LINE.
DATA: itab_cosp1 TYPE ZOXRD10355 OCCURS 0 WITH HEADER LINE.
*DATA: ITAB_COSP1 TYPE ZOXRD10355 OCCURS 0 .
* Start of comment by vsumara on 12/14/2005 ***
DATA: i_dtfiap_3 LIKE dtfiap_3 OCCURS 0 WITH HEADER LINE.
DATA: i_dtfiap_3a LIKE dtfiap_3 OCCURS 0 WITH HEADER LINE.
DATA: i_zz_bsis LIKE zoxrd10470 OCCURS 0 WITH HEADER LINE.
DATA: i_figl4 LIKE DTFIGL_4 OCCURS 0 WITH HEADER LINE.
* Constant for Current profitability segment changed on 02/15/06
CONSTANTS : c_x LIKE ce4pso1_acct-aktbo VALUE 'X'.
* End of comment by vsumara on 12/14/2005 ***

DATA: i_zoxrd10307 LIKE zoxrd10307 OCCURS 0 WITH HEADER LINE.


DATA: i_zoxrd10308 LIKE zoxrd10308 OCCURS 0 WITH HEADER LINE.
DATA: i_zoxrd10300 LIKE zoxrd10300 OCCURS 0 WITH HEADER LINE.
DATA: i_zoxrd10304 LIKE zoxrd10304 OCCURS 0 WITH HEADER LINE.
DATA: i_mc03bf0 LIKE mc03bf0 OCCURS 0 WITH HEADER LINE.
DATA: i_zoxrd10326 LIKE zoxrd10326 OCCURS 0 WITH HEADER LINE.
DATA: i_mc02m_0scl LIKE mc02m_0scl OCCURS 0 WITH HEADER LINE.
DATA: i_zoxrd10328 LIKE zoxrd10328 OCCURS 0 WITH HEADER LINE.
DATA: i_zoxrd10340 LIKE zoxrd10340 OCCURS 0 WITH HEADER LINE.
** Table for View ZMSEG - on 2/18/2004
DATA: i_zoxrd10406 LIKE zoxrd10406 OCCURS 0 WITH HEADER LINE,
zmatnr LIKE mara-matnr.
** End of addition
DATA: i_zoxrd10426 LIKE zoxrd10426 OCCURS 0 WITH HEADER LINE.
DATA: i_zoxrd10425 LIKE zoxrd10425 OCCURS 0 WITH HEADER LINE.
DATA: a_zoxrd10425 LIKE zoxrd10425 OCCURS 0 WITH HEADER LINE.
DATA: i_tmca LIKE tmca OCCURS 0 WITH HEADER LINE.
DATA: indx LIKE sy-tabix.
** Begin Tracker 6717 Hemanth Krishnan **
DATA: i_dtfiar_3 LIKE dtfiar_3 OCCURS 0 WITH HEADER LINE,
zusnam LIKE bkpf-usnam,
zyear LIKE bkpf-gjahr.
TABLES: bkpf.
** End Tracker 6717 Hemanth Krishnan **
**Begin Tracker 138754,138984 Sudheer **
DATA: i_mc11va0hdr LIKE mc11va0hdr OCCURS 0 WITH HEADER LINE,
Name like thead-Tdname,
mystring1(200) TYPE C,
mystring2(200) TYPE C,
mystring3(200) TYPE C,
mystring4(200) TYPE C.
DATA: BEGIN OF T_LINES OCCURS 0.
INCLUDE STRUCTURE TLINE.
DATA: END OF T_LINES.
** End Tracker 138754, 138984 **
*** Begin TR#39581 VKRISHE ***
TABLES: konv.
DATA: zknumv LIKE vbrk-knumv,
zbukrs LIKE vbrk-bukrs.
*** End TR#39581 VKRISHE ***
*** Begin TR#101334 VKASHAN ***
TABLES: rseg.
DATA: l_ebeln LIKE rseg-ebeln,
l_ebelp LIKE rseg-ebelp,
l_matnr LIKE rseg-matnr,
l_projk LIKE bsis-projk,
l_objnr LIKE prps-objnr,
l_kostl LIKE bsik-kostl,
l_prctr LIKE bsik-prctr,
v_prctr like bseg-prctr,
v_hkont like bseg-hkont,
v_bvorg like bkpf-bvorg,
v_gsber like bseg-gsber,
v_bukrs like bseg-bukrs,

v_bukrs1 like bseg-bukrs,


v_gsber1 like bseg-gsber,
v_prctr1 like bseg-prctr,
v_hkont1 like bseg-hkont,
v_kostl1 like bseg-hkont,
v_awkey like bkpf-awkey,
v_awkey1 like bkpf-awkey,
v_belnr1 like bkpf-belnr,
v_belnr like bkpf-belnr.
*** End TR#101334 VKASHAN ***
DATA: p_control TYPE vprsv,
mov_avg TYPE verpr,
std_price TYPE stprs,
G_UNTTO LIKE EKPO-UNTTO,
X_QTY TYPE P DECIMALS 2,
qty_per TYPE peinh.
TYPES: BEGIN OF t_apoterr,
kunnr TYPE kunnr,
kvgr5 TYPE kvgr5,
bzirk TYPE bzirk,
kdgrp TYPE kdgrp,
END OF t_apoterr.
DATA:
DATA:
DATA:
DATA:
DATA:
DATA:

" Customer
" Customer Group5
" Sales district
" Customer Group

s_apoterr TYPE t_apoterr.


eg_parnr TYPE nach-parnr.
lv_shipto TYPE kunnr.
txt TYPE sgtxt.
isbn TYPE matnr.
po TYPE bstnr.

DATA: BEGIN OF condition OCCURS 10,


kschl TYPE kscha, "Condition type
kwert TYPE kwert,
END OF condition.
DATA: BEGIN of ITAB_BSEG occurs 0,
prctr LIKE bseg-prctr,
KOART LIKE bseg-koart,
* GL Account enhancement.
hkont like bseg-hkont,
END OF ITAB_BSEG.
DATA: BEGIN of IT_BSEG occurs 0,
BELNR like bseg-belnr,
BUZEI like bseg-buzei,
BUKRS like bseg-bukrs,
KOART LIKE bseg-koart,
HKONT like bseg-hkont,
SHKZG like bseg-shkzg,
DMBTR like bseg-dmbtr,
WRBTR like bseg-wrbtr,
PRCTR like bseg-prctr,
KOSTL like bseg-kostl,
GSBER like bseg-gsber,
*
DMSHB like bseg-dmbtr,
*
WRSOL like bseg-wrbtr,
*
WRHAB like bseg-wrbtr,
*
WRSHB like bseg-wrbtr,
END OF IT_BSEG.

DATA: run TYPE zrun,


makeready TYPE zmakeready,
cartoning TYPE zcartoning,
bind_misc TYPE zbind_misc.
DATA: month LIKE t009b-poper,
year LIKE t009b-bdatj.
DATA: v_length TYPE i,
v_txt1(40).
DATA: BEGIN OF ITAB_BKPF OCCURS 0,
zbudat LIKE bkpf-budat,
zblart LIKE bkpf-blart,
END OF ITAB_BKPF.
DATA: BEGIN OF ITAB_ZKONV occurs 0,
zsakn1 LIKE konv-sakn1,
zsakn2 LIKE konv-sakn2,
zkschl LIKE konv-kschl,
zkinak LIKE konv-kinak,
END OF ITAB_ZKONV.
DATA: BEGIN OF itab_zknvv OCCURS 0,
zkunnr LIKE knvv-kunnr,
zkvgr5 LIKE knvv-kvgr5,
zbzirk LIKE knvv-bzirk,
zkdgrp LIKE knvv-kdgrp,
END OF itab_zknvv.
* {Start Tr#101329
DATA: it_zoxrd10164 LIKE zoxrd10164 OCCURS 0 WITH HEADER LINE,
l_partner(12).
* Tr#101329 End}
CASE i_datasource.
* Inserted by Balaji 07/07/03.
* Reading Deletion indicators for PO line items.
WHEN '2LIS_02_SCL'.
REFRESH i_mc02m_0scl.
i_mc02m_0scl[] = c_t_data[].
IF i_mc02m_0scl[] IS INITIAL.
EXIT.
ENDIF.
LOOP AT i_mc02m_0scl.
SELECT SINGLE loekz elikz
INTO (i_mc02m_0scl-loekz, i_mc02m_0scl-elikz)
FROM ekpo
WHERE ebeln = i_mc02m_0scl-ebeln
AND ebelp = i_mc02m_0scl-ebelp.
SELECT SINGLE ernam INTO i_mc02m_0scl-ernam FROM ekko
WHERE ebeln = i_mc02m_0scl-ebeln.

* Condition type vales (make ready and run)


IF i_mc02m_0scl-loekz NE 'L'.
CLEAR: condition. REFRESH condition.
SELECT kschl kwert FROM konv INTO
(condition-kschl, condition-kwert)
WHERE knumv = i_mc02m_0scl-knumv AND
kposn = i_mc02m_0scl-ebelp AND
kschl IN ('PB00','ZVBA','ZVBB','ZVBD','ZVBE','ZVBF','ZVBG',
'ZVBH','ZVBI','ZVBW','ZVBX','ZVC1','ZVC2','ZVC3',
'ZVC4','ZVC5','ZVC6','ZVCA','ZVCB','ZVCC','ZVCF',
'ZVCG','ZVCH','ZVCI','ZVCJ','ZVCL','ZVCM','ZVCN',
'ZVCO','ZVCP','ZVCQ','ZVCR','ZVCS','ZVCT','ZVCW',
'ZVCX','ZVCY','ZVCZ','ZVIF','ZVIG','ZVIH','ZVII',
'ZVIJ','ZVIK','ZVIL','ZVIW','ZVIY','ZVIZ','ZVMF',
'ZVMQ','ZVMR','ZVRR','ZVTB','ZVTC','ZVTD','ZVTE',
'ZVTF','ZVTH','ZVTY','ZVTZ','ZZ00').
APPEND condition.
ENDSELECT.
CLEAR: run, makeready, cartoning, bind_misc.
LOOP AT condition.
CASE condition-kschl.
* Make Ready
WHEN 'ZVBD' OR 'ZVBW' OR 'ZVC1' OR 'ZVC3' OR 'ZVC5' OR 'ZVCB'
OR 'ZVCC' OR 'ZVCF' OR 'ZVCI' OR 'ZVCL' OR 'ZVCN' OR
'ZVCO' OR 'ZVCP' OR 'ZVCQ' OR 'ZVCS' OR 'ZVCW' OR 'ZVCY'
OR 'ZVIF' OR 'ZVIG' OR 'ZVIH' OR 'ZVII' OR 'ZVIJ' OR
'ZVIW' OR 'ZVIY' OR 'ZVMF' OR 'ZVMR' OR 'ZVTC' OR 'ZVTD'
OR 'ZVTE' OR 'ZVTH' OR 'ZVTY'.
makeready = makeready + condition-kwert.
* Run
WHEN 'PB00' OR 'ZVBA' OR 'ZVBE' OR 'ZVBX' OR 'ZVC2' OR 'ZVC4'
OR 'ZVC6' OR 'ZVCA' OR 'ZVCG' OR 'ZVCH' OR 'ZVCJ' OR
'ZVCM' OR 'ZVCR' OR 'ZVCT' OR 'ZVCX' OR 'ZVCZ' OR 'ZVIK'
OR 'ZVIL' OR 'ZVIZ' OR 'ZVMQ' OR 'ZVRR' OR 'ZVTB' OR
'ZVTF' OR 'ZVTZ' OR 'ZZ00'.
run = run + condition-kwert.
* Cartoning
WHEN 'ZVBB'.
cartoning = cartoning + condition-kwert.
* Bind Misc.
WHEN 'ZVBF' OR 'ZVBG' OR 'ZVBH' OR 'ZVBI'.
bind_misc = bind_misc + condition-kwert.
ENDCASE.
ENDLOOP.
i_mc02m_0scl-zmakeready = makeready.
i_mc02m_0scl-zrun = run.
i_mc02m_0scl-zcartoning = cartoning.
i_mc02m_0scl-zbind_misc = bind_misc.
ENDIF.
* IF SY-SUBRC = 0.
* I_MC02M_0SCL-LOEKZ = EKPO-LOEKZ.
* ENDIF.
MODIFY i_mc02m_0scl.
ENDLOOP.
c_t_data[] = i_mc02m_0scl[].

* Inserted by Deepika 4/14/02.


* Assigning Territory and Rep to a sales line item using VBPA and KNVP
WHEN '2LIS_11_VAITM'.
REFRESH i_mc11va0itm.
i_mc11va0itm[] = c_t_data[].
REFRESH c_t_data.
LOOP AT i_mc11va0itm.
myindex = sy-tabix.
SELECT SINGLE kunnr INTO i_mc11va0itm-zztert
FROM vbpa
WHERE vbeln = i_mc11va0itm-vbeln
AND posnr = i_mc11va0itm-posnr
AND parvw = 'ZT'.
SELECT SINGLE kunn2 INTO i_mc11va0itm-zzsrep
FROM knvp
WHERE kunnr = i_mc11va0itm-zztert
AND vkorg = i_mc11va0itm-vkorg
AND vtweg = i_mc11va0itm-vtweg
AND spart = i_mc11va0itm-spara
AND parvw = 'ZR'.
** -- Best Seller Enhancement __
*
SELECT ZZ_SELLIND INTO i_mc11va0itm-ZZ_SELLIND
*
FROM ZTSTORD
*
WHERE ZZVBELN = i_mc11va0itm-VBELN
*
AND ZZPOSNR = i_mc11va0itm-POSNR.
*
endselect.
MODIFY i_mc11va0itm INDEX myindex.
clear i_mc11va0itm.
ENDLOOP.
c_t_data[] = i_mc11va0itm[].
* Start of Billing Data Processing (EO 9/20/2002)
WHEN '2LIS_13_VDITM'.
DATA: customer TYPE knvp-kunnr,
customer_sh TYPE knvp-kunnr,
flag_sh,
flag_st,
flag_bt.
* Added by Deepika on 4/15/02
REFRESH i_mc13vd0itm.
i_mc13vd0itm[] = c_t_data[].
REFRESH c_t_data.
IF i_mc13vd0itm[] IS INITIAL.
EXIT.
ENDIF.
LOOP AT i_mc13vd0itm.
myindex = sy-tabix.
IF NOT i_mc13vd0itm-aubel IS INITIAL.
*
Set Sales Territory
SELECT SINGLE kunnr INTO i_mc13vd0itm-zztert
FROM vbpa
WHERE vbeln = i_mc13vd0itm-aubel
AND posnr = i_mc13vd0itm-aupos

AND parvw = 'ZT'.


ENDIF.
Set Sales Rep
SELECT SINGLE kunn2 INTO i_mc13vd0itm-zzsrep
FROM knvp
WHERE kunnr = i_mc13vd0itm-zztert
AND vkorg = i_mc13vd0itm-vkorg
AND vtweg = i_mc13vd0itm-vtweg
AND spart = i_mc13vd0itm-spara
AND parvw = 'ZR'.
i_mc13vd0itm-zzauart = 'NA'.
i_mc13vd0itm-zzbsark = 'NA'.

Changed 10/28/2002 by Charlotte to use VBAK instead of VBFA

Set Sales Document Type and Customer Order Type

Original Code

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

SELECT SINGLE * INTO VBFA


FROM VBFA
WHERE VBELN = I_MC13VD0ITM-VBELN
AND POSNN = I_MC13VD0ITM-POSNR.
IF SY-SUBRC = 0.
CASE VBFA-VBTYP_V.
WHEN 'L' OR 'K' OR 'C' OR 'G' OR 'E' OR 'I'.
SELECT SINGLE * INTO VBAK
FROM VBAK
WHERE VBELN = VBFA-VBELV.
IF SY-SUBRC = 0.
I_MC13VD0ITM-ZZAUART = VBAK-AUART.
I_MC13VD0ITM-ZZBSARK = VBAK-BSARK.
ENDIF.
WHEN 'J'.
SELECT SINGLE * INTO T_VBFA
FROM VBFA
WHERE VBELN = VBFA-VBELV
AND POSNN = VBFA-POSNV
AND VBTYP_V = 'R'.
IF SY-SUBRC = 0.
I_MC13VD0ITM-ZZAUART = 'NV'.
I_MC13VD0ITM-ZZBSARK = 'Z203'.
ENDIF.
ENDCASE.

*
ENDIF.
*
*
New Code 10/28/2002 added by Charlotte
* Commented by Maruthi to select two fields instead of single *
*
IF NOT i_mc13vd0itm-aubel IS INITIAL.
*
SELECT SINGLE * INTO vbak
*
FROM vbak
*
WHERE vbeln = i_mc13vd0itm-aubel.
*
IF sy-subrc = 0.
*
i_mc13vd0itm-zzauart = vbak-auart.
*
i_mc13vd0itm-zzbsark = vbak-bsark.

*
*

ENDIF.
ENDIF.
IF NOT i_mc13vd0itm-aubel IS INITIAL.
SELECT SINGLE AUART BSARK INTO (vbak-auart, vbak-bsark)
FROM vbak
WHERE vbeln = i_mc13vd0itm-aubel.
IF sy-subrc = 0.
i_mc13vd0itm-zzauart = vbak-auart.
i_mc13vd0itm-zzbsark = vbak-bsark.
ENDIF.
ENDIF.

* End of insert by Maruthi. Date 10/28/2008


*
*

*
*
*

ADDED BY PAUL C. 8/5/02 to populate the APO Territory Field


CLEAR: s_apoterr, customer, customer_sh, flag_sh, flag_st, flag_bt
.
DETERMINE IF KEY ACCOUNT. CHECK CUSTGRP5 <> ' ' for SOLD-TO
(KUNAG) IF NOT KEY ACCT, THEN CHECK SHIP-TO (PKUNWE), IF NOT
KEY ACCT THEN CHECK BILL-TO (PKUNRE).

**
*
SELECT SINGLE kunnr kvgr5 bzirk kdgrp
*
FROM knvv INTO (s_apoterr-kunnr, s_apoterr-kvgr5,
*
s_apoterr-bzirk, s_apoterr-kdgrp)
*
WHERE kunnr = i_mc13vd0itm-pkunwe "SHIP-TO
*
AND vkorg = i_mc13vd0itm-vkorg
*
AND vtweg = i_mc13vd0itm-vtweg
*
AND spart = i_mc13vd0itm-spara.
*
IF sy-subrc = 0 AND s_apoterr-kvgr5 <> ' '.
*
flag_sh = 'X'.
*
ENDIF.
*
*
IF s_apoterr-kvgr5 = ' '.
*
SELECT SINGLE kunnr kvgr5 bzirk kdgrp
*
FROM knvv INTO (s_apoterr-kunnr, s_apoterr-kvgr5,
*
s_apoterr-bzirk, s_apoterr-kdgrp)
*
WHERE kunnr = i_mc13vd0itm-kunag
"SOLD-TO
*
AND vkorg = i_mc13vd0itm-vkorg
*
AND vtweg = i_mc13vd0itm-vtweg
*
AND spart = i_mc13vd0itm-spara.
*
IF sy-subrc = 0 AND s_apoterr-kvgr5 <> ' '.
*
flag_st = 'X'.
*
ENDIF.
*
*
ENDIF.
* Changed by Maruthi Sarnala (10/27/2008)
* Changing multiple lookups on knvv table.
Clear itab_zknvv.
Refresh itab_zknvv.
SELECT kunnr kvgr5 bzirk kdgrp INTO TABLE itab_zknvv
FROM knvv WHERE
( kunnr = i_mc13vd0itm-pkunwe OR
kunnr = i_mc13vd0itm-kunag ) AND
Vkorg = i_mc13vd0itm-vkorg AND
vtweg = i_mc13vd0itm-vtweg AND

spart = i_mc13vd0itm-spara.
READ TABLE itab_zknvv WITH KEY
zkunnr = i_mc13vd0itm-pkunwe.
IF SY-SUBRC = 0.
s_apoterr-kunnr = itab_zknvv-zkunnr.
s_apoterr-kvgr5 = itab_zknvv-zkvgr5.
s_apoterr-bzirk = itab_zknvv-zbzirk.
s_apoterr-kdgrp = itab_zknvv-zkdgrp.
IF itab_zknvv-zkvgr5 <> ' '.
flag_sh = 'X'.
ENDIF.
ENDIF.
IF itab_zknvv-zkvgr5 = ' '.
READ TABLE itab_zknvv WITH KEY
zkunnr = i_mc13vd0itm-kunag.
IF sy-subrc = 0.
s_apoterr-kunnr = itab_zknvv-zkunnr.
s_apoterr-kvgr5 = itab_zknvv-zkvgr5.
s_apoterr-bzirk = itab_zknvv-zbzirk.
s_apoterr-kdgrp = itab_zknvv-zkdgrp.
IF itab_zknvv-zkvgr5 <> ' '.
flag_st = 'X'.
ENDIF.
ENDIF.
ENDIF.
* Changes end by Maruthi sarnala (10/27/2008)
*************** Remove bill to from key cust. determ. (EO 9/20/2002)****
*
*
*
*
*
*
*
*
*
*
*
*

IF S_APOTERR-KVGR5 = ' '.


SELECT SINGLE KUNNR KVGR5 BZIRK KDGRP
FROM KNVV INTO (S_APOTERR-KUNNR, S_APOTERR-KVGR5,
S_APOTERR-BZIRK, S_APOTERR-KDGRP)
WHERE KUNNR = I_MC13VD0ITM-PKUNRE " Billto
AND VKORG = I_MC13VD0ITM-VKORG
AND VTWEG = I_MC13VD0ITM-VTWEG
AND SPART = I_MC13VD0ITM-SPARA.
if sy-subrc = 0 and S_APOTERR-KVGR5 <> ' '.
flag_bt = 'X'.
endif.

*
ENDIF.
************************************************************************
IF NOT flag_sh IS INITIAL.
MOVE i_mc13vd0itm-kunag TO customer. "SOLD TO
MOVE i_mc13vd0itm-pkunwe TO customer_sh. "SHIPTO
ELSEIF NOT flag_st IS INITIAL.
MOVE i_mc13vd0itm-kunag TO customer. "SOLDTO
MOVE i_mc13vd0itm-kunag TO customer_sh.
*
*

elseif not flag_bt is initial.


move I_MC13VD0ITM-PKUNRE to customer. "BILLTO
ENDIF.

IF s_apoterr-kvgr5 <> ' '.


IF KEY ACCOUNT, THEN CALL FUNCTION TO DETERMINE THE PRODTERR
CLEAR: eg_parnr.

*Inserted by Sudheer on 02/05/2009


i_mc13vd0itm-zzapotert = i_mc13vd0itm-zztert.
*commented by Sudheer on 02/05/2009
*
CALL FUNCTION 'Z_ZSALES_REP_DETERMIN_RFC'
*
EXPORTING
*
ig_vkorg =
*
i_mc13vd0itm-vkorg " Salesorg
*
ig_kunnr
= customer " Customer#
*
ig_kunwe =
*
customer_sh "Shipto Cust#
*
ig_prodh =
*
i_mc13vd0itm-prodh " Prodhier
*
ig_bzirk =
*
s_apoterr-bzirk " District
*
ig_auart
= 'OR' " Order Type
*
ig_kdgrp =
*
s_apoterr-kdgrp " Cust.Group
*
ig_bypass_buffer
= 'X' "Bypassing buffer
*
IMPORTING
*
eg_parnr
= eg_parnr " Territory
*
EXCEPTIONS
*
condition_record_not_found = 1
*
OTHERS
= 2.
*
IF sy-subrc = 0.
*
i_mc13vd0itm-zzapotert = eg_parnr.
*
ELSE.
* IF FUNCTION UNSUCCESSFUL, DEFAULT TO FAILED (EO 9/20/2002)********
*
i_mc13vd0itm-zzapotert = 'FAILED'.
*
ENDIF.
ELSE.
* IF NOT KEY ACCOUNT DEFAULT TO OTHER (EO 9/20/2002)****************
i_mc13vd0itm-zzapotert = 'OTHER'.
ENDIF.

*** Begin TR#39581 VKRISHE ***


* Get posting status ***
SELECT SINGLE rfbsk knumv bukrs
INTO (i_mc13vd0itm-zzrfbsk, zknumv, zbukrs)
FROM vbrk
WHERE vbeln = i_mc13vd0itm-vbeln.
IF sy-subrc = 0. " and I_MC13VD0ITM-ZZRFBSK = 'C'.
* Get posting date ***
* Changed by Maruthi sarnala:
* Changed Select single to read for performance.
*
SELECT SINGLE budat INTO (i_mc13vd0itm-zzbudat)
*
FROM bkpf
*
WHERE bukrs = zbukrs AND
*
belnr = i_mc13vd0itm-vbeln.
*
AND blart = 'RV'.
*year = FKDAT
clear ITAB_BKPF.
REFRESH ITAB_BKPF.
SELECT budat blart INTO TABLE ITAB_BKPF
FROM BKPF
WHERE bukrs = zbukrs AND

belnr = i_mc13vd0itm-vbeln AND


gjahr = i_mc13vd0itm-FKDAT(4).
*
READ TABLE ITAB_BKPF WITH KEY zblart = 'RV'.
IF sy-subrc = 0.
i_mc13vd0itm-zzbudat = ITAB_BKPF-zbudat.
ENDIF.
* ENd of changes by Maruthi sarnala 10/28/2008
** Get GL account for revenue ***
* Start of insert by Maruthi sarnala.
* Changed Select single to read for performance.
*
SELECT SINGLE sakn1 INTO (i_mc13vd0itm-zzsakn1)
*
FROM konv WHERE
*
knumv = zknumv AND
*
kposn = i_mc13vd0itm-posnr AND
*
kschl IN ('ZPRI','ZHRT','ZING', 'ZREM',
*
'ZNTA','ZNTJ','ZNTM','ZNTP',
*
'ZC17','ZC19') AND
*
kinak EQ ''.
*
*
*
*
*
*
*
*
*

IF i_mc13vd0itm-zzsakn1 IS INITIAL.
SELECT SINGLE sakn1 INTO (i_mc13vd0itm-zzsakn1)
FROM konv WHERE
knumv = zknumv AND
kposn = i_mc13vd0itm-posnr AND
kschl = 'Z$OV' AND
kinak EQ ''.
ENDIF.
ENDIF.
CLEAR itab_zkonv.
REFRESH itab_zkonv.
SELECT sakn1 sakn2 kschl kinak INTO table itab_zkonv
FROM konv WHERE
knumv = zknumv AND
kposn = i_mc13vd0itm-posnr.
IF sy-subrc = 0.
LOOP At itab_zkonv where
( zkschl = 'ZPRI' or
zkschl = 'ZHRT' or
zkschl = 'ZING' or
zkschl = 'ZREM' or
zkschl = 'ZNTA' or
zkschl = 'ZNTJ' or
zkschl = 'ZNTM' or
zkschl = 'ZNTP' or
zkschl = 'ZC17' or
zkschl = 'ZC19' ) AND
zkinak = '' .
i_mc13vd0itm-zzsakn1 = itab_zkonv-zsakn1.
EXIT.
ENDLOOP.
IF i_mc13vd0itm-zzsakn1 IS INITIAL.
READ TABLE itab_zkonv WITH KEY zkschl = 'Z$OV'
zkinak = ''.
IF sy-subrc = 0.
i_mc13vd0itm-zzsakn1 = itab_zkonv-zsakn1.

ENDIF.
ENDIF.
**Get GL account for cost***
READ TABLE itab_zkonv WITH KEY zkschl = 'ZCOG'
zkinak = ''.
IF sy-subrc = 0.
i_mc13vd0itm-zzsakn3 = itab_zkonv-zsakn2.
ENDIF.
ENDIF.
ENDIF.
** Get GL account for cost ***
*
SELECT SINGLE sakn2 INTO (i_mc13vd0itm-zzsakn3)
*
FROM konv WHERE
*
knumv = zknumv AND
*
kposn = i_mc13vd0itm-posnr AND
*
kschl = 'ZCOG' AND
*
kinak EQ ''.
* End of insert by maruthi. Date: 10/15/2008
*** End TR#39581 VKRISHE ***
MODIFY i_mc13vd0itm INDEX myindex.
ENDLOOP.
c_t_data[] = i_mc13vd0itm[].

WHEN '2LIS_11_V_SCL'.

" Data source

REFRESH i_mc11v_0scl.
i_mc11v_0scl[] = c_t_data[].
IF i_mc11v_0scl[] IS INITIAL.
EXIT.
ENDIF.
LOOP AT i_mc11v_0scl.
SELECT SINGLE cmeng INTO i_mc11v_0scl-zzcmeng FROM vbep
WHERE
vbeln = i_mc11v_0scl-vbeln AND
posnr = i_mc11v_0scl-posnr AND
etenr = i_mc11v_0scl-etenr.
****************************************************************
* Inserted by Sudheer on 06/30/2009 for CP#323311
* Check for Deletion Records
****************************************************************
IF SY-SUBRC <> 0.
i_mc11v_0scl-INCO1 = 'D'.
ENDIF.
*******************************************************************
SELECT SINGLE kunnr INTO i_mc11v_0scl-zztert
FROM vbpa

WHERE vbeln = i_mc11v_0scl-vbeln


AND posnr = i_mc11v_0scl-posnr
AND parvw = 'ZT'.
SELECT SINGLE kunn2 INTO i_mc11v_0scl-zzsrep
FROM knvp
WHERE kunnr = i_mc11v_0scl-zztert
AND vkorg = i_mc11v_0scl-vkorg
AND vtweg = i_mc11v_0scl-vtweg
AND spart = i_mc11v_0scl-spara
AND parvw = 'ZR'.
****************************************************************
* Inserted by Sudheer on 06/30/2009 for CP#323311
* Check for Deletion Records
****************************************************************
* SELECT SINGLE VBELN FROM VBEP INTO i_mc11v_0scl-INCO1 WHERE
*
VBELN = i_mc11v_0scl-VBELN
*
AND POSNR = i_mc11v_0scl-POSNR
*
AND ETENR = i_mc11v_0scl-ETENR.
* IF SY-SUBRC <> 0.
*
i_mc11v_0scl-INCO1 = 'D'.
* ENDIF.
************************************************************************
* APO doesn't have req. to use Sales Orders data (EO 9/20/2002)*********
************************************************************************
*
*
**
**
**
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
**
**

CLEAR: S_APOTERR.
DETERMINE IF KEY ACCOUNT. CHECK CUSTGRP5 <> ' ' for SOLD-TO
(KUNAG) IF NOT KEY ACCT, THEN CHECK SHIP-TO (PKUNWE), IF NOT
KEY ACCT THEN CHECK BILL-TO (PKUNRE).
SELECT SINGLE KUNNR KVGR5
FROM KNVV INTO (S_APOTERR-KUNNR, S_APOTERR-KVGR5)
WHERE KUNNR = I_MC11V_0SCL-KUNNR "SOLD-TO
AND VKORG = I_MC11V_0SCL-VKORG
AND VTWEG = I_MC11V_0SCL-VTWEG
AND SPART = I_MC11V_0SCL-SPARA.
IF S_APOTERR-KVGR5 = ' '.
SELECT SINGLE KUNNR KVGR5
FROM KNVV INTO (S_APOTERR-KUNNR, S_APOTERR-KVGR5)
WHERE KUNNR = I_MC11V_0SCL-PKUNWE "SHIP-TO
AND VKORG = I_MC11V_0SCL-VKORG
AND VTWEG = I_MC11V_0SCL-VTWEG
AND SPART = I_MC11V_0SCL-SPARA.
ENDIF.
IF S_APOTERR-KVGR5 = ' '.
SELECT SINGLE KUNNR KVGR5
FROM KNVV INTO (S_APOTERR-KUNNR, S_APOTERR-KVGR5)
WHERE KUNNR = I_MC11V_0SCL-PKUNRE "BILL-TO
AND VKORG = I_MC11V_0SCL-VKORG
AND VTWEG = I_MC11V_0SCL-VTWEG
AND SPART = I_MC11V_0SCL-SPARA.
ENDIF.
SEE IF THIS IS A KEY ACCOUNT
IF ( I_MC13VD0ITM-VTWEG = '01' AND I_MC13VD0ITM-SPART = '01' AND

**
I_MC13VD0ITM-KVGR5 <> SPACE ).
*
IF S_APOTERR-KVGR5 <> ' '.
*
**
IF KEY ACCOUNT, THEN CALL FUNCTION TO DETERMINE THE PRODTERR
*
*
CLEAR: EG_PARNR.
*
*
CALL FUNCTION 'Z_ZSALES_REP_DETERMIN_RFC'
*
EXPORTING
*
IG_VKORG =
*
I_MC11V_0SCL-VKORG " Salesorg
*
IG_KUNNR =
*
I_MC11V_0SCL-KUNNR " Customer#
*
IG_KUNWE =
*
I_MC11V_0SCL-KUNNR " Shipto Cust#
*
IG_PRODH =
*
I_MC11V_0SCL-PRODH " Prodhier
*
IG_BZIRK =
*
I_MC11V_0SCL-BZIRK " District
*
IG_AUART
= 'OR' " Order Type
*
IG_KDGRP =
*
I_MC11V_0SCL-KDGRP " Cust.Group
*
IG_BYPASS_BUFFER
= 'X' "Bypassing buffer
*
IMPORTING
*
EG_PARNR
= EG_PARNR " Territory
*
EXCEPTIONS
*
CONDITION_RECORD_NOT_FOUND = 1
*
OTHERS
= 2.
*
*
IF SY-SUBRC = 0.
*
I_MC11V_0SCL-ZZAPOTERT = EG_PARNR.
*
ELSE.
** IF FUNCTION UNSUCCESSFUL, DEFAULT TO EXISTING TERRITORY
*
I_MC11V_0SCL-ZZAPOTERT = I_MC11V_0SCL-ZZTERT.
*
ENDIF.
*
ELSE.
** IF NOT KEY ACCOUNT DEFAULT TO EXISTING TERRITORY
*
I_MC11V_0SCL-ZZAPOTERT = I_MC11V_0SCL-ZZTERT.
*
ENDIF.
MODIFY i_mc11v_0scl.
ENDLOOP.
c_t_data[] = i_mc11v_0scl[].
*EO Change to forwarding agent for deliveries***
WHEN '2LIS_12_VCITM'.
REFRESH i_mc12vc0itm.
i_mc12vc0itm[] = c_t_data[].
LOOP AT i_mc12vc0itm.
IF NOT i_mc12vc0itm-vgbel IS INITIAL.
CLEAR i_mc12vc0itm-zzpspdnr.
SELECT SINGLE lifnr INTO i_mc12vc0itm-zzpspdnr FROM vbpa
WHERE vbeln = i_mc12vc0itm-vbeln AND "DEL DOC
parvw = 'ZC'.
ENDIF.

IF sy-subrc = 0.
MODIFY i_mc12vc0itm.
ENDIF.
ENDLOOP.
c_t_data[] = i_mc12vc0itm[].
* Inserted by Chuck Kapr 12/17/2002.
* Ticket 2639
WHEN '2LIS_03_BF'.
REFRESH i_mc03bf0.
i_mc03bf0[] = c_t_data[].
IF i_mc03bf0[] IS INITIAL.
EXIT.
ENDIF.
LOOP AT i_mc03bf0.
CLEAR po.
CLEAR isbn.
CLEAR txt.
SELECT SINGLE vbelv
FROM vbfa
INTO i_mc03bf0-kdauf
WHERE vbeln = i_mc03bf0-mblnr
AND posnn = i_mc03bf0-zeile
AND vbtyp_n = 'R'
AND vbtyp_v = 'C'.
* tracker# 5392 - 903 904 movements for paper adjustments
* 05/20
IF i_mc03bf0-zmatkl = '09'.
CASE i_mc03bf0-bwart.
WHEN '903' OR '904' OR '925' OR '926'.
SELECT SINGLE sgtxt INTO txt FROM mseg
WHERE mblnr = i_mc03bf0-mblnr AND
mjahr = i_mc03bf0-mjahr AND
zeile = i_mc03bf0-zeile.
*-- Start of changes for ISBN13 on 03/10/2006 Tr# 109123
CLEAR: v_txt1, v_length.
v_txt1 = txt+11(39).
v_length = strlen( v_txt1 ).
IF v_length = 10.
SELECT SINGLE matnr FROM jptidcdassign
INTO isbn
WHERE identcode EQ txt+11(10)
AND idcodetype EQ 'Z001'.
*
AND XMAINIDCODE EQ 'X'.
"ISBN13 for Tr#109123 04/26/06
ELSEIF v_length = 13.
SELECT SINGLE matnr FROM jptidcdassign
INTO isbn
WHERE identcode EQ txt+11(13)
AND idcodetype EQ 'Z013'
AND xmainidcode EQ 'X'.
ENDIF.
*-- End of changes for ISBN13 on 03/10/2006 Tr # 109123

IF sy-subrc = 0.
SELECT SINGLE ebelp INTO
i_mc03bf0-ebelp FROM ekpo
WHERE ebeln = txt(10) AND
matnr = isbn.
IF sy-subrc = 0.
i_mc03bf0-ebeln = txt(10).
i_mc03bf0-zisbn = isbn.
ENDIF.
ENDIF.
ENDCASE.
ENDIF.
MODIFY i_mc03bf0.
ENDLOOP.
c_t_data[] = i_mc03bf0[].
* Start of Comment by vsumara on 12/14/2005****
** Inserted by Ryan 5/16
* WHEN '0FI_AP_3'.
*
* REFRESH I_DTFIAP_3.
* I_DTFIAP_3[] = C_T_DATA[].
*
* IF I_DTFIAP_3[] IS INITIAL.
*
EXIT.
* ENDIF.
*
* LOOP AT I_DTFIAP_3.
*
SELECT SINGLE PROJK INTO I_DTFIAP_3-PROJK FROM BSEG
*
WHERE BUKRS = I_DTFIAP_3-BUKRS AND
*
BELNR = I_DTFIAP_3-BELNR AND
*
BUZEI = I_DTFIAP_3-BUZEI.
*
MODIFY I_DTFIAP_3.
* ENDLOOP.
* C_T_DATA[] = I_DTFIAP_3[].
*
** Inserted by Ryan 9/17
* End of Comment by vsumara on 12/14/2005****
**** Start of code for Tr# 101334 by vkashan on 06/22/2006***
*** Enhancement for Spend Analytics
***
WHEN '0FI_AP_4'.
i_dtfiap_3[] = c_t_data[].
IF i_dtfiap_3[] IS INITIAL.
EXIT.
ENDIF.
LOOP AT i_dtfiap_3.

**** set business Area.


clear: v_gsber1,
v_prctr1,
v_kostl1,
v_hkont1.
SELECT SINGLE GSBER PRCTR HKONT KOSTL
INTO (v_gsber1,v_prctr1,v_hkont1,v_kostl1)
from BSEG
where bukrs = i_dtfiap_3-bukrs AND
belnr = i_dtfiap_3-belnr AND
gjahr = i_dtfiap_3-gjahr AND
KOART = 'K'.
if sy-subrc eq 0.
i_dtfiap_3-gsber = v_gsber1.
i_dtfiap_3-ZZKOSTL = v_kostl1.
i_dtfiap_3-ZZPRCTR = v_prctr1.
i_dtfiap_3-ZZHKONT = v_hkont1.
endif.
**** end set business area
*** Invoice Types 'CM', 'IR', 'RE', 'ZE' refer to
*** 'ZP' and 'ZK' types
***
IF i_dtfiap_3-blart = 'CM' OR
i_dtfiap_3-blart = 'IR' OR
i_dtfiap_3-blart = 'RE' OR
i_dtfiap_3-blart = 'ZE'.

***

*** Lookup PO Number, Item, Material from table RSEG


SELECT SINGLE ebeln ebelp matnr
INTO (l_ebeln, l_ebelp, l_matnr)
FROM rseg
WHERE belnr = i_dtfiap_3-belnr AND
gjahr = i_dtfiap_3-gjahr AND
buzei = i_dtfiap_3-buzei.

***

*** Assign to corresponding fields in transfer structure ***


i_dtfiap_3-zzebeln = l_ebeln.
i_dtfiap_3-zzebelp = l_ebelp.
i_dtfiap_3-zzmatnr = l_matnr.
*** Royalty Invoice types 'RL'
ELSEIF i_dtfiap_3-blart = 'RL'.
*** Lookup WBS from table BSIS
SELECT SINGLE projk
INTO l_projk
FROM bsis
WHERE bukrs = i_dtfiap_3-bukrs AND
hkont = i_dtfiap_3-hkont AND
augdt = i_dtfiap_3-augdt AND
augbl = i_dtfiap_3-augbl AND
zuonr = i_dtfiap_3-zuonr AND
gjahr = i_dtfiap_3-gjahr AND
belnr = i_dtfiap_3-belnr AND
buzei = i_dtfiap_3-buzei.

***
***

*** Lookup corresponding Object Number from table PRPS


SELECT SINGLE objnr
INTO l_objnr

***

FROM prps
WHERE pspnr = l_projk.
*** Assign to corresponding transfer structure field
***
i_dtfiap_3-zzobjnr = l_objnr.
ENDIF.
*********Select Profit Center
********
CLEAR itab_bseg.
********
REFRESH itab_bseg.
********
SELECT prctr koart hkont
********
INTO table itab_bseg
********
FROM bseg
********
WHERE bukrs = i_dtfiap_3-bukrs AND
********
belnr = i_dtfiap_3-belnr AND
********
gjahr = i_dtfiap_3-gjahr AND
********
KOART <> 'K'.
********
*********Profit Center will be populated only for account Type 'S'
********
if sy-subrc eq 0.
**********
LOOP AT ITAB_BSEG where KOART = 'S'.
********
LOOP AT ITAB_BSEG.
********
i_dtfiap_3-zzprctr = itab_bseg-prctr.
********
i_dtfiap_3-zzhkont = itab_bseg-hkont.
********
exit.
********
ENDLOOP.
********
endif.
********
*********Cost Center
********
if not i_dtfiap_3-zzprctr is initial.
********
SELECT single kostl into l_kostl
********
from csks
********
where prctr = ITAB_BSEG-prctr.
********
i_dtfiap_3-zzkostl = l_kostl.
********
endif.
********
MODIFY i_dtfiap_3.
CLEAR i_dtfiap_3.
**
ENDLOOP.
* c_t_data[] = i_dtfiap_3[].
i_dtfiap_3a[] = i_dtfiap_3[].
**Changes multiple records with G/L ac
LOOP AT i_dtfiap_3a.
* Append S rows
CLEAR IT_BSEG.
REFRESH IT_BSEG.
clear: v_bvorg,
v_awkey,
v_belnr,
v_bukrs.
SELECT belnr buzei bukrs koart hkont SHKZG DMBTR WRBTR
prctr kostl gsber
INTO table IT_BSEG
FROM bseg
WHERE bukrs = i_dtfiap_3a-bukrs AND
belnr = i_dtfiap_3a-belnr AND
gjahr = i_dtfiap_3a-gjahr AND
KOART <> 'K'.

If sy-subrc eq 0.
LOOP AT IT_BSEG.
i_dtfiap_3-bukrs = IT_BSEG-bukrs.
i_dtfiap_3-koart = IT_BSEG-koart.
i_dtfiap_3-hkont = IT_BSEG-hkont.
i_dtfiap_3-SHKZG = IT_BSEG-SHKZG.
if not i_dtfiap_3a-dmhab is initial.
i_dtfiap_3-dmhab = IT_BSEG-dmbtr.
i_dtfiap_3-wrhab = IT_BSEG-wrbtr.
endif.
if not i_dtfiap_3a-dmsol is initial.
i_dtfiap_3-dmsol = IT_BSEG-dmbtr.
i_dtfiap_3-wrsol = IT_BSEG-wrbtr.
endif.
if IT_BSEG-SHKZG = 'S'.
i_dtfiap_3-dmshb = -1 * IT_BSEG-dmbtr.
i_dtfiap_3-wrshb = -1 * IT_BSEG-wrbtr.
else.
i_dtfiap_3-dmshb = IT_BSEG-dmbtr.
i_dtfiap_3-wrshb = IT_BSEG-wrbtr.
endif.
* increment the count else overwritten in ODS
i_dtfiap_3-BUZEI = IT_BSEG-BUZEI.
* increment the count else overwritten in ODS
i_dtfiap_3-FISCPER = i_dtfiap_3a-FISCPER.
i_dtfiap_3-BELNR = IT_BSEG-belnr.
i_dtfiap_3-UPOSZ = i_dtfiap_3a-UPOSZ.
i_dtfiap_3-STATUSPS = i_dtfiap_3a-STATUSPS.
i_dtfiap_3-LIFNR = i_dtfiap_3a-LIFNR.
i_dtfiap_3-KKBER = i_dtfiap_3a-KKBER.
i_dtfiap_3-MABER = i_dtfiap_3a-MABER.
i_dtfiap_3-UMSKZ = i_dtfiap_3a-UMSKZ.
i_dtfiap_3-BLART = i_dtfiap_3a-BLART.
i_dtfiap_3-BSCHL = i_dtfiap_3a-BSCHL.
i_dtfiap_3-FISCVAR = i_dtfiap_3a-FISCVAR.
i_dtfiap_3-BLDAT = i_dtfiap_3a-BLDAT.
i_dtfiap_3-BUDAT = i_dtfiap_3a-BUDAT.
i_dtfiap_3-CPUDT = i_dtfiap_3a-CPUDT.
i_dtfiap_3-AUGDT = i_dtfiap_3a-AUGDT.
i_dtfiap_3-MADAT = i_dtfiap_3a-MADAT.
i_dtfiap_3-NETDT = i_dtfiap_3a-NETDT.
i_dtfiap_3-SK1DT = i_dtfiap_3a-SK1DT.
i_dtfiap_3-SK2DT = i_dtfiap_3a-SK2DT.
i_dtfiap_3-ZFBDT = i_dtfiap_3a-ZFBDT.
i_dtfiap_3-ZBD1T = i_dtfiap_3a-ZBD1T.
i_dtfiap_3-ZBD2T = i_dtfiap_3a-ZBD2T.
i_dtfiap_3-ZBD3T = i_dtfiap_3a-ZBD3T.
i_dtfiap_3-ZBD1P = i_dtfiap_3a-ZBD1P.
i_dtfiap_3-ZBD2P = i_dtfiap_3a-ZBD2P.
i_dtfiap_3-LAND1 = i_dtfiap_3a-LAND1.
i_dtfiap_3-ZLSCH = i_dtfiap_3a-ZLSCH.
i_dtfiap_3-ZTERM = i_dtfiap_3a-ZTERM.
i_dtfiap_3-ZLSPR = i_dtfiap_3a-ZLSPR.
i_dtfiap_3-RSTGR = i_dtfiap_3a-RSTGR.
i_dtfiap_3-MANSP = i_dtfiap_3a-MANSP.
i_dtfiap_3-MSCHL = i_dtfiap_3a-MSCHL.
i_dtfiap_3-MANST = i_dtfiap_3a-MANST.
i_dtfiap_3-LCURR = i_dtfiap_3a-LCURR.
i_dtfiap_3-SKNTO = i_dtfiap_3a-SKNTO.
i_dtfiap_3-WAERS = i_dtfiap_3a-WAERS.

i_dtfiap_3-SKFBT = i_dtfiap_3a-SKFBT.
i_dtfiap_3-WSKTO = i_dtfiap_3a-WSKTO.
i_dtfiap_3-KTOPL = i_dtfiap_3a-KTOPL.
i_dtfiap_3-SAKNR = i_dtfiap_3a-SAKNR.
i_dtfiap_3-FILKD = i_dtfiap_3a-FILKD.
i_dtfiap_3-AUGBL = i_dtfiap_3a-AUGBL.
i_dtfiap_3-XBLNR = i_dtfiap_3a-XBLNR.
i_dtfiap_3-REBZG = i_dtfiap_3a-REBZG.
i_dtfiap_3-REBZJ = i_dtfiap_3a-REBZJ.
i_dtfiap_3-REBZZ = i_dtfiap_3a-REBZZ.
i_dtfiap_3-VBELN = i_dtfiap_3a-VBELN.
i_dtfiap_3-XREF1 = i_dtfiap_3a-XREF1.
i_dtfiap_3-XREF2 = i_dtfiap_3a-XREF2.
i_dtfiap_3-XREF3 = i_dtfiap_3a-XREF3.
i_dtfiap_3-SGTXT = i_dtfiap_3a-SGTXT.
i_dtfiap_3-XNEGP = i_dtfiap_3a-XNEGP.
i_dtfiap_3-XARCH = i_dtfiap_3a-XARCH.
i_dtfiap_3-UMSKS = i_dtfiap_3a-UMSKS.
i_dtfiap_3-UPDMOD = i_dtfiap_3a-UPDMOD.
i_dtfiap_3-ZUONR = i_dtfiap_3a-ZUONR.
i_dtfiap_3-AWTYP = i_dtfiap_3a-AWTYP.
i_dtfiap_3-AWKEY = i_dtfiap_3a-AWKEY.
i_dtfiap_3-BSTAT = i_dtfiap_3a-BSTAT.
i_dtfiap_3-DMBTR = IT_BSEG-DMBTR.
i_dtfiap_3-DMBE2 = i_dtfiap_3a-DMBE2.
i_dtfiap_3-DMBE3 = i_dtfiap_3a-DMBE3.
i_dtfiap_3-GJAHR = i_dtfiap_3a-GJAHR.
i_dtfiap_3-HWAE2 = i_dtfiap_3a-HWAE2.
i_dtfiap_3-HWAE3 = i_dtfiap_3a-HWAE3.
i_dtfiap_3-MONAT = i_dtfiap_3a-MONAT.
i_dtfiap_3-PROJK = i_dtfiap_3a-PROJK.
i_dtfiap_3-WRBTR = IT_BSEG-WRBTR.
i_dtfiap_3-ZZEBELN = i_dtfiap_3a-ZZEBELN.
i_dtfiap_3-ZZEBELP = i_dtfiap_3a-ZZEBELP.
i_dtfiap_3-ZZMATNR = i_dtfiap_3a-ZZMATNR.
i_dtfiap_3-ZZOBJNR = i_dtfiap_3a-ZZOBJNR.
i_dtfiap_3-ZZKOSTL = IT_BSEG-kostl.
i_dtfiap_3-ZZPRCTR = IT_BSEG-prctr.
i_dtfiap_3-ZZHKONT = IT_BSEG-hkont.
i_dtfiap_3-GSBER = IT_BSEG-gsber.
APPEND i_dtfiap_3.
CLEAR i_dtfiap_3.
ENDLOOP.
Endif.
**Append S rows
*

ENDLOOP.
i_dtfiap_3[] = i_dtfiap_3a[].
refresh i_dtfiap_3a.
clear i_dtfiap_3a.
c_t_data[] = i_dtfiap_3[].

**** End of code for Tr# 101334 by vkashan on 06/22/2006***


*
****** Start of code for Z_BSIS_ITEMS******
WHEN 'Z_BSIS_ITEMS'.
DATA : lv_paobjnr LIKE bseg-paobjnr. " vsumara added 01/10/06
DATA : lv_pasubnr LIKE bseg-pasubnr. " vsumara added 01/10/06

CLEAR : i_zz_bsis.
REFRESH i_zz_bsis[].
i_zz_bsis[] = c_t_data[].
IF i_zz_bsis[] IS INITIAL.
EXIT.
ENDIF.
* Loop at the Select to get the product number
LOOP AT i_zz_bsis.
* Select on bseg table
CLEAR: lv_paobjnr,
lv_pasubnr.
SELECT SINGLE paobjnr
pasubnr
INTO (lv_paobjnr,
lv_pasubnr)
FROM bseg
WHERE bukrs = i_zz_bsis-bukrs AND
belnr = i_zz_bsis-belnr AND
gjahr = i_zz_bsis-gjahr AND
buzei = i_zz_bsis-buzei.
SELECT SINGLE artnr
INTO i_zz_bsis-zzartnr
FROM ce4pso1_acct
WHERE aktbo = c_x
"Current profitability segment
AND paobjnr = lv_paobjnr "Profitability segment number
AND pasubnr = lv_pasubnr. "Profitability segment changes
MODIFY i_zz_bsis.
CLEAR i_zz_bsis.
ENDLOOP.
c_t_data[] = i_zz_bsis[].
** End of code for Z_BSIS_ITEMS **********
**** End of code for Tr# 112339 by vsumara on 12/14/2005***
WHEN 'ZALLOCATION'. " Paper allocation data source
REFRESH i_zoxrd10307.
i_zoxrd10307[] = c_t_data[].
IF i_zoxrd10307[] IS INITIAL.
EXIT.
ENDIF.
LOOP AT i_zoxrd10307.
CLEAR
CLEAR
CLEAR
CLEAR

p_control.
mov_avg.
std_price.
qty_per.

SELECT SINGLE aedat INTO i_zoxrd10307-aedat FROM ekko " Created On

WHERE ebeln = i_zoxrd10307-ebeln.


SELECT SINGLE bednr INTO i_zoxrd10307-bednr FROM ekpo " Print No.
WHERE ebeln = i_zoxrd10307-ebeln AND
ebelp = i_zoxrd10307-ebelp.
SELECT SINGLE * FROM mbew
" Value from MBEW
WHERE matnr = i_zoxrd10307-matnr AND
bwkey = i_zoxrd10307-werks.
p_control = mbew-vprsv.
mov_avg = mbew-verpr.
std_price = mbew-stprs.
qty_per = mbew-peinh.
IF p_control = 'V'.
i_zoxrd10307-stprs = mov_avg / qty_per.
ELSE.
i_zoxrd10307-stprs = std_price / qty_per.
ENDIF.
MODIFY i_zoxrd10307.
ENDLOOP.
c_t_data[] = i_zoxrd10307[].
WHEN 'ZPLAF'. " Planned orders
REFRESH i_zoxrd10308.
i_zoxrd10308[] = c_t_data[].
IF i_zoxrd10308[] IS INITIAL.
EXIT.
ENDIF.
LOOP AT i_zoxrd10308.
CLEAR
CLEAR
CLEAR
CLEAR

p_control.
mov_avg.
std_price.
qty_per.

SELECT SINGLE * FROM mbew


WHERE matnr = i_zoxrd10308-matnr AND
bwkey = i_zoxrd10308-plwrk.
p_control = mbew-vprsv.
mov_avg = mbew-verpr.
std_price = mbew-stprs.
qty_per = mbew-peinh.
IF p_control = 'V'.
i_zoxrd10308-stprs = mov_avg / qty_per.
ELSE.
i_zoxrd10308-stprs = std_price / qty_per.
ENDIF.
i_zoxrd10308-waers = 'USD'.
MODIFY i_zoxrd10308.
ENDLOOP.
c_t_data[] = i_zoxrd10308[].
WHEN 'ZPLAF_RESB'. " Planned orders exploded

REFRESH i_zoxrd10300.
i_zoxrd10300[] = c_t_data[].
IF i_zoxrd10300[] IS INITIAL.
EXIT.
ENDIF.
LOOP AT i_zoxrd10300.
CLEAR p_control.
CLEAR mov_avg.
CLEAR std_price.
CLEAR qty_per.
SELECT SINGLE * FROM mbew
WHERE matnr = i_zoxrd10300-matnr AND
bwkey = i_zoxrd10300-werks.
p_control = mbew-vprsv.
mov_avg = mbew-verpr.
std_price = mbew-stprs.
qty_per = mbew-peinh.
IF p_control = 'V'.
i_zoxrd10300-stprs = mov_avg / qty_per.
ELSE.
i_zoxrd10300-stprs = std_price / qty_per.
ENDIF.
i_zoxrd10300-waers = 'USD'.
MODIFY i_zoxrd10300.
ENDLOOP.
c_t_data[] = i_zoxrd10300[].
* Added by Ryan - Actual PO value for Open PO from Soar - 11/13.
* CHANGED TO INCLUDE PAPER CONSUMPTION - 02/10
WHEN 'ZOPEN_PO_RESB'. "Open orders from SOAR
DATA: res_no LIKE bsis-zuonr.
REFRESH i_zoxrd10304.
i_zoxrd10304[] = c_t_data[].
IF i_zoxrd10304[] IS INITIAL.
EXIT.
ENDIF.
TYPES: BEGIN OF i_bsis,
belnr TYPE belnr_d,
buzei TYPE buzei,
gjahr TYPE gjahr,
zuonr TYPE dzuonr,
blart TYPE blart,
shkzg TYPE shkzg,
dmbtr TYPE dmbtr,
END OF i_bsis.
DATA: t_bsis TYPE i_bsis OCCURS 0 WITH HEADER LINE.
DATA: t_bseg TYPE i_bsis OCCURS 0 WITH HEADER LINE.
TYPES: BEGIN OF kr ,
blart TYPE blart,
dmbtr TYPE dmbtr,
END OF kr.

DATA: d_bsis TYPE kr OCCURS 0 WITH HEADER LINE.


DATA: kr_bsis TYPE kr OCCURS 0 WITH HEADER LINE.
DATA: sa_bsis TYPE kr OCCURS 0 WITH HEADER LINE.
LOOP AT i_zoxrd10304.
CLEAR res_no.
res_no = i_zoxrd10304-rsnum.
SHIFT res_no LEFT DELETING LEADING '0'.
SELECT * FROM bsis
WHERE bukrs = '101' AND
hkont = '0002100901' AND
zuonr = res_no.
MOVE-CORRESPONDING bsis TO t_bsis.
APPEND t_bsis.
ENDSELECT.
LOOP AT t_bsis.
SELECT * FROM bseg
WHERE bukrs = '101' AND
belnr = t_bsis-belnr AND
gjahr = t_bsis-gjahr AND
buzei = t_bsis-buzei AND
matnr = i_zoxrd10304-matnr.
IF sy-subrc = 0.
MOVE-CORRESPONDING bseg TO t_bseg.
t_bseg-blart = t_bsis-blart.
APPEND t_bseg.
ENDIF.
ENDSELECT.
ENDLOOP.
LOOP AT t_bseg.
CASE t_bseg-blart.
WHEN 'KR'.
IF t_bseg-shkzg = 'H'.
t_bseg-dmbtr = - t_bseg-dmbtr.
ENDIF.
MOVE-CORRESPONDING t_bseg TO d_bsis.
COLLECT d_bsis INTO kr_bsis.
WHEN 'SA'.
IF t_bseg-shkzg = 'H'.
t_bseg-dmbtr = - t_bseg-dmbtr.
ENDIF.
MOVE-CORRESPONDING t_bseg TO d_bsis.
COLLECT d_bsis INTO sa_bsis.
ENDCASE.
ENDLOOP.
LOOP AT kr_bsis.
READ TABLE kr_bsis.
i_zoxrd10304-dmbtr = kr_bsis-dmbtr.
ENDLOOP.
LOOP AT sa_bsis.
READ TABLE sa_bsis.
i_zoxrd10304-zzdmbtr = sa_bsis-dmbtr.
ENDLOOP.

REFRESH
REFRESH
REFRESH
REFRESH

kr_bsis.
sa_bsis.
t_bsis.
t_bseg.

MODIFY i_zoxrd10304.
ENDLOOP.
c_t_data[] = i_zoxrd10304[].
* ADDED BY RYAN 01/14/2003 # TRACKER 2958.
WHEN 'ZMCHBH'.
REFRESH i_zoxrd10326.
i_zoxrd10326[] = c_t_data[].
IF i_zoxrd10326[] IS INITIAL.
EXIT.
ENDIF.
LOOP AT i_zoxrd10326.
CLEAR
CLEAR
CLEAR
CLEAR

p_control.
mov_avg.
std_price.
qty_per.

SELECT SINGLE * FROM mbewh


WHERE matnr = i_zoxrd10326-matnr AND
bwkey = i_zoxrd10326-werks AND
lfgja = i_zoxrd10326-lfgja AND
lfmon = i_zoxrd10326-lfmon.
IF sy-subrc = 0.
p_control = mbewh-vprsv.
mov_avg = mbewh-verpr.
std_price = mbewh-stprs.
qty_per = mbewh-peinh.
IF p_control = 'V'.
i_zoxrd10326-stprs = mov_avg / qty_per.
ELSE.
i_zoxrd10326-stprs = std_price / qty_per.
ENDIF.
ELSE.
i_zoxrd10326-stprs = 0.
ENDIF.
i_zoxrd10326-waers = 'USD'.
MODIFY i_zoxrd10326.
ENDLOOP.
c_t_data[] = i_zoxrd10326[].
WHEN 'ZMARDH'.
REFRESH i_zoxrd10328.
i_zoxrd10328[] = c_t_data[].
IF i_zoxrd10328[] IS INITIAL.
EXIT.

ENDIF.
LOOP AT i_zoxrd10328.
CLEAR
CLEAR
CLEAR
CLEAR

p_control.
mov_avg.
std_price.
qty_per.

SELECT SINGLE * FROM mbewh


WHERE matnr = i_zoxrd10328-matnr AND
bwkey = i_zoxrd10328-werks AND
lfgja = i_zoxrd10328-lfgja AND
lfmon = i_zoxrd10328-lfmon.
IF sy-subrc = 0.
p_control = mbewh-vprsv.
mov_avg = mbewh-verpr.
std_price = mbewh-stprs.
qty_per = mbewh-peinh.
IF p_control = 'V'.
i_zoxrd10328-stprs = mov_avg / qty_per.
ELSE.
i_zoxrd10328-stprs = std_price / qty_per.
ENDIF.
ELSE.
i_zoxrd10328-stprs = 0.
ENDIF.
i_zoxrd10328-waers = 'USD'.
MODIFY i_zoxrd10328.
ENDLOOP.
c_t_data[] = i_zoxrd10328[].
WHEN 'Z_ON_HOLD_PO'.
REFRESH i_zoxrd10340.
i_zoxrd10340[] = c_t_data[].
IF i_zoxrd10340[] IS INITIAL.
EXIT.
ENDIF.
LOOP AT i_zoxrd10340.
*-- Start of Changes for ISBN13 on 03/10/2006 Tr# 109123
CLEAR v_length.
v_length = strlen( i_zoxrd10340-idnlf ).
IF v_length = 10.
SELECT SINGLE matnr FROM jptidcdassign
INTO i_zoxrd10340-idnlf
WHERE identcode = i_zoxrd10340-idnlf AND
idcodetype EQ 'Z001'.
*
IDCODETYPE EQ 'Z001' AND "ISBN13 for Tr#109123 04/26/06
*
XMAINIDCODE EQ 'X'.
"ISBN13 for Tr#109123 04/26/06
ELSEIF v_length = 13.
SELECT SINGLE matnr FROM jptidcdassign
INTO i_zoxrd10340-idnlf

WHERE identcode = i_zoxrd10340-idnlf AND


idcodetype EQ 'Z013' AND
xmainidcode EQ 'X'.
ENDIF.
*-- End of changes for ISBN13 on 03/10/2006 Tr#109123
IF sy-subrc = 4.
i_zoxrd10340-idnlf = space.
ENDIF.
MODIFY i_zoxrd10340.
ENDLOOP.
c_t_data[] = i_zoxrd10340[].
** Begin Tracker 6717 Hemanth Krishnan **
WHEN '0FI_AR_4'.
i_dtfiar_3[] = c_t_data[].
LOOP AT i_dtfiar_3.
zyear = i_dtfiar_3-fiscper+0(4).
SELECT SINGLE
usnam INTO (i_dtfiar_3-usnam)
FROM bkpf
WHERE bukrs = i_dtfiar_3-bukrs AND
belnr = i_dtfiar_3-belnr AND
gjahr = zyear.
*
i_dtfiar_3-usnam = bkpf-usnam.
MODIFY i_dtfiar_3 TRANSPORTING usnam.
ENDLOOP.
c_t_data[] = i_dtfiar_3[].
** End Tracker 6717 Hemanth Krishnan **
* Begin of addition for ZMSEG 02/18/2004.
* Ticket 47615 Ravi Ganti.
WHEN 'ZMSEG'.
IF c_t_data[] IS INITIAL.
EXIT.
ENDIF.
REFRESH i_zoxrd10406.
i_zoxrd10406[] = c_t_data[].
LOOP AT i_zoxrd10406.
CLEAR: po, isbn, txt.
txt = i_zoxrd10406-sgtxt.
po = txt(10).
*-- Start of changes for ISBN13 on 03/10/2006 Tr# 109123
CLEAR: v_txt1, v_length.
v_txt1 = txt+11(39).
v_length = strlen( v_txt1 ).

IF v_length = 10.
isbn = txt+11(10).
SELECT SINGLE matnr FROM jptidcdassign
INTO zmatnr
WHERE identcode EQ isbn
AND idcodetype EQ 'Z001'.
AND XMAINIDCODE EQ 'X'.
"ISBN13 for Tr#109123 04/26/06

ELSEIF v_length = 13.


isbn = txt+11(13).
SELECT SINGLE matnr FROM jptidcdassign
INTO zmatnr
WHERE identcode EQ isbn
AND idcodetype EQ 'Z013'
AND xmainidcode EQ 'X'.
ENDIF.
*-- End of changes for ISBN13 ON 03/10/2006
IF sy-subrc = 0.
SELECT SINGLE ebeln INTO
i_zoxrd10406-zzebeln FROM ekpo
WHERE ebeln = po AND
matnr = zmatnr.
IF sy-subrc = 0.
i_zoxrd10406-zzisbn = zmatnr.
MODIFY i_zoxrd10406.
ENDIF.
ENDIF.
ENDLOOP.
c_t_data[] = i_zoxrd10406[].
* End of addition - Ravi Ganti
* Begin TR# 71824 Temporary fix for GL extractor for clearing.
WHEN '0FI_GL_4'.
INCLUDE zfigl4.
DATA : v_paobjnr LIKE bseg-paobjnr,
v_pasubnr LIKE bseg-pasubnr.
CLEAR : i_figl4.
REFRESH i_figl4.
i_figl4[] = c_t_data[].
IF i_figl4[] IS INITIAL.
EXIT.
ENDIF.
* Loop at the Select to get product number
LOOP AT i_figl4.
* Select on BSEG Table
CLEAR: v_paobjnr,
v_pasubnr.
SELECT SINGLE paobjnr
pasubnr
INTO (v_paobjnr,
v_pasubnr)
FROM bseg
WHERE bukrs = i_figl4-bukrs AND
belnr = i_figl4-belnr AND
gjahr = i_figl4-awgja AND
buzei = i_figl4-buzei.
SELECT SINGLE artnr
INTO i_figl4-zzartnr
FROM ce4pso1_acct
WHERE aktbo = c_x
"Current profitability segment
AND paobjnr = v_paobjnr "Profitability segment number
AND pasubnr = v_pasubnr. "Profitability segment changes
MODIFY i_figl4.
ENDLOOP.
c_t_data[] = i_figl4[].
* End TR#71824 Temporary fix for GL extractor for clearing.

WHEN 'ZMSEG_IMB'.
i_zoxrd10426[] = c_t_data[].
REFRESH i_tmca.
CLEAR indx.
SELECT * FROM tmca INTO i_tmca.
APPEND i_tmca.
ENDSELECT.
LOOP AT i_zoxrd10426.
indx = sy-tabix.
CLEAR i_tmca.
READ TABLE i_tmca WITH KEY
bwart = i_zoxrd10426-bwart
sobkz = i_zoxrd10426-sobkz
kzbew = i_zoxrd10426-kzbew.
i_zoxrd10426-korr = i_tmca-korr.
i_zoxrd10426-invkz = i_tmca-invkz.
i_zoxrd10426-umlkz = i_tmca-umlkz.
MODIFY i_zoxrd10426 INDEX indx.
ENDLOOP.
c_t_data[] = i_zoxrd10426[].
WHEN 'ZPOBOM'.
DATA: pointer TYPE rodeltaid.
CLEAR pointer.
i_zoxrd10425[] = c_t_data[].
SELECT SINGLE deltaid INTO pointer FROM roosgendlm
WHERE oltpsource = 'ZPOBOM'.
SELECT * FROM zpobom INTO i_zoxrd10425 WHERE
aedat = '00000000' AND
zaedat GE pointer.
APPEND i_zoxrd10425.
ENDSELECT.

*
*
*
*
*
*
*

LOOP AT i_zoxrd10425.
CLEAR: month, year.
CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
EXPORTING
i_date = i_zoxrd10425-zaedat
I_MONMIT
= 00
i_periv
= 'K4'
IMPORTING
e_buper
= month
e_gjahr
= year
EXCEPTIONS
INPUT_FALSE
=1
T009_NOTFOUND
=2
T009B_NOTFOUND
=3
OTHERS
=4
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR: p_control, mov_avg, std_price, qty_per.
SELECT SINGLE vprsv verpr stprs peinh FROM mbewh
INTO (p_control, mov_avg, std_price, qty_per) WHERE
matnr = i_zoxrd10425-matnr AND
bwkey = i_zoxrd10425-werks AND

bwtar = '
' AND
lfgja = year AND
lfmon = month.
IF sy-subrc NE 0.
SELECT SINGLE vprsv verpr stprs peinh FROM mbew
INTO (p_control, mov_avg, std_price, qty_per) WHERE
matnr = i_zoxrd10425-matnr AND
bwkey = i_zoxrd10425-werks AND
bwtar = '
'.
ENDIF.
IF p_control = 'V'.
i_zoxrd10425-verpr = i_zoxrd10425-erfmg * ( mov_avg / qty_per ).
ELSE.
i_zoxrd10425-verpr = i_zoxrd10425-erfmg * ( std_price / qty_per ).
ENDIF.
i_zoxrd10425-waers = 'USD'.
MODIFY i_zoxrd10425.
ENDLOOP.
c_t_data[] = i_zoxrd10425[].
* {Start Tr#101329
WHEN 'Z_BW_GET_PARTNER_LINK'.
it_zoxrd10164[] = c_t_data[].
LOOP AT it_zoxrd10164.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = it_zoxrd10164-parnr
IMPORTING
output = it_zoxrd10164-parnr.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = it_zoxrd10164-parnr
IMPORTING
output = l_partner.
it_zoxrd10164-parnr = l_partner.
MODIFY it_zoxrd10164 INDEX sy-tabix.
ENDLOOP.
c_t_data[] = it_zoxrd10164[].
* End Tr#101329 }
* {Start Tr#138754,138984
* To extract the texts of Sales Order Header*
WHEN '2LIS_11_VAHDR'.
REFRESH i_mc11va0hdr.
i_mc11va0hdr[] = c_t_data[].
IF i_mc11va0hdr[] IS INITIAL.
EXIT.
ENDIF.
LOOP AT i_mc11va0hdr.
move i_mc11va0hdr-vbeln to name.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT
= sy-mandt

ID
= '0001'
LANGUAGE
= sy-langu
NAME
= name
OBJECT
= 'VBBK'
TABLES
LINES
= t_lines
EXCEPTIONS
ID
=1
LANGUAGE
=2
NAME
=3
NOT_FOUND
=4
OBJECT
=5
REFERENCE_CHECK
=6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS
= 8.
IF SY-SUBRC = 0.
Loop at t_lines to 1.
i_mc11va0hdr-ZZText_Header = t_lines-tdline.
Translate i_mc11va0hdr-ZZText_Header to Upper case.
exit.
endloop.
ENDIF.
CLEAR T_LINES.
REFRESH T_LINES.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT
= sy-mandt
ID
= '0004'
LANGUAGE
= sy-langu
NAME
= Name
OBJECT
= 'VBBK'
TABLES
LINES
= t_lines
EXCEPTIONS
ID
=1
LANGUAGE
=2
NAME
=3
NOT_FOUND
=4
OBJECT
=5
REFERENCE_CHECK
=6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS
= 8.
IF SY-SUBRC = 0.
Loop at t_lines to 1.
MOVE t_lines-tdline TO i_mc11va0hdr-ZZText_Header3.
Translate i_mc11va0hdr-ZZText_Header3 to Upper case.
exit.
endloop.
ENDIF.
CLEAR T_LINES.
REFRESH T_LINES.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT
= sy-mandt
ID
= 'ZEDI'
LANGUAGE
= sy-langu
NAME
= Name
OBJECT
= 'VBBK'

TABLES
LINES
= t_lines
EXCEPTIONS
ID
=1
LANGUAGE
=2
NAME
=3
NOT_FOUND
=4
OBJECT
=5
REFERENCE_CHECK
=6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS
= 8.
.
IF SY-SUBRC = 0.
loop at t_lines to 1.
MOVE t_lines-tdline TO i_mc11va0hdr-ZZText_EDI.
Translate i_mc11va0hdr-ZZText_EDI to Upper case.
exit.
endloop.
ENDIF.
CLEAR T_LINES.
REFRESH T_LINES.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT
= sy-mandt
ID
= 'ZARP'
LANGUAGE
= sy-langu
NAME
= Name
OBJECT
= 'VBBK'
TABLES
LINES
= t_lines
EXCEPTIONS
ID
=1
LANGUAGE
=2
NAME
=3
NOT_FOUND
=4
OBJECT
=5
REFERENCE_CHECK
=6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS
= 8.
IF SY-SUBRC = 0.
LOOP AT T_LINES.
Concatenate mystring4 t_lines-tdline into mystring4.
ENDLOOP.
Translate mystring4 to Upper case.
i_mc11va0hdr-ZZText_ARPNotes = mystring4.
ENDIF.
MODIFY i_mc11va0hdr.
ENDLOOP.
c_t_data[] = i_mc11va0hdr[].
*******Shashi 02/05/2009
REFRESH i_mc11va0hdr.
i_mc11va0hdr[] = c_t_data[].
IF i_mc11va0hdr[] IS INITIAL.
EXIT.
ENDIF.
LOOP AT i_mc11va0hdr.

move i_mc11va0hdr-vbeln to name.


CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT
= sy-mandt
ID
= '0001'
LANGUAGE
= sy-langu
NAME
= name
OBJECT
= 'VBBK'
TABLES
LINES
= t_lines
EXCEPTIONS
ID
=1
LANGUAGE
=2
NAME
=3
NOT_FOUND
=4
OBJECT
=5
REFERENCE_CHECK
=6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS
= 8.
IF SY-SUBRC = 0.
Loop at t_lines to 1.
i_mc11va0hdr-ZZText_Header = t_lines-tdline.
Translate i_mc11va0hdr-ZZText_Header to Upper case.
exit.
endloop.
ENDIF.
CLEAR T_LINES.
REFRESH T_LINES.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT
= sy-mandt
ID
= '0004'
LANGUAGE
= sy-langu
NAME
= Name
OBJECT
= 'VBBK'
TABLES
LINES
= t_lines
EXCEPTIONS
ID
=1
LANGUAGE
=2
NAME
=3
NOT_FOUND
=4
OBJECT
=5
REFERENCE_CHECK
=6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS
= 8.
*
*
*
*
*
*
*

IF SY-SUBRC = 0.
Loop at t_lines to 1.
MOVE t_lines-tdline TO i_mc11va0hdr-ZZText_Header3.
Translate i_mc11va0hdr-ZZText_Header3 to Upper case.
exit.
endloop.
ENDIF.

*** vkothsa 11/07/2008


IF SY-SUBRC = 0.
Loop at t_lines.
concatenate i_mc11va0hdr-ZZText_Header3 t_lines-tdline into
i_mc11va0hdr-ZZText_Header3.
Translate i_mc11va0hdr-ZZText_Header3 to Upper case.

endloop.
ENDIF.
*** vkothsa.
CLEAR T_LINES.
REFRESH T_LINES.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT
= sy-mandt
ID
= 'ZEDI'
LANGUAGE
= sy-langu
NAME
= Name
OBJECT
= 'VBBK'
TABLES
LINES
= t_lines
EXCEPTIONS
ID
=1
LANGUAGE
=2
NAME
=3
NOT_FOUND
=4
OBJECT
=5
REFERENCE_CHECK
=6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS
= 8.
.
IF SY-SUBRC = 0.
loop at t_lines to 1.
MOVE t_lines-tdline TO i_mc11va0hdr-ZZText_EDI.
Translate i_mc11va0hdr-ZZText_EDI to Upper case.
exit.
endloop.
ENDIF.
CLEAR T_LINES.
REFRESH T_LINES.
*** vkothsa 11/06/2008
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT
= sy-mandt
ID
= '0005'
LANGUAGE
= sy-langu
NAME
= name
OBJECT
= 'VBBK'
TABLES
LINES
= t_lines
EXCEPTIONS
ID
=1
LANGUAGE
=2
NAME
=3
NOT_FOUND
=4
OBJECT
=5
REFERENCE_CHECK
=6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS
= 8.
IF SY-SUBRC = 0.
Loop at t_lines.
concatenate i_mc11va0hdr-ZZTEXT_HEADER4 t_lines-tdline

into
i_mc11va0hdr-ZZTEXT_HEADER4.
Translate i_mc11va0hdr-ZZTEXT_HEADER4 to Upper case.
endloop.
ENDIF.
CLEAR T_LINES.
REFRESH T_LINES.
*** vkothsa 11/06/2008
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT
= sy-mandt
ID
= 'ZARP'
LANGUAGE
= sy-langu
NAME
= Name
OBJECT
= 'VBBK'
TABLES
LINES
= t_lines
EXCEPTIONS
ID
=1
LANGUAGE
=2
NAME
=3
NOT_FOUND
=4
OBJECT
=5
REFERENCE_CHECK
=6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS
= 8.
IF SY-SUBRC = 0.
LOOP AT T_LINES.
Concatenate mystring4 t_lines-tdline into mystring4.
ENDLOOP.
Translate mystring4 to Upper case.
i_mc11va0hdr-ZZText_ARPNotes = mystring4.
ENDIF.
MODIFY i_mc11va0hdr.
ENDLOOP.
c_t_data[] = i_mc11va0hdr[].
******Shashi 02/05/2009
WHEN 'P1STFI_POACTUALS'.
I_ZOXRD10528[] = c_t_data[].
IF I_ZOXRD10528[] IS INITIAL.
EXIT.
ENDIF.
DATA: L_INDEX LIKE SY-INDEX.
* Changed by Vijay Vedhere, Date: 07/30/2008
* Rsn: To pull the PO Actual Data
* Tranport#:
* SORT I_ZOXRD10528 BY ZZEBELN ZZBELNR ZZEBELP.
* DELETE ADJACENT DUPLICATES FROM I_ZOXRD10528
*
COMPARING ZZEBELN ZZBELNR ZZEBELP.
LOOP AT I_ZOXRD10528.
CLEAR L_INDEX.
L_INDEX = SY-TABIX.
IF I_ZOXRD10528-ZZVGABE = '2' OR
I_ZOXRD10528-ZZVGABE = '3'.
IF I_ZOXRD10528-ZZSHKZG = 'H'.
i_ZOXRD10528-zzwrbtr = i_ZOXRD10528-zzwrbtr * -1.

i_ZOXRD10528-MENGE = i_ZOXRD10528-MENGE * -1.


endif.
SELECT SINGLE XBLNR FROM RBKP
INTO RBKP-XBLNR
WHERE BELNR = I_ZOXRD10528-ZZBELNR AND
GJAHR = I_ZOXRD10528-ZZGJAHR.
IF SY-SUBRC = 0.
i_ZOXRD10528-zzxbelnr = RBKP-XBLNR.
ENDIF.
endif.
MODIFY I_ZOXRD10528 INDEX L_INDEX.
ENDLOOP.
c_t_data[] = I_ZOXRD10528[].
* End of Change Date: 07/30/2008
* Changed by Vijay Vedhere, Date: 11/12/2008
* Rsn: ZPSO2 REPORT
* Tranport#:
* WHEN 'ZPRPS_COEP_BW'.
*
* I_ZOXRD10345[] = c_t_data[].
* IF I_ZOXRD10345[] IS INITIAL.
*
EXIT.
* ENDIF.
*
*DELETE I_ZOXRD10345 WHERE LEDNR NE '00' AND
*
WRTTP NE '04' AND
*
BEKNZ EQ '0' AND
*
VERSN NE '000'.
*
*IF I_ZOXRD10345-KSTAR BETWEEN 4800105 AND 4800190 OR
* I_ZOXRD10345-KSTAR BETWEEN 0004800200 AND '0004800290' OR
* I_ZOXRD10345-KSTAR EQ '0004800297' OR
* I_ZOXRD10345-KSTAR EQ '0004800195' OR
* I_ZOXRD10345-KSTAR EQ '0004800295'.
*ELSE.
*DELETE I_ZOXRD10345.
*ENDIF.
*
IF I_ZOXRD10345-imprf <> 'PPI-RO'.
*
DELETE I_ZOXRD10345 .
*
EXIT.
*
ENDIF.
**
*
LOOP AT I_ZOXRD10345.
*
CLEAR L_INDEX.
*
L_INDEX = SY-TABIX.
*
CLEAR: WKGBTR, GJAHR, PERAB.
*
*
SELECT PSPNR POSID POST1 PBUKR PKOKR PSPHI
*
POSKI VERNA PRCTR BELKZ PSPRI USR08 IMPRF
*
FROM PRPS into corresponding fields of I_ZOXRD10345
*
WHERE OBJNR = I_ZOXRD10345-OBJNR AND
*
IMPRF = 'PPI-RO'.
*
*
MODIFY I_ZOXRD10345.
*
ENDSELECT.
*
*
IF SY-SUBRC <> 0.
*
DELETE I_ZOXRD10345 .
*
EXIT.
*
ENDIF.

* SELECT SINGLE GJAHR PERAB FROM COBK


*
INTO (GJAHR, PERAB)
*
WHERE KOKRS = I_ZOXRD10345-KOKRS AND
*
BELNR = I_ZOXRD10345-BELNR.
*
IF SY-SUBRC = 0.
*
I_ZOXRD10345-GJAHR = GJAHR.
*
I_ZOXRD10345-PERIO = PERAB.
*
ELSE.
*
I_ZOXRD10345-GJAHR = ' '.
*
I_ZOXRD10345-PERIO = ' '.
*
ENDIF.
*
MODIFY I_ZOXRD10345 INDEX L_INDEX.
* ENDLOOP.
* c_t_data[] = I_ZOXRD10345[].
***********************************************************************
WHEN 'ZPRPS_COSP_BW'.
I_ZOXRD10355[] = c_t_data[].
IF I_ZOXRD10355[] IS INITIAL.
EXIT.
ENDIF.
* DELETE I_ZOXRD10355 WHERE imprf NE 'PPI-RO'.
LOOP AT I_ZOXRD10355.
CLEAR L_INDEX.
L_INDEX = SY-TABIX.
* Commented on 01/22 by Sudheer
*
select * from cosp into corresponding fields of table itab_cosp
*
WHERE lednr = '00'
*
AND objnr = I_ZOXRD10355-objnr
*
AND beknz NE '0'. "Debit/Credit indicator
SELECT * FROM COSP INTO CORRESPONDING FIELDS OF TABLE ITAB_COSP
WHERE OBJNR = I_ZOXRD10355-OBJNR.
*
if sy-subrc = 0.
DELETE ITAB_COSP WHERE LEDNR <> '00' AND BEKNZ = '0'.
DELETE ITAB_COSP WHERE VERSN <> 1 AND WRTTP = 1.
loop at itab_cosp.
itab_cosp1-PSPNR = I_ZOXRD10355-PSPNR.
itab_cosp1-POSID = I_ZOXRD10355-POSID.
itab_cosp1-POST1 = I_ZOXRD10355-POST1.
itab_cosp1-OBJNR = I_ZOXRD10355-OBJNR.
itab_cosp1-PSPHI = I_ZOXRD10355-PSPHI.
itab_cosp1-POSKI = I_ZOXRD10355-POSKI.
itab_cosp1-VERNA = I_ZOXRD10355-VERNA.
itab_cosp1-PKOKR = I_ZOXRD10355-PKOKR.
itab_cosp1-PRCTR = I_ZOXRD10355-PRCTR.
itab_cosp1-BELKZ = I_ZOXRD10355-BELKZ.
itab_cosp1-PSPRI = I_ZOXRD10355-PSPRI.
itab_cosp1-USR08 = I_ZOXRD10355-USR08.
itab_cosp1-IMPRF = I_ZOXRD10355-IMPRF.
itab_cosp1-GJAHR = itab_cosp-GJAHR.
itab_cosp1-WRTTP = itab_cosp-WRTTP.
itab_cosp1-KSTAR = itab_cosp-KSTAR.
********************************************************
IF itab_cosp-WRTTP = '01' AND itab_cosp-WKG001 NE 0.
itab_cosp1-WTG001 = itab_cosp-WKG001.
itab_cosp1-poper = '001'.
itab_cosp1-WTG002 = 0.
APPEND itab_cosp1.
ENDIF.

IF itab_cosp-WRTTP = '01' AND itab_cosp-WKG002 NE 0.


itab_cosp1-WTG001 = itab_cosp-WKG002.
itab_cosp1-poper = '002'.
itab_cosp1-WTG002 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '01' AND itab_cosp-WKG003 NE 0.
itab_cosp1-WTG001 = itab_cosp-WKG003.
itab_cosp1-poper = '003'.
itab_cosp1-WTG002 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '01' AND itab_cosp-WKG004 NE 0.
itab_cosp1-WTG001 = itab_cosp-WKG004.
itab_cosp1-poper = '004'.
itab_cosp1-WTG002 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '01' AND itab_cosp-WKG005 NE 0.
itab_cosp1-WTG001 = itab_cosp-WKG005.
itab_cosp1-poper = '005'.
itab_cosp1-WTG002 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '01' AND itab_cosp-WKG006 NE 0.
itab_cosp1-WTG001 = itab_cosp-WKG006.
itab_cosp1-poper = '006'.
itab_cosp1-WTG002 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '01' AND itab_cosp-WKG007 NE 0.
itab_cosp1-WTG001 = itab_cosp-WKG007.
itab_cosp1-poper = '007'.
itab_cosp1-WTG002 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '01' AND itab_cosp-WKG008 NE 0.
itab_cosp1-WTG001 = itab_cosp-WKG008.
itab_cosp1-poper = '008'.
itab_cosp1-WTG002 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '01' AND itab_cosp-WKG009 NE 0.
itab_cosp1-WTG001 = itab_cosp-WKG009.
itab_cosp1-poper = '009'.
itab_cosp1-WTG002 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '01' AND itab_cosp-WKG010 NE 0.
itab_cosp1-WTG001 = itab_cosp-WKG010.
itab_cosp1-poper = '010'.
itab_cosp1-WTG002 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '01' AND itab_cosp-WKG011 NE 0.
itab_cosp1-WTG001 = itab_cosp-WKG011.
itab_cosp1-poper = '011'.
itab_cosp1-WTG002 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '01' AND itab_cosp-WKG012 NE 0.

itab_cosp1-WTG001 = itab_cosp-WKG012.
itab_cosp1-poper = '012'.
itab_cosp1-WTG002 = 0.
APPEND itab_cosp1.
ENDIF.
********************************************************************
IF itab_cosp-WRTTP = '04' AND itab_cosp-WKG001 NE 0.
itab_cosp1-WTG002 = itab_cosp-WKG001.
itab_cosp1-poper = '001'.
itab_cosp1-WTG001 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '04' AND itab_cosp-WKG002 NE 0.
itab_cosp1-WTG002 = itab_cosp-WKG002.
itab_cosp1-poper = '002'.
itab_cosp1-WTG001 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '04' AND itab_cosp-WKG003 NE 0.
itab_cosp1-WTG002 = itab_cosp-WKG003.
itab_cosp1-poper = '003'.
itab_cosp1-WTG001 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '04' AND itab_cosp-WKG004 NE 0.
itab_cosp1-WTG002 = itab_cosp-WKG004.
itab_cosp1-poper = '004'.
itab_cosp1-WTG001 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '04' AND itab_cosp-WKG005 NE 0.
itab_cosp1-WTG002 = itab_cosp-WKG005.
itab_cosp1-poper = '005'.
itab_cosp1-WTG001 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '04' AND itab_cosp-WKG006 NE 0.
itab_cosp1-WTG002 = itab_cosp-WKG006.
itab_cosp1-poper = '006'.
itab_cosp1-WTG001 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '04' AND itab_cosp-WKG007 NE 0.
itab_cosp1-WTG002 = itab_cosp-WKG007.
itab_cosp1-poper = '007'.
itab_cosp1-WTG001 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '04' AND itab_cosp-WKG008 NE 0.
itab_cosp1-WTG002 = itab_cosp-WKG008.
itab_cosp1-poper = '008'.
itab_cosp1-WTG001 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '04' AND itab_cosp-WKG009 NE 0.
itab_cosp1-WTG002 = itab_cosp-WKG009.
itab_cosp1-poper = '009'.
itab_cosp1-WTG001 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '04' AND itab_cosp-WKG010 NE 0.

itab_cosp1-WTG002 = itab_cosp-WKG010.
itab_cosp1-poper = '010'.
itab_cosp1-WTG001 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '04' AND itab_cosp-WKG011 NE 0.
itab_cosp1-WTG002 = itab_cosp-WKG011.
itab_cosp1-poper = '011'.
itab_cosp1-WTG001 = 0.
APPEND itab_cosp1.
ENDIF.
IF itab_cosp-WRTTP = '04' AND itab_cosp-WKG012 NE 0.
itab_cosp1-WTG002 = itab_cosp-WKG012.
itab_cosp1-poper = '012'.
itab_cosp1-WTG001 = 0.
APPEND itab_cosp1.
ENDIF.
********************************************************
endloop.
else.
delete I_ZOXRD10355.
endif.
ENDLOOP.
c_t_data[] = itab_cosp1[].
** End of Change Date: 11/12/2008
WHEN OTHERS.
ENDCASE.

You might also like