@EndUserText: {
label: 'Compliance Information - For Products'
}
@AbapCatalog:
{
sqlViewName: 'CCCMKTCVRGCPLINF',
compiler.compareFilter: true,
preserveKey: true
}
--Access Control: Authorizations Checks
@AccessControl:
{
authorizationCheck: #CHECK,
// blocking of personal data not required (no personal data fields exposed for material; user can not be blocked)
personalData.blocking: #NOT_REQUIRED
}
--Client Handling of the view
@ClientHandling.algorithm: #SESSION_VARIABLE
--VDM view type
@VDM.viewType: #CONSUMPTION
@Consumption: {
semanticObject: 'PackagedChemicalInfo'
}
@ObjectModel:
{
usageType:
{
dataClass: #MASTER,
sizeCategory: #L,
serviceQuality: #C
}
,
-- Semantic key MATERIAL is used as navigation in the UI since it is defined as nav. parameter in
-- the target mapping of the application
semanticKey: [ 'Material' ]
}
@UI:
{
headerInfo:
{
typeImageUrl: 'sap-icon://product',
typeName: 'Compliance Information - For Products',
typeNamePlural: 'Products',
title:
{
type: #STANDARD,
label: 'Material Name',
value: 'ChmlCmplncInfoCombinedName'
},
description:
{
type: #STANDARD,
label: 'Material Number',
value: 'Material'
}
},
presentationVariant: {
sortOrder: [ {by: 'Material', direction: 'ASC' } ]
}
}
--Search
@Search.searchable : true
define view C_ChmlCmplncMktCvrgCmplncInfo
as select from I_ChmlCmplncInfo as _ChmlCmplncInfo
left outer to one join I_ChmlCmplncProdAssgmt as _ProdAssgmt on _ChmlCmplncInfo.ChmlCmplncInfoUUID = _ProdAssgmt.ChmlCmplncInfoUUID
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Additional Information
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Combined name of CCI/PP/UP
association [0..1] to C_ChmlCmplncPrimMatl as _PrimeMatReferenced on $projection.ChmlCmplncInfoUUID = _PrimeMatReferenced.ChmlCmplncInfoUUID
association [0..1] to C_ChmlCmplncPrimMatl as _PrimeMatUnpackaged on $projection.ChmlCmplncProdUUID = _PrimeMatUnpackaged.ChmlCmplncInfoUUID
--Product Information
association [0..1] to I_ProductGroup_2 as _ProductGroupVH on $projection.MaterialGroup = _ProductGroupVH.ProductGroup
--DG specific associations
association [0..*] to C_ChmlCmplncMktProdAssgmt as _PackagedProducts on _PackagedProducts.ChmlCmplncProdUUID = _ChmlCmplncInfo.ChmlCmplncInfoUUID
association [0..*] to C_ChmlCmplncInfoTransptPrmssn as _ChmlCmplncInfoTransptPrmssn on _ChmlCmplncInfo.ChmlCmplncInfoUUID = _ChmlCmplncInfoTransptPrmssn.ChmlCmplncInfoUUID
association [0..*] to C_ChCoInfoIntlTransptPrmssn as _ChCoInfoIntlTransptPrmssn on _ChmlCmplncInfo.ChmlCmplncInfoUUID = _ChCoInfoIntlTransptPrmssn.ChmlCmplncInfoUUID
association [0..1] to C_ChmlCmplncInfoDngrsGdsDets as _ChmlCmplncInfoDngrsGdsDets on _ChmlCmplncInfo.ChmlCmplncInfoUUID = _ChmlCmplncInfoDngrsGdsDets.ChmlCmplncInfoUUID
{
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
--Facet Annotation
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
@UI:
{
facet:
[
-- Header Facet - Header Information
{
purpose: #HEADER,
id: 'HeaderInfoFieldGroup',
type: #FIELDGROUP_REFERENCE,
position: 10,
targetQualifier: 'ProductInformation'
},
-- Facet 'Combined Marketability' - Empty Field Group for Map
{
id: 'Marketability',
label : 'Product Marketability',
type: #FIELDGROUP_REFERENCE,
position: 10,
targetQualifier: 'MarketabilityFG'
},
{
id: 'SafetyData',
label : 'Safety Data Sheets',
type: #FIELDGROUP_REFERENCE,
position: 20,
targetQualifier: 'SafetyData'
},
{
id: 'DangerousGoods',
label : 'Dangerous Goods',
type: #FIELDGROUP_REFERENCE,
position: 30,
targetQualifier: 'DangerousGoods'
}
],
hidden: true
}
--UUID of Chemical Compliance Information
key _ChmlCmplncInfo.ChmlCmplncInfoUUID,
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
// Data of assigned material
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
--Material of Chemical Compliance Information (assigned in material assignment)
@UI:
{
lineItem:
{
label : 'Number',
position: 20,
importance: #MEDIUM
}
//textArrangement: #TEXT_FIRST
}
@Search: {
defaultSearchElement : true,
fuzzinessThreshold: 0.8,
ranking: #MEDIUM
}
@Consumption.filter.hidden: true
_PrimeMatReferenced.Material,
--Material or Internal Name
@UI:
{
lineItem:
{
--label : 'Description',
position: 10,
importance: #HIGH
}
}
@Consumption.filter.hidden: true
_PrimeMatReferenced.ChmlCmplncInfoCombinedName,
--For Search: Material name
@UI.hidden: true
@Search:
{
defaultSearchElement : true,
fuzzinessThreshold: 0.8,
ranking: #HIGH
}
_PrimeMatReferenced.MaterialName as ProductName,
--CCI Type ("Bulk" or "Packaged Product"): used for deciding whether UP-specific (frontend) content needs to be displayed
@UI.hidden: true
_ChmlCmplncInfo.ChmlCmplncInfoType,
--Internal name of chemical compliance information
@UI.hidden: true
@Search:
{
defaultSearchElement : true,
fuzzinessThreshold: 0.8,
ranking: #LOW
}
_ChmlCmplncInfo.ChmlCmplncInternalName,
--Product group
@UI:
{
fieldGroup:
[
{
label: 'Product Group',
position: 10,
qualifier: 'ProductInformation',
importance: #HIGH
}
],
lineItem:
{
position: 30,
importance: #LOW
},
selectionField:
{
position: 10
},
textArrangement: #TEXT_ONLY
}
@ObjectModel:
{
text.element: [ 'MaterialGroupName' ],
foreignKey.association: '_ProductGroupVH'
}
@Consumption.filter.multipleSelections: true
@Search.defaultSearchElement : false
_PrimeMatReferenced._MaterialData.ProductGroup as MaterialGroup,
--Material Group Name
@UI.hidden: true
@Search.defaultSearchElement : false
_PrimeMatReferenced._MaterialData._ProductGroupText_2[1: Language = $session.system_language ].ProductGroupName as MaterialGroupName,
--UUID of UP Chemical Compliance Information
@UI.hidden : true
_ProdAssgmt.ChmlCmplncProdUUID,
--Material of UP Chemical Compliance Information
@UI.hidden : true
_PrimeMatUnpackaged.Material as ChmlCmplncProdMaterial,
--Material or Internal Name of UP Chemical Compliance Information
@UI.hidden : true
_PrimeMatUnpackaged.ChmlCmplncInfoCombinedName as ChmlCmplncProdMaterialCombName,
@UI.fieldGroup:
[
{
label: 'Applications',
position: 20,
qualifier: 'ProductInformation',
importance: #HIGH
}
]
@Consumption.filter.hidden: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_MKT_CALC_EXIT4'
cast( '' as ehpma_application ) as ChmlCmplncApplication,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_MKT_CALC_EXIT4'
@UI.hidden: true
cast( '' as ehfnd_boolean ) as ChmlCmplncCustMultiAddrIsActv,
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
/* For DCL Check */
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
@UI.hidden: true
_ChmlCmplncInfo.ProdStewardshipRespUnit,
@UI.hidden: true
_ChmlCmplncInfo.MaterialIsSold,
@UI.hidden: true
_ChmlCmplncInfo.MaterialIsTransported,
@UI.hidden: true
_ChmlCmplncInfo.MaterialIsSourced,
@UI.hidden: true
_ChmlCmplncInfo.MaterialIsProduced,
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
/* Associations */
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
@Consumption.filter.hidden: true
_ProductGroupVH,
@Consumption.filter.hidden: true
_ChmlCmplncInfo._PurposeAssignment,
@Consumption.filter.hidden: true
_ChmlCmplncInfo._Application,
@Consumption.filter.hidden: true
_ChmlCmplncInfo._RespUnitForProductStewardship,
@Consumption.filter.hidden: true
_ProdAssgmt._ChmlCmplncInfoProduct,
@Consumption.filter.hidden: true
_PackagedProducts,
@Consumption.filter.hidden: true
_ChmlCmplncInfoTransptPrmssn,
@Consumption.filter.hidden: true
_ChCoInfoIntlTransptPrmssn,
@Consumption.filter.hidden: true
_ChmlCmplncInfoDngrsGdsDets
}
where
_PrimeMatReferenced.Material is not null
and(
_ChmlCmplncInfo.MaterialIsSold = 'X'
or _ChmlCmplncInfo.MaterialIsProduced = 'X'
)
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"C_CHMLCMPLNCPRIMMATL",
"I_CHMLCMPLNCINFO",
"I_CHMLCMPLNCPRODASSGMT",
"I_PRODUCT",
"I_PRODUCTGROUPTEXT_2"
],
"ASSOCIATED":
[
"C_CHCOINFOINTLTRANSPTPRMSSN",
"C_CHMLCMPLNCINFODNGRSGDSDETS",
"C_CHMLCMPLNCINFOTRANSPTPRMSSN",
"C_CHMLCMPLNCMKTPRODASSGMT",
"C_CHMLCMPLNCPRIMMATL",
"I_CHMLCMPLNCAPPLASSGMT",
"I_CHMLCMPLNCINFO",
"I_CHMLCMPLNCPRPSASSGMT",
"I_PRODUCTGROUP_2",
"I_RESPONSIBLEUNIT"
],
"BASE":
[
"I_CHMLCMPLNCINFO",
"I_CHMLCMPLNCPRODASSGMT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/