@AbapCatalog.sqlViewName: 'CCHGRCDOBJPGMAT'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Change Record Reference Object Material'
@AccessControl.personalData.blocking: #NOT_REQUIRED
@VDM.viewType: #CONSUMPTION
@ObjectModel: {
semanticKey: ['Material'],
createEnabled : 'EXTERNAL_CALCULATION',
deleteEnabled : 'EXTERNAL_CALCULATION',
updateEnabled : 'EXTERNAL_CALCULATION',
transactionalProcessingDelegated: true
}
@UI.headerInfo:{
typeName: 'Material',
typeNamePlural: 'Materials',
imageUrl: 'ProductImageURL',
title:{value:'ProductName'}
}
@ObjectModel.usageType: {serviceQuality: #C,
dataClass: #MIXED,
sizeCategory: #XXL}
@ClientHandling.algorithm: #SESSION_VARIABLE
@UI.presentationVariant.requestAtLeast: [ 'ChangeRecordType', 'ChangeRecordLifecycleStatus', 'ChangeRecordReferenceType' ]
@AbapCatalog.preserveKey:true
define view C_ChangeRecordObjPgMatl
as select from I_ChangeRecordReferenceMatTP
association [1..1] to C_ChangeRecordObjPg as _ChangeRecordObjPg on $projection.ChangeRecordUUID = _ChangeRecordObjPg.ChangeRecordUUID
association [1..1] to C_ChangeRecordItemRelMatVH as _ChangeRecordItemRelMatVH on $projection.ChangeRecordItemRelevance = _ChangeRecordItemRelMatVH.ChangeRecordItemRelevance
and $projection.ChangeRecordType = _ChangeRecordItemRelMatVH.ChangeRecordType
// and $projection.ChangeRecordReferenceType = _ChangeRecordItemRelMatVH.ChangeRecordReferenceType
association [0..1] to I_ChangeRecordProduct as _ChangeRecordProduct on $projection.Material = _ChangeRecordProduct.Product
association [0..1] to I_Material as _Material on $projection.Material = _Material.Material
association [1..1] to C_ChgRecordItemProcgStatusVH as _ProcessingStatusVH on $projection.ChangeRecordItemProcgStatus = _ProcessingStatusVH.ChgRecdNextItemProcgStatus
and $projection.ChgRecdCurrentItemProcgStatus = _ProcessingStatusVH.ChgRecdCurrentItemProcgStatus
and $projection.ChangeRecordLifecycleStatus = _ProcessingStatusVH.ChangeRecordLifecycleStatus
association [0..*] to I_ChgRecdItemProcgStatusText as _ProcessingStatusTxt on $projection.ChangeRecordItemProcgStatus = _ProcessingStatusTxt.ChangeRecordItemProcgStatus
association [0..*] to C_ChangeRecdDigSignStatusVH as _DigSignStatusText on $projection.ChgRecdItmDSgntr = _DigSignStatusText.ChgRecdDigitalSignatureStatus
{
--------------------------------------------
// @UI.facet: [
// ----Facets
// {type: #COLLECTION, position: 10, id: 'MaterialInfo', label: 'Material Information'},
// {type: #IDENTIFICATION_REFERENCE, position: 10, id: 'MATRef', parentId: 'MaterialInfo', isSummary, isPartOfPreview },
//
// ----Facets: Attachments
// {type: #COLLECTION, position: 10, id: 'Attachments', label: 'Attachments'}
// ]
--------------------------------------------
// @UI.facet: [
// {id:'CUSTOMFIELD', type: #FIELDGROUP_REFERENCE, position:10, purpose:#FILTER, targetQualifier:'MaterialInformation', label: 'Material Information'}
// ]
@UI.hidden: true
@EndUserText.label: 'Node ID'
key ChangeRecordReferenceUUID,
@UI.hidden: true
@UI.lineItem:[
{ position:5,
importance:#HIGH }
]
@UI.identification: {position: 5, importance: #HIGH}
@Semantics.imageUrl: true
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_OBJECT_THUMBNAIL_VE'
cast( '' as productimageurl ) as ProductImageURL,
//--[ GENERATED:011:GFBfhyK17jY4gpga1Lw5k0
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_MaterialStdVH',
element: 'Material' }
}]
// ]--GENERATED
@UI.identification: {position: 10, importance: #HIGH}
@ObjectModel.foreignKey.association: '_Material'
@Consumption.semanticObject: 'Material'
@ObjectModel.text.element: [ 'ProductName' ]
// @UI.fieldGroup: { qualifier: 'MaterialInformation', position: 40, importance: #HIGH }
@UI.lineItem:[
{ position:10,
importance:#HIGH }
]
Material,
@UI.lineItem:[{ position:60, importance:#MEDIUM }]
@UI.identification: [{position: 60, importance: #MEDIUM }]
@EndUserText.label: 'Processing Status'
@Consumption.valueHelpDefinition: [{association: '_ProcessingStatusVH'}]
@ObjectModel.foreignKey.association: '_ProcessingStatusVH'
@UI.textArrangement: #TEXT_FIRST
ChangeRecordItemProcgStatus,
@UI.hidden: true
@ObjectModel.readOnly: true
ChgRecdCurrentItemProcgStatus,
@UI.hidden: true
@ObjectModel.readOnly: true
@ObjectModel.foreignKey.association: '_ChangeRecordItemRelMatVH'
_ChangeRecordObjPg.ChangeRecordType as ChangeRecordType,
@ObjectModel.readOnly:true
@UI.hidden: true
_ChangeRecordObjPg.ChgRecdItemProcgStatusIsEnbld,
@UI.hidden: true
@ObjectModel.readOnly: true
_ChangeRecordObjPg.ChangeRecordLifecycleStatus as ChangeRecordLifecycleStatus,
// @UI.hidden: true
// @ObjectModel.readOnly: true
// _ChangeRecordObjPg.ChangeRecordItemIsNotEditable,
// @UI.hidden: true
// @ObjectModel.readOnly: true
// _ChangeRecordObjPg.ChangeRecordItmIsAddDelEnabled,
@EndUserText.label: 'Node ID'
@UI.hidden: true
ChangeRecordUUID,
@UI.hidden: true
ChangeRecordReferenceType,
@UI.hidden: true
ChangeRecordReferenceSubtype,
@UI.hidden: true
ChangeRecordReference,
@UI.hidden: true
ParentChangeRecordRefUUID,
@UI.hidden: true
IsMainReference,
@Semantics.user.createdBy: true
@ObjectModel.readOnly: true
@UI.identification: [{importance: #LOW, position: 110 }]
CreatedByUser,
@UI.hidden: true
CreationDateTime,
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_CREATIONDATE_CONVERT'
@ObjectModel.readOnly: true
@UI.identification: [{importance: #LOW, position: 115 }]
cast( '00000000' as /plmb/created_on ) as CreationDate,
@Semantics.user.lastChangedBy: true
@ObjectModel.readOnly: true
@UI.identification: [{importance: #LOW, position: 120 }]
LastChangedByUser,
@UI.hidden: true
LastChangeDateTime,
@ObjectModel.readOnly: true
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_CHANGEDATE_CONVERT'
@UI.identification: [{importance: #LOW, position: 125 }]
cast( '00000000' as /plmb/changed_on ) as LastChangeDate,
@UI.lineItem:[{
position:50,
importance:#MEDIUM }
]
@UI.identification: {position: 50, importance: #MEDIUM}
-- @ObjectModel.mandatory: true
@Consumption: { valueHelp: '_ChangeRecordItemRelMatVH' }
@ObjectModel: {foreignKey.association: '_ChangeRecordItemRelMatVH' }
@UI.textArrangement: #TEXT_ONLY
ChangeRecordItemRelevance,
@UI.lineItem:[{position:70,importance:#MEDIUM }]
@UI.identification: {position: 70, importance: #MEDIUM}
@ObjectModel.readOnly: true
@Consumption.semanticObject: 'ChangeMaster'
ChangeNumber,
//@UI.lineItem:[{position:80,importance:#MEDIUM }]
//@UI.identification: {position: 80, importance: #MEDIUM}
//@ObjectModel.readOnly: true
@UI.identification: [{importance: #LOW, position: 130 }]
ChgRecdReasonForChange,
//@UI.lineItem:[{position:90,importance:#MEDIUM }]
//@UI.identification: {position: 90, importance: #MEDIUM}
//@ObjectModel.readOnly: true
@UI.identification: [{importance: #LOW, position: 135 }]
ExpdCompltnDte,
//@UI.lineItem:[{position:100,importance:#MEDIUM }]
//@UI.identification: {position: 100, importance: #MEDIUM}
//@ObjectModel.readOnly: true
@UI.identification: [{importance: #LOW, position: 140 }]
@Consumption.valueHelpDefinition: [{ entity : { name : 'C_ChangeRecdAuthznGrpVH' , element: 'ChgRecdNmbrAuthznGrp'}}]
ChgRecdAuthznGrpText,
//@UI.lineItem:[{position:110,importance:#MEDIUM }]
//@UI.identification: {position: 110, importance: #MEDIUM}
//@ObjectModel.readOnly: true
@UI.identification: [{importance: #LOW, position: 145 }]
@Consumption.valueHelpDefinition: [{ entity : { name : 'C_ChgRecdChgNmbrStatusVH' , element: 'ChgRecdNmbrChgSts'}}]
ChgRecdNmbrChgSts,
@UI.hidden: true
@ObjectModel.readOnly: true
_ChangeRecordProduct.ProductName as ProductName,
@UI.hidden: true
@ObjectModel.readOnly: true
_ChangeRecordObjPg.ChangeRecordStatus,
@UI.lineItem: { position:20, importance:#MEDIUM}
@UI.identification: {position: 20, importance: #MEDIUM}
@ObjectModel.readOnly: true
@ObjectModel.text.element: 'MaterialTypeName'
cast(_ChangeRecordProduct.ProductType as mtart preserving type ) as MaterialType,
@ObjectModel.readOnly: true
_ChangeRecordProduct._MaterialType._Text[1:Language = $session.system_language].MaterialTypeName as MaterialTypeName,
@UI.lineItem: { position:30, importance:#MEDIUM }
@UI.identification: {position: 30, importance: #MEDIUM}
@ObjectModel.readOnly: true
@ObjectModel.text.element: 'UnitOfMeasureLongName'
cast(_ChangeRecordProduct.BaseUnit as /plmb/cr_mat_base_unit preserving type ) as MaterialBaseUnit,
@ObjectModel.readOnly: true
_ChangeRecordProduct._UnitOfMeasureValueHelp._Text[1:Language = $session.system_language].UnitOfMeasureLongName as UnitOfMeasureLongName,
@UI.lineItem: { position:40, importance:#MEDIUM}
@UI.identification: {position: 40, importance: #MEDIUM}
@ObjectModel.readOnly: true
@ObjectModel.text.element: 'MaterialUsabilityProfileName'
cast(_ChangeRecordProduct.CrossPlantStatus as /plmb/cr_mat_status preserving type) as CrossPlantStatus,
@ObjectModel.readOnly: true
cast(_ChangeRecordProduct._ProductStatus._Text[1:Language = $session.system_language].MaterialUsabilityProfileName as mtstb preserving type) as MaterialUsabilityProfileName,
@UI.hidden: true
@UI.lineItem:[{importance:#HIGH, hidden: true } ]
@EndUserText.label: 'Digital Signature Status'
@ObjectModel.foreignKey.association: '_DigSignStatusText'
@Consumption: { valueHelp: '_DigSignStatusText' }
ChgRecdItmDSgntr,
@UI.lineItem:[{
hidden: true,
importance:#LOW }
]
@UI.hidden: true
@ObjectModel.readOnly: true
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_I_DSGNTR_ENABLE'
cast( '' as boolean) as DigitalSignUserIsAuthorized,
@ObjectModel.readOnly: true
@UI.identification: [{importance: #LOW, position: 105 }]
@EndUserText.label: 'Digital Signature Status'
_DigSignStatusText.ChgRecdDigSignStatusTxt as ChgRecdDigSignStatusTxt,
@UI.lineItem:[{
hidden: true,
importance:#LOW }
]
@UI.hidden: true
@ObjectModel.readOnly: true
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_I_DSGNTR_ENABLE'
cast( '' as boolean) as ChgRecdObjDgtlSgntrEnable,
_Material,
_ChangeRecordProduct,
_ChangeRecordItemRelMatVH,
_ProcessingStatusVH,
@ObjectModel.association.type: [ #TO_COMPOSITION_ROOT,#TO_COMPOSITION_PARENT ]
_ChangeRecordObjPg,
_ProcessingStatusTxt,
_DigSignStatusText
/*------------------------------Technical fields: Field Control------------------------------*/
// @ObjectModel: { readOnly: true, virtualElement: true, virtualElementCalculatedBy: 'ABAP:CL_PLMI_CR_ACTION_CONTROL_MAT' }
// @EndUserText.label: 'Material Delete'
// @UI.lineItem:{position:50}
// cast( 'X' as boolean ) as ChgRecdMatDeleteEnable
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"C_CHANGERECDDIGSIGNSTATUSVH",
"C_CHANGERECORDOBJPG",
"I_CHANGERECORDPRODUCT",
"I_CHANGERECORDREFERENCEMATTP",
"I_PRODUCTSTATUS",
"I_PRODUCTSTATUSTEXT",
"I_PRODUCTTYPETEXT",
"I_PRODUCTTYPEVH",
"I_UNITOFMEASURE",
"I_UNITOFMEASURETEXT"
],
"ASSOCIATED":
[
"C_CHANGERECDDIGSIGNSTATUSVH",
"C_CHANGERECORDITEMRELMATVH",
"C_CHANGERECORDOBJPG",
"C_CHGRECORDITEMPROCGSTATUSVH",
"I_CHANGERECORDPRODUCT",
"I_CHGRECDITEMPROCGSTATUSTEXT",
"I_MATERIAL"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/