@AbapCatalog.sqlViewName: 'PPRODUCTWD'
@VDM.viewType: #COMPOSITE
@VDM.private: true
@ClientDependent: true
@AbapCatalog.compiler.compareFilter: true
//@EndUserText.label: 'Product Root Union (draft)'
@AccessControl.authorizationCheck: #NOT_REQUIRED
define view P_ProductWD
as select from
I_Product as ActiveDocument
left outer join P_ProductD as DraftDocument on ActiveDocument.Product = DraftDocument.Activeproduct
{
key cast ( hextobin('00000000000000000000000000000000') as sysuuid_x ) as Draftkey,
key ActiveDocument.Product as ActiveProduct,
ActiveDocument.Product,
ActiveDocument.ProductType,
ActiveDocument.CrossPlantStatus,
ActiveDocument.CrossPlantStatusValidityDate,
ActiveDocument.CreationDate,
ActiveDocument.CreatedByUser,
ActiveDocument.LastChangeDate,
ActiveDocument.LastChangedByUser,
cast(ActiveDocument.IsMarkedForDeletion as boole_d) as IsMarkedForDeletion,
ActiveDocument.ProductOldID,
ActiveDocument.GrossWeight,
ActiveDocument.PurchaseOrderQuantityUnit,
//ActiveDocument.SourceOfSupply, //pstat changes
ActiveDocument.WeightUnit,
ActiveDocument.CountryOfOrigin,
ActiveDocument.CompetitorID,
ActiveDocument.ProductGroup,
ActiveDocument.BaseUnit,
ActiveDocument.ItemCategoryGroup,
ActiveDocument.NetWeight,
ActiveDocument.ProductHierarchy,
ActiveDocument.Division,
// ActiveDocument.VarblPurOrdUnitIsActive, "PSTAT Changes
ActiveDocument.VolumeUnit,
ActiveDocument.MaterialVolume,
ActiveDocument.ANPCode,
// ActiveDocument.ProductCategory,
ActiveDocument.Brand,
// ActiveDocument.ProcurementRule, //pstat changes
ActiveDocument.ValidityStartDate,
ActiveDocument.LowLevelCode,
ActiveDocument.ProdNoInGenProdInPrepackProd,
ActiveDocument.SerialIdentifierAssgmtProfile,
ActiveDocument.SizeOrDimensionText,
ActiveDocument.IndustryStandardName,
ActiveDocument.ProductStandardID,
ActiveDocument.InternationalArticleNumberCat,
ActiveDocument.ProductIsConfigurable,
ActiveDocument.IsBatchManagementRequired,
ActiveDocument.ExternalProductGroup,
ActiveDocument.CrossPlantConfigurableProduct,
ActiveDocument.SerialNoExplicitnessLevel,
ActiveDocument.ProductManufacturerNumber,
ActiveDocument.ManufacturerPartProfile,
// Retail Fields
ActiveDocument.BaseUnitSpecificProductLength,
ActiveDocument.BaseUnitSpecificProductWidth,
ActiveDocument.BaseUnitSpecificProductHeight,
ActiveDocument.ProductMeasurementUnit,
ActiveDocument.ProductValidStartDate,
ActiveDocument.ArticleCategory,
ActiveDocument.ContentUnit,
ActiveDocument.NetContent,
ActiveDocument.ComparisonPriceQuantity,
ActiveDocument.GrossContent,
ActiveDocument.ProductValidEndDate,
ActiveDocument.AssortmentListType,
ActiveDocument.HasTextilePartsWthAnimalOrigin,
ActiveDocument.ProductSeasonUsageCategory,
ActiveDocument._ProductRetail.ServiceAgreement,
ActiveDocument._ProductRetail.ConsumptionValueCategory, // ref. handling for MARC
ActiveDocument._ProductRetail.GoodsIssueUnit, // ref. handling for MARC
//ActiveDocument._ProductRetail.CountryOfOrigin,
ActiveDocument._ProductRetail.RegionOfOrigin, // ref. handling for MARC
ActiveDocument._ProductRetail.AssortmentGrade,
ActiveDocument._ProductRetail.StoreListingProcedure,
ActiveDocument._ProductRetail.DistrCntrListingProcedure,
ActiveDocument._ProductRetail.StoreListingStartDate,
ActiveDocument._ProductRetail.StoreListingEndDate,
ActiveDocument._ProductRetail.DistrCntrListingStartDate,
ActiveDocument._ProductRetail.DistrCntrListingEndDate,
ActiveDocument._ProductRetail.StoreSaleStartDate,
ActiveDocument._ProductRetail.StoreSaleEndDate,
ActiveDocument._ProductRetail.DistrCntrSaleStartDate,
ActiveDocument._ProductRetail.DistrCntrSaleEndDate,
ActiveDocument._ProductRetail.ValuationClass, // ref. handling for MBEW
ActiveDocument._ProductRetail.CommodityCode,
ActiveDocument._ProductRetail.ValuationMargin, // ref. handling for MBEW
ActiveDocument._ProductRetail.CommoditiyCodeNumberUnit,
cast( 'X' as boole_d ) as IsActiveEntity,
cast( ' ' as boole_d ) as HasActiveEntity,
cast(
case
when DraftDocument.Draftkey is null
then ' '
else 'X'
end as boole_d ) as HasDraftEntity,
cast(DraftDocument.Draftkey as sysuuid_x ) as DraftAdministrativeDataUUID
}
union all
select from P_ProductD as DraftDocument
inner join I_DraftAdministrativeData as DraftAdministrativeData on DraftAdministrativeData.DraftUUID = DraftDocument.Draftkey
{
key DraftDocument.Draftkey,
key DraftDocument.Activeproduct,
DraftDocument.product,
DraftDocument.producttype,
DraftDocument.crossplantstatus,
DraftDocument.crossplantstatusvaliditydate,
DraftDocument.creationdate,
DraftDocument.createdbyuser,
DraftDocument.lastchangedate,
DraftDocument.lastchangedbyuser,
cast(DraftDocument.ismarkedfordeletion as boole_d ) as IsMarkedForDeletion,
DraftDocument.productoldid,
DraftDocument.grossweight,
DraftDocument.purchaseorderquantityunit,
// DraftDocument.sourceofsupply,//pstat changes
DraftDocument.weightunit,
DraftDocument.countryoforigin,
DraftDocument.competitorid,
DraftDocument.productgroup,
DraftDocument.baseunit,
DraftDocument.itemcategorygroup,
DraftDocument.netweight,
DraftDocument.producthierarchy,
DraftDocument.division,
// DraftDocument.varblpurordunitisactive, "PSTAT Changes
DraftDocument.volumeunit,
DraftDocument.materialvolume,
DraftDocument.anpcode,
// DraftDocument.productcategory,
DraftDocument.brand,
// DraftDocument.procurementrule, //pstat changes
DraftDocument.validitystartdate,
DraftDocument.lowlevelcode,
DraftDocument.prodnoingenprodinprepackprod,
DraftDocument.serialidentifierassgmtprofile,
DraftDocument.sizeordimensiontext,
DraftDocument.industrystandardname,
DraftDocument.productstandardid,
DraftDocument.internationalarticlenumbercat,
DraftDocument.productisconfigurable,
DraftDocument.isbatchmanagementrequired,
DraftDocument.externalproductgroup,
DraftDocument.crossplantconfigurableproduct,
DraftDocument.serialnoexplicitnesslevel,
DraftDocument.productmanufacturernumber,
DraftDocument.manufacturerpartprofile,
// Retail Fields
DraftDocument.baseunitspecificproductlength,
DraftDocument.baseunitspecificproductwidth,
DraftDocument.baseunitspecificproductheight,
DraftDocument.productmeasurementunit,
DraftDocument.productvalidstartdate,
DraftDocument.articlecategory,
DraftDocument.contentunit,
DraftDocument.netcontent,
DraftDocument.comparisonpricequantity,
DraftDocument.grosscontent,
DraftDocument.productvalidenddate,
DraftDocument.assortmentlisttype,
DraftDocument.hastextilepartswthanimalorigin,
DraftDocument.productseasonusagecategory,
DraftDocument.serviceagreement,
DraftDocument.consumptionvaluecategory, // Ref. handling for MARC
DraftDocument.goodsissueunit, // ref. handling for MARC
//DraftDocument.CountryOfOrigin,
DraftDocument.regionoforigin, // ref. handling for MARC
DraftDocument.assortmentgrade,
DraftDocument.storelistingprocedure,
DraftDocument.distrcntrlistingprocedure,
DraftDocument.storelistingstartdate,
DraftDocument.storelistingenddate,
DraftDocument.distrcntrlistingstartdate,
DraftDocument.distrcntrlistingenddate,
DraftDocument.storesalestartdate,
DraftDocument.storesaleenddate,
DraftDocument.distrcntrsalestartdate,
DraftDocument.distrcntrsaleenddate,
DraftDocument.valuationclass, // ref. handling for MBEW
DraftDocument.commoditycode,
DraftDocument.valuationmargin, // ref. handling for MBEW
DraftDocument.commoditiycodenumberunit,
cast( ' ' as boole_d ) as IsActiveEntity,
cast( DraftDocument.HasActiveEntity as boole_d ) as HasActiveEntity,
cast( ' ' as boole_d ) as HasDraftEntity,
cast(DraftDocument.Draftkey as sysuuid_x ) as DraftAdministrativeDataUUID
}
where
DraftAdministrativeData.CreatedByUser = $session.user
or DraftAdministrativeData.InProcessByUser = $session.user
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_DRAFTADMINISTRATIVEDATA",
"I_PRODUCT",
"I_PRODUCTRETAIL",
"P_PRODUCTD"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/