R_RSHPersonAssignmentTP

DDL: R_RSHPERSONASSIGNMENTTP Type: view_entity TRANSACTIONAL

Maint Order Op assigned to Person TP

R_RSHPersonAssignmentTP is a Transactional CDS View that provides data about "Maint Order Op assigned to Person TP" in SAP S/4HANA. It reads from 2 data sources (afvc, kbed) and exposes 20 fields with key fields CapacityRequirement, CapacityRequirementItem, CapacityRqmtItemCapacity. It has 4 associations to related views.

Data Sources (2)

SourceAliasJoin Type
afvc _MaintenanceOrderOperation inner
kbed _Split from

Associations (4)

CardinalityTargetAliasCondition
[0..1] afko _Order _Order.bedid = _Split.bedid
[0..1] I_MaintenanceOrder _MaintenanceOrder $projection.MaintenanceOrder = _MaintenanceOrder.MaintenanceOrder
[0..1] kbez _SplitPlanningValues _SplitPlanningValues.bedid = _Split.bedid and _SplitPlanningValues.bedzl = _Split.bedzl and _SplitPlanningValues.canum = _Split.canum
[0..1] afvc _SuperiorOperation _SuperiorOperation.aufpl = _MaintenanceOrderOperation.aufpl and _SuperiorOperation.aplzl = _MaintenanceOrderOperation.sumnr

Annotations (7)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Maint Order Op assigned to Person TP view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
VDM.viewType #TRANSACTIONAL view

Fields (20)

KeyFieldSource TableSource FieldDescription
KEY CapacityRequirement kbed bedid
KEY CapacityRequirementItem kbed bedzl
KEY CapacityRqmtItemCapacity kbed canum
MaintOrderRoutingNumber _Order aufpl
MaintOrderOperationCounter afvc aplzl
MaintenanceOrder _Order aufnr
MaintenanceOrderOperation
MaintenanceOrderSubOperation
AssignedMaintOpSplitNumber kbed split
MaintWorkCenterPersonID kbed pernr
AssignedMaintOpStartDate kbed fstad
AssignedMaintOpStartTime kbed fstau
AssignedMaintOpEndDate kbed fendd
AssignedMaintOpEndTime kbed fendu
AssignedMaintOpWork _SplitPlanningValues arbei
AssignedMaintOpWorkUnit _SplitPlanningValues arbeh
AssignedMaintOpDuration _SplitPlanningValues dauno
AssignedMaintOpDurationUnit _SplitPlanningValues daune
_MaintenanceOrder _MaintenanceOrder
_Person _Person
@AccessControl.authorizationCheck: #MANDATORY
@EndUserText.label: 'Maint Order Op assigned to Person TP'
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
@VDM.viewType: #TRANSACTIONAL
define view entity R_RSHPersonAssignmentTP
  as select from kbed as _Split
    inner join   afvc as _MaintenanceOrderOperation on  _MaintenanceOrderOperation.aufpl = _Split.aufpl
                                                    and _MaintenanceOrderOperation.aplzl = _Split.aplzl
  //    association [0..1] to afvc                 as _MaintenanceOrderOperation on  _MaintenanceOrderOperation.aufpl = Split.aufpl

  //                                               and _MaintenanceOrderOperation.aplzl = Split.aplzl


  // Since AFKO has the key AUFNR and the key is not used as reference in the other tables KBED and AFVC, we need to disable the cardinality check / warning

  /*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ] } */
  association [0..1] to afko                 as _Order   on  _Order.bedid = _Split.bedid
 
   // Included for DCL checks on 

  // - order type

  // - maintenance plant, planner group

  // - equipment plant

  // - functional location plant

  association [0..1] to I_MaintenanceOrder   as _MaintenanceOrder   on $projection.MaintenanceOrder = _MaintenanceOrder.MaintenanceOrder
 
  association [0..1] to kbez                 as _SplitPlanningValues on _SplitPlanningValues.bedid = _Split.bedid
                                                                    and _SplitPlanningValues.bedzl = _Split.bedzl
                                                                    and _SplitPlanningValues.canum = _Split.canum
  association [0..1] to afvc                 as _SuperiorOperation  on  _SuperiorOperation.aufpl = _MaintenanceOrderOperation.aufpl
                                                                    and _SuperiorOperation.aplzl = _MaintenanceOrderOperation.sumnr
  association        to parent R_RSHPersonTP as _Person             on  $projection.MaintWorkCenterPersonID = _Person.MaintWorkCenterPersonID

{

  key _Split.bedid                                                                                                                                                 as CapacityRequirement,
  key _Split.bedzl                                                                                                                                                 as CapacityRequirementItem,
  key _Split.canum                                                                                                                                                 as CapacityRqmtItemCapacity,

      _Order.aufpl                                                                                                                                                as MaintOrderRoutingNumber,
      _MaintenanceOrderOperation.aplzl                                                                                                                            as MaintOrderOperationCounter,

      _Order.aufnr                                                                                                                                                as MaintenanceOrder,
      cast(  coalesce( _SuperiorOperation.vornr, _MaintenanceOrderOperation.vornr ) as maintenanceorderoperation    preserving type )                             as MaintenanceOrderOperation,
      cast( case when  _MaintenanceOrderOperation.sumnr = '00000000' then '' else _MaintenanceOrderOperation.vornr end as vdm_vornr preserving type )             as MaintenanceOrderSubOperation,
      _Split.split                                                                                                                                                 as AssignedMaintOpSplitNumber,

      @ObjectModel.filter.transformedBy: 'ABAP:CL_RSH_PERSON_ASG_F_EXIT'
      _Split.pernr                                                                                                                                                 as MaintWorkCenterPersonID,

      _Split.fstad                                                                                                                                                 as AssignedMaintOpStartDate,
      _Split.fstau                                                                                                                                                 as AssignedMaintOpStartTime,

      _Split.fendd                                                                                                                                                 as AssignedMaintOpEndDate,
      _Split.fendu                                                                                                                                                 as AssignedMaintOpEndTime,

      // Use date and time and system time zone and create a TIMESTAMP (which is in UTC)

      // BADI call will not be required post this conversion.

      case when _Split.fstau = '240000'
      then  cast(dats_tims_to_tstmp( _Split.fstad, cast('235959' as tims), abap_system_timezone( $session.client,'NULL'), $session.client,'NULL') as timestamp preserving type)
      else
      cast(dats_tims_to_tstmp( _Split.fstad, _Split.fstau,abap_system_timezone( $session.client,'NULL'), $session.client,'NULL') as timestamp preserving type) end  as AssignedMaintOpStartDateTime,
      
      case when _Split.fendu = '240000'
      then  cast(dats_tims_to_tstmp( _Split.fendd, cast('235959' as tims), abap_system_timezone( $session.client,'NULL'), $session.client,'NULL') as timestamp preserving type)
      else
      cast(dats_tims_to_tstmp( _Split.fendd, _Split.fendu, abap_system_timezone( $session.client,'NULL'), $session.client,'NULL') as timestamp preserving type) end as AssignedMaintOpEndDateTime,

      _SplitPlanningValues.arbei                                                                                                                                   as AssignedMaintOpWork,
      _SplitPlanningValues.arbeh                                                                                                                                   as AssignedMaintOpWorkUnit,
      _SplitPlanningValues.dauno                                                                                                                                   as AssignedMaintOpDuration,
      _SplitPlanningValues.daune                                                                                                                                   as AssignedMaintOpDurationUnit,

//    _Order,

      _MaintenanceOrder,
//    _MaintenanceOrder.MaintenanceOrder,

//    _MaintenanceOrder.MaintenancePlanningPlant,

      _Person

}
where
  _Order.plnaw = 'I' and
  _Split.pernr is not initial;
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"AFKO",
"AFVC",
"KBED",
"KBEZ"
],
"ASSOCIATED":
[
"I_MAINTENANCEORDER",
"R_RSHPERSONTP"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/