@AbapCatalog.sqlViewName: 'SCMPRDLOMAPMDMA'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory : #L
@ObjectModel.usageType.dataClass: #MASTER
@ClientHandling.type: #INHERITED
@ClientHandling.algorithm: #AUTOMATED
@EndUserText.label: 'Join of /SAPAPO/LOCMAP, P_PRDSCM_MDMA_MDLV, MARC'
define view ScmPrd_Locmap_Mdma
as select from /sapapo/matplsta
join /sapapo/locmap on /sapapo/locmap.locid = /sapapo/matplsta.locid
join mdma on mdma.matnr = /sapapo/matplsta.matnr and
mdma.berid = /sapapo/locmap.ext_locno
join v_marc_md as marc on marc.werks = mdma.werks and
marc.matnr = mdma.matnr
left outer join mdfddb on mdfddb.matnr = mdma.matnr and
mdfddb.berid = mdma.berid
left outer join t460a on t460a.werks = mdma.werks and
t460a.sobsl = mdma.sobsl
{
key /sapapo/matplsta.matid as matid,
key /sapapo/matplsta.locid,
/sapapo/locmap.loctype,
/sapapo/matplsta.matnr,
mdma.werks,
// only to verify the view result, next 2 fields not needed for mapping
/sapapo/locmap.locno,
mdma.berid,
// field used in CIF mapping
marc.fhori,
mdma.disgr,
marc.strgr,
marc.wzeit,
marc.dzeit,
marc.bearz,
marc.ruezt,
marc.tranz,
// consider material planning status for deletion indicator
case
when /sapapo/matplsta.plstat = '9' then 'X'
else ''
end as lvorm,
marc.mtvfp,
marc.cuobj,
marc.webaz,
case
when mdma.plifzx = 'X' then mdma.plifz
else marc.plifz
end as plifz,
mdma.lgrad,
case
// subcontracting
when marc.beskz = 'E' and /sapapo/locmap.loctype = '1050' then 'X'
// special procurement in MRP area
when t460a.beskz is not null and /sapapo/locmap.loctype = '1007' then t460a.beskz
// default case: marc
// Flexible Integration
// For Product Locations with Procurement Type 'X' & PLSTAT '1'
// & ( Scope '2' PP/DS Restricted for Inhouse Only
// or Scope '4' PP/DS Entire Scope for Inhouse Only )
// Procurement Type should be changed to 'E'
when ( marc.beskz = 'X' and
/sapapo/matplsta.plstat = '1' and
(/sapapo/matplsta.scope = '2' or /sapapo/matplsta.scope = '4') )
then 'E'
else marc.beskz
end as beskz,
mdma.eisbe,
mdma.fxhor,
mdma.minbe,
mdma.mabst,
mdma.dispo,
marc.ekgrp,
marc.ladgr,
marc.frtme,
marc.maabc,
marc.diber,
marc.bwscl,
// matlosz
mdma.bstfe,
mdma.bstmi,
mdma.bstma,
mdma.bstrf,
mdma.ausss,
mdma.rdprf,
mdma.shzet,
mdma.disls,
//Matrq
marc.vrmod,
marc.vint1,
marc.vint2,
marc.sbdkz,
marc.miskz,
marc.uneto,
marc.ueeto,
marc.stdpd,
// FIXTI
mdfddb.mfxdt,
mdfddb.mfxti,
marc.scm_conhap,
marc.scm_conhap_out,
marc.scm_fixpeg_prod_set,
marc.scm_get_alerts,
case
when /sapapo/locmap.loctype = '1050' then mdma.scm_giprt //Do not copy value for subcontractor from plant
when mdma.scm_giprt = 0 or mdma.scm_giprt is null and marc.scm_giprt is not null then marc.scm_giprt
else mdma.scm_giprt
end as scm_giprt,
case
when /sapapo/locmap.loctype = '1050' then mdma.scm_grprt //Do not copy value for subcontractor from plant
when mdma.scm_grprt = 0 or mdma.scm_grprt is null and marc.scm_grprt is not null then marc.scm_grprt
else mdma.scm_grprt
end as scm_grprt,
marc.scm_heur_id,
marc.scm_hunit,
marc.scm_hunit_out,
marc.scm_lsuom,
mdma.scm_matlocid_guid22,
marc.scm_maturity_dur,
marc.scm_package_id,
marc.scm_peg_future_alert,
marc.scm_peg_past_alert,
marc.scm_peg_strategy,
marc.scm_peg_wo_alert_fst,
marc.scm_reldt,
mdma.scm_reord_dur,
marc.scm_res_net_name,
marc.scm_rrp_type,
//Fallback to Plant if Storage Cost at MRP Area is initial
case
when mdma.scm_scost = 0.0 then marc.scm_scost
else mdma.scm_scost
end as scm_scost,
marc.scm_shelf_life_dur,
marc.scm_shelf_life_loc,
marc.scm_shlf_lfe_req_max,
marc.scm_shlf_lfe_req_min,
//Fallback to Plant if Safety Stock Penalty at MRP Area is initial
case
when mdma.scm_sspen = 0.0 then marc.scm_sspen
else mdma.scm_sspen
end as scm_sspen,
marc.scm_stra1,
mdma.scm_target_dur,
mdma.scm_tstrid,
marc.scm_whatbom,
marc.dummy_plnt_incl_eew_ps,
mdma.shflg,
mdma.loekz,
mdma.scm_rrp_sel_group,
marc.scm_intsrc_prof,
marc.scm_prio,
marc.scm_min_pass_amount,
marc.scm_profid,
mdma.scm_thruput_time,
mdma.scm_tpop,
mdma.scm_safty_v,
mdma.scm_ppsaftystk,
mdma.scm_ppsaftystk_v,
mdma.scm_repsafty,
mdma.scm_repsafty_v,
mdma.scm_reord_v,
mdma.scm_maxstock_v,
mdma.scm_scost_prcnt,
mdma.scm_proc_cost,
mdma.scm_ndcostwe,
mdma.scm_ndcostwa,
mdma.scm_coninp,
mdma.scm_iunit,
marc.scm_sft_lock,
mdma.saftystock_method,
mdma.convh
}
where
(
/sapapo/locmap.loctype = '1007'
or /sapapo/locmap.loctype = '1050'
)
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"/SAPAPO/LOCMAP",
"/SAPAPO/MATPLSTA",
"MDFDDB",
"MDMA",
"T460A",
"V_MARC_MD"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/