I_InHouseRepairSituation

DDL: I_INHOUSEREPAIRSITUATION Type: view COMPOSITE

In-House Repair Situations

I_InHouseRepairSituation is a Composite CDS View that provides data about "In-House Repair Situations" in SAP S/4HANA. It reads from 1 data source (I_InHouseRepair) and exposes 32 fields with key fields InHouseRepair, CustMgmtObjectType, InHouseRepairUUID. It has 1 association to related views.

Data Sources (1)

SourceAliasJoin Type
I_InHouseRepair Header from

Associations (1)

CardinalityTargetAliasCondition
[0..1] E_InHouseRepair _InHouseRepairExtension $projection.CustMgmtObjectType = _InHouseRepairExtension.CustMgmtObjectType and $projection.InHouseRepair = _InHouseRepairExtension.InHouseRepair

Annotations (13)

NameValueLevelField
AbapCatalog.sqlViewName IINHREPHDR view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
AccessControl.authorizationCheck #CHECK view
ObjectModel.uniqueIdField InHouseRepairUUID view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MIXED view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label In-House Repair Situations view
Metadata.ignorePropagatedAnnotations true view

Fields (32)

KeyFieldSource TableSource FieldDescription
KEY InHouseRepair I_InHouseRepair InHouseRepair
KEY CustMgmtObjectType I_InHouseRepair CustMgmtObjectType
KEY InHouseRepairUUID I_InHouseRepair InHouseRepairUUID
InhRepairType I_InHouseRepair InhRepairType
SalesOrganization I_InHouseRepair SalesOrganization
SalesOrganizationOrgUnitID I_InHouseRepair SalesOrganizationOrgUnitID
DistributionChannel I_InHouseRepair DistributionChannel
Division I_InHouseRepair Division
SalesOffice I_InHouseRepair SalesOffice
SalesGroup I_InHouseRepair SalesGroup
SalesGroupOrgUnitID I_InHouseRepair SalesGroupOrgUnitID
SalesOfficeOrgUnitID I_InHouseRepair SalesOfficeOrgUnitID
CreatedByUser I_InHouseRepair CreatedByUser
InhRepairStatus In-House Repair Status
ResponsibleEmployee I_InHouseRepair ResponsibleEmployee
ResponsibleEmployeeUserID RespEmployeeUser UserID
NrOfDaysAfterCreationDate Number of Days After In-House Repair Creation
_InhRepairType I_InHouseRepair _InhRepairType
_SalesOrganization I_InHouseRepair _SalesOrganization
_SalesOrganizationOrgUnit I_InHouseRepair _SalesOrganizationOrgUnit
_SalesOrganizationOrgUnit_2 I_InHouseRepair _SalesOrganizationOrgUnit_2
_DistributionChannel I_InHouseRepair _DistributionChannel
_Division I_InHouseRepair _Division
_SalesOffice I_InHouseRepair _SalesOffice
_SalesGroup I_InHouseRepair _SalesGroup
_SalesGroupOrgUnit I_InHouseRepair _SalesGroupOrgUnit
_SalesGroupOrgUnit_2 I_InHouseRepair _SalesGroupOrgUnit_2
_SalesOfficeOrgUnit I_InHouseRepair _SalesOfficeOrgUnit
_SalesOfficeOrgUnit_2 I_InHouseRepair _SalesOfficeOrgUnit_2
_RepairOrders I_InHouseRepair _RepairOrders
_ResponsibleEmployee I_InHouseRepair _ResponsibleEmployee
_CustMgmtObjectType I_InHouseRepair _CustMgmtObjectType
@AbapCatalog:{
sqlViewName: 'IINHREPHDR',
compiler.compareFilter: true,
preserveKey: true
 }
@VDM: {
  viewType: #COMPOSITE,
  lifecycle.contract.type: #PUBLIC_LOCAL_API
}
@AccessControl: {
    personalData.blocking: #('TRANSACTIONAL_DATA'),
    authorizationCheck: #CHECK
    }
@ObjectModel: {
    semanticKey:  [ 'InHouseRepair'] ,
    uniqueIdField: 'InHouseRepairUUID',
    usageType: {
          serviceQuality: #D,
          sizeCategory: #L,
          dataClass: #MIXED
        }
  }
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'In-House Repair Situations'

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

@Metadata.ignorePropagatedAnnotations: true

define view I_InHouseRepairSituation
  as select from           I_InHouseRepair     as Header
    left outer to one join I_BusinessUserBasic as RespEmployeeUser on Header.ResponsibleEmployee = RespEmployeeUser.BusinessPartner

  association [0..1] to E_InHouseRepair as _InHouseRepairExtension on  $projection.CustMgmtObjectType = _InHouseRepairExtension.CustMgmtObjectType
                                                                   and $projection.InHouseRepair      = _InHouseRepairExtension.InHouseRepair

{

  key   Header.InHouseRepair,

        @UI.hidden: true
  key   Header.CustMgmtObjectType,

        @UI.hidden: true
  key   Header.InHouseRepairUUID,

        // Due to DCL Inheritence, below fields are needed

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

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

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

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

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

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

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

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

        @UI.hidden: true
        Header.SalesOfficeOrgUnitID,

        @UI.hidden: true
        Header.CreatedByUser,

        @Consumption.valueHelpDefinition: [{ entity: { name: 'I_InHouseRepairStatusVH', element: 'InhRepairStatus' }}]
        @EndUserText.label: 'In-House Repair Status'
        cast(Header.InhRepairStatus as crms4_inhrepair_status) as InhRepairStatus,

        @UI.hidden: true
        Header.ResponsibleEmployee,

        @UI.hidden: true
        RespEmployeeUser.UserID                                                                                   as ResponsibleEmployeeUserID,
        
        
        @DefaultAggregation: #MAX
        @EndUserText.label: 'Number of Days After In-House Repair Creation'
       cast( division(  TSTMP_SECONDS_BETWEEN(Header.CreationDateTime,tstmp_current_utctimestamp(),'NULL'), 86400, 0 ) as crms4_days_after_creation_date) as NrOfDaysAfterCreationDate,



        /*********** Associations **************/
        Header._InhRepairType,
        Header._SalesOrganization,
        @API.element.releaseState: #DEPRECATED
        @API.element.successor: '_SalesOrganizationOrgUnit_2'
        Header._SalesOrganizationOrgUnit,
        Header._SalesOrganizationOrgUnit_2,        
        Header._DistributionChannel,
        Header._Division,
        Header._SalesOffice,
        Header._SalesGroup,
        @API.element.releaseState: #DEPRECATED
        @API.element.successor: '_SalesGroupOrgUnit_2'       
        Header._SalesGroupOrgUnit,
        Header._SalesGroupOrgUnit_2,        
        @API.element.releaseState: #DEPRECATED
        @API.element.successor: '_SalesOfficeOrgUnit_2'
        Header._SalesOfficeOrgUnit,
        Header._SalesOfficeOrgUnit_2,        
        Header._RepairOrders,
        Header._ResponsibleEmployee,
        Header._CustMgmtObjectType
}
where
  Header.InhRepairIsOpen = 'X' // not completed

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BUSINESSUSERBASIC",
"I_INHOUSEREPAIR"
],
"ASSOCIATED":
[
"E_INHOUSEREPAIR",
"I_BUSINESSOBJTYPE",
"I_BUSINESSPARTNER",
"I_DISTRIBUTIONCHANNEL",
"I_DIVISION",
"I_INHREPAIRTRANSACTIONRELATION",
"I_SALESGROUP",
"I_SALESOFFICE",
"I_SALESORGANIZATION",
"I_SALESORGANIZATIONUNIT",
"I_SERVICEDOCUMENTTYPE",
"I_SRVCMGMTORGANIZATIONUNIT"
],
"BASE":
[
"I_INHOUSEREPAIR"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/