0% found this document useful (0 votes)
31 views17 pages

End Routine D6D

End Routine D6D

Uploaded by

Deepak Choudhary
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views17 pages

End Routine D6D

End Routine D6D

Uploaded by

Deepak Choudhary
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 17

PROGRAM trans_routine.

*---------------------------------------------------------------------*
* CLASS routine DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_transform DEFINITION.
PUBLIC SECTION.

* Attributs
DATA:
p_check_master_data_exist
TYPE RSODSOCHECKONLY READ-ONLY,
*- Instance for getting request runtime attributs;
* Available information: Refer to methods of
* interface 'if_rsbk_request_admintab_view'
p_r_request
TYPE REF TO if_rsbk_request_admintab_view READ-ONLY.

PRIVATE SECTION.

TYPE-POOLS: rsd, rstr.

* Rule specific types


TYPES:
BEGIN OF _ty_s_TG_1,
* InfoObject: 0RECORD Data Record Number.
RECORD TYPE /BI0/OIRECORD,
* InfoObject: ZSITE Site.
/BIC/ZSITE TYPE /BIC/OIZSITE,
* InfoObject: 0CALYEAR Calendar year.
CALYEAR TYPE /BI0/OICALYEAR,
* InfoObject: 0DISTR_CHAN Distribution Channel.
DISTR_CHAN TYPE /BI0/OIDISTR_CHAN,
* InfoObject: 0RECORDMODE BW Delta Process: Update Mode.
RECORDMODE TYPE RODMUPDMOD,
* InfoObject: 0BILLTOPRTY Bill-to party.
BILLTOPRTY TYPE /BI0/OIBILLTOPRTY,
* InfoObject: 0CALWEEK Calendar year / week.
CALWEEK TYPE /BI0/OICALWEEK,
* InfoObject: 0CURRENCY Currency key.
CURRENCY TYPE /BI0/OICURRENCY,
* InfoObject: 0CUSTOMER Customer number.
CUSTOMER TYPE /BI0/OICUSTOMER,
* InfoObject: 0LOC_CURRCY Local currency.
LOC_CURRCY TYPE /BI0/OILOC_CURRCY,
* InfoObject: 0MATERIAL Material.
MATERIAL TYPE /BI0/OIMATERIAL,
* InfoObject: 0MATL_GROUP Material group.
MATL_GROUP TYPE /BI0/OIMATL_GROUP,
* InfoObject: 0PAYER Payer.
PAYER TYPE /BI0/OIPAYER,
* InfoObject: 0RT_CONFMAT Cross-Plant Configur. Material.
RT_CONFMAT TYPE /BI0/OIRT_CONFMAT,
* InfoObject: 0RT_PROMO Promotion.
RT_PROMO TYPE /BI0/OIRT_PROMO,
* InfoObject: 0RT_PROMOTH Promotion Theme.
RT_PROMOTH TYPE /BI0/OIRT_PROMOTH,
* InfoObject: 0SALES_DIST Sales District.
SALES_DIST TYPE /BI0/OISALES_DIST,
* InfoObject: 0SALES_UNIT Sales unit.
SALES_UNIT TYPE /BI0/OISALES_UNIT,
* InfoObject: 0SHIP_TO Ship to party.
SHIP_TO TYPE /BI0/OISHIP_TO,
* InfoObject: 0SOLD_TO Sold-to party.
SOLD_TO TYPE /BI0/OISOLD_TO,
* InfoObject: 0TXTMD Medium description.
TXTMD TYPE RSTXTMD,
* InfoObject: 0VENDOR Vendor.
VENDOR TYPE /BI0/OIVENDOR,
* InfoObject: ZALVPRO VAT percentage.
/BIC/ZALVPRO TYPE /BIC/OIZALVPRO,
* InfoObject: ZALVPRO2 VAT percentage.
/BIC/ZALVPRO2 TYPE /BIC/OIZALVPRO2,
* InfoObject: ZDISCOUNT Discounts.
/BIC/ZDISCOUNT TYPE /BIC/OIZDISCOUNT,
* InfoObject: ZEANUPC EAN code 13.
/BIC/ZEANUPC TYPE /BIC/OIZEANUPC,
* InfoObject: ZHAVIKKI Scrapping.
/BIC/ZHAVIKKI TYPE /BIC/OIZHAVIKKI,
* InfoObject: ZHINTTYP.
/BIC/ZHINTTYP TYPE /BIC/OIZHINTTYP,
* InfoObject: ZJALKTMRK RK-retrobonus for stores based on the whole
*saling.
/BIC/ZJALKTMRK TYPE /BIC/OIZJALKTMRK,
* InfoObject: ZJALKTMTT TT-retrobonus for stores based on the whol
*esaling.
/BIC/ZJALKTMTT TYPE /BIC/OIZJALKTMTT,
* InfoObject: ZJALKVMRK RK-retrobonus for stores based on retail sa
*les.
/BIC/ZJALKVMRK TYPE /BIC/OIZJALKVMRK,
* InfoObject: ZJALKVMTT TT-retrobonus for stores based on retail sa
*les.
/BIC/ZJALKVMTT TYPE /BIC/OIZJALKVMTT,
* InfoObject: ZKATE Margin.
/BIC/ZKATE TYPE /BIC/OIZKATE,
* InfoObject: ZLAYVR Layout.
/BIC/ZLAYVR TYPE /BIC/OIZLAYVR,
* InfoObject: ZMARK Markkinointiraha.
/BIC/ZMARK TYPE /BIC/OIZMARK,
* InfoObject: ZMERC_C1 MC hier. level 1.
/BIC/ZMERC_C1 TYPE /BIC/OIZMERC_C1,
* InfoObject: ZMERC_C2 MC hier. level 2.
/BIC/ZMERC_C2 TYPE /BIC/OIZMERC_C2,
* InfoObject: ZMERC_C3 MC hier. level 3.
/BIC/ZMERC_C3 TYPE /BIC/OIZMERC_C3,
* InfoObject: ZMERC_C4 MC hier. level 4.
/BIC/ZMERC_C4 TYPE /BIC/OIZMERC_C4,
* InfoObject: ZMYYN_TYP Sales type (evh, own).
/BIC/ZMYYN_TYP TYPE /BIC/OIZMYYN_TYP,
* InfoObject: ZMYYNTI Sales (EUR).
/BIC/ZMYYNTI TYPE /BIC/OIZMYYNTI,
* InfoObject: ZMYYNTIHI Sales price.
/BIC/ZMYYNTIHI TYPE /BIC/OIZMYYNTIHI,
* InfoObject: ZOSTOHINT Purchase price.
/BIC/ZOSTOHINT TYPE /BIC/OIZOSTOHINT,
* InfoObject: ZPANOSOH Investing to the purchase price.
/BIC/ZPANOSOH TYPE /BIC/OIZPANOSOH,
* InfoObject: ZPANOSOHL Investing to the purchase price, charging.
/BIC/ZPANOSOHL TYPE /BIC/OIZPANOSOHL,
* InfoObject: ZPANOSTRK RK-Investing for stores wholesale price.
/BIC/ZPANOSTRK TYPE /BIC/OIZPANOSTRK,
* InfoObject: ZPANOSTTT TT-Investing for stores wholesale price.
/BIC/ZPANOSTTT TYPE /BIC/OIZPANOSTTT,
* InfoObject: ZPOS_CUST Number of customers.
/BIC/ZPOS_CUST TYPE /BIC/OIZPOS_CUST,
* InfoObject: ZPOS_QUAN Quantities sold.
/BIC/ZPOS_QUAN TYPE /BIC/OIZPOS_QUAN,
* InfoObject: ZPOS_WHRS Working hours.
/BIC/ZPOS_WHRS TYPE /BIC/OIZPOS_WHRS,
* InfoObject: ZREGION Region.
/BIC/ZREGION TYPE /BIC/OIZREGION,
* InfoObject: ZVALIKKET.
/BIC/ZVALIKKET TYPE /BIC/OIZVALIKKET,
* InfoObject: ZVALIKOIM Assortment (K = chain, S=recommended).
/BIC/ZVALIKOIM TYPE /BIC/OIZVALIKOIM,
* InfoObject: ZVALIKTYP.
/BIC/ZVALIKTYP TYPE /BIC/OIZVALIKTYP,
* InfoObject: ZZ_SVH Sales price, constant.
/BIC/ZZ_SVH TYPE /BIC/OIZZ_SVH,
* InfoObject: ZZBRAND Brand.
/BIC/ZZBRAND TYPE /BIC/OIZZBRAND,
* InfoObject: ZZMAP_POS Moving average price (MAP).
/BIC/ZZMAP_POS TYPE /BIC/OIZZMAP_POS,
* InfoObject: ZZPROVA Provincial Area.
/BIC/ZZPROVA TYPE /BIC/OIZZPROVA,
* InfoObject: ZZSORT2 MVS number.
/BIC/ZZSORT2 TYPE /BIC/OIZZSORT2,
* InfoObject: ZZTOTAR Total area.
/BIC/ZZTOTAR TYPE /BIC/OIZZTOTAR,
* InfoObject: ZZTOTSAR Total Sales Area.
/BIC/ZZTOTSAR TYPE /BIC/OIZZTOTSAR,
* InfoObject: ZEMPTY EMPTY FIELD 2 CHAR.
/BIC/ZEMPTY TYPE /BIC/OIZEMPTY,
* InfoObject: ZPIK_TR Material group.
/BIC/ZPIK_TR TYPE /BIC/OIZPIK_TR,
* InfoObject: ZPS_WRKHR Working Hours.
/BIC/ZPS_WRKHR TYPE /BIC/OIZPS_WRKHR,
* InfoObject: 0RPA_TIX Transaction Index.
RPA_TIX TYPE /BI0/OIRPA_TIX,
* InfoObject: 0RPA_RQU Record Type of Transaction.
RPA_RQU TYPE /BI0/OIRPA_RQU,
* InfoObject: ZLIIKVERO VAT value.
/BIC/ZLIIKVERO TYPE /BIC/OIZLIIKVERO,
* InfoObject: 0RPA_DTC Discount Type.
RPA_DTC TYPE /BI0/OIRPA_DTC,
* InfoObject: 0RTSAEXCUST Wholesales e (with tax).
RTSAEXCUST TYPE /BI0/OIRTSAEXCUST,
* InfoObject: ZPROMDISC Promotional Discount.
/BIC/ZPROMDISC TYPE /BIC/OIZPROMDISC,
* InfoObject: 0CALDAY Calendar day.
CALDAY TYPE /BI0/OICALDAY,
* InfoObject: 0RPA_TCD Means of Payment.
RPA_TCD TYPE /BI0/OIRPA_TCD,
* InfoObject: 0BASE_UOM Base Unit of Measure.
BASE_UOM TYPE /BI0/OIBASE_UOM,
* InfoObject: 0RTSAEXCUSV Wholesales e.
RTSAEXCUSV TYPE /BI0/OIRTSAEXCUSV,
* InfoObject: 0CPSAEXCUBU Sales bills BUn.
CPSAEXCUBU TYPE /BI0/OICPSAEXCUBU,
* InfoObject: 0CPSAEXCUSU Sales bills SUn.
CPSAEXCUSU TYPE /BI0/OICPSAEXCUSU,
* InfoObject: ZTRANSCD Transaction Code.
/BIC/ZTRANSCD TYPE /BIC/OIZTRANSCD,
* InfoObject: ZINVOICED Invoiced Flag.
/BIC/ZINVOICED TYPE /BIC/OIZINVOICED,
* InfoObject: ZKP_NETPR Net priced sales e.
/BIC/ZKP_NETPR TYPE /BIC/OIZKP_NETPR,
* InfoObject: ZCAMPSAL Campaign sales.
/BIC/ZCAMPSAL TYPE /BIC/OIZCAMPSAL,
* InfoObject: ZSHRINK Shrinkage.
/BIC/ZSHRINK TYPE /BIC/OIZSHRINK,
* InfoObject: ZOTDISCOU Other discounts.
/BIC/ZOTDISCOU TYPE /BIC/OIZOTDISCOU,
* InfoObject: ZZACCOUNT Accounting level.
/BIC/ZZACCOUNT TYPE /BIC/OIZZACCOUNT,
* InfoObject: ZPROPRC Profit %.
/BIC/ZPROPRC TYPE /BIC/OIZPROPRC,
* InfoObject: ZCGPDISC Merchandise group discount.
/BIC/ZCGPDISC TYPE /BIC/OIZCGPDISC,
* InfoObject: ZCGPSALE Group discounted Sales.
/BIC/ZCGPSALE TYPE /BIC/OIZCGPSALE,
* InfoObject: ZDISCNTP Discounts Promotion.
/BIC/ZDISCNTP TYPE /BIC/OIZDISCNTP,
* InfoObject: ZZDISCID POS discount type ID.
/BIC/ZZDISCID TYPE /BIC/OIZZDISCID,
* InfoObject: ZZDISTYPE POS discount type.
/BIC/ZZDISTYPE TYPE /BIC/OIZZDISTYPE,
END OF _ty_s_TG_1.
TYPES:
_ty_t_TG_1 TYPE STANDARD TABLE OF _ty_s_TG_1
WITH NON-UNIQUE DEFAULT KEY.

*$*$ begin of global - insert your declaration only below this line *-*
... "insert your code here

*$*$ end of global - insert your declaration only before this line *-*
METHODS
new_record__end_routine
IMPORTING
source_segid type rstran_segid
source_record type sytabix
EXPORTING
record_new type sytabix.

METHODS
end_routine
IMPORTING
request type rsrequest
datapackid type rsdatapid
segid type rsbk_segid
EXPORTING
monitor type rstr_ty_t_monitors
CHANGING
RESULT_PACKAGE type _ty_t_TG_1
RAISING
cx_rsrout_abort
cx_rsbk_errorcount
cx_dynamic_check
cx_rs_failed.
METHODS
inverse_end_routine
IMPORTING
i_th_fields_outbound TYPE rstran_t_field_inv
I_R_SELSET_OUTBOUND TYPE REF TO CL_RSMDS_SET
i_is_main_selection TYPE rs_bool
i_r_selset_outbound_complete TYPE REF TO cl_rsmds_set
i_r_universe_inbound TYPE REF TO CL_RSMDS_UNIVERSE
CHANGING
c_th_fields_inbound TYPE rstran_t_field_inv
c_r_selset_inbound TYPE REF TO CL_RSMDS_SET
c_exact TYPE rs_bool.
ENDCLASS. "routine DEFINITION

*$*$ begin of 2nd part global - insert your code only below this line *
... "insert your code here
*$*$ end of 2nd part global - insert your code only before this line *

*---------------------------------------------------------------------*
* CLASS routine IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_transform IMPLEMENTATION.

*----------------------------------------------------------------------*
* Method end_routine
*----------------------------------------------------------------------*
* Calculation of result package via end routine.
* Note: Update of target fields depends on rule assignment in
* transformation editor. Only fields that have a rule assigned,
* are updated to the data target.
*----------------------------------------------------------------------*
* <-> result package
*----------------------------------------------------------------------*
METHOD end_routine.
*=== Segments ===

FIELD-SYMBOLS:
<RESULT_FIELDS> TYPE _ty_s_TG_1.

DATA:
MONITOR_REC TYPE rstmonitor.

*$*$ begin of routine - insert your code only below this line *-*
... "insert your code here

*--------------Constants Declaration-----------*
CONSTANTS: lc_a TYPE c LENGTH 1 VALUE 'A',
lc_rg TYPE /bic/oizpar_fun VALUE 'RG',
lc_zpos_up TYPE tvarvc-name VALUE 'ZPOS_UP'.

*--------Types Declaration---------------------*
TYPES: BEGIN OF ty_plant,
plant TYPE /bi0/oiplant,
rt_custpl TYPE /bi0/oirt_custpl,
END OF ty_plant.

* EAN Code 13
TYPES: BEGIN OF ty_matnr,
zeanupc TYPE /bic/oizeanupc,
END OF ty_matnr.

* EAN Code 14
TYPES: BEGIN OF ty_skupa,
zean14 TYPE /bic/oizzean14,
END OF ty_skupa.

* Promotion
TYPES: BEGIN OF ty_promo_sel,
rt_promo TYPE /bi0/oirt_promo,
rt_mat_prm TYPE /bi0/oirt_mat_prm,
END OF ty_promo_sel.

* Promotion, Material
TYPES: BEGIN OF ty_promo,
rt_promo TYPE /bi0/oirt_promo,
rt_mat_prm TYPE /bi0/oimaterial,
rt_promoth TYPE /bi0/oirt_promoth,
END OF ty_promo.

* Promotion
TYPES: BEGIN OF ty_promo_nat,
material TYPE /bi0/oimaterial,
/bic/zzsitegrp TYPE /bic/oizzsitegrp,
/bic/zpromovdb TYPE /bic/oizpromovdb,
/bic/zpromovdi TYPE /bic/oizpromovdi,
rt_promo TYPE /bi0/oirt_promo,
/bic/zsite TYPE /bic/oizsite,
END OF ty_promo_nat.

* Material Information
TYPES: BEGIN OF ty_pmaterial,
material TYPE /bi0/oimaterial,
CREATEDON TYPE /BI0/OICREATEDON,
" RFC 2000621 changes
MATL_GROUP TYPE /BI0/OIMATL_GROUP,
rt_confmat TYPE /bi0/oirt_confmat,
vendor TYPE /bi0/oivendor,
/bic/zeanupc TYPE /bi0/pmaterial-/bic/zeanupc,
/bic/zmerc_c1 TYPE /bic/oizmerc_c1,
/bic/zmerc_c2 TYPE /bic/oizmerc_c2,
/bic/zmerc_c3 TYPE /bic/oizmerc_c3,
/bic/zmerc_c4 TYPE /bic/oizmerc_c4,
/BIC/ZZBRAND TYPE /BIC/OIZZBRAND,
/bic/zmean_ean TYPE /bic/oizmean_ean,
/bic/zme TYPE /bic/oizme,
* gross_wt TYPE /bi0/pmaterial-gross_wt,
* unit_of_wt TYPE /bi0/pmaterial-unit_of_wt,
* volume TYPE /bi0/pmaterial-volume,
* volumeunit TYPE /bi0/pmaterial-volumeunit,
base_uom TYPE /bi0/pmaterial-base_uom,
del_flag TYPE /bi0/pmaterial-del_flag,
objvers TYPE /bi0/pmaterial-objvers,
matl_cat TYPE /bi0/pmaterial-matl_cat,
END OF ty_pmaterial.

TYPES: BEGIN OF ty_pkupa,


material TYPE /bi0/pmaterial-material,
CREATEDON TYPE /BI0/OICREATEDON,
" RFC 2000621 changes
MATL_GROUP TYPE /BI0/OIMATL_GROUP,
rt_confmat TYPE /bi0/oirt_confmat,
vendor TYPE /bi0/oivendor,
/bic/zeanupc TYPE /bi0/pmaterial-/bic/zeanupc,
/bic/zmerc_c1 TYPE /bic/oizmerc_c1,
/bic/zmerc_c2 TYPE /bic/oizmerc_c2,
/bic/zmerc_c3 TYPE /bic/oizmerc_c3,
/bic/zmerc_c4 TYPE /bic/oizmerc_c4,
/BIC/ZZBRAND TYPE /BIC/OIZZBRAND,
/bic/zzean14 TYPE /bi0/pmaterial-/bic/zzean14,
/bic/zmean_ean TYPE /bic/oizmean_ean,
/bic/zme TYPE /bic/oizme,
* gross_wt TYPE /bi0/pmaterial-gross_wt,
* unit_of_wt TYPE /bi0/pmaterial-unit_of_wt,
* volume TYPE /bi0/pmaterial-volume,
* volumeunit TYPE /bi0/pmaterial-volumeunit,
base_uom TYPE /bi0/pmaterial-base_uom,
del_flag TYPE /bi0/pmaterial-del_flag,
END OF ty_pkupa.

* Vendor MAterial
TYPES: BEGIN OF ty_vendmate,
/bic/zzean2 TYPE /bic/oizzean2,
vendor TYPE /bi0/oivendor,
END OF ty_vendmate.

* Customer
TYPES: BEGIN OF ty_pcustomer,
customer TYPE /bi0/oicustomer,
/bic/zlayvr TYPE /bic/oizlayvr,
END OF ty_pcustomer.

* Site Information
TYPES: BEGIN OF ty_zsite,
/bic/zsite TYPE /bic/oizsite,
distr_chan TYPE /bi0/oidistr_chan,
region TYPE /bi0/oiregion,
rt_custpl TYPE /bi0/oirt_custpl,
sales_dist TYPE /bi0/oisales_dist,
/bic/zzprova TYPE /bic/oizzprova,
/bic/zztotar TYPE /bic/oizztotar,
/bic/zztotsar TYPE /bic/oizztotsar,
/bic/zzsort2 TYPE /bic/oizzsort2,
/bic/zzsitegrp TYPE /bic/oizzsitegrp,
END OF ty_zsite.
* Payer
TYPES: BEGIN OF ty_payer,
customer TYPE /bi0/oicustomer,
END OF ty_payer.

* Material Group
TYPES: BEGIN OF ty_mc_sel,
matl_group TYPE /bi0/oimatl_group,
END OF ty_mc_sel.

* Material Hierarchy
TYPES: BEGIN OF ty_mc_hier,
matl_group TYPE /bi0/oimatl_group,
/bic/zmerc_c1 TYPE /bi0/pmatl_group-/bic/zmerc_c1,
/bic/zmerc_c2 TYPE /bi0/pmatl_group-/bic/zmerc_c2,
/bic/zmerc_c3 TYPE /bi0/pmatl_group-/bic/zmerc_c3,
/bic/zmerc_c4 TYPE /bi0/pmatl_group-/bic/zmerc_c4,
objvers TYPE /bi0/pmaterial-objvers,
END OF ty_mc_hier.

* Control File
TYPES: BEGIN OF ty_ctrl_file,
counter(6) TYPE n,
sep01(2) TYPE c,
cnt_pack(6) TYPE n,
sep02(2) TYPE c,
cnt_vk(6) TYPE n,
sep08(2) TYPE c,
request TYPE rsrequnr,
sep03(2) TYPE c,
zsite TYPE _ty_s_tg_1-/bic/zsite,
sep04(2) TYPE c,
calday TYPE _ty_s_tg_1-calday,
sep05(2) TYPE c,
eancount(6) TYPE n,
sep06(2) TYPE c,
date LIKE sy-datum,
sep07(2) TYPE c,
time LIKE sy-uzeit,
END OF ty_ctrl_file.

TYPES: BEGIN OF ty_ctrl_nr,


zsite TYPE _ty_s_tg_1-/bic/zsite,
calday TYPE _ty_s_tg_1-calday,
number TYPE i,
END OF ty_ctrl_nr.

TYPES: BEGIN OF ty_payer_new,


zsite TYPE /bic/oizsite,
customer TYPE /bi0/oicustomer,
counter TYPE i,
END OF ty_payer_new.

TYPES: BEGIN OF ty_customer_new,


customer TYPE /bi0/oicustomer,
zzlast TYPE /bic/oizzlast,
zzkunnr TYPE /bic/oizzkunnr,
END OF ty_customer_new.
TYPES: BEGIN OF ty_sitegrp,
/bic/zzsitegrp TYPE /bic/aZCODASGP00-/bic/zzsitegrp,
/bic/zzlocnr TYPE /bic/aZCODASGP00-/bic/zzlocnr,
END OF ty_sitegrp.
*-----------Internal Table Declaration

DATA: lt_plant TYPE STANDARD TABLE OF ty_plant,


lt_matnr TYPE STANDARD TABLE OF ty_matnr,
lt_kupa TYPE STANDARD TABLE OF ty_skupa,
lt_promo TYPE STANDARD TABLE OF ty_promo,
lt_pmaterial TYPE STANDARD TABLE OF ty_pmaterial,
lt_pmaterial1 TYPE STANDARD TABLE OF ty_pmaterial,
lt_pkupa TYPE STANDARD TABLE OF ty_pkupa,
lt_vendmate TYPE STANDARD TABLE OF ty_vendmate,
lt_pcust_sel TYPE STANDARD TABLE OF ty_pcustomer,
lt_pcustomer TYPE STANDARD TABLE OF ty_pcustomer,
lt_zsite_sel TYPE STANDARD TABLE OF ty_zsite,
lt_zsite TYPE STANDARD TABLE OF ty_zsite,
lt_payer TYPE STANDARD TABLE OF ty_payer,
lt_mc_sel TYPE STANDARD TABLE OF ty_mc_sel,
lt_mc_hier TYPE STANDARD TABLE OF ty_mc_hier,
lt_count_ean TYPE STANDARD TABLE OF ty_ctrl_nr,
lt_count_vk TYPE STANDARD TABLE OF ty_ctrl_nr,
lt_payer_new TYPE STANDARD TABLE OF ty_payer_new,
lt_customer_new TYPE STANDARD TABLE OF ty_customer_new,
*lt_zasor_pc TYPE STANDARD TABLE OF ty_zasor_pc, ***not needed in
*blu
lt_promo_nat TYPE STANDARD TABLE OF ty_promo_nat,
lt_promo_nat_sel TYPE STANDARD TABLE OF ty_promo_nat,
lt_ctrl_file TYPE STANDARD TABLE OF ty_ctrl_file,
lt_promo_sel TYPE STANDARD TABLE OF ty_promo_sel,
lt_sitegrp TYPE STANDARD TABLE OF ty_sitegrp,
lt_target_tmp TYPE STANDARD TABLE OF _ty_s_tg_1.

*--------WorkArea Declaration-------------------*
DATA: lwa_plant TYPE ty_plant,
lwa_matnr TYPE ty_matnr,
lwa_pmaterial TYPE ty_pmaterial,
lwa_pmaterial1 TYPE ty_pmaterial,
lwa_kupa TYPE ty_skupa,
lwa_pkupa TYPE ty_pkupa,
lwa_pcustomer TYPE ty_pcustomer,
lwa_zsite TYPE ty_zsite,
lwa_promo_sel TYPE ty_promo_sel,
lwa_promo TYPE ty_promo,
lwa_payer TYPE ty_payer,
lwa_promo_nat TYPE ty_promo_nat,
lwa_mc_sel TYPE ty_mc_sel,
lwa_mc_hier TYPE ty_mc_hier,
lwa_ctrl_file TYPE ty_ctrl_file,
lwa_payer_new TYPE ty_payer_new,
lwa_customer_new TYPE ty_customer_new,
* lwa_zasor_pc TYPE ty_zasor_pc, *** not in scope in Blu
lwa_count TYPE ty_ctrl_nr,
lwa_vendmate TYPE ty_vendmate,
lwa_count_ean TYPE ty_ctrl_nr,
lwa_tvarvc TYPE tvarvc,
lwa_sitegrp TYPE ty_sitegrp.
*---------Variable Declaration--------------------*

DATA: lv_tabix TYPE sy-tabix,


lv_lines TYPE i,
lv_lines_mat TYPE i,
lv_lines_ean14 TYPE i,
lv_lines_mc TYPE i,
lv_lines_cust TYPE i,
lv_lines_kupa TYPE i,
lv_lines_site TYPE i,
lv_date TYPE sy-datum,
lv_date_sel TYPE sy-datum,
lv_week TYPE scal-week,
lv_site TYPE /bi0/oiplant,
lv_ldate TYPE /bic/oizzlast,
lv_kunnr TYPE /bic/oizzkunnr,
lv_distr_chan TYPE /bi0/oidistr_chan,
lv_count_ean TYPE i, "Counter missing/wrong EAN
lv_count_p2 TYPE i,
"Counter P2
lv_count_pack TYPE i,
"Counter nr of lines datapack
lv_file(80) TYPE c,
lv_site_1st_char TYPE c,
lv_filename(10) TYPE c,
lv_lines_vendmat TYPE i,
lv_tvarvc_low TYPE tvarvc-low,
lv_cubo TYPE string,
lv_zme TYPE /bic/oizme.
*---------------Field-Symbols Declaration----------*
FIELD-SYMBOLS: <ls_zsite> TYPE ty_zsite.

*-- fill table "MONITOR" with values of structure "MONITOR_REC"


*- to make monitor entries
... "to cancel the update process
* raise exception type CX_RSROUT_ABORT.
DATA: lt_material TYPE STANDARD TABLE OF /bi0/pmaterial,
lwa_material TYPE /bi0/pmaterial.

LOOP AT RESULT_PACKAGE ASSIGNING <result_fields>.

IF <result_fields>-/bic/zeanupc EQ space.
* Do Nothing
ELSE.
* Convert the Format
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = <result_fields>-/bic/zeanupc
IMPORTING
output = <result_fields>-/bic/zeanupc.

* Pass Source Field Eanupc to EAN 13


lwa_matnr-zeanupc = <result_fields>-/bic/zeanupc.
APPEND lwa_matnr TO lt_matnr.

* Pass Source Field Eanupc to EAN 14


lwa_kupa-zean14 = <result_fields>-/bic/zeanupc.
APPEND lwa_kupa TO lt_kupa.
ENDIF.

* Clear WorkArea
CLEAR: lwa_matnr,
lwa_kupa.
ENDLOOP.
SORT: lt_matnr,
lt_kupa.

IF NOT RESULT_PACKAGE[] IS INITIAL.

* * Select data from the material master for the EANUPC


SELECT material CREATEDON MATL_GROUP rt_confmat vendor
/bic/zeanupc /bic/zmerc_c1 /bic/zmerc_c2 /bic/zmerc_c3
/bic/zmerc_c4 /bic/ZZBRAND /bic/zmean_ean /bic/zme base_uom
del_flag objvers
FROM /bi0/pmaterial
INTO CORRESPONDING FIELDS OF TABLE lt_pmaterial
FOR ALL ENTRIES IN RESULT_PACKAGE
WHERE objvers = 'A'
AND /bic/zmean_ean = 'X'
"included OR as part of GBD-375
AND del_flag <> 'X'
AND ( /bic/zeanupc EQ RESULT_PACKAGE-/bic/zeanupc
OR /BIC/ZZEAN14 EQ RESULT_PACKAGE-/bic/zeanupc ).
"added by ZKSHIRVI GBD375

IF sy-subrc EQ 0.
SORT lt_pmaterial BY /bic/zeanupc createdon.
ENDIF.
ENDIF.
* Select data from the material master for the material group
SELECT material createdon matl_group rt_confmat vendor
/bic/zeanupc
/bic/zmerc_c1 /bic/zmerc_c2 /bic/zmerc_c3 /bic/zmerc_c4
/bic/zzbrand /bic/zmean_ean objvers matl_cat base_uom
"GBD-419 base_uom added
FROM /bi0/pmaterial
INTO CORRESPONDING FIELDS OF TABLE lt_pmaterial1
FOR ALL ENTRIES IN lt_mc_sel
WHERE objvers = 'A' "Active version
AND matl_cat = '30'
AND matl_group EQ lt_mc_sel-matl_group.
IF sy-subrc EQ 0.
* SORT lt_pmaterial BY /bic/zzean2.
SORT lt_pmaterial1 BY matl_group.
ENDIF.
* ENDIF.

DESCRIBE TABLE lt_kupa LINES lv_lines_kupa.

IF lv_lines_kupa GT 0.
SELECT material CREATEDON MATL_GROUP rt_confmat vendor
/bic/zeanupc /bic/zmerc_c1 /bic/zmerc_c2 /bic/zmerc_c3
/bic/zmerc_c4 /bic/ZZBRAND /bic/zzean14 /bic/zmean_ean
/bic/zme DEL_FLAG
base_uom
FROM /bi0/pmaterial
INTO CORRESPONDING FIELDS OF TABLE lt_pkupa
FOR ALL ENTRIES IN lt_kupa
WHERE objvers = 'A' "Active version
AND /bic/zzean14 EQ lt_kupa-zean14
AND /bic/zmean_ean = 'X'
"Added this condition as earlier we used to load data from ZZEAN2/3
AND del_flag <> 'X'.
IF sy-subrc EQ 0.
* SORT lt_pkupa BY /bic/zzean3.
SORT lt_pkupa DESCENDING BY /bic/zzean14 CREATEDON.
ENDIF.
ENDIF.

DELETE ADJACENT DUPLICATES FROM lt_pmaterial COMPARING /bic/zeanupc


CREATEDON.
DELETE ADJACENT DUPLICATES FROM lt_pkupa COMPARING /bic/zzean14
CREATEDON.
DELETE ADJACENT DUPLICATES FROM lt_pmaterial1 COMPARING matl_group
createdon.

* Get Merchandise Category Hierarchy Data


DESCRIBE TABLE lt_mc_sel LINES lv_lines_mc.
IF lv_lines_mc GT 0.
SELECT objvers
matl_group
/bic/zmerc_c1
/bic/zmerc_c2
/bic/zmerc_c3
/bic/zmerc_c4
FROM /bi0/pmatl_group
INTO CORRESPONDING FIELDS OF TABLE lt_mc_hier
FOR ALL ENTRIES IN lt_mc_sel
WHERE matl_group EQ lt_mc_sel-matl_group
AND objvers EQ lc_a.
IF sy-subrc EQ 0.
SORT lt_mc_hier BY matl_group.
ENDIF.
ENDIF.

BREAK XKSHIRVI.

LOOP AT RESULT_PACKAGE ASSIGNING <result_fields>.

IF NOT <result_fields>-/bic/zeanupc IS INITIAL.


* First search the article for which the EAN is considered the
* main/default EAN
READ TABLE lt_pmaterial INTO lwa_pmaterial
WITH KEY /bic/zeanupc = <result_fields>-/bic/zeanupc.
* OR /BIC/ZZEAN14 = <result_fields>-/bic/zeanupc.
* BINARY SEARCH.
IF sy-subrc EQ 0.
lv_zme = lwa_pmaterial-/bic/zme.
<result_fields>-rt_confmat = lwa_pmaterial-rt_confmat.
<result_fields>-vendor = lwa_pmaterial-vendor.
<result_fields>-material = lwa_pmaterial-material.
<result_fields>-/bic/zzbrand = lwa_pmaterial-/bic/zzbrand.
<result_fields>-MATL_GROUP = lwa_pmaterial-MATL_GROUP.
<result_fields>-/bic/zmerc_c1 = lwa_pmaterial-/bic/zmerc_c1.
<result_fields>-/bic/zmerc_c2 = lwa_pmaterial-/bic/zmerc_c2.
<result_fields>-/bic/zmerc_c3 = lwa_pmaterial-/bic/zmerc_c3.
<result_fields>-/bic/zmerc_c4 = lwa_pmaterial-/bic/zmerc_c4.
<result_fields>-base_uom = lwa_pmaterial-base_uom.
<result_fields>-CPSAEXCUBU = <result_fields>-CPSAEXCUSU.

* IF Information of lt_pmaterial is blank then search in lt_pkupa table


IF lwa_pmaterial-material IS INITIAL
AND lwa_pmaterial-vendor IS INITIAL
AND lwa_pmaterial-rt_confmat IS INITIAL.
READ TABLE lt_pkupa INTO lwa_pkupa
WITH KEY /bic/zzean14 = <result_fields>-/bic/zeanupc.
* BINARY SEARCH.
IF sy-subrc EQ 0.
lv_zme = lwa_pkupa-/bic/zme. "added by XKSHIRVI GBD-375
<result_fields>-rt_confmat = lwa_pkupa-rt_confmat.
<result_fields>-vendor = lwa_pkupa-vendor.
<result_fields>-material = lwa_pkupa-material.
<result_fields>-/bic/zzbrand = lwa_pkupa-/bic/zzbrand.
<result_fields>-MATL_GROUP = lwa_pkupa-MATL_GROUP.
<result_fields>-/bic/zmerc_c1 = lwa_pkupa-/bic/zmerc_c1.
<result_fields>-/bic/zmerc_c2 = lwa_pkupa-/bic/zmerc_c2.
<result_fields>-/bic/zmerc_c3 = lwa_pkupa-/bic/zmerc_c3.
<result_fields>-/bic/zmerc_c4 = lwa_pkupa-/bic/zmerc_c4.
<result_fields>-base_uom = lwa_pkupa-base_uom.
"GBD-419
<result_fields>-CPSAEXCUBU = <result_fields>-CPSAEXCUSU
* lv_zme.
ELSE.

READ TABLE lt_pmaterial1 INTO lwa_pmaterial1 WITH KEY


matl_group = <result_fields>-/bic/ZPIK_TR.
IF sy-subrc EQ 0. "5
<result_fields>-rt_confmat =
lwa_pmaterial1-rt_confmat.
<result_fields>-vendor =
lwa_pmaterial1-vendor.
<result_fields>-material =
lwa_pmaterial1-material.
<result_fields>-/bic/zzbrand =
lwa_pmaterial1-/bic/zzbrand.
<result_fields>-matl_group =
lwa_pmaterial1-matl_group.
<result_fields>-/bic/zmerc_c1 =
lwa_pmaterial1-/bic/zmerc_c1.
<result_fields>-/bic/zmerc_c2 =
lwa_pmaterial1-/bic/zmerc_c2.
<result_fields>-/bic/zmerc_c3 =
lwa_pmaterial1-/bic/zmerc_c3.
<result_fields>-/bic/zmerc_c4 =
lwa_pmaterial1-/bic/zmerc_c4.
<result_fields>-base_uom =
lwa_pmaterial1-base_uom. "GBD-419
ELSE.

* No known EAN code and KUPA code-> Fill the material field with materia
* all 9's at the end
CONCATENATE <result_fields>-/bic/ZPIK_TR
'99999999999999'
INTO <result_fields>-material.
<result_fields>-rt_confmat = <result_fields>-material.
lwa_count-zsite = <result_fields>-/bic/zsite.
lwa_count-calday = <result_fields>-calday.

IF <result_fields>-matl_group is not INITIAL.


* Read Hierarchy Table based on source material group
READ TABLE lt_mc_hier INTO lwa_mc_hier
WITH KEY matl_group = <result_fields>-matl_group.
" BINARY SEARCH.
IF sy-subrc EQ 0.
<result_fields>-/bic/zmerc_c1 =
lwa_mc_hier-/bic/zmerc_c1.
<result_fields>-/bic/zmerc_c2 =
lwa_mc_hier-/bic/zmerc_c2.
<result_fields>-/bic/zmerc_c3 =
lwa_mc_hier-/bic/zmerc_c3.
<result_fields>-/bic/zmerc_c4 =
lwa_mc_hier-/bic/zmerc_c4.
ENDIF.
ENDIF.

lwa_count-number = 1.
COLLECT lwa_count INTO lt_count_ean.
lv_count_ean = lv_count_ean + 1.
ENDIF.

ENDIF.
ENDIF.
ELSEIF sy-subrc NE 0.

READ TABLE lt_pkupa INTO lwa_pkupa


WITH KEY /bic/zzean14 = <result_fields>-/bic/zeanupc.
" BINARY SEARCH.
IF sy-subrc EQ 0.
lv_zme = lwa_pkupa-/bic/zme. "added by XKSHIRVI GBD-375
<result_fields>-rt_confmat = lwa_pkupa-rt_confmat.
<result_fields>-vendor = lwa_pkupa-vendor.
<result_fields>-material = lwa_pkupa-material.
<result_fields>-/bic/zzbrand = lwa_pkupa-/bic/zzbrand.
<result_fields>-MATL_GROUP = lwa_pkupa-MATL_GROUP.
<result_fields>-/bic/zmerc_c1 = lwa_pkupa-/bic/zmerc_c1.
<result_fields>-/bic/zmerc_c2 = lwa_pkupa-/bic/zmerc_c2.
<result_fields>-/bic/zmerc_c3 = lwa_pkupa-/bic/zmerc_c3.
<result_fields>-/bic/zmerc_c4 = lwa_pkupa-/bic/zmerc_c4.
<result_fields>-base_uom = lwa_pkupa-base_uom. "GBD-419
<result_fields>-CPSAEXCUBU = <result_fields>-CPSAEXCUSU
* lv_zme.
ELSE.
* No known EAN code and KUPA code-> Fill the material field with materia
* all 9's at the end
CONCATENATE <result_fields>-/bic/ZPIK_TR '99999999999999'
INTO <result_fields>-material.
<result_fields>-rt_confmat = <result_fields>-material.
lwa_count-zsite = <result_fields>-/bic/zsite.
lwa_count-calday = <result_fields>-calday.

IF <result_fields>-matl_group is not INITIAL.


* Read Hierarchy Table based on source material group
READ TABLE lt_mc_hier INTO lwa_mc_hier
WITH KEY matl_group = <result_fields>-matl_group.
" BINARY SEARCH.
IF sy-subrc EQ 0.
<result_fields>-/bic/zmerc_c1 =
lwa_mc_hier-/bic/zmerc_c1.
<result_fields>-/bic/zmerc_c2 =
lwa_mc_hier-/bic/zmerc_c2.
<result_fields>-/bic/zmerc_c3 =
lwa_mc_hier-/bic/zmerc_c3.
<result_fields>-/bic/zmerc_c4 =
lwa_mc_hier-/bic/zmerc_c4.
ENDIF.
ENDIF.

lwa_count-number = 1.
COLLECT lwa_count INTO lt_count_ean.
lv_count_ean = lv_count_ean + 1.
ENDIF.
ELSE.
CONCATENATE <result_fields>-/bic/ZPIK_TR '99999999999999'
INTO <result_fields>-material.
<result_fields>-rt_confmat = <result_fields>-material.

IF <result_fields>-matl_group is not INITIAL.


* Read Hierarchy Table based on source material group
READ TABLE lt_mc_hier INTO lwa_mc_hier
WITH KEY matl_group = <result_fields>-matl_group.
"BINARY SEARCH.
IF sy-subrc EQ 0.
<result_fields>-/bic/zmerc_c1 =
lwa_mc_hier-/bic/zmerc_c1.
<result_fields>-/bic/zmerc_c2 =
lwa_mc_hier-/bic/zmerc_c2.
<result_fields>-/bic/zmerc_c3 =
lwa_mc_hier-/bic/zmerc_c3.
<result_fields>-/bic/zmerc_c4 =
lwa_mc_hier-/bic/zmerc_c4.
ENDIF.
ENDIF.
ENDIF.
ELSE.

CONCATENATE <result_fields>-/bic/ZPIK_TR '99999999999999'


INTO <result_fields>-material.
<result_fields>-rt_confmat = <result_fields>-material.
IF <result_fields>-matl_group is not INITIAL.
READ TABLE lt_mc_hier INTO lwa_mc_hier
WITH KEY matl_group = <result_fields>-matl_group.
"BINARY SEARCH.

IF sy-subrc EQ 0.
<result_fields>-/bic/zmerc_c1 = lwa_mc_hier-/bic/zmerc_c1.
<result_fields>-/bic/zmerc_c2 = lwa_mc_hier-/bic/zmerc_c2.
<result_fields>-/bic/zmerc_c3 = lwa_mc_hier-/bic/zmerc_c3.
<result_fields>-/bic/zmerc_c4 = lwa_mc_hier-/bic/zmerc_c4.
ENDIF.
ENDIF.

ENDIF.
CLEAR lv_zme.
CLEAR lwa_material.

ENDLOOP.

*===================Start of GBD-407 changes by XKSHIRVI=============

DATA: lv_rpa_tix TYPE /bi0/oirpa_tix.


DATA lv_cnt TYPE i.

SORT RESULT_PACKAGE BY calday /bic/zsite rpa_tix rpa_rqu ASCENDING.

LOOP AT RESULT_PACKAGE ASSIGNING <result_fields>


GROUP BY ( calday = <result_fields>-calday
/bic/zsite = <result_fields>-/bic/zsite
rpa_tix = <result_fields>-rpa_tix
rpa_rrq = <result_fields>-rpa_rqu ).
"GBD-411 added RPA_RQU to sort and group.

BREAK xkshirvi.

IF lv_rpa_tix NE <result_fields>-rpa_tix.
CLEAR lv_cnt.

lv_rpa_tix = <result_fields>-rpa_tix.
ELSE.
CLEAR lv_rpa_tix.

lv_rpa_tix = <result_fields>-rpa_tix.
ENDIF.

lv_cnt = lv_cnt + 1.
<result_fields>-/bic/zpos_cust = lv_cnt.

ENDLOOP.

*=====================End Of GBD-407===================================

*$*$ end of routine - insert your code only before this line *-*
ENDMETHOD. "end_routine
*----------------------------------------------------------------------*
* Inverse method inverse_end_routine
*----------------------------------------------------------------------*
* This subroutine needs to be implemented only for direct access
* (for better performance) and for the Report/Report Interface
* (drill through).
* The inverse routine should transform a projection and
* a selection for the target to a projection and a selection
* for the source, respectively.
* If the implementation remains empty all fields are filled and
* all values are selected.
*----------------------------------------------------------------------*
* Customer comment:
*----------------------------------------------------------------------*
METHOD inverse_end_routine.

* IMPORTING
* i_r_selset_outbound TYPE REF TO cl_rsmds_set
* i_th_fields_outbound TYPE HASHED TABLE
* i_r_selset_outbound_complete TYPE REF TO cl_rsmds_set
* i_r_universe_inbound TYPE REF TO cl_rsmds_universe
* CHANGING
* c_r_selset_inbound TYPE REF TO cl_rsmds_set
* c_th_fields_inbound TYPE HASHED TABLE
* c_exact TYPE rs_bool

*$*$ begin of inverse routine - insert your code only below this line*-*
... "insert your code here
*$*$ end of inverse routine - insert your code only before this line *-*

ENDMETHOD. "inverse_end_routine

METHOD new_record__end_routine.

***** IMPLEMENTATION is only visible in generated program *****

ENDMETHOD.
ENDCLASS. "routine IMPLEMENTATION

You might also like