R_RSHPersonAssignmentTP
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.
Associations (4)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [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)
| Name | Value | Level | Field |
|---|---|---|---|
| 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)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| 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":""
}
}*/
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA