@EndUserText.label: 'Process Chemical Compliance Request for Markets'
@AbapCatalog:
{
sqlViewName: 'CCREQPROCMKT',
compiler.compareFilter: true
}
@Metadata: {
allowExtensions: true
}
@AccessControl:
{
authorizationCheck: #MANDATORY,
// blocking of personal data not required
personalData.blocking: #NOT_REQUIRED
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM.viewType: #CONSUMPTION
@ObjectModel:
{
compositionRoot: true,
transactionalProcessingDelegated: true,
createEnabled: false,
updateEnabled: false,
deleteEnabled: false,
usageType:
{
dataClass: #MIXED,
sizeCategory: #XL,
serviceQuality: #C
},
semanticKey: [ 'ProductName' ]
}
// for CoPilot navigation
@Consumption.semanticObject: 'ComplianceRequest'
@UI:
{
headerInfo:
{
// typeName: 'Process Compliance Request',
// typeNamePlural: 'Process Compliance Requests',
typeName: 'Compliance Request from Logistics',
typeNamePlural: 'Compliance Requests from Logistics',
title:
{
type: #STANDARD,
// value: 'ChmlCmplncBusinessProcessName'
value: 'ProductName'
},
description:
{
type: #STANDARD,
// value: 'ProductName'
value:'Material'
}
}
,
presentationVariant:
[{
requestAtLeast: [ 'CmplRqRsltNavgnLink', 'ChmlCmplncInfoUUID', 'ChmlCmplncProdUUID', 'ChmlCmplncInfoType', 'ChmlCmplncInfoNavgnLink', 'ChmlCmplncRequestOriginType', 'ChmlCmplncReqOriginProc', 'ChmlCmplncBusinessProcess' ]
}]
}
/*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ] } */
define view C_ChmlCmplncReqProcMkt
--Select data from transaction view of chemical compliance request
as select from I_ChmlCmplncReqTP as ComplianceRequest
association [0..1] to I_ChmlCmplncInfo as _ChmlCmplncInfo on $projection.ChmlCmplncInfoUUID = _ChmlCmplncInfo.ChmlCmplncInfoUUID
association [0..1] to I_ChmlCmplncInfo as _ChmlCmplncInfoProd on $projection.ChmlCmplncProdUUID = _ChmlCmplncInfoProd.ChmlCmplncInfoUUID
-- Requester Contact Card
association [0..1] to C_ChmlCmplncReqRequesterCntct as _RequesterContact on $projection.ChmlCmplncReqBPRequester = _RequesterContact.BusinessPartner
-- Sales specific Customer Contact Card (Ship to party)
association [0..1] to C_ChmlCmplncReqCustomerCntct as _CustomerContact on $projection.SalesDocument = _CustomerContact.SalesDocument
// association [0..1] to I_SalesDocumentItem as _SalesDocumentItem on $projection.SalesDocument = _SalesDocumentItem.SalesDocument
// and $projection.Material = _SalesDocumentItem.Material
-- Delivery specific Customer Contact Card (Ship to party)
association [0..1] to C_ChmlCmplncReqDelivCustCntct as _CustomerContactDelivery on $projection.SalesDocument = _CustomerContactDelivery.DeliveryDocument
-----------------------------------------------------------------------------------------------------------------------------
-- Nodes
-----------------------------------------------------------------------------------------------------------------------------
-- New CCI data - expected cardinality: don't change!
association [0..1] to C_ChmlCmplncReqNewCmplncInfoTP as _NewComplInfo on $projection.ChmlCmplncRequestUUID = _NewComplInfo.ChmlCmplncRequestUUID
-- All Market Countries (for Facet)
association [0..*] to C_ChmlCmplncReqMktCntry as _MarketCountries on $projection.ChmlCmplncRequestUUID = _MarketCountries.ChmlCmplncRequestUUID
and $projection.ChmlCmplncBusinessProcess = _MarketCountries.ChmlCmplncBusinessProcess
-- All Purposes (for Facet)
association [0..*] to C_ChmlCmplncReqPrps as _Purposes on $projection.ChmlCmplncRequestUUID = _Purposes.ChmlCmplncRequestUUID
-- Requested Markets (Persisted)
association [0..*] to C_ChmlCmplncReqMktTP as _RequestedMarket on $projection.ChmlCmplncRequestUUID = _RequestedMarket.ChmlCmplncRequestUUID
-- Purposes (Persisted)
association [0..*] to C_ChmlCmplncReqPrpsAssgmtTP as _RequestedPurpose on $projection.ChmlCmplncRequestUUID = _RequestedPurpose.ChmlCmplncRequestUUID
-----------------------------------------------------------------------------------------------------------------------------
--Additional Information
association [1..1] to I_ChmlCmplncReqCmplncProcVH as _CmplncProcVH on $projection.ChmlCmplncReqCmplncProc = _CmplncProcVH.ChmlCmplncReqCmplncProc
-----------------------------------------------------------------------------------------------------------------------------
-- Combined name of CCI/PP
association [0..1] to C_ChmlCmplncPrimMatl as _PrimeMatPackaged on $projection.ChmlCmplncInfoUUID = _PrimeMatPackaged.ChmlCmplncInfoUUID
association [0..1] to C_ChmlCmplncPrimMatl as _PrimeMatUnpackaged on $projection.ChmlCmplncProdUUID = _PrimeMatUnpackaged.ChmlCmplncInfoUUID
-- Supplier Contact Data
association [0..1] to C_ChmlSuplrMatlSupplierContact as _SupplierContact on $projection.BusinessPartnerSupplier = _SupplierContact.BusinessPartnerSupplier
-- Request Status Name
association [0..1] to I_ChmlCmplncReqStatusTxt as _RequestStatus on $projection.ChmlCmplncRequestPrgrsStatus = _RequestStatus.ChmlCmplncReqStatus
association [0..1] to I_ChmlCmplncBusProcVH as _BusinessProcessVH on $projection.ChmlCmplncBusinessProcess = _BusinessProcessVH.ChmlCmplncBusinessProcess
association [0..1] to I_ChmlCmplncReqOrigTypeVH as _OriginTypeVH on $projection.ChmlCmplncRequestOriginType = _OriginTypeVH.ChmlCmplncRequestOriginType
-- Request Details
association [0..*] to I_OTRText as _ChmlCmplncReqDetailsText on $projection.ChmlCmplncReqDetails = _ChmlCmplncReqDetailsText.OnlnTxtRpstryConceptID
-----------------------------------------------------------------------------------------------------------------------------
--Product Information
-----------------------------------------------------------------------------------------------------------------------------
association [0..1] to I_ProductGroup_2 as _ProductGroupVH on $projection.MaterialGroup = _ProductGroupVH.ProductGroup
{
--UUID of active chemical compliance request
key ChmlCmplncRequestUUID,
//*************************************************
//Unpackaged Product
//*************************************************
--UUID of indirectly assigned CCI/UP
@ObjectModel:
{
text.element: [ 'ChmlCmplncProdMaterialCombName' ]
}
ComplianceRequest.ChmlCmplncProdUUID,
-- Navigation Link to CCI
@ObjectModel.readOnly: true
ComplianceRequest.ChmlCmplncProdUUID as ChmlCmplncInfoNavgnLink,
@ObjectModel.readOnly: true
ComplianceRequest.ChmlCmplncProdUUID as CmplRqRsltNavgnLink,
//*************************************************
//Packaged Product
//*************************************************
--UUID of assigned CCI/PP
ComplianceRequest.ChmlCmplncInfoUUID,
--UUID of assigned chemical customer material (CCM) for requests of type 'Customer Assessment Required'
@ObjectModel.readOnly: true
ChemicalCustomerMaterialUUID,
--Primary Material Id of referenced PP
@ObjectModel:
{
readOnly: true,
text.element: [ 'ChmlCmplncInfoCombinedName' ]
}
_PrimeMatPackaged.Material as ChmlCmplncInfoCombinedMaterial,
--Combined Name of referenced PP
@ObjectModel.readOnly: true
_PrimeMatPackaged.ChmlCmplncInfoCombinedName,
--Primary Material Id of referenced UP
@ObjectModel:
{
readOnly: true,
text.element: [ 'ChmlCmplncProdMaterialCombName' ]
}
_PrimeMatUnpackaged.Material as ChmlCmplncProdMaterial,
--Combined Name of referenced UP
@ObjectModel.readOnly: true
_PrimeMatUnpackaged.ChmlCmplncInfoCombinedName as ChmlCmplncProdMaterialCombName,
-- Applications of CCI/UP
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_MKT_CALC_EXIT4'
cast( '' as ehpma_application ) as ChmlCmplncApplication,
--Material/Product number ------------------------------------------------
@ObjectModel:
{
text.element: [ 'ProductName' ]
}
cast( ComplianceRequest.Material as ehfnd_cci_product preserving type ) as Material,
-- Product Name (Material Name) ------------------------------------------------
@ObjectModel.readOnly: true
ComplianceRequest._Product._Text[1: Language = $session.system_language ].ProductName as ProductName,
-- Material Group ------------------------------------------------
@ObjectModel:
{
readOnly: true,
text.element: [ 'MaterialGroupName' ],
foreignKey.association: '_ProductGroupVH'
}
cast(ComplianceRequest._Product._ProductGroup_2.ProductGroup as ehfnd_cci_material_group_l preserving type ) as MaterialGroup,
--Material Group Name
@ObjectModel.readOnly: true
ComplianceRequest._Product._ProductGroup_2._ProductGroupText[1: Language = $session.system_language ].ProductGroupName as MaterialGroupName,
--Material/Product number of related MCP--------------------------------------
@ObjectModel:
{
text.element: [ 'MultiComponentProductName' ]
}
ComplianceRequest.MultiComponentProduct,
@ObjectModel.readOnly: true
ComplianceRequest._MultiComponentProduct._Text[1: Language = $session.system_language ].ProductName as MultiComponentProductName,
//-- Compliance Process ------------------------------------------------
@ObjectModel:
{
readOnly: true,
text.element: [ 'ChmlCmplncReqCmplncProcName' ],
foreignKey.association: '_CmplncProcVH'
}
ComplianceRequest.ChmlCmplncReqCmplncProc as ChmlCmplncReqCmplncProc,
-- Compliance Process (Soltion Area) Name
@UI.hidden: true
@ObjectModel.readOnly: true
_ChmlCmplncReqCmplncProc._Text[1: Language = $session.system_language ].ChmlCmplncReqCmplncProcName as ChmlCmplncReqCmplncProcName,
-- Business Process ------------------------------------------------
@ObjectModel:
{
text.element: [ 'ChmlCmplncBusinessProcessName' ],
foreignKey.association: '_BusinessProcessVH'
}
ComplianceRequest.ChmlCmplncBusinessProcess as ChmlCmplncBusinessProcess,
--Business Process Name
@ObjectModel.readOnly: true
_BusinessProcess._Text[1: Language = $session.system_language ].ChmlCmplncBusinessProcessName,
-- Area (calculated countries or sales organisation) ------------------------------------------------
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
cast( '' as ehfnd_crq_subjectmatter ) as ChmlCmplncRequestSubjectMatter,
-- Due Date
ComplianceRequest.ChmlCmplncRequestDueDate as ChmlCmplncRequestDueDate,
-- Origin Type ------------------------------------------------
@ObjectModel:
{
text.element: [ 'ChmlCmplncRequestOriginName' ],
foreignKey.association: '_OriginTypeVH'
}
ComplianceRequest.ChmlCmplncRequestOriginType as ChmlCmplncRequestOriginType,
-- Origin Type Name
@ObjectModel.readOnly: true
_OriginType._Text[1: Language = $session.system_language ].ChmlCmplncRequestOriginName as ChmlCmplncRequestOriginName,
-- Origin Process ------------------------------------------------
@ObjectModel:
{
text.element: [ 'ChmlCmplncReqOriginProcName' ]
}
ComplianceRequest.ChmlCmplncReqOriginProc as ChmlCmplncReqOriginProc,
-- Origin Process Name
@ObjectModel.readOnly: true
_OriginProcess._Text[1: Language = $session.system_language ].ChmlCmplncReqOriginProcName as ChmlCmplncReqOriginProcName,
-- Origin Criticality
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
0 as ChmlCmplncReqOriginProcCritlty,
-- Requester (Business User based)
@ObjectModel:
{
readOnly: true,
text.element: [ 'ChmlCmplncReqBPRequesterName' ]
}
ComplianceRequest.ChmlCmplncReqBPRequester,
-- User Description
@ObjectModel.readOnly: true
ComplianceRequest._BusinessUserRequester.PersonFullName as ChmlCmplncReqBPRequesterName,
-- Requester (System User based)
@ObjectModel:
{
readOnly: true,
text.element: [ 'ChmlCmplncReqRequesterName' ]
}
ComplianceRequest.ChmlCmplncReqRequester,
-- User Description
@ObjectModel.readOnly: true
ComplianceRequest._RequesterUser.UserDescription as ChmlCmplncReqRequesterName,
-- Calculated field determine if the requester is able to receive a reply
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
cast( '' as fin_no_reply_reqired_ind ) as ReplyIsNotRequired,
-- Processor
@ObjectModel:
{
readOnly: true,
text.element: [ 'ChmlCmplncReqBPProcessorName' ]
}
ComplianceRequest.ChmlCmplncReqBPProcessor,
-- User Description Processor
@ObjectModel.readOnly: true
ComplianceRequest._BusinessUserProcessor.PersonFullName as ChmlCmplncReqBPProcessorName,
-- Remark
@ObjectModel:
{
readOnly: true
}
ComplianceRequest.ChmlCmplncRequestRemark,
--Request Details ----------------------------------------------------
@ObjectModel:
{
readOnly: true,
text.element: [ 'ChmlCmplncReqDetailsText' ]
}
ComplianceRequest.ChmlCmplncReqDetails,
@ObjectModel.readOnly: true
_ChmlCmplncReqDetailsText[1: Language = $session.system_language ].Text as ChmlCmplncReqDetailsText,
--Product Hierarchy -------------------------------------------------
@ObjectModel:
{
readOnly: true,
text.element: [ 'ProductHierarchyText' ]
--foreignKey.association: '_ProductHierarchyVH'
}
ComplianceRequest._Product.ProductHierarchy,
--Description of Product Hierarchy
@ObjectModel.readOnly: true
ComplianceRequest._Product._ProductHierarchy._Text[1: Language = $session.system_language ].ProductHierarchyText,
--Product Division -------------------------------------------------
@ObjectModel:
{
readOnly: true,
text.element: [ 'DivisionName' ]
--foreignKey.association: '_DivisionVH'
}
ComplianceRequest._Product.Division,
--Description of Division
@ObjectModel.readOnly: true
ComplianceRequest._Product._Division._Text[1: Language = $session.system_language ].DivisionName,
--External product group -------------------------------------------------
@ObjectModel:
{
readOnly: true,
text.element: [ 'ExternalProductGroupName' ]
--foreignKey.association: '_ExternalProdGrpVH'
}
cast( ComplianceRequest._Product.ExternalProductGroup as ehfnd_ext_material_group_l ) as ExternalProductGroup,
--Description of External Product Group
@ObjectModel.readOnly: true
ComplianceRequest._Product._ExternalProductGroup._Text[1: Language = $session.system_language ].ExternalProductGroupName,
-- Origin Logistics ( Sales Documents ID / Production order ID / Material Number ------------------------------------------------
@ObjectModel.readOnly: true
ComplianceRequest.ChmlCmplncReqLogisticDocCat,
@ObjectModel.readOnly: true
ComplianceRequest.SalesDocument as SalesDocument,
@ObjectModel.readOnly: true
ProdCmplncLogsDocument,
@ObjectModel.readOnly: true
ProdCmplncLogsDocumentItem,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
// SmartLink
cast( '' as ehfnd_sales_order ) as SalesOrder,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
// SmartLink
cast( '' as ehfnd_sales_quotation ) as SalesQuotation,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
// SmartLink
cast( '' as ehfnd_sales_contract ) as SalesContract,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
// SmartLink
cast( '' as ehfnd_sales_schedul_agreement ) as SalesSchedulingAgreement,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
// SmartLink
cast( '' as ehfnd_outbound_delivery ) as OutboundDelivery,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
// SmartLink
cast( '' as ehfnd_freight_unit ) as FreightUnit,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
// SmartLink
cast( '' as ehfnd_freight_order ) as FreightOrder,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
// SmartLink
cast( '' as ehfnd_freight_booking ) as FreightBooking,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
// SmartLink
cast( '' as ehfnd_purchase_order ) as PurchaseOrder,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
// SmartLink
cast( '' as ehfnd_purchase_contract ) as PurchaseContract,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
// SmartLink
cast( '' as ehfnd_purchasing_info_record ) as PurchasingInfoRecord,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
// SmartLink
cast( '' as ehfnd_pur_scheduling_agreement ) as SchedulingAgreement,
-- Order Quantity with Unit
//TODO: rework (virtual element, cardinality)
// @ObjectModel.readOnly: true
// @UI: {
// fieldGroup: [{ qualifier: 'SalesDataFG', position: 30, importance: #HIGH }]
// //textArrangement: #TEXT_ONLY
// }
// concat_with_space( cast(_SalesDocumentItem.OrderQuantity as ehfnd_crq_order_quantity), _SalesDocumentItem.OrderQuantityUnit, 1) as ChmlCmplncReqOrderQuantity,
-- Sales Document - Customer with link to contact card
@ObjectModel.readOnly: true
_CustomerContact.BusinessPartnerFullName,
-- Delivery Document - Customer with link to contact card
@ObjectModel.readOnly: true
_CustomerContactDelivery.BusinessPartnerFullName as DocShipToParty, // D054696: Since we use the label, no need to request a CRQ specific GFN
-- Requested Applications
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_APPL_CALC_EXIT'
cast( '' as ehpma_application) as ChmlCmplncApplicationReqd,
-- Requested Sales Organizations ------------------------------------------------
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
cast( '' as ehfnd_crq_reqd_vkorg ) as ChmlCmplncSalesOrgReqd,
-- Requested Plants ------------------------------------------------
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
cast( '' as ehfnd_crq_reqd_plant ) as ChmlCmplncPlntReqd,
-- Request Status ------------------------------------------------
@ObjectModel.text.element: ['ChmlCmplncReqStatusName']
@ObjectModel.readOnly: true
ComplianceRequest.ChmlCmplncRequestPrgrsStatus as ChmlCmplncRequestPrgrsStatus,
@ObjectModel.readOnly: true
_RequestStatus[1: Language = $session.system_language ].ChmlCmplncReqStatusName as ChmlCmplncReqStatusName,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
0 as ChmlCmplncReqStatusCritlty,
-----------------------------------------------------------------------------------------------------------------------------
/* New Compliance View Data */
-----------------------------------------------------------------------------------------------------------------------------
-- New Packaged Product Name
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
cast('' as ehfnd_cci_pp) as ChmlCmplncReqNewPckgdProdName,
-- New Unpackaged Product UUID
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHPMA_CPLREQ_CALC_EXIT'
cast('' as ehfnd_cci_up) as ChmlCmplncReqNewProdName,
-- Supplier ------------------------------------------------
@ObjectModel.readOnly: true
Supplier as Supplier,
@ObjectModel.readOnly: true
_Supplier._SupplierToBusinessPartner._BusinessPartner.BusinessPartner as BusinessPartnerSupplier,
@ObjectModel.readOnly: true
_Supplier.BPSupplierName as BPSupplierName,
@ObjectModel.readOnly: true
Customer,
@ObjectModel.readOnly: true
_Customer._CustomerToBusinessPartner._BusinessPartner.BusinessPartner as BusinessPartnerCustomer,
@ObjectModel.readOnly: true
_Customer.BPCustomerName,
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
-- CCI/PP Type and Roles
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
--Chemical Compliance Information Type
@ObjectModel.readOnly: true
_ChmlCmplncInfo.ChmlCmplncInfoType,
--Indicator: Chemical Compliance Information is transported
@ObjectModel.readOnly: true
_ChmlCmplncInfo.MaterialIsTransported,
--Indicator: Chemical Compliance Information is sold
@ObjectModel.readOnly: true
_ChmlCmplncInfo.MaterialIsSold,
--Indicator: Chemical Compliance Information is produced
@ObjectModel.readOnly: true
_ChmlCmplncInfo.MaterialIsProduced,
--Indicator: Chemical Compliance Information is sourced
@ObjectModel.readOnly: true
_ChmlCmplncInfo.MaterialIsSourced,
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
-- UP Roles in case the compliance request is assigned to a PP. Otherwise will hold the same values as the roles above.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
@ObjectModel.readOnly: true
_ChmlCmplncInfoProd.MaterialIsTransported as UnpckgdProdIsTransported,
@ObjectModel.readOnly: true
_ChmlCmplncInfoProd.MaterialIsSold as UnpckgdProdIsSold,
@ObjectModel.readOnly: true
_ChmlCmplncInfoProd.MaterialIsProduced as UnpckgdProdIsProduced,
@ObjectModel.readOnly: true
_ChmlCmplncInfoProd.MaterialIsSourced as UnpckgdProdIsSourced,
-----------------------------------------------------------------------------------------------------------------------------
/* Associations */
-----------------------------------------------------------------------------------------------------------------------------
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_NewComplInfo,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_RequestedMarket,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_RequestedPurpose,
_MarketCountries,
_Purposes,
_BusinessProcess,
_OriginType,
_ProductGroupVH,
_OriginTypeVH,
_BusinessProcessVH,
_RequesterContact,
_CustomerContact,
_CustomerContactDelivery,
_ChmlCmplncInfo,
_ChmlCmplncInfoProd,
_ChemicalCustomerMaterial,
_CmplncProcVH,
_SupplierContact,
_Supplier,
_Customer
}