@AbapCatalog.sqlViewName: 'CCHGRCDOBJPGCHR'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED
@EndUserText.label: 'Change Record Ref Object Characteristic'
@VDM.viewType: #CONSUMPTION
@AbapCatalog.preserveKey:true
@ObjectModel.usageType: {serviceQuality: #C,
dataClass: #MIXED,
sizeCategory: #XXL}
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel: {
semanticKey: ['Characteristic'],
createEnabled: true,
deleteEnabled:'EXTERNAL_CALCULATION',
updateEnabled,
transactionalProcessingDelegated: true
}
@UI.headerInfo:{
typeName: 'Characteristic',
typeNamePlural: 'Characteristics',
imageUrl: 'ProductImageURL'
// title:{value:'MaterialName'}
}
@UI.presentationVariant.requestAtLeast: [ 'ChangeRecordType', 'ChangeRecordLifecycleStatus', 'ChangeRecordReferenceType' ]
define view C_ChangeRecordObjPgCharc
as select from I_ChangeRecordRefCharcTP as ChangeRecordRefCharcTP
association [1..1] to C_ChangeRecordObjPg as _ChangeRecordObjPg on $projection.ChangeRecordUUID = _ChangeRecordObjPg.ChangeRecordUUID
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 I_ClfnCharcDesc as _CharcDesc on $projection.CharcInternalID = _CharcDesc.CharcInternalID
and _CharcDesc.Language = $session.system_language
and _CharcDesc.IsDeleted <> 'X'
and _CharcDesc.ValidityStartDate <= $session.system_date
and _CharcDesc.ValidityEndDate >= $session.system_date
association [0..*] to I_ClfnCharcValue as _CharcValue on $projection.CharcInternalID = _CharcValue.CharcInternalID
association [0..*] to I_ClfnCharcValueDesc as _CharcValueDesc on $projection.CharcInternalID = _CharcValueDesc.CharcInternalID
association [1..1] to C_ChgRecdItmRlvnceCharcVH as _ChangeRecordItemRelVH on $projection.ChangeRecordItemRelevance = _ChangeRecordItemRelVH.ChangeRecordItemRelevance
and $projection.ChangeRecordType = _ChangeRecordItemRelVH.ChangeRecordType
association [0..1] to C_ChangeRecordCharcVH as _ChangeRecordCharcVH on $projection.Characteristic = _ChangeRecordCharcVH.Characteristic
association [0..1] to I_ClfnCharcStatusText as _ClfnCharcStatusText on $projection.CharcStatus = _ClfnCharcStatusText.CharcStatus
association [0..1] to I_ClfnCharcDataTypeText as _CharTypeText on $projection.CharcDataType = _CharTypeText.CharcDataType
association [0..*] to C_ChangeRecordCharcRstrcn as _CharcRestrict on $projection.CharcInternalID = _CharcRestrict.CharcInternalID
association [0..*] to C_ChangeRecordCharcVal as _CharcValues on $projection.CharcInternalID = _CharcValues.CharcInternalID
association [0..*] to C_ChangeRecdDigSignStatusVH as _DigSignStatusText on $projection.ChgRecdItmDSgntr = _DigSignStatusText.ChgRecdDigitalSignatureStatus
{
@UI.facet: [{ id: 'Charc',
purpose: #STANDARD,
type: #IDENTIFICATION_REFERENCE,
label: 'Charcteristics',
position: 10 },
{ id: 'CharcValue',
purpose: #STANDARD,
type: #LINEITEM_REFERENCE,
label: 'Charcteristics Values',
targetElement: '_CharcValues',
position: 20 },
{ id: 'CharcRestrcn',
purpose: #STANDARD,
type: #LINEITEM_REFERENCE,
label: 'Restrictions',
targetElement: '_CharcRestrict',
position: 30 }]
@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}
@ObjectModel.text.element: [ 'CharcDescription' ]
@Consumption.valueHelpDefinition: [{
entity: { name: 'C_ChangeRecordCharcVH',
element: 'Characteristic' },
additionalBinding:[{ localElement: 'ChangeNumber',
element: 'ChangeNumber' },
{ localElement: 'CharcDataType',
element: 'CharcDataType' }]
}]
@EndUserText.label: 'Characteristic'
Characteristic,
@UI.lineItem:[{
position:20,
importance:#HIGH }
]
@UI.identification: {position:20, importance: #HIGH}
// @ObjectModel.readOnly: true
@Consumption.semanticObject: 'ChangeMaster'
ChangeNumber,
@UI.lineItem:[{
position:30,
importance:#HIGH }
]
@UI.identification: {position:30, importance: #HIGH}
@EndUserText.label: 'Data Type'
@ObjectModel.text.element: [ 'CharcDataTypeName' ]
CharcDataType,
@UI.hidden: true
@ObjectModel.readOnly: true
_CharTypeText[1:Language = $session.system_language].CharcDataTypeName as CharcDataTypeName,
@UI.hidden: true
@ObjectModel.readOnly: true
_CharcDesc[1:Language = $session.system_language].CharcDescription as CharcDescription, // Cardinality is actually 1 due to selection by validity date
@UI.lineItem:[{
position:40,
importance:#MEDIUM }
]
@UI.identification: {position:40, importance: #MEDIUM}
@ObjectModel.readOnly: true
@ObjectModel.text.element: [ 'CharcStatusName' ]
CharcStatus,
@ObjectModel.readOnly: true
@UI.hidden: true
_ClfnCharcStatusText[1:Language = $session.system_language].CharcStatusName,
@UI.lineItem:[{
position:50,
importance:#MEDIUM }
]
@UI.identification: {position:50, importance: #MEDIUM}
@ObjectModel.readOnly: true
ValidityStartDate,
@UI.hidden: true
CharcInternalID,
// @UI.hidden: true
// ClassInternalID,
// CharcDecimals,
// CharcLength,
// CharcValueUnit,
// @UI.lineItem:[{
// position:60,
// importance:#HIGH }
// ]
// @UI.identification: {position:60, importance: #HIGH}
// @ObjectModel.readOnly: true
// @ObjectModel.text.element: [ 'ClassTypeName' ]
// ClassType,
// @ObjectModel.readOnly: true
// @UI.hidden: true
// _ClassTypeText[1:Language = $session.system_language].ClassTypeName,
// @ObjectModel.readOnly: true
// _CharcValue.CharcValue,
// @ObjectModel.readOnly: true
// _CharcValueDesc.CharcValueDescription,
// @ObjectModel.readOnly: true
// _CharcValue.IsDefaultValue,
@UI.lineItem:[{ position:130, importance:#MEDIUM }]
@UI.identification: [{position: 130, 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,
@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.lineItem:[{
position:120,
importance:#MEDIUM }
]
@Consumption: { valueHelp: '_ChangeRecordItemRelVH' }
@ObjectModel: {foreignKey.association: '_ChangeRecordItemRelVH' }
@UI.identification: {position:120, importance: #MEDIUM}
@UI.textArrangement: #TEXT_ONLY
@ObjectModel.mandatory: true
ChangeRecordItemRelevance,
@UI.hidden: true
ChangeRecordReference,
@ObjectModel.readOnly:true
@UI.hidden: true
_ChangeRecordObjPg.ChgRecdItemProcgStatusIsEnbld,
@UI.hidden: true
@ObjectModel.readOnly: true
_ChangeRecordObjPg.ChangeRecordStatus,
@Semantics.user.createdBy: true
@ObjectModel.readOnly: true
@UI.identification: {position: 135, importance: #MEDIUM}
CreatedByUser,
@UI.hidden: true
CreationDateTime,
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_CREATIONDATE_CONVERT'
@ObjectModel.readOnly: true
@UI.identification: {position: 155, importance: #MEDIUM}
cast( '00000000' as /plmb/created_on ) as CreationDate,
@Semantics.user.lastChangedBy: true
@ObjectModel.readOnly: true
@UI.identification: {position: 145, importance: #MEDIUM}
LastChangedByUser,
@UI.hidden: true
LastChangeDateTime,
@ObjectModel.virtualElement : true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_CHANGEDATE_CONVERT'
@ObjectModel.readOnly: true
@UI.identification: {position: 150, importance: #MEDIUM}
cast( '00000000' as /plmb/changed_on ) as LastChangeDate,
@UI.hidden: true
ChangeRecordVirtualRefInd,
@UI.hidden: true
@UI.lineItem:[{importance:#MEDIUM, hidden: true } ]
@EndUserText.label: 'Digital Signature Status'
@ObjectModel.foreignKey.association: '_DigSignStatusText'
@Consumption: { valueHelp: '_DigSignStatusText' }
ChgRecdItmDSgntr,
@UI.identification: {position: 160, importance: #MEDIUM}
ChgRecdReasonForChange,
@UI.identification: {position: 165, importance: #MEDIUM}
ExpdCompltnDte,
@UI.identification: {position: 170, importance: #MEDIUM}
@Consumption.valueHelpDefinition: [{ entity : { name : 'C_ChangeRecdAuthznGrpVH' , element: 'ChgRecdNmbrAuthznGrp'}}]
ChgRecdAuthznGrpText,
@UI.identification: {position: 175, importance: #MEDIUM}
@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 DigitalSignUserIsAuthorized,
@ObjectModel.readOnly: true
@UI.identification: [{importance: #LOW, position: 140 }]
@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,
@ObjectModel.association.type: [ #TO_COMPOSITION_ROOT,#TO_COMPOSITION_PARENT ]
_ChangeRecordObjPg,
_ChangeRecordItemRelVH,
_ProcessingStatusVH,
_ProcessingStatusTxt,
_CharcDesc,
_ChangeRecordCharcVH,
_CharcValue,
_CharcValueDesc,
_CharcRestrict,
_CharcValues,
_DigSignStatusText
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"C_CHANGERECDDIGSIGNSTATUSVH",
"C_CHANGERECORDOBJPG",
"I_CHANGERECORDREFCHARCTP",
"I_CLFNCHARCDATATYPETEXT",
"I_CLFNCHARCDESC",
"I_CLFNCHARCSTATUSTEXT"
],
"ASSOCIATED":
[
"C_CHANGERECDDIGSIGNSTATUSVH",
"C_CHANGERECORDCHARCRSTRCN",
"C_CHANGERECORDCHARCVAL",
"C_CHANGERECORDCHARCVH",
"C_CHANGERECORDOBJPG",
"C_CHGRECDITMRLVNCECHARCVH",
"C_CHGRECORDITEMPROCGSTATUSVH",
"I_CHGRECDITEMPROCGSTATUSTEXT",
"I_CLFNCHARCDATATYPETEXT",
"I_CLFNCHARCDESC",
"I_CLFNCHARCSTATUSTEXT",
"I_CLFNCHARCVALUE",
"I_CLFNCHARCVALUEDESC"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/