I_RepairObjectSituation

DDL: I_REPAIROBJECTSITUATION SQL: IREPOBJSIT Type: view COMPOSITE

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.

Data Sources (2)

SourceAliasJoin Type
I_InHouseRepair InHRepair inner
I_InHouseRepairItem InhRepItem from

Associations (1)

CardinalityTargetAliasCondition
[0..1] E_InHouseRepairItem _RepairObjectExtension $projection.CustMgmtObjectType = _RepairObjectExtension.CustMgmtObjectType and $projection.InHouseRepair = _RepairObjectExtension.InHouseRepair and $projection.RepairObject = _RepairObjectExtension.InHouseRepairItem

Annotations (13)

NameValueLevelField
AbapCatalog.sqlViewName IREPOBJSIT view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
ObjectModel.uniqueIdField InHouseRepairItemUUID view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Repair Object Situations view
Metadata.ignorePropagatedAnnotations true view

Fields (26)

KeyFieldSource TableSource FieldDescription
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 SalesOrganization
DistributionChannel DistributionChannel
Division Division
SalesOffice SalesOffice
SalesGroup SalesGroup
InhRepairType I_InHouseRepairItem InhRepairType
_InHouseRepair _InHouseRepair
_SalesOrganization _SalesOrganization
_DistributionChannel _DistributionChannel
_Division _Division
_SalesOffice _SalesOffice
_SalesGroup _SalesGroup
_CustMgmtObjectType I_InHouseRepairItem _CustMgmtObjectType
_InhRepairItemCategory I_InHouseRepairItem _InhRepairItemCategory
@AbapCatalog.sqlViewName: 'IREPOBJSIT'
@VDM: {
  viewType: #COMPOSITE,
  lifecycle.contract.type: #PUBLIC_LOCAL_API
}
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl: {
    personalData.blocking: #('TRANSACTIONAL_DATA'),
    authorizationCheck: #CHECK
    }
@ObjectModel: {
    semanticKey:  [ 'RepairObjectCombinedID' ] ,
    uniqueIdField: 'InHouseRepairItemUUID',
    usageType: {
          serviceQuality: #D,
          sizeCategory: #XL,
          dataClass: #MIXED
        }
  }
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Repair Object Situations'

@ObjectModel.supportedCapabilities:
   [ #SITUATION_ANCHOR, #SITUATION_TRIGGER ]

@Metadata.ignorePropagatedAnnotations: true

define view 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  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(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
         SalesOrganization,
         //required for authorization check

         @UI.hidden: true
         DistributionChannel,
         //required for authorization check

         @UI.hidden: true
         Division,
         //required for authorization check

         @UI.hidden: true
         SalesOffice,
         //required for authorization check

         @UI.hidden: true
         SalesGroup,
         @UI.hidden: true
         InhRepItem.InhRepairType,


         //Associations

         _InHouseRepair,
         _SalesOrganization,
         _DistributionChannel,
         _Division,
         _SalesOffice,
         _SalesGroup,
         InhRepItem._CustMgmtObjectType,
         // InhRepItem._InhRepairItemStatus,

         InhRepItem._InhRepairItemCategory
         // InHRepair._InhRepairStatus


}
where
  InhRepItem.InhRepairItemIsOpen = 'X' //not completed

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BUSINESSUSERBASIC",
"I_CUSTMGMTTRANSACTIONRELATION",
"I_INHOUSEREPAIR",
"I_INHOUSEREPAIRITEM",
"P_INHOUSEREPAIRITEMSTATUSHIST"
],
"ASSOCIATED":
[
"E_INHOUSEREPAIRITEM",
"I_BUSINESSOBJTYPE",
"I_CUSTMGMTDOCITEMCATEGORY",
"I_DISTRIBUTIONCHANNEL",
"I_DIVISION",
"I_INHOUSEREPAIR",
"I_SALESGROUP",
"I_SALESOFFICE",
"I_SALESORGANIZATION"
],
"BASE":
[
"I_INHOUSEREPAIR",
"I_INHOUSEREPAIRITEM"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/