I_RepairObjectSituation
Repair Object Situations
I_RepairObjectSituation is a Composite CDS View that provides data about "Repair Object Situations" in SAP S/4HANA. It reads from 2 data sources (I_InHouseRepair, I_InHouseRepairItem) and exposes 26 fields with key fields CustMgmtObjectType, InHouseRepair, RepairObject, InHouseRepairItemUUID. It has 1 association to related views. Part of development package CRMS4_REPAIR_SITN_HNDLG.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_InHouseRepair | InHRepair | inner |
| I_InHouseRepairItem | InhRepItem | from |
Associations (1)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | E_InHouseRepairItem | _RepairObjectExtension | $projection.CustMgmtObjectType = _RepairObjectExtension.CustMgmtObjectType and $projection.InHouseRepair = _RepairObjectExtension.InHouseRepair and $projection.RepairObject = _RepairObjectExtension.InHouseRepairItem |
Annotations (9)
| Name | Value | Level | Field |
|---|---|---|---|
| VDM.viewType | #COMPOSITE | view | |
| VDM.lifecycle.contract.type | #PUBLIC_LOCAL_API | view | |
| AccessControl.authorizationCheck | #MANDATORY | view | |
| ObjectModel.uniqueIdField | InHouseRepairItemUUID | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| EndUserText.label | Repair Object Situations | view | |
| Metadata.ignorePropagatedAnnotations | true | view |
Fields (26)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | CustMgmtObjectType | I_InHouseRepairItem | CustMgmtObjectType | |
| KEY | InHouseRepair | I_InHouseRepairItem | InHouseRepair | |
| KEY | RepairObject | I_InHouseRepairItem | InHouseRepairItem | |
| KEY | InHouseRepairItemUUID | I_InHouseRepairItem | InHouseRepairItemUUID | |
| InhRepairStatus | In-House Repair Status | |||
| RepairObjectStatus | ||||
| ResponsibleEmployeeUserID | RespEmployeeUser | UserID | ||
| InHouseRepairUUID | I_InHouseRepairItem | InHouseRepairUUID | ||
| CreatedByUser | I_InHouseRepairItem | CreatedByUser | ||
| InhRepairItemCategory | I_InHouseRepairItem | InhRepairItemCategory | ||
| NrOfDaysAftReprObjCreationDate | Number of Days After Repair Object Creation | |||
| NrOfDaysInCurrentStatus | Number of Days Repair Object in Current Status | |||
| SalesOrganization | I_InHouseRepair | SalesOrganization | ||
| DistributionChannel | I_InHouseRepair | DistributionChannel | ||
| Division | I_InHouseRepair | Division | ||
| SalesOffice | I_InHouseRepair | SalesOffice | ||
| SalesGroup | I_InHouseRepair | SalesGroup | ||
| InhRepairType | I_InHouseRepairItem | InhRepairType | ||
| _InHouseRepair | I_InHouseRepairItem | _InHouseRepair | ||
| _SalesOrganization | I_InHouseRepair | _SalesOrganization | ||
| _DistributionChannel | I_InHouseRepair | _DistributionChannel | ||
| _Division | I_InHouseRepair | _Division | ||
| _SalesOffice | I_InHouseRepair | _SalesOffice | ||
| _SalesGroup | I_InHouseRepair | _SalesGroup | ||
| _CustMgmtObjectType | I_InHouseRepairItem | _CustMgmtObjectType | ||
| _InhRepairItemCategory | I_InHouseRepairItem | _InhRepairItemCategory |
@VDM: {
viewType: #COMPOSITE,
lifecycle.contract.type: #PUBLIC_LOCAL_API
}
@AccessControl: {
personalData.blocking: #('TRANSACTIONAL_DATA'),
authorizationCheck: #MANDATORY
}
@ObjectModel: {
semanticKey: [ 'RepairObjectCombinedID' ] ,
uniqueIdField: 'InHouseRepairItemUUID',
usageType: {
serviceQuality: #D,
sizeCategory: #XL,
dataClass: #MIXED
}
}
@EndUserText.label: 'Repair Object Situations'
@ObjectModel.supportedCapabilities:
[ #SITUATION_ANCHOR, #SITUATION_TRIGGER ]
@Metadata.ignorePropagatedAnnotations: true
define view entity I_RepairObjectSituation
as select from I_InHouseRepairItem as InhRepItem
inner join I_InHouseRepair as InHRepair on InHRepair.CustMgmtObjectType = InhRepItem.CustMgmtObjectType
and InHRepair.InHouseRepair = InhRepItem.InHouseRepair
left outer to one join I_BusinessUserBasic as RespEmployeeUser on InHRepair.ResponsibleEmployee = RespEmployeeUser.BusinessPartner
left outer to one join I_CustMgmtTransactionRelation as TransRelation on TransRelation.CustMgmtPrdcssrTransactionUUID = InhRepItem.InHouseRepairItemUUID
and TransRelation.CustMgmtTransacRelationType = 'IHR1'
and TransRelation.CustMgmtPrdcssrTransacObjType = 'BUS2000257'
left outer to one join P_InHouseRepairItemStatusHist as StatusChangeHistory on StatusChangeHistory.InHouseRepairItemUUID = InhRepItem.InHouseRepairItemUUID
association [0..1] to E_InHouseRepairItem as _RepairObjectExtension on $projection.CustMgmtObjectType = _RepairObjectExtension.CustMgmtObjectType
and $projection.InHouseRepair = _RepairObjectExtension.InHouseRepair
and $projection.RepairObject = _RepairObjectExtension.InHouseRepairItem
{
@UI.hidden: true
key InhRepItem.CustMgmtObjectType,
key InhRepItem.InHouseRepair as InHouseRepair,
key InhRepItem.InHouseRepairItem as RepairObject,
@UI.hidden:true
key InhRepItem.InHouseRepairItemUUID,
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_InHouseRepairStatusVH', element: 'InhRepairStatus' }}]
@EndUserText.label: 'In-House Repair Status'
cast(InHRepair.InhRepairStatus as crms4_inhrepair_status) as InhRepairStatus,
@EndUserText.label: 'Repair Object Combined ID'
cast(
concat(concat(InhRepItem.InHouseRepair, '/' ) , InhRepItem.InHouseRepairItem )
as crms4_repairorderitm_unique_id preserving type
) as RepairObjectCombinedID,
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_InhRepairItemStatusVH', element: 'InhRepairItemStatus' }}]
cast(InhRepItem.InhRepairItemStatus as crms4_repair_obj_status) as RepairObjectStatus,
cast( case when TransRelation.CustMgmtPrdcssrTransacObjType = 'BUS2000257' then 'X'
else ' ' end as crms4_repa_ord_ex_boolean preserving type ) as RepairOrderIsExisting,
@UI.hidden:true
RespEmployeeUser.UserID as ResponsibleEmployeeUserID,
// @UI.hidden:true
// InHRepair.ResponsibleEmployee, // Needed for DCL
@UI.hidden:true
InhRepItem.InHouseRepairUUID,
@UI.hidden:true
InhRepItem.CreatedByUser,
@UI.hidden: true
InhRepItem.InhRepairItemCategory,
@DefaultAggregation: #MAX
@EndUserText.label:'Number of Days After Repair Object Creation'
cast(division( tstmp_seconds_between(InhRepItem.CreationDateTime,tstmp_current_utctimestamp(),'NULL'), 86400, 0 ) as crms4_creation_date_duration) as NrOfDaysAftReprObjCreationDate,
@DefaultAggregation: #MAX
@EndUserText.label:'Number of Days Repair Object in Current Status'
cast(division( tstmp_seconds_between(StatusChangeHistory.StatusChangedDateTime, tstmp_current_utctimestamp(),'NULL'), 86400, 0 ) as crms4_days_in_current_status) as NrOfDaysInCurrentStatus,
/* Due to DCL Inheritence, below fields are needed */
//required for authorization check
@UI.hidden: true
InHRepair.SalesOrganization,
//required for authorization check
@UI.hidden: true
InHRepair.DistributionChannel,
//required for authorization check
@UI.hidden: true
InHRepair.Division,
//required for authorization check
@UI.hidden: true
InHRepair.SalesOffice,
//required for authorization check
@UI.hidden: true
InHRepair.SalesGroup,
@UI.hidden: true
InhRepItem.InhRepairType,
//Associations
InhRepItem._InHouseRepair,
InHRepair._SalesOrganization,
InHRepair._DistributionChannel,
InHRepair._Division,
InHRepair._SalesOffice,
InHRepair._SalesGroup,
InhRepItem._CustMgmtObjectType,
// InhRepItem._InhRepairItemStatus,
InhRepItem._InhRepairItemCategory
// InHRepair._InhRepairStatus
}
where
InhRepItem.InhRepairItemIsOpen = 'X' //not completed
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