I_AllRepairObjectSituation

DDL: I_ALLREPAIROBJECTSITUATION Type: view_entity COMPOSITE Package: CRMS4_REPAIR_SITN_HNDLG

Anchor for Repair Object Situations

I_AllRepairObjectSituation is a Composite CDS View that provides data about "Anchor for Repair Object Situations" in SAP S/4HANA. It reads from 2 data sources (I_InHouseRepair, I_InHouseRepairItem) and exposes 28 fields with key fields CustMgmtObjectType, InHouseRepair, RepairObject. It has 3 associations to related views. Part of development package CRMS4_REPAIR_SITN_HNDLG.

Data Sources (2)

SourceAliasJoin Type
I_InHouseRepair InHRepair inner
I_InHouseRepairItem InhRepItem from

Associations (3)

CardinalityTargetAliasCondition
[0..1] E_InHouseRepairItem _RepairObjectExtension $projection.CustMgmtObjectType = _RepairObjectExtension.CustMgmtObjectType and $projection.InHouseRepair = _RepairObjectExtension.InHouseRepair and $projection.RepairObject = _RepairObjectExtension.InHouseRepairItem
[0..1] R_InhRepairItmNrOfOpnMaintOrds _InhReprItmNrOfOpnMaintOrd $projection.InHouseRepairItemUUID = _InhReprItmNrOfOpnMaintOrd.InHouseRepairItemUUID
[0..1] P_InhRepairItmNrOfBillgRdyItms _InhRepairItmNrOfBillgRdyItms $projection.InHouseRepairItemUUID = _InhRepairItmNrOfBillgRdyItms.InHouseRepairItemUUID

Annotations (9)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Anchor for Repair Object Situations view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.uniqueIdField InHouseRepairItemUUID view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view

Fields (28)

KeyFieldSource TableSource FieldDescription
KEY CustMgmtObjectType I_InHouseRepairItem CustMgmtObjectType
KEY InHouseRepair I_InHouseRepairItem InHouseRepair
KEY RepairObject I_InHouseRepairItem InHouseRepairItem
InHouseRepairItemUUID I_InHouseRepairItem InHouseRepairItemUUID
InhRepairStatus
RepairObjectStatus
ResponsibleEmployeeUserID RespEmployeeUser UserID
InHouseRepairUUID I_InHouseRepairItem InHouseRepairUUID
CreatedByUser I_InHouseRepairItem CreatedByUser
InhRepairItemCategory I_InHouseRepairItem InhRepairItemCategory
SalesOrganization I_InHouseRepair SalesOrganization
DistributionChannel I_InHouseRepair DistributionChannel
Division I_InHouseRepair Division
SalesOffice I_InHouseRepair SalesOffice
SalesGroup I_InHouseRepair SalesGroup
InhRepairType I_InHouseRepairItem InhRepairType
InhRepairItemAvailyStatus I_InHouseRepairItem InhRepairItemAvailyStatus
ServiceDocumentIsOpen
NumberOfOpenMaintenanceOrders _InhReprItmNrOfOpnMaintOrd NumberOfOpenMaintenanceOrders
NrOfSrvcDocItmsReadyForBilling _InhRepairItmNrOfBillgRdyItms NrOfSrvcDocItmsReadyForBilling
_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
@AccessControl: {
    personalData.blocking: #('TRANSACTIONAL_DATA'),
    authorizationCheck: #MANDATORY
    }
@EndUserText.label: 'Anchor for Repair Object Situations'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel: {
    semanticKey:  [ 'InHouseRepair', 'RepairObject' ] ,
    uniqueIdField: 'InHouseRepairItemUUID',
    usageType: {
          serviceQuality: #D,
          sizeCategory: #XL,
          dataClass: #MIXED
        }
  }
@ObjectModel.supportedCapabilities:[ #SITUATION_ANCHOR ]
@VDM: {
  viewType: #COMPOSITE,
  lifecycle.contract.type: #PUBLIC_LOCAL_API
}
define view entity I_AllRepairObjectSituation
  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

  association [0..1] to R_InhRepairItmNrOfOpnMaintOrds as _InhReprItmNrOfOpnMaintOrd    on  $projection.InHouseRepairItemUUID = _InhReprItmNrOfOpnMaintOrd.InHouseRepairItemUUID

  association [0..1] to P_InhRepairItmNrOfBillgRdyItms as _InhRepairItmNrOfBillgRdyItms on  $projection.InHouseRepairItemUUID = _InhRepairItmNrOfBillgRdyItms.InHouseRepairItemUUID
{

         @UI.hidden: true
  key    InhRepItem.CustMgmtObjectType,

  key    InhRepItem.InHouseRepair                                                                                                   as InHouseRepair,

  key    InhRepItem.InHouseRepairItem                                                                                               as RepairObject,

         @UI.hidden:true
         InhRepItem.InHouseRepairItemUUID,

         @Consumption.valueHelpDefinition: [{ entity: { name: 'I_InHouseRepairStatusVH', element: 'InhRepairStatus' }}]
         cast(InHRepair.InhRepairStatus as crms4_inhrepair_status preserving type)                                                  as InhRepairStatus,


         @Consumption.valueHelpDefinition: [{ entity: { name: 'I_InhRepairItemStatusVH', element: 'InhRepairItemStatus' }}]
         cast(InhRepItem.InhRepairItemStatus as crms4_repair_obj_status preserving type)                                            as RepairObjectStatus,

         @UI.hidden:true
         RespEmployeeUser.UserID                                                                                                    as ResponsibleEmployeeUserID,

         @UI.hidden:true
         InhRepItem.InHouseRepairUUID,

         @UI.hidden:true
         InhRepItem.CreatedByUser,

         @UI.hidden: true
         InhRepItem.InhRepairItemCategory,

         /* 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,

         InhRepItem.InhRepairItemAvailyStatus,
         @Semantics.booleanIndicator: true
         cast(InhRepItem._RepairOrder._SuccessorServiceTransaction.ServiceDocumentIsOpen as crms4_serv_doc_is_open preserving type) as ServiceDocumentIsOpen,
         _InhReprItmNrOfOpnMaintOrd.NumberOfOpenMaintenanceOrders,
         _InhRepairItmNrOfBillgRdyItms.NrOfSrvcDocItmsReadyForBilling,


         //Associations

         InhRepItem._InHouseRepair,
         InHRepair._SalesOrganization,
         InHRepair._DistributionChannel,
         InHRepair._Division,
         InHRepair._SalesOffice,
         InHRepair._SalesGroup,
         InhRepItem._CustMgmtObjectType,
         InhRepItem._InhRepairItemCategory
}