I_StandardProject_2

DDL: I_STANDARDPROJECT_2 SQL: ISTDPROJ2 Type: view BASIC Package: VDM_PS_STANDARD_PROJECT

Standard Project Details

I_StandardProject_2 is a Basic CDS View (Dimension) that provides data about "Standard Project Details" in SAP S/4HANA. It reads from 1 data source (projs) and exposes 88 fields with key field StandardProjectInternalID. It has 10 associations to related views. Part of development package VDM_PS_STANDARD_PROJECT.

Data Sources (1)

SourceAliasJoin Type
projs projs from

Associations (10)

CardinalityTargetAliasCondition
[0..1] I_ProjectObjectShortText _ProjectShortText _ProjectShortText.Language = $session.system_language and _ProjectShortText.ProjectApplicationIdentifier = 'PS' and _ProjectShortText.ProjectObjectType = 'PS' and $projection.StandardProjectObject = _ProjectShortText.ProjectObjectNode
[1..1] I_ControllingArea _ControllingArea $projection.ControllingArea = _ControllingArea.ControllingArea
[1..1] I_CompanyCode _CompanyCode $projection.CompanyCode = _CompanyCode.CompanyCode
[1..*] I_StandardWBSElement_2 _WBSElement $projection.StandardProjectInternalID = _WBSElement.StandardProjectInternalID
[1..1] I_BusinessArea _BusinessArea $projection.BusinessArea = _BusinessArea.BusinessArea
[1..1] I_Plant _Plant $projection.Plant = _Plant.Plant
[1..1] I_ProjectProfileCode _ProjectProfileCode $projection.ProjectProfileCode = _ProjectProfileCode.ProjectProfileCode
[1..1] I_ControllingObjectClass _ControllingObjectClass $projection.ControllingObjectClass = _ControllingObjectClass.ControllingObjectClass
[0..1] I_ProjectResponsiblePerson _ResponsiblePerson $projection.ResponsiblePerson = _ResponsiblePerson.ResponsiblePerson
[0..1] I_ProjectApplicant _ProjectApplicant $projection.ApplicantCode = _ProjectApplicant.ApplicantCode

Annotations (18)

NameValueLevelField
AbapCatalog.sqlViewName ISTDPROJ2 view
AbapCatalog.preserveKey true view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
VDM.viewType #BASIC view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
ObjectModel.representativeKey StandardProjectInternalID view
ObjectModel.usageType.serviceQuality #B view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MASTER view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Standard Project Details view
Metadata.allowExtensions true view
Metadata.ignorePropagatedAnnotations true view
Analytics.dataCategory #DIMENSION view
Analytics.internalName #LOCAL view
Analytics.dataExtraction.enabled true view

Fields (88)

KeyFieldSource TableSource FieldDescription
KEY StandardProjectInternalID
StdProject
StandardProjectWithCodingMask projs pspid_edit
StandardProjectObject projs objnr
CreatedByUser projs ernam
CreationDate projs erdat
LastChangedByUser
LastChangeDate
ResponsiblePerson
ResponsiblePersonName
ApplicantCode
ApplicantName projs astna
CompanyCode projs vbukr
BusinessArea projs vgsbr
ControllingArea projs vkokr
ProfitCenter projs prctr
Currency projs pwhie
NetworkAssignmentType projs zuord
Plant projs werks
FactoryCalendar
NetworkProfile projs vprof
ProjectProfileCode projs profl
BudgetProfile projs bprof
Language projs txtsp
ProjectHasOwnStock
ControllingObjectClass
WBSIsStatisticalWBSElement projs xstat
TaxJurisdiction
ProjInterestCalcProfile projs zschm
InvestmentProfile projs imprf
ResultAnalysisInternalID projs abgsl
PlanningProfile projs pprof
WBSIsMarkedForIntegratedPlng projs plint
InventorySpecialStockValnType projs kzbws
WBSIsMarkedForAutomReqmtGrpg projs grtop
WorkCenterLocation projs stort
FunctionalArea projs func_area
SalesOrganization projs vkorg
DistributionChannel projs vtweg
Division projs spart
DynItemProcessorPrfl projs dppprof
JointVenture projs vname
JointVentureCostRecoveryCode projs recid
JointVentureEquityType projs etype
JointVentureObjectType projs otype
JointVentureClass projs jibcl
JointVentureSubClass projs jibsa
WBSElementMaskID projs kimsk
WBSHasAutomValueTransferToProj projs autod
StatusProfile projs stspd
WBSStatusProfile projs stspr
PlanningMethForProjBasicDate
PlanningMethForProjFcstdDate
SchedulingDurationUnit
WBSSchedulingProfile
SimulationProfile projs smprf
WBSIsMarkedForCalcWithActDates projs flgvrg
ProjHasWBSForSalesOrderItem projs flgsd
PartnerDeterminationProcedure projs pargr
SchedulingScenario projs schtyp
FreeDefinedTableFieldSemantic projs slwid
FreeDefinedAttribute01
FreeDefinedAttribute02
FreeDefinedAttribute03
FreeDefinedAttribute04
FreeDefinedQuantity1
FreeDefinedQuantity1Unit
FreeDefinedQuantity2
FreeDefinedQuantity2Unit
FreeDefinedAmount1
FreeDefinedAmount1Currency
FreeDefinedAmount2
FreeDefinedAmount2Currency
FreeDefinedDate1
FreeDefinedDate2
FreeDefinedIndicator1
FreeDefinedIndicator2
StatusCode _StatusObjectStatus StatusCode
_ControllingArea _ControllingArea
_CompanyCode _CompanyCode
_BusinessArea _BusinessArea
_Plant _Plant
_WBSElement _WBSElement
_ProjectProfileCode _ProjectProfileCode
_ControllingObjectClass _ControllingObjectClass
_ResponsiblePerson _ResponsiblePerson
_ProjectApplicant _ProjectApplicant
_ProjectShortText _ProjectShortText
@AbapCatalog.sqlViewName: 'ISTDPROJ2'
@AbapCatalog.preserveKey:true
@AbapCatalog.compiler.compareFilter: true

@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED

@VDM.viewType: #BASIC
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API

@ObjectModel.representativeKey: 'StandardProjectInternalID'
@ObjectModel.usageType.serviceQuality: #B
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #MASTER
@ObjectModel.supportedCapabilities: [ #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE, #CDS_MODELING_ASSOCIATION_TARGET, #ANALYTICAL_DIMENSION, #EXTRACTION_DATA_SOURCE ]

@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Standard Project Details'
@Metadata.allowExtensions: true

@Metadata.ignorePropagatedAnnotations: true

@Analytics: {
      dataCategory: #DIMENSION,
      internalName: #LOCAL,
      dataExtraction : {
        enabled: true,
        delta:{
        changeDataCapture: {
            mapping: [
                { table: 'projs', role: #MAIN,
                  viewElement: ['StandardProjectInternalID'],
                  tableElement: ['pspnr']
                 },
                {
                  table: 'JEST',
                  role: #LEFT_OUTER_TO_ONE_JOIN,
                  viewElement:  ['StandardProjectObject', 'StatusCode'],
                  tableElement: ['objnr','stat']
                }
             ]
               }
            }
          }
    }

define view I_StandardProject_2
  as select from           projs
    left outer to one join I_StatusObjectStatusBasic as _StatusObjectStatus on  _StatusObjectStatus.StatusObject     = projs.objnr
                                                                            and _StatusObjectStatus.StatusIsInactive = ' '

  association [0..1] to I_ProjectObjectShortText   as _ProjectShortText       on  _ProjectShortText.Language                     = $session.system_language
                                                                              and _ProjectShortText.ProjectApplicationIdentifier = 'PS'
                                                                              and _ProjectShortText.ProjectObjectType            = 'PS'
                                                                              and $projection.StandardProjectObject              = _ProjectShortText.ProjectObjectNode
  association [1..1] to I_ControllingArea          as _ControllingArea        on  $projection.ControllingArea = _ControllingArea.ControllingArea
  association [1..1] to I_CompanyCode              as _CompanyCode            on  $projection.CompanyCode = _CompanyCode.CompanyCode
  association [1..*] to I_StandardWBSElement_2     as _WBSElement             on  $projection.StandardProjectInternalID = _WBSElement.StandardProjectInternalID
  association [1..1] to I_BusinessArea             as _BusinessArea           on  $projection.BusinessArea = _BusinessArea.BusinessArea
  association [1..1] to I_Plant                    as _Plant                  on  $projection.Plant = _Plant.Plant
  association [1..1] to I_ProjectProfileCode       as _ProjectProfileCode     on  $projection.ProjectProfileCode = _ProjectProfileCode.ProjectProfileCode
  association [1..1] to I_ControllingObjectClass   as _ControllingObjectClass on  $projection.ControllingObjectClass = _ControllingObjectClass.ControllingObjectClass
  // Person in Responsible for Project

  association [0..1] to I_ProjectResponsiblePerson as _ResponsiblePerson      on  $projection.ResponsiblePerson = _ResponsiblePerson.ResponsiblePerson
  // Project Applicant

  association [0..1] to I_ProjectApplicant         as _ProjectApplicant       on  $projection.ApplicantCode = _ProjectApplicant.ApplicantCode
{
  key cast ( projs.pspnr as ps_s4_ispsp preserving type )                         as StandardProjectInternalID,
      @ObjectModel.text.element: ['StandardProjectDescription']
      cast ( projs.pspid as projk_bi )                                            as StdProject,
      projs.pspid_edit                                                            as StandardProjectWithCodingMask,

      @Semantics.text: true
      case
      when _ProjectShortText.LanguageBasedShortText is not initial
      then _ProjectShortText.LanguageBasedShortText
      else cast ( projs.post1 as ppe_proj_name preserving type )
      end                                                                         as StandardProjectDescription,

      projs.objnr                                                                 as StandardProjectObject,

      @Semantics.user.createdBy: true
      projs.ernam                                                                 as CreatedByUser,
      @Semantics.systemDate.createdAt: true
      projs.erdat                                                                 as CreationDate,
      @Semantics.user.lastChangedBy: true
      cast ( projs.aenam as ps_s4_aenam preserving type )                         as LastChangedByUser,
      @Semantics.systemDate.lastChangedAt: true
      cast ( projs.aedat as ps_s4_updat preserving type )                         as LastChangeDate,

      @ObjectModel.text.element: ['ResponsiblePersonName']
      cast ( projs.vernr as ps_s4_vernr preserving type  )                        as ResponsiblePerson,
      @Semantics.text: true
      cast ( projs.verna as ps_s4_verna preserving type )                         as ResponsiblePersonName,
      @ObjectModel.text.element: ['ApplicantCode']
      cast ( projs.astnr as ps_s4_astnr preserving type )                         as ApplicantCode,
      @Semantics.text: true
      projs.astna                                                                 as ApplicantName,
      @ObjectModel.foreignKey.association: '_CompanyCode'
      projs.vbukr                                                                 as CompanyCode,
      @ObjectModel.foreignKey.association: '_BusinessArea'
      projs.vgsbr                                                                 as BusinessArea,
      @ObjectModel.foreignKey.association: '_ControllingArea'
      projs.vkokr                                                                 as ControllingArea,
      projs.prctr                                                                 as ProfitCenter,
      projs.pwhie                                                                 as Currency,
      projs.zuord                                                                 as NetworkAssignmentType,
      @ObjectModel.foreignKey.association: '_Plant'
      projs.werks                                                                 as Plant,
      cast ( projs.kalid as appca preserving type )                               as FactoryCalendar,
      projs.vprof                                                                 as NetworkProfile,
      projs.profl                                                                 as ProjectProfileCode,
      projs.bprof                                                                 as BudgetProfile,
      @Semantics.language
      projs.txtsp                                                                 as Language,
      @Semantics.booleanIndicator: true
      cast ( projs.besta as psb_stock preserving type )                           as ProjectHasOwnStock,
      cast ( projs.scope as ps_s4_scope_cv preserving type )                      as ControllingObjectClass,
      @Semantics.booleanIndicator: true
      projs.xstat                                                                 as WBSIsStatisticalWBSElement,
      cast ( projs.txjcd as wb2_txjcd_busvol preserving type )                    as TaxJurisdiction,
      projs.zschm                                                                 as ProjInterestCalcProfile,
      projs.imprf                                                                 as InvestmentProfile,
      projs.abgsl                                                                 as ResultAnalysisInternalID,
      projs.pprof                                                                 as PlanningProfile,
      @Semantics.booleanIndicator: true
      projs.plint                                                                 as WBSIsMarkedForIntegratedPlng,
      projs.kzbws                                                                 as InventorySpecialStockValnType,
      @Semantics.booleanIndicator: true
      projs.grtop                                                                 as WBSIsMarkedForAutomReqmtGrpg,
      projs.stort                                                                 as WorkCenterLocation,
      projs.func_area                                                             as FunctionalArea,
      projs.vkorg                                                                 as SalesOrganization,
      projs.vtweg                                                                 as DistributionChannel,
      projs.spart                                                                 as Division,
      projs.dppprof                                                               as DynItemProcessorPrfl,
      projs.vname                                                                 as JointVenture,
      projs.recid                                                                 as JointVentureCostRecoveryCode,
      projs.etype                                                                 as JointVentureEquityType,
      projs.otype                                                                 as JointVentureObjectType,
      projs.jibcl                                                                 as JointVentureClass,
      projs.jibsa                                                                 as JointVentureSubClass,
      projs.kimsk                                                                 as WBSElementMaskID,
      @Semantics.booleanIndicator: true
      projs.autod                                                                 as WBSHasAutomValueTransferToProj,
      projs.stspd                                                                 as StatusProfile,
      projs.stspr                                                                 as WBSStatusProfile,
      cast ( projs.vgplf as ps_s4_vgplf preserving type )                         as PlanningMethForProjBasicDate,
      cast ( projs.ewplf as ps_s4_ewplf preserving type )                         as PlanningMethForProjFcstdDate,
      cast ( projs.zteht as cgpl_duration_unit preserving type )                  as SchedulingDurationUnit,
      cast ( projs.scprf as ps_s4_schdprf preserving type )                       as WBSSchedulingProfile,
      projs.smprf                                                                 as SimulationProfile,
      @Semantics.booleanIndicator: true
      projs.flgvrg                                                                as WBSIsMarkedForCalcWithActDates,
      @Semantics.booleanIndicator: true
      projs.flgsd                                                                 as ProjHasWBSForSalesOrderItem,
      projs.pargr                                                                 as PartnerDeterminationProcedure,
      projs.schtyp                                                                as SchedulingScenario,
      projs.slwid                                                                 as FreeDefinedTableFieldSemantic,
      cast ( projs.usr00 as usr00proj preserving type )                           as FreeDefinedAttribute01,
      cast ( projs.usr01 as usr01proj preserving type )                           as FreeDefinedAttribute02,
      cast ( projs.usr02 as usr02proj preserving type )                           as FreeDefinedAttribute03,
      cast ( projs.usr03 as usr03proj preserving type )                           as FreeDefinedAttribute04,
      @Semantics.quantity.unitOfMeasure:'FreeDefinedQuantity1Unit'
      cast ( projs.usr04 as usr04proj preserving type )                           as FreeDefinedQuantity1,
      cast ( projs.use04 as use04proj preserving type )                           as FreeDefinedQuantity1Unit,
      @Semantics.quantity.unitOfMeasure:'FreeDefinedQuantity2Unit'
      cast ( projs.usr05 as usr05proj preserving type )                           as FreeDefinedQuantity2,
      cast ( projs.use05 as use05proj preserving type )                           as FreeDefinedQuantity2Unit,
      @Semantics.amount.currencyCode: 'FreeDefinedAmount1Currency'
      cast ( projs.usr06 as usr06proj preserving type )                           as FreeDefinedAmount1,
      cast ( projs.use06 as use06proj preserving type )                           as FreeDefinedAmount1Currency,
      @Semantics.amount.currencyCode: 'FreeDefinedAmount2Currency'
      cast ( projs.usr07 as usr07proj preserving type )                           as FreeDefinedAmount2,
      cast ( projs.use07 as use07proj preserving type )                           as FreeDefinedAmount2Currency,
      cast ( projs.usr08 as usr08proj preserving type )                           as FreeDefinedDate1,
      cast ( projs.usr09 as usr09proj preserving type )                           as FreeDefinedDate2,
      cast ( projs.usr10 as usr10proj preserving type )                           as FreeDefinedIndicator1,
      cast ( projs.usr11 as usr11proj preserving type )                           as FreeDefinedIndicator2,

      //Status Fields

      _StatusObjectStatus.StatusCode,

      @Semantics.booleanIndicator: true
      cast ( case _StatusObjectStatus.StatusCode
        when 'I0133' then 'X' else '' end as ps_s4_statcreated preserving type )  as StandardProjectIsCreated,

      @Semantics.booleanIndicator: true
      cast ( case _StatusObjectStatus.StatusCode
        when 'I0134' then 'X' else '' end as ps_s4_statreleased preserving type ) as StandardProjectIsReleased,

      @Semantics.booleanIndicator: true
      cast ( case _StatusObjectStatus.StatusCode
        when 'I0135' then 'X' else '' end as ps_s4_statclosed preserving type )   as StandardProjectIsClosed,

      _ControllingArea,
      _CompanyCode,
      _BusinessArea,
      _Plant,
      _WBSElement,
      _ProjectProfileCode,
      _ControllingObjectClass,
      @UI.hidden: true
      @Consumption.hidden: true
      _ResponsiblePerson,
      @UI.hidden: true
      @Consumption.hidden: true
      _ProjectApplicant,
      _ProjectShortText

}