@EndUserText.label: 'Work Permit'
@ObjectModel: { usageType: { dataClass: #TRANSACTIONAL,
sizeCategory: #L,
serviceQuality: #C } }
@VDM: { viewType: #CONSUMPTION,
usage: { type: [ #TRANSACTIONAL_PROCESSING_SERVICE ] },
lifecycle.contract.type: #PUBLIC_LOCAL_API}
@AccessControl.authorizationCheck: #MANDATORY
@Metadata: { allowExtensions: true }
@ObjectModel.semanticKey: [ 'WorkPermit' ]
@ObjectModel.sapObjectNodeType.name: 'WorkPermit'
@Search.searchable: true
define root view entity C_WorkPermitTP
provider contract transactional_query
as projection on R_WorkPermitTP as WorkPermit
association [0..1] to I_TechObjIsEquipOrFuncnlLoc as _TechObjIsEquipOrFuncnlLocVH on _TechObjIsEquipOrFuncnlLocVH.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
association [0..1] to C_WrkPmtTechnicalObjectVH as _TechnicalObjectVH on _TechnicalObjectVH.TechnicalObjectLabel = $projection.TechnicalObjectLabel
and _TechnicalObjectVH.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
and _TechnicalObjectVH.TechnicalObject = $projection.TechnicalObject
{
@ObjectModel.text.element: ['WrkPermitDesc']
@EndUserText: { label: 'Work Permit Number', quickInfo: 'Work Permit Number' }
key WorkPermit,
@UI.hidden: true
@Consumption.filter.hidden: true
WorkPermitInternalID,
@ObjectModel.text.element: ['MaintenancePlanningPlantName']
@UI.textArrangement: #TEXT_FIRST
@Search: {
defaultSearchElement: true,
fuzzinessThreshold: 0.8,
ranking: #HIGH
}
@EndUserText: { label: 'Maintenance Planning Plant', quickInfo: 'Maintenance Planning Plant' }
MaintenancePlanningPlant,
@UI.hidden: true
@Consumption.filter.hidden: true
WrkPmtOrdOpAssgmtIsAllowed,
@UI.hidden: true
@Consumption.filter.hidden: true
WrkPmtIssueHistoryIsAllowed,
@UI.hidden: true
@Consumption.filter.hidden: true
WrkPmtSftyCertAssgmtCtrlCode,
@Consumption.filter.hidden: true
@UI.hidden: true
WorkPermitExternalNumber,
@Consumption.filter.hidden: true
@UI.hidden: true
ValidationScenarioID,
@Consumption.filter.hidden: true
@UI.hidden: true
IsApproved,
@ObjectModel.text.element: ['WorkPermitTypeDescription']
WorkPermitType,
@Consumption.filter.hidden: true
WrkPermitDesc,
@Consumption.filter.hidden: true
@UI.hidden: true
WrkPermitValidFrmDate,
@Consumption.filter.hidden: true
@UI.hidden: true
WrkPermitValidFrmTime,
@Consumption.filter.hidden: true
@UI.hidden: true
WrkPermitValidToDate,
@Consumption.filter.hidden: true
@UI.hidden: true
WrkPermitValidToTime,
@ObjectModel.text.element: ['MaintenancePlannerGroupName']
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_MaintenancePlannerGroup', element: 'MaintenancePlannerGroup' },
additionalBinding: [{ element: 'MaintenancePlanningPlant',localElement: 'MaintenancePlanningPlant',usage: #FILTER }
] }]
MaintenancePlannerGroup,
@ObjectModel.text.element: ['WorkCenterText']
@Search: {
defaultSearchElement: true,
fuzzinessThreshold: 0.8,
ranking: #HIGH
}
WorkCenter,
@UI.hidden: true
@Consumption.filter.hidden:true
@Search: {
defaultSearchElement: true,
fuzzinessThreshold: 0.8,
ranking: #HIGH
}
WorkCenterText,
@Consumption.filter.hidden:true
@UI.hidden: true
ObjectTypeCode,
@UI.textArrangement: #TEXT_ONLY
@Consumption.filter.hidden: true
@UI.hidden: true
OperationWorkCenterInternalID,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_PlantStdVH', element: 'Plant' } } ]
@EndUserText.label: 'Main Work Center Plant'
@ObjectModel.text.element: ['MainWorkCenterPlantName']
WorkCenterPlant,
@Semantics.text: true
@Consumption.filter.hidden:true
@UI.hidden: true
MainWorkCenterPlantName,
@EndUserText: { label: 'Authorization Group', quickInfo: 'Authorization Group' }
TechObjAuthorizationGroup,
@ObjectModel.text.element: ['CreatedByUserName']
@ObjectModel.foreignKey.association: '_CreatedByUser'
@Semantics.user.createdBy: true
CreatedByUser,
@Semantics.text: true
@Consumption.filter.hidden:true
@UI.hidden: true
CreatedByUserName,
@Semantics.systemDateTime.createdAt: true
@EndUserText.quickInfo: 'Date of Creation'
CreationDateTime,
@Semantics.user.lastChangedBy: true
@ObjectModel.text.element: ['LastChangedByUserName']
@ObjectModel.foreignKey.association: '_LastChangedByUser'
LastChangedByUser,
@Semantics.text: true
@Consumption.filter.hidden:true
@UI.hidden: true
LastChangedByUserName,
@Semantics.systemDateTime.lastChangedAt: true
LastChangeDateTime,
@Consumption.filter.hidden: true
@UI.hidden: true
WrkPmtMgmtObjSubType,
@Semantics.timeZone: true
@Consumption.filter.hidden: true
@UI.hidden: true
PlantTimeZone,
@Consumption.filter.hidden: true
ValidFromDateTime,
@Consumption.filter.hidden: true
ValidToDateTime,
@Consumption.filter.hidden: true
@UI.hidden: true
IsExpired,
@Search: {
defaultSearchElement: true,
fuzzinessThreshold: 0.8,
ranking: #HIGH
}
@Consumption.hidden: true
@ObjectModel.text.element: ['EquipmentName']
@UI.hidden: true
WorkPermit.Equipment,
@Search: {
defaultSearchElement: true,
fuzzinessThreshold: 0.8,
ranking: #HIGH
}
@Consumption.hidden: true
@UI.hidden: true
_EquipmentText.EquipmentName as EquipmentName : localized,
@Consumption.filter.hidden: true
@Search: {
defaultSearchElement: true,
fuzzinessThreshold: 0.8,
ranking: #HIGH
}
@UI.hidden: true
FunctionalLocation,
@Search: {
defaultSearchElement: true,
fuzzinessThreshold: 0.8,
ranking: #HIGH
}
@Consumption.hidden: true
@UI.hidden: true
_FunctionalLocationLabel._FuncLocationLabelSearch.FunctionalLocationLabelName,
@Search: {
defaultSearchElement: true,
fuzzinessThreshold: 0.8,
ranking: #HIGH
}
@Consumption.filter.hidden: true
@Semantics.text: true
@UI.hidden: true
_FunctionalLocationText.FunctionalLocationName as FunctionalLocationName : localized,
@Semantics.booleanIndicator: true
@Consumption.filter.hidden: true
@UI.hidden: true
WrkPermitHasMaintRemark,
@Semantics.booleanIndicator: true
@Consumption.filter.hidden: true
@UI.hidden: true
WrkPermitHasOpRemark,
@Consumption.filter.hidden: true
@UI.hidden: true
TechnicalObject,
@ObjectModel.text.element: ['TechnicalObjectDescription']
@Consumption.semanticObject: 'MaintenanceObject'
TechnicalObjectLabel,
@UI.hidden: true
@Consumption.filter.hidden: true
TechnicalObjectDescription,
@ObjectModel.foreignKey.association: '_TechObjIsEquipOrFuncnlLocVH'
@ObjectModel.text.element: [ 'TechObjIsEquipOrFuncnlLocDesc' ]
@UI.textArrangement: #TEXT_ONLY
TechObjIsEquipOrFuncnlLoc,
@UI.hidden: true
@Consumption.filter.hidden: true
_TechObjIsEquipOrFuncnlLocT[1:Language = $session.system_language].TechObjIsEquipOrFuncnlLocDesc,
@ObjectModel.text.element: ['MaintenancePlantName']
MaintenancePlant,
@UI.hidden: true
@Consumption.filter.hidden: true
@Search: {
defaultSearchElement: true,
fuzzinessThreshold: 0.8,
ranking: #HIGH
}
MaintenancePlantName,
@Consumption.filter.hidden: true
@UI.hidden: true
IsAttachmentsEnabled,
@ObjectModel.text.element: ['PlantSectionDesc']
PlantSection,
@Consumption.filter.hidden: true
@UI.hidden: true
PlantSectionDesc,
@Consumption.valueHelpDefinition: [{
entity: { name: 'C_PMAssetLocationVH', element: 'Location' }}]
@ObjectModel.text.element: ['LocationName']
AssetLocation,
@EndUserText.label: 'Issued To'
// @Search: {
// defaultSearchElement: true,
// fuzzinessThreshold: 0.8,
// ranking: #HIGH
// }
@Consumption.valueHelpDefinition: [
{
entity: { name: 'C_EAMPERSONWORKAGREEMENTVH',
element: 'WorkAssignment' },
useForValidation: true
}]
@ObjectModel.text.element: ['PersonFullName']
// @UI.selectionField: [{ position: 90 }]
MaintOrdPersonResponsible,
@Consumption.filter.hidden: true
@UI.hidden: true
LocationName,
@Consumption.filter.hidden: true
AssetRoom,
@UI.hidden: true
@Consumption.filter.hidden: true
@Search: {
defaultSearchElement: true,
fuzzinessThreshold: 0.8,
ranking: #HIGH
}
MaintenancePlanningPlantName,
@Consumption.filter.hidden: true
@UI.hidden: true
_MaintenancePlannerGroup.MaintenancePlannerGroupName,
@UI.hidden: true
@Consumption.filter.hidden: true
WorkPermitHasLongText,
@EndUserText: { label: 'Work Permit Long Text', quickInfo: 'Work Permit Long Text' }
@Consumption.filter.hidden:true
@UI.hidden: true
WorkPermitLongText,
@Consumption.filter.hidden:true
WorkPermitOperationRemarkText,
@Consumption.filter.hidden:true
WrkPmtMaintenanceRemarkText,
@Consumption.filter.hidden:true
@EndUserText: { label: 'Reason for Rejection', quickInfo: 'Reason for Rejection' }
WorkPermitCancellationText,
@Consumption.filter.hidden: true
@Search: {
defaultSearchElement: true,
fuzzinessThreshold: 0.8,
ranking: #HIGH
}
@UI.hidden: true
WorkPermitTypeDescription,
@EndUserText.label: 'Reference Maintenance Order'
@Consumption.valueHelpDefinition: [{ entity: { name: 'C_WorkPermitOrderValueHelp', element: 'MaintenanceOrder' },
additionalBinding: [{ element: 'MaintenancePlanningPlant',localElement: 'MaintenancePlanningPlant' ,usage: #FILTER_AND_RESULT }] }]
// @Consumption.filter.hidden: true
MaintenanceOrder,
@EndUserText.label: 'Assigned Order'
@UI.selectionField: [{ position: 130 }]
@ObjectModel.virtualElement: true
@ObjectModel.filter.transformedBy: 'ABAP:CL_WCM_PTW_ORDER_FILTER_EXIT'
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_WCM_PTW_ORDER_CALC_EXIT'
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_MaintenanceOrderStdVH',
element: 'MaintenanceOrder' }
}]
@Consumption.filter.multipleSelections: false
@Consumption.filter.selectionType: #SINGLE
@Consumption.semanticObject: 'MaintenanceOrder'
// @UI.lineItem: [{exclude: true}]
virtual ActiveMaintenanceOrder : aufnr,
@EndUserText.label: 'Number of Orders'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_WCM_PTW_ORDER_CALC_EXIT'
@UI.hidden: true
virtual NumberOfOrders : eam_num_orders,
// IsBlocked,
@UI.hidden: true
// @Search: {
// defaultSearchElement: true,
// fuzzinessThreshold: 0.8,
// ranking: #HIGH
// }
_IssueHist._PersonWorkAgreement.PersonFullName as PersonFullName,
@EndUserText: { label: 'Comments', quickInfo: 'Technician Comments' }
@Consumption.filter.hidden: true
UserCommentsText,
// @EndUserText: { label: 'Reference Permit', quickInfo: 'Reference Permit' }
// _WorkPermitBasicPmt.WorkPermit as WorkPermitReferenceWorkPermit,
@EndUserText: { label: 'Reference Template', quickInfo: 'Reference Template' }
WorkPermitReference,
@EndUserText: { label: 'Reference Permit', quickInfo: 'Reference Permit' }
WorkPermitReferenceWorkPermit,
_WorkPermitReferenceObject,
_CreatedByUser,
_LastChangedByUser,
_WorkPermitStatus,
_WrkPmtApprvlSgmtDet,
_WrkPmtProcessingStatusText,
@UI.lineItem: [{ position: 60, label: 'System Status' }]
@EndUserText:{ label: 'System Status', quickInfo: 'System Status'}
@ObjectModel: {
filter.transformedBy: 'ABAP:CL_WCM_PTW_STS_EXIT',
virtualElement: true,
virtualElementCalculatedBy: 'ABAP:CL_WCM_PTW_STS_EXIT'
}
@UI.hidden: true
WrkPmtCnctntdActvSystStsTxt,
@ObjectModel: {
virtualElement: true,
virtualElementCalculatedBy: 'ABAP:CL_WCM_PTW_STS_EXIT'
}
@UI.lineItem: [{ hidden: true }]
virtual SystemStatusText : abap.char(40),
@ObjectModel: { virtualElement: true, virtualElementCalculatedBy: 'ABAP:CL_WCM_PTW_OBJ_THUMBNAIL_VE' }
@Semantics.imageUrl: true
@UI.hidden: true
ProductImageURL,
@Consumption.filter.hidden: true
@ObjectModel: { virtualElement: true, virtualElementCalculatedBy: 'ABAP:CL_WCM_GET_ACTION_VISIBILITY' }
@UI.hidden: true
WrkPmtChgStsActnEnbldVal,
@Consumption.filter.hidden: true
@ObjectModel: { virtualElement: true, virtualElementCalculatedBy: 'ABAP:CL_WCM_GET_ACTION_VISIBILITY' }
@UI.hidden: true
virtual WorkPermitCreateIsAllowed : ptwiscreateallowed,
// @UI.hidden: true
@ObjectModel.text.element: [ 'WorkPermitProcessingStatusText' ]
@Search: {
defaultSearchElement: true,
fuzzinessThreshold: 0.8,
ranking: #HIGH
}
WorkPermitProcessingStatus,
@UI.hidden: true
@Search: {
defaultSearchElement: true,
fuzzinessThreshold: 0.8,
ranking: #HIGH
}
_WrkPmtProcessingStatusText.WorkPermitProcessingStatusText,
// @Consumption.valueHelpDefinition: [{ entity: { name: 'I_WorkPermitReferenceObject',element: 'WorkPermitReferenceObjectType' } }]
// @ObjectModel.text.element: ['WorkPermitReferenceObjTypeDesc']
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_WrkPmtReferenceObjectText', element: 'WorkPermitReferenceObjTypeDesc'} }]
@EndUserText.label: 'Reference Object Type'
@EndUserText.quickInfo: 'Reference Object Type'
@Consumption.filter.hidden: true
//@UI.hidden: true
WorkPermitReferenceObjectType,
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_WrkPmtReferenceObjectText', element: 'WorkPermitReferenceObjTypeDesc'} }]
@EndUserText.label: 'Reference Object Type'
@EndUserText.quickInfo: 'Reference Object Type'
@UI.hidden: true
_WorkPermitReferenceObject._Text.WorkPermitReferenceObjTypeDesc,
_TechObjIsEquipOrFuncnlLocVH,
@Consumption.filter.hidden: true
_Equipment,
@Consumption.filter.hidden: true
_FunctionalLocation,
@Consumption.filter.hidden: true
_FunctionalLocationLabel,
@Consumption.filter.hidden: true
_FunctionalLocationText,
@Consumption.filter.hidden: true
_TechnicalObjectVH,
_PermitNatureOfWork : redirected to composition child C_WorkPermitNatureOfWorkTP,
_PermitSftyPrecaution : redirected to composition child C_WorkPermitSafetyPrecautionTP,
_PermitProtEquip : redirected to composition child C_WrkPmtPrsnlPrtcvEquipmentTP,
_WorkPermitOrder : redirected to composition child C_WorkPermitOrderTP,
_WorkPermitOrderOperation : redirected to composition child C_WorkPermitOrderOperationTP,
_TechnicalObject : redirected to composition child C_WorkPermitTechnicalObjectTP,
_WorkPermitPartner : redirected to composition child C_WorkPermitPartnerTP,
_WorkPermitLongTxt : redirected to composition child C_WorkPermitLongTextTP,
_WorkPermitApproval : redirected to composition child C_WorkPermitApprovalTP,
_WrkPmtApprvlSgmt : redirected to composition child C_WorkPermitApprovalSegmentTP,
_WorkPermitIssHist : redirected to composition child C_WorkPermitIssueHistoryTP,
_WrkPmtSafetyCertificate : redirected to composition child C_WrkPmtSafetyCertificateTP,
_WrkPmtSftyCertApproval : redirected to composition child C_WrkPmtSftyCertApprovalTP
}