@EndUserText.label: 'Transactional processing view for Enterprise Project'
@VDM: {
viewType: #TRANSACTIONAL,
lifecycle.contract.type: #SAP_INTERNAL_API
}
@AbapCatalog: {
sqlViewName: 'IPPMPROJECTTP',
compiler.compareFilter: true,
preserveKey:true
}
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #BLOCKED_DATA_EXCLUDED,
privilegedAssociations: ['_ProjectType']
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel: {
transactionalProcessingEnabled: true,
compositionRoot: true,
draftEnabled: true, //draft processing
writeDraftPersistence: 'PPM_PRO_PROJ_D', //draft processing
createEnabled: true,
updateEnabled: true,
deleteEnabled: true,
entityChangeStateId: 'LastChangeDateTime',
semanticKey: [ 'Project' ],
representativeKey: 'ProjectUUID',
sapObjectNodeType.name: 'EnterpriseProject',
alternativeKey: [ { id : 'ProjectSummaryTaskUUID', uniqueness: #UNIQUE, element: 'ProjectSummaryTaskUUID' },
{ id : 'ProjectInternalID' , uniqueness: #UNIQUE, element: 'ProjectInternalID' } ],
usageType: {
serviceQuality: #X,
dataClass: #MIXED,
sizeCategory: #L
}
}
define view I_PPM_ProjectTP
as select from I_PPM_Project as Project
association [0..*] to I_PPM_ProjectStatusAreaTP as _StatusArea on $projection.ProjectUUID = _StatusArea.ProjectUUID
association [0..*] to I_PPM_ProjectTaskTP as _Task on $projection.ProjectUUID = _Task.ProjectUUID
association [0..*] to I_PPM_ProjectObjectLinkTP as _Link on $projection.ProjectUUID = _Link.ProjectUUID
association [0..*] to I_PPM_TeamMemberRoleStaffingTP as _TeamMemberRoleStaffing on $projection.ProjectUUID = _TeamMemberRoleStaffing.ProjectUUID
association [0..1] to I_PPM_ProjJntVntrAccountingTP as _JointVentureAccounting on $projection.ProjectUUID = _JointVentureAccounting.ProjectUUID
association [0..1] to I_PPM_ProjectPublicSectorTP as _PublicSectorManagement on $projection.ProjectUUID = _PublicSectorManagement.ProjectUUID
association [0..1] to I_EntProjectLongTextTP as _LongText on $projection.ProjectUUID = _LongText.ProjectUUID
association [0..1] to I_EntProjectBlockFunctionTP as _ElementBlockFunc on $projection.ProjectUUID = _ElementBlockFunc.ProjectUUID
--- Extension Association for Project Header
association [1..1] to E_PPM_Project as _ProjectHeaderExtension on $projection.ProjectUUID = _ProjectHeaderExtension.ProjectUUID
{
//* Key Information
@ObjectModel.readOnly: true
key Project.ProjectUUID,
@ObjectModel.readOnly: true
ProjectSummaryTaskUUID,
ProjectTemplateUUID,
Project,
ProjectName,
ProjectType,
PriorityCode,
//2102 Ent Project Multiple SO item indicator
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
EntProjIsMultiSlsOrdItmsEnbld,
EnterpriseProjectType,
ProjectProfileCode,
// Copy Projects Contol - flags for copying demands and settlement rules
cast ( '' as boole_d preserving type ) as EntProjDemandCopyIsRequested,
cast ( '' as boole_d preserving type ) as EntProjSettlmtRuleCpyIsReqd,
@ObjectModel.foreignKey: {
association: '_ProjectManager'
}
ProjectManagerUUID,
ProjectStartDate,
ProjectEndDate,
//CE2011: actual dates
ActualStartDate,
ActualEndDate,
//CE2011: actual dates
Location,
// Tax Jurisdiction Code
TaxJurisdiction,
//2005 Functional Location
FunctionalLocation,
@ObjectModel.readOnly: true
ProjectInternalID,
@ObjectModel.readOnly: true
WBSElementInternalID,
ResponsibleCostCenter,
ProfitCenter,
ControllingArea,
CompanyCode,
FunctionalArea,
Plant,
FactoryCalendar,
CostingSheet,
CostCenter,
IsBillingRelevant,
IsStatistical,
InvestmentProfile,
ProjectCurrency,
//hierarchical settlement changes
EntProjectSettlementType,
EntProjectSettlementElement,
//result analysis key changes
@Feature: 'PM_CIE_EPPM_MEDIA_PROJ_RAKEY'
ResultAnalysisInternalID,
@ObjectModel.readOnly: true
IsMyProject,
@ObjectModel.readOnly: true
IsProjectSteeringCommitteeMbr,
@ObjectModel.readOnly: true
IsProjectFinancialController,
@ObjectModel.readOnly: true
ProcessingStatus,
@ObjectModel.readOnly: true
StatusObject,
@ObjectModel.readOnly: true
Project.CreatedByUser,
@ObjectModel.readOnly: true
Project.CreationDateTime,
@ObjectModel.readOnly: true
Project.LastChangedByUser,
@ObjectModel.readOnly: true
Project.LastChangeDateTime,
/* Essential Milestone Name */
@ObjectModel.readOnly: true
Project.NextEssentialMlstnUUID,
@ObjectModel.readOnly: true
Project.NextEssentialMlstnName,
@ObjectModel.readOnly: true
Project.NextEssentialMlstnDate,
/* Next relevant Milestone Name */
@ObjectModel.readOnly: true
Project.NextRelevantMlstnUUID,
@ObjectModel.readOnly: true
Project.NextRelevantMlstnName,
@ObjectModel.readOnly: true
Project.NextRelevantMlstnDate,
@ObjectModel.readOnly: true
@ObjectModel.text.association: '_AreaStatusText'
OverallProjectStatus,
@ObjectModel.readOnly: true
OverallProjectStsCriticality,
@ObjectModel.readOnly: true
@ObjectModel.text.association: '_AreaTrendText'
StatusTrend,
// _Task.EntProjIsMultiSlsOrdItmsEnbld,
ProjectElementDuration,
// @ObjectModel.readOnly: true
// StartConstraintDateTime,
// @ObjectModel.readOnly: true
// FinishConstraintDateTime,
@ObjectModel.readOnly: true
ForecastedStartDate,
@ObjectModel.readOnly: true
ForecastedEndDate,
AvailabilityControlProfile,
AvailabilityControlIsActive,
//CE2208 Enabling Project Stock
EntProjHasProjectStockEnabled,
//cast( bo ) as ,
/* Associations */
_ProjectManager,
_PPMProjectManager,
_ProjectName,
_ProjectType,
_ProcessingStatus,
_ProcessingStatusText,
_AreaStatus,
_AreaStatusText,
_AreaTrend,
_AreaTrendText,
_ControllingArea,
_CompanyCode,
_CostCenter,
_ResponsibleCostCenter,
_Plant,
_ProjectProfileCode,
_FunctionalArea,
_ProfitCenter,
_CreatedByUser,
_ProjectLastChangedByUser,
_AuthUser,
_AuthSubst,
_AuthRole,
_AuthGroup,
_I_Project,
_ProjObjRoot,
_Priority,
_PriorityText,
_EnterpriseProjectType,
_EnterpriseProjectTypeText,
//hierarchical settlement changes
_EntProjectSettlementType,
@Feature: 'BF:JOINT_VENTURE_ACCOUNTING, IDEA_EPPM_JVA_ENABLEMENT'
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_JointVentureAccounting,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_StatusArea,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_Task,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_Link,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_LongText,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_TeamMemberRoleStaffing,
// @feature: 'BF:PSM_BUDGET_ACCOUNTING_CONTROL'
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_PublicSectorManagement,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_ElementBlockFunc
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PPM_PROJECT"
],
"ASSOCIATED":
[
"E_PPM_PROJECT",
"I_BUSINESSUSER",
"I_COMPANYCODE",
"I_CONTROLLINGAREA",
"I_COSTCENTER",
"I_ENTPROJECTBLOCKFUNCTIONTP",
"I_ENTPROJECTLONGTEXTTP",
"I_ENTPROJECTSETTLEMENTTYPE",
"I_FUNCTIONALAREA",
"I_PLANT",
"I_PPM_AUTHZNBYSUBSTITH",
"I_PPM_AUTHZNBYUSERROLEH",
"I_PPM_AUTHZNBYUSRGRPH",
"I_PPM_AUTHZNBYUSRH",
"I_PPM_PRIORITY",
"I_PPM_PRIORITYTEXT",
"I_PPM_PROCESSINGSTATUSTEXT",
"I_PPM_PROJECTMANAGER",
"I_PPM_PROJECTOBJECTLINKTP",
"I_PPM_PROJECTPROCGSTATUSVH",
"I_PPM_PROJECTPUBLICSECTORTP",
"I_PPM_PROJECTSTATUSAREATP",
"I_PPM_PROJECTTASKTP",
"I_PPM_PROJECTTYPE",
"I_PPM_PROJJNTVNTRACCOUNTINGTP",
"I_PPM_STATUSAREASTATUS",
"I_PPM_STATUSAREASTATUSTEXT",
"I_PPM_STATUSAREATREND",
"I_PPM_STATUSAREATRENDTEXT",
"I_PPM_TASKTEXT",
"I_PPM_TEAMMEMBERROLESTAFFINGTP",
"I_PPM_USER",
"I_PROFITCENTER",
"I_PROJECTBASICDATA",
"I_PROJECTPROFILECODE",
"I_PROJECTTYPE",
"I_PROJECTTYPETEXT",
"I_USER",
"I_WBSELEMENTBASICDATA"
],
"BASE":
[
"I_PPM_PROJECT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/