@AbapCatalog.sqlViewName: 'CCHGRCDOBJPGWBM'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED
@EndUserText.label: 'Change Record Reference Object WBS BOM'
@VDM.viewType: #CONSUMPTION
@AbapCatalog.preserveKey:true
@ObjectModel.usageType: {serviceQuality: #C,
dataClass: #MIXED,
sizeCategory: #XXL}
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel: {
semanticKey: ['WBSElementInternalID', 'WBSElementExternalID', 'Material','Plant','BillOfMaterialVariantUsage','BillOfMaterialVariant'],
createEnabled: true,
deleteEnabled:'EXTERNAL_CALCULATION',
updateEnabled,
transactionalProcessingDelegated: true
}
@UI.headerInfo:{
typeName: 'WBS BOM',
typeNamePlural: 'WBS BOMs',
imageUrl: 'ProductImageURL',
title:{value:'WBSDescription'}
}
@UI.presentationVariant.requestAtLeast: [ 'ChangeRecordType', 'ChangeRecordLifecycleStatus', 'ChangeRecordReferenceType' ]
define view C_ChgRecdRefWBSElmntBOM
as select from I_ChangeRecordRefWBSElmntBOMTP as ChangeRecordReferenceWBMTP
association [1..1] to C_ChangeRecordObjPg as _ChangeRecordObjPg on $projection.ChangeRecordUUID = _ChangeRecordObjPg.ChangeRecordUUID
association [0..1] to C_ChangeRecordWBSElmntBOMVH as _ChangeRecordWBSBOMVH on $projection.WBSElementInternalID = _ChangeRecordWBSBOMVH.WBSElementInternalID
and $projection.WBSElementExternalID = _ChangeRecordWBSBOMVH.WBSElementExternalID
and $projection.Material = _ChangeRecordWBSBOMVH.Material
and $projection.Plant = _ChangeRecordWBSBOMVH.Plant
and $projection.BillOfMaterialVariantUsage = _ChangeRecordWBSBOMVH.BillOfMaterialVariantUsage
and $projection.BillOfMaterialVariant = _ChangeRecordWBSBOMVH.BillOfMaterialVariant
association [0..1] to I_Material as _Material on $projection.Material = _Material.Material
association [0..1] to I_PlantStdVH as _Plant on $projection.Plant = _Plant.Plant
association [0..1] to I_BillOfMaterialUsage as _BillOfMaterialVariantUsage on $projection.BillOfMaterialVariantUsage = _BillOfMaterialVariantUsage.BillOfMaterialVariantUsage
and _BillOfMaterialVariantUsage.Language = $session.system_language
association [1..1] to C_ChgRecdRlvnceWBSElmntBOMVH as _ChangeRecordItemRelVH on $projection.ChangeRecordItemRelevance = _ChangeRecordItemRelVH.ChangeRecordItemRelevance
and $projection.ChangeRecordType = _ChangeRecordItemRelVH.ChangeRecordType
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 [1..1] to I_WBSElementBasicData as _WBSElementBasic on $projection.WBSElementInternalID = _WBSElementBasic.WBSElementInternalID
//association [1..1] to I_EnterpriseProject as _EnterpriseProject on $projection.WBSElementInternalID = _EnterpriseProject.WBSElementInternalID
association [0..*] to C_ChangeRecdDigSignStatusVH as _DigSignStatusText on $projection.ChgRecdItmDSgntr = _DigSignStatusText.ChgRecdDigitalSignatureStatus
{
@UI.hidden: true
@ObjectModel.readOnly: true
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,
@UI.lineItem:[{position:10, importance:#HIGH }]
@UI.identification: {position:10, importance: #HIGH}
@EndUserText.label: 'WBS Internal ID'
@Consumption.valueHelpDefinition: [{
entity: { name: 'C_ChangeRecordWBSElmntBOMVH',
element: 'WBSElementInternalID' },
additionalBinding:[ { localElement: 'WBSElementExternalID',
element: 'WBSElementExternalID' },
{ localElement: 'Material',
element: 'Material' },
{ localElement: 'Plant',
element: 'Plant' },
{ localElement: 'BillOfMaterialVariantUsage',
element: 'BillOfMaterialVariantUsage' },
{ localElement: 'BillOfMaterialVariant',
element: 'BillOfMaterialVariant' }]
}]
@ObjectModel.text.element: [ 'WBSDescription' ]
WBSElementInternalID,
@UI.lineItem:[{position:20, importance:#HIGH }]
@UI.identification: {position: 20, importance: #HIGH}
@EndUserText.label: 'WBS Element'
@ObjectModel.text.element: [ 'WBSElementExternalID' ]
@Consumption.valueHelpDefinition: [{
entity: { name: 'C_ChangeRecordWBSElmntBOMVH',
element: 'WBSElementExternalID' },
additionalBinding:[ { localElement: 'WBSElementInternalID',
element: 'WBSElementInternalID' },
{ localElement: 'Material',
element: 'Material' },
{ localElement: 'Plant',
element: 'Plant' },
{ localElement: 'BillOfMaterialVariantUsage',
element: 'BillOfMaterialVariantUsage' },
{ localElement: 'BillOfMaterialVariant',
element: 'BillOfMaterialVariant' }]
}]
WBSElementExternalID,
@UI.lineItem:[{position:30, importance:#HIGH }]
@UI.identification: {position: 30, importance: #HIGH}
@ObjectModel.text.element: [ 'MaterialName' ]
@ObjectModel.foreignKey.association: '_Material'
Material,
@UI.lineItem:[{position:40, importance:#HIGH }]
@UI.identification: {position: 40, importance: #HIGH}
@ObjectModel.foreignKey.association: '_Plant'
Plant,
@UI.lineItem:[{position:50, importance:#MEDIUM }]
@UI.identification: {position: 50, importance: #MEDIUM}
@ObjectModel.text.element: [ 'BillOfMaterialVariantUsageDesc' ]
BillOfMaterialVariantUsage,
@UI.hidden:true
@ObjectModel.readOnly:true
_BillOfMaterialVariantUsage.BillOfMaterialVariantUsageDesc,
@UI.lineItem:[{position:60, importance:#HIGH }]
@UI.identification: {position:60, importance: #HIGH}
BillOfMaterialVariant,
@UI.lineItem:[{position:70, importance:#MEDIUM }]
@Consumption: { valueHelp: '_ChangeRecordItemRelVH' }
@ObjectModel: {foreignKey.association: '_ChangeRecordItemRelVH' }
@UI.identification: {position:70, importance: #MEDIUM}
@UI.textArrangement: #TEXT_ONLY
@ObjectModel.mandatory: true
ChangeRecordItemRelevance,
@UI.lineItem:[{ position:80, importance:#MEDIUM }]
@UI.identification: [{position: 80, 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.lineItem:[{position:90, importance:#MEDIUM }]
@UI.identification: {position: 90, importance: #MEDIUM}
@ObjectModel.readOnly: true
@Consumption.semanticObject: 'ChangeMaster'
ChangeNumber,
@UI.lineItem:[{position:100, importance:#LOW }]
@UI.identification: {position: 100, importance: #MEDIUM}
@ObjectModel.readOnly: true
@EndUserText.label: 'Planned Start'
_WBSElementBasic._Project.PlannedStartDate,
@UI.lineItem:[{position:110, importance:#LOW }]
@UI.identification: {position: 110, importance: #MEDIUM}
@ObjectModel.readOnly: true
@EndUserText.label: 'Planned Finish'
_WBSElementBasic._Project.PlannedEndDate,
//@UI.lineItem:[{position:80, importance:#MEDIUM }]
//@UI.identification: {position: 80, importance: #MEDIUM}
//@ObjectModel.readOnly: true
//_EnterpriseProject.ProcessingStatus,
@ObjectModel.readOnly: true
@UI.hidden: true
_ChangeRecordObjPg.ChangeRecordLifecycleStatus as ChangeRecordLifecycleStatus,
@UI.hidden: true
@ObjectModel.readOnly: true
_ChangeRecordObjPg.ChangeRecordItemIsNotEditable,
@UI.hidden: true
@ObjectModel.readOnly: true
_ChangeRecordObjPg.ChangeRecordItmIsAddDelEnabled,
@UI.hidden: true
@ObjectModel.readOnly: true
_ChangeRecordObjPg.ChangeRecordType as ChangeRecordType,
@UI.hidden: true
ChangeRecordUUID,
@UI.hidden: true
ChangeRecordReferenceType,
@UI.hidden: true
ChangeRecordReferenceSubtype,
@UI.hidden: true
ParentChangeRecordRefUUID,
@UI.hidden: true
@ObjectModel.readOnly: true
_Material._Text[1:Language = $session.system_language].MaterialName as MaterialName,
@UI.hidden: true
@ObjectModel.readOnly: true
_WBSElementBasic.WBSDescription as WBSDescription,
//_EnterpriseProject.ProjectDescription as WBSDescription,
@UI.hidden: true
ChangeRecordReference,
@ObjectModel.readOnly:true
@UI.hidden: true
_ChangeRecordObjPg.ChgRecdItemProcgStatusIsEnbld,
// For BOM Navigation
@UI.hidden: true
BillOfMaterial,
@UI.hidden: true
@ObjectModel.readOnly: true
_ChangeRecordObjPg.ChangeRecordStatus,
@Semantics.user.createdBy: true
@ObjectModel.readOnly: true
@UI.identification: [{importance: #LOW, position: 115 }]
CreatedByUser,
@UI.hidden: true
CreationDateTime,
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_CREATIONDATE_CONVERT'
@ObjectModel.readOnly: true
@UI.identification: [{importance: #LOW, position: 120 }]
cast( '00000000' as /plmb/created_on ) as CreationDate,
@Semantics.user.lastChangedBy: true
@ObjectModel.readOnly: true
@UI.identification: [{importance: #LOW, position: 125 }]
LastChangedByUser,
@UI.hidden: true
BillOfMaterialCategory,
@UI.hidden: true
LastChangeDateTime,
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_CHANGEDATE_CONVERT'
@ObjectModel.readOnly: true
@UI.identification: [{importance: #LOW, position: 130 }]
cast( '00000000' as /plmb/changed_on ) as LastChangeDate,
@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: 110 }]
@EndUserText.label: 'Digital Signature Status'
_DigSignStatusText.ChgRecdDigSignStatusTxt as ChgRecdDigSignStatusTxt,
@UI.identification: [{importance: #LOW, position: 135 }]
ChgRecdReasonForChange,
@UI.identification: [{importance: #LOW, position: 140 }]
ExpdCompltnDte,
@UI.identification: [{importance: #LOW, position: 145 }]
@Consumption.valueHelpDefinition: [{ entity : { name : 'C_ChangeRecdAuthznGrpVH' , element: 'ChgRecdNmbrAuthznGrp'}}]
ChgRecdAuthznGrpText,
@UI.identification: [{importance: #LOW, position: 150 }]
@Consumption.valueHelpDefinition: [{ entity : { name : 'C_ChgRecdChgNmbrStatusVH' , element: 'ChgRecdNmbrChgSts'}}]
ChgRecdNmbrChgSts,
@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,
@UI.hidden: true
ChangeRecordVirtualRefInd,
_Material,
_Plant,
_BillOfMaterialVariantUsage,
_ChangeRecordItemRelVH,
_ChangeRecordWBSBOMVH,
_ProcessingStatusVH,
_WBSElementBasic,
//_EnterpriseProject,
@ObjectModel.association.type: [ #TO_COMPOSITION_ROOT,#TO_COMPOSITION_PARENT ]
_ChangeRecordObjPg,
_ProcessingStatusTxt,
_DigSignStatusText
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"C_CHANGERECDDIGSIGNSTATUSVH",
"C_CHANGERECORDOBJPG",
"I_BILLOFMATERIALUSAGE",
"I_CHANGERECORDREFWBSELMNTBOMTP",
"I_MATERIAL",
"I_MATERIALTEXT",
"I_PROJECTBASICDATA",
"I_WBSELEMENTBASICDATA"
],
"ASSOCIATED":
[
"C_CHANGERECDDIGSIGNSTATUSVH",
"C_CHANGERECORDOBJPG",
"C_CHANGERECORDWBSELMNTBOMVH",
"C_CHGRECDRLVNCEWBSELMNTBOMVH",
"C_CHGRECORDITEMPROCGSTATUSVH",
"I_BILLOFMATERIALUSAGE",
"I_CHGRECDITEMPROCGSTATUSTEXT",
"I_MATERIAL",
"I_PLANTSTDVH",
"I_WBSELEMENTBASICDATA"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/