@EndUserText.label: 'Specific Coverage of Packaged Product'
@AbapCatalog:
{
sqlViewName: 'CCCMKTSPCFCCVRG',
compiler.compareFilter: true
}
@AccessControl:
{
authorizationCheck: #CHECK,
// blocking of personal data not required (no personal data fields exposed for material)
personalData.blocking: #NOT_REQUIRED
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM.viewType: #CONSUMPTION
@ObjectModel:
{
semanticKey: [ 'Country' ],
usageType:
{
dataClass: #MIXED,
sizeCategory: #M,
serviceQuality: #C
}
}
@UI:
{
headerInfo : {
typeName: 'Specific Packaged Products Assessment',
typeNamePlural: 'Specific Packaged Products Assessment'
},
presentationVariant.sortOrder: [{by: 'CountryName', direction: 'ASC' }]
}
define view C_ChmlCmplncMktSpcfcCvrg
as select from I_ChmlCmplncProdAssgmt as pp_prd
inner join I_ChmlCmplncInfo as pp_cci
inner join I_ChmlCmplncMktCvrg as pp_cov on pp_cci.ChmlCmplncInfoUUID = pp_cov.ChmlCmplncInfoUUID
on pp_prd.ChmlCmplncInfoUUID = pp_cci.ChmlCmplncInfoUUID
association [1..1] to C_ChmlCmplncMktTP as _ChmlCmplncMktTP on _ChmlCmplncMktTP.ChmlCmplncInfoUUID = $projection.ChmlCmplncProdUUID
association [1..1] to I_ChmlCmplncInfoTP as _ChmlCmplncInfoTP on _ChmlCmplncInfoTP.ChmlCmplncInfoUUID = $projection.ChmlCmplncInfoUUID
association [1..1] to I_ChmlCmplncMktReq as _ChmlCmplncMktReq on _ChmlCmplncMktReq.ChmlCmplncInfoUUID = $projection.ChmlCmplncInfoUUID
and _ChmlCmplncMktReq.Country = $projection.Country
{
@UI:
{
-- Facet Annotations
facet:
[
-- Facet 'Specific Marketability for Packaged Product'
{
label: 'Specific Marketability for Packaged Product',
id: 'CCCMKTSPCFCCVRG_PP',
type: #COLLECTION,
position: 10
},
-- Facet 'Market Coverage' - Identification
{
label: 'Specific Marketability for Packaged Product',
id: 'CCCMKTSPCFCCVRG_PPLI',
parentId: 'CCCMKTSPCFCCVRG_PP',
position: 10,
type: #IDENTIFICATION_REFERENCE
}
]
}
@UI.hidden: true
@ObjectModel.readOnly: true
key pp_prd.ChmlCmplncProdAssgmtUUID as ChmlCmplncProdAssgmtUUID,
// Country
@UI: {
lineItem:
{
position: 10,
label: 'Country/Region'
},
textArrangement: #TEXT_ONLY
}
key pp_cov.Country as Country,
// Country Name
@ObjectModel.readOnly: true
@UI.hidden: true
_Country._Text[1: Language = $session.system_language ].CountryName as CountryName,
// UUID of packaged product
@UI.hidden: true
@ObjectModel.readOnly: true
pp_cci.ChmlCmplncInfoUUID as ChmlCmplncInfoUUID,
// UUID of unpackaged product
@UI.hidden: true
@ObjectModel.readOnly: true
pp_prd.ChmlCmplncProdUUID as ChmlCmplncProdUUID,
@UI.hidden: true
@ObjectModel.readOnly: true
_ChmlCmplncInfoTP.ActiveChmlCmplncInfoUUID as ActiveChmlCmplncInfoUUID,
// Product name of packaged product
@UI:
{
lineItem:
{
position: 20
}
}
@ObjectModel.readOnly: true
cast(pp_prd._ChmlCmplncInfo._MaterialAssignment[1: Material = Material]._Product._Text[1: Language = $session.system_language ].ProductName
as ehfnd_cci_product_name ) as ProductName,
// Application
--TODO Chemical Compliance Information: not yet needed, until the packaged product is editable by an own app
// @UI:
// {
// lineItem:
// {
// position: 30
// },
// multiLineText: true
// }
// @ObjectModel.virtualElement
// @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_MKT_CALC_EXIT2'
// @ObjectModel.readOnly: true
// cast( '' as ehpma_application_long) as ChmlCmplncApplication,
// Export From
/*@UI: {
lineItem:
{
position: 40,
criticality: 'ChmlCmplncExprtCvrgReqdCritlty',
criticalityRepresentation: #WITHOUT_ICON
}
}
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_MKT_CALC_EXIT1'
@ObjectModel.readOnly: true
cast( '' as ehpma_export_covreq_status_dsc ) as ChmlCmplncExprtAllwdReqdName,
@UI.hidden
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_MKT_CALC_EXIT1'
@ObjectModel.readOnly: true
cast( 0 as integer ) as ChmlCmplncExprtCvrgReqdCritlty,
@UI.hidden
@ObjectModel.readOnly: true
_ChmlCmplncMktReq.ChmlCmplncExprtIsReqd as ChmlCmplncExprtIsReqd,
@UI.hidden
@ObjectModel.readOnly: true
pp_cov.ChmlCmplncExprtAllwd as ChmlCmplncExprtAllwd,
// Import To
@UI: {
lineItem:
{
position: 50,
criticality: 'ChmlCmplncImprtCvrgReqdCritlty',
criticalityRepresentation: #WITHOUT_ICON
}
}
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_MKT_CALC_EXIT1'
@ObjectModel.readOnly: true
cast( '' as ehpma_import_covreq_status_dsc ) as ChmlCmplncImprtAllwdReqdName,
@UI.hidden
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_MKT_CALC_EXIT1'
@ObjectModel.readOnly: true
cast( 0 as integer ) as ChmlCmplncImprtCvrgReqdCritlty,
@UI.hidden
@ObjectModel.readOnly: true
_ChmlCmplncMktReq.ChmlCmplncImprtIsReqd as ChmlCmplncImprtIsReqd,
@UI.hidden
@ObjectModel.readOnly: true
pp_cov.ChmlCmplncImprtAllwd as ChmlCmplncImprtAllwd,
*/
// Sell
@UI: {
lineItem:
{
position: 60,
criticality: 'ChmlCmplncSalesCvrgReqdCritlty',
criticalityRepresentation: #WITHOUT_ICON
}
}
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_MKT_CALC_EXIT1'
@ObjectModel.readOnly: true
cast( '' as ehpma_sales_covreq_status_dsc ) as ChmlCmplncSalesAllwdReqdName,
@UI.hidden
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_MKT_CALC_EXIT1'
@ObjectModel.readOnly: true
cast( 0 as integer ) as ChmlCmplncSalesCvrgReqdCritlty,
@UI.hidden
@ObjectModel.readOnly: true
_ChmlCmplncMktReq.ChmlCmplncSalesIsReqd as ChmlCmplncSalesIsReqd,
@UI.hidden
@ObjectModel.readOnly: true
pp_cov.ChmlCmplncSalesAllwd as ChmlCmplncSalesAllwd,
// Associations
_ChmlCmplncMktTP,
pp_cov._Country
}