R_RSHPersonAssignmentTP

DDL: R_RSHPERSONASSIGNMENTTP Type: view_entity TRANSACTIONAL Package: RSH_RAP_RES

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 21 fields with key fields CapacityRequirement, CapacityRequirementItem, CapacityRqmtItemCapacity. It has 4 associations to related views. It is exposed through 1 OData service (UI_RSHPERSON). It is used in 1 Fiori application: Maintenance Scheduling Board. Part of development package RSH_RAP_RES.

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

OData Services (1)

ServiceBindingVersionContractRelease
UI_RSHPERSON UI_RSHPERSON V2 C1 NOT_RELEASED

Fiori Apps (1)

App IDApp NameTypeDescription
F2603 Maintenance Scheduling Board Transactional An app that allows maintenance planners to visualize the maintenance orders and order operations in their work centers on a timeline

Maintenance Scheduling Board

Business Role: Maintenance Planner - Resource Scheduling

The Maintenance Scheduling Board app visualizes graphically the maintenance orders, order operations, and suboperations in your work centers. In the table area, maintenance orders, order operations, and suboperations are shown in their hierarchical structure, with the order at the top level and the operations and suboperations at the second level. A Gantt chart shows orders, operations, and suboperations on a timeline. This allows you to quickly identify scheduling conflicts. You can filter the orders, order operations, and suboperations as needed and show more detailed information for them.

Fields (21)

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
OperationDescription afvc ltxa1
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,
      _MaintenanceOrderOperation.ltxa1                                                                                                                                      as OperationDescription,
      _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;