I_InHouseRepairItemTP

DDL: I_INHOUSEREPAIRITEMTP Type: view_entity TRANSACTIONAL

In-House Repair Item

I_InHouseRepairItemTP is a Transactional CDS View that provides data about "In-House Repair Item" in SAP S/4HANA. It reads from 1 data source (I_InHouseRepairItem) and exposes 55 fields with key fields InHouseRepair, InHouseRepairItem. It has 9 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_InHouseRepairItem ihritem from

Associations (9)

CardinalityTargetAliasCondition
[1..1] I_InHouseRepair _InHouseRepair _InHouseRepair.CustMgmtObjectType = 'BUS2000256' and $projection.InHouseRepair = _InHouseRepair.InHouseRepair
[0..1] I_SitnInstceIndicator _SitnInstceIndicator _SitnInstceIndicator.SitnInstceAnchorObjectKey = $projection.InHouseRepairItemCharUUID and _SitnInstceIndicator.SitnDefAnchorObject = 'InHouseRepairItemUUID'
[1..1] E_InHouseRepairItem _Extension _Extension.CustMgmtObjectType = 'BUS2000256' and $projection.InHouseRepair = _Extension.InHouseRepair and $projection.InHouseRepairItem = _Extension.InHouseRepairItem
[0..1] P_InhRepairItmNrOfOpenConf _InhRepairItmNrOfOpenSrvcConf $projection.InHouseRepair = _InhRepairItmNrOfOpenSrvcConf.InHouseRepair and $projection.InHouseRepairItem = _InhRepairItmNrOfOpenSrvcConf.InHouseRepairItem
[0..1] R_InhRepairItmNrOfOpnMaintOrds _InhReprItmNrOfOpnMaintOrd $projection.InHouseRepairItemUUID = _InhReprItmNrOfOpnMaintOrd.InHouseRepairItemUUID
[0..1] I_InhRepairItmCustRetRelation _CustomerReturnsItemReference ( $projection.InHouseRepairItemCharUUID = _CustomerReturnsItemReference.ServiceDocumentItemPredecessor and _CustomerReturnsItemReference.ServiceDocItmSuccssrBusObjType = 'VBAP' ) or ( $projection.InHouseRepairItemCharUUID = _CustomerReturnsItemReference.ServiceDocumentItemSuccessor and _CustomerReturnsItemReference.ServiceDocItmPrdcssrBusObjType = 'VBAP' )
[0..1] R_InhRepairItemCreditStatus _SrvcDocCreditStatus _SrvcDocCreditStatus.CustMgmtObjectType = 'BUS2000256' and _SrvcDocCreditStatus.InHouseRepair = $projection.InHouseRepair and _SrvcDocCreditStatus.InHouseRepairItem = $projection.InHouseRepairItem
[0..*] R_InhRepairItemNoteTP _InhRepairItemNoteTP
[0..*] R_InhRepairItmFUPCustReturnTP _InhRepairItmFUPCustReturnTP

Annotations (9)

NameValueLevelField
EndUserText.label In-House Repair Item view
VDM.viewType #TRANSACTIONAL view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
AccessControl.authorizationCheck #CHECK view
ObjectModel.representativeKey InHouseRepairItem view
ObjectModel.usageType.serviceQuality #B view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
Metadata.ignorePropagatedAnnotations true view

Fields (55)

KeyFieldSource TableSource FieldDescription
KEY InHouseRepair I_InHouseRepairItem InHouseRepair
KEY InHouseRepairItem I_InHouseRepairItem InHouseRepairItem
InHouseRepairItemUUID I_InHouseRepairItem InHouseRepairItemUUID
InHouseRepairItemCharUUID I_InHouseRepairItem InHouseRepairItemCharUUID
CreationDateTime I_InHouseRepairItem CreationDateTime
CreatedByUser I_InHouseRepairItem CreatedByUser
LastChangeDateTime I_InHouseRepairItem LastChangeDateTime
LastChangedByUser I_InHouseRepairItem LastChangedByUser
InhRepairItemObjectType I_InHouseRepairItem InhRepairItemObjectType
InHouseRepairUUID I_InHouseRepairItem InHouseRepairUUID
InhRepairItemCategory I_InHouseRepairItem InhRepairItemCategory
InhRepairItemStatus I_InHouseRepairItem InhRepairItemStatus
InhRepairItemSuplmntyStatus I_InHouseRepairItem InhRepairItemSuplmntyStatus
InhRepairItemAvailyStatus I_InHouseRepairItem InhRepairItemAvailyStatus
InhRepairItemDeliveryStatus I_InHouseRepairItem InhRepairItemDeliveryStatus
InhRepairItemHasError I_InHouseRepairItem InhRepairItemHasError
InhRepairItemIsOpen I_InHouseRepairItem InhRepairItemIsOpen
ProductUUID I_InHouseRepairItem ProductUUID
OriginallyRequestedProduct I_InHouseRepairItem OriginallyRequestedProduct
Product I_InHouseRepairItem Product
InhRepairReferenceEquipment I_InHouseRepairItem InhRepairReferenceEquipment
SerialNumber I_InHouseRepairItem SerialNumber
SoldToParty _InHouseRepairTP SoldToParty
ContactPerson _InHouseRepairTP ContactPerson
ShipToParty _InHouseRepairTP ShipToParty
DistributionChannel _InHouseRepairTP DistributionChannel
Division _InHouseRepairTP Division
SalesOrganization _InHouseRepairTP SalesOrganization
_InhReprItmNrOfOpnMaintOrd _InhReprItmNrOfOpnMaintOrd
ReferenceCustomerReturnItem I_InHouseRepairItem ReferenceCustomerReturnItem
RefRetsMgmtProcessItem I_InHouseRepairItem RefRetsMgmtProcessItem
RefRetsMgmtProcItmQtySplit I_InHouseRepairItem RefRetsMgmtProcItmQtySplit
InhRepairType I_InHouseRepairItem InhRepairType
PostingDate I_InHouseRepairItem PostingDate
_InhRepairItemCategory I_InHouseRepairItem _InhRepairItemCategory
_InhRepairItemStatus I_InHouseRepairItem _InhRepairItemStatus
_InhRepairItemSuplmntyStatus I_InHouseRepairItem _InhRepairItemSuplmntyStatus
_InhRepairItemHasError I_InHouseRepairItem _InhRepairItemHasError
_InhRepairItemIsOpen I_InHouseRepairItem _InhRepairItemIsOpen
_InhRepairReferenceEquipment I_InHouseRepairItem _InhRepairReferenceEquipment
_Product I_InHouseRepairItem _Product
_InHouseRepair _InHouseRepair
_InHouseRepairTP _InHouseRepairTP
_InhRepairItemNoteTP _InhRepairItemNoteTP
_RepairOrder I_InHouseRepairItem _RepairOrder
_RepairQuotation I_InHouseRepairItem _RepairQuotation
_SrvcMgmtObjectStatus I_InHouseRepairItem _SrvcMgmtObjectStatus
_SitnInstceIndicator _SitnInstceIndicator
_SrvcDocCreditStatus _SrvcDocCreditStatus
_InhRepairItemAvailyStatus I_InHouseRepairItem _InhRepairItemAvailyStatus
_ProductText I_InHouseRepairItem _ProductText
_InhRepairReferenceEquipText I_InHouseRepairItem _InhRepairReferenceEquipText
_OutboundDelivery I_InHouseRepairItem _OutboundDelivery
_CustomerReturnsItemReference _CustomerReturnsItemReference
_InhRepairItmFUPCustReturnTP _InhRepairItmFUPCustReturnTP
@EndUserText.label: 'In-House Repair Item'
@VDM: {
  viewType: #TRANSACTIONAL,
  lifecycle.contract.type: #SAP_INTERNAL_API
}
@AccessControl: {
  authorizationCheck: #CHECK,
  personalData.blocking: #('TRANSACTIONAL_DATA'),
  privilegedAssociations: ['_RepairOrder', '_RepairQuotation', '_InhReprItmNrOfOpnMaintOrd', '_SrvcDocCreditStatus']
}
@ObjectModel: {
  semanticKey: ['InHouseRepair', 'InHouseRepairItem'],
  representativeKey: 'InHouseRepairItem',
  usageType: {serviceQuality: #B, sizeCategory: #L, dataClass: #TRANSACTIONAL}
}
@Metadata: {
  ignorePropagatedAnnotations: true
}


/*+[hideWarning] { "IDS" : [ "CALCULATED_FIELD_CHECK" ] }*/
define view entity I_InHouseRepairItemTP
  as select from I_InHouseRepairItem as ihritem

  association        to parent I_InHouseRepairTP       as _InHouseRepairTP              on  $projection.InHouseRepair = _InHouseRepairTP.InHouseRepair

  composition [0..*] of R_InhRepairItemNoteTP          as _InhRepairItemNoteTP

  composition [0..*] of R_InhRepairItmFUPCustReturnTP  as _InhRepairItmFUPCustReturnTP
  association [1..1] to I_InHouseRepair                as _InHouseRepair                on  _InHouseRepair.CustMgmtObjectType = 'BUS2000256'
                                                                                        and $projection.InHouseRepair         = _InHouseRepair.InHouseRepair

  association [0..1] to I_SitnInstceIndicator          as _SitnInstceIndicator          on  _SitnInstceIndicator.SitnInstceAnchorObjectKey = $projection.InHouseRepairItemCharUUID
                                                                                        and _SitnInstceIndicator.SitnDefAnchorObject       = 'InHouseRepairItemUUID'

  association [1..1] to E_InHouseRepairItem            as _Extension                    on  _Extension.CustMgmtObjectType = 'BUS2000256'
                                                                                        and $projection.InHouseRepair     = _Extension.InHouseRepair
                                                                                        and $projection.InHouseRepairItem = _Extension.InHouseRepairItem

  association [0..1] to P_InhRepairItmNrOfOpenConf     as _InhRepairItmNrOfOpenSrvcConf on  $projection.InHouseRepair     = _InhRepairItmNrOfOpenSrvcConf.InHouseRepair
                                                                                        and $projection.InHouseRepairItem = _InhRepairItmNrOfOpenSrvcConf.InHouseRepairItem

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

  association [0..1] to I_InhRepairItmCustRetRelation  as _CustomerReturnsItemReference on  (
      $projection.InHouseRepairItemCharUUID                                                                                                                  = _CustomerReturnsItemReference.ServiceDocumentItemPredecessor
      and _CustomerReturnsItemReference.ServiceDocItmSuccssrBusObjType                                                                                       = 'VBAP'
    )
                                                                                        or  (
                                                                                            $projection.InHouseRepairItemCharUUID                            = _CustomerReturnsItemReference.ServiceDocumentItemSuccessor
                                                                                            and _CustomerReturnsItemReference.ServiceDocItmPrdcssrBusObjType = 'VBAP'
                                                                                          )
 
  association [0..1] to R_InhRepairItemCreditStatus    as _SrvcDocCreditStatus          on  _SrvcDocCreditStatus.CustMgmtObjectType = 'BUS2000256'
                                                                                        and _SrvcDocCreditStatus.InHouseRepair      = $projection.InHouseRepair
                                                                                        and _SrvcDocCreditStatus.InHouseRepairItem  = $projection.InHouseRepairItem

{
      @ObjectModel: {
        foreignKey.association: '_InHouseRepair'
      }
  key ihritem.InHouseRepair, //Header ID

  key ihritem.InHouseRepairItem,
      ihritem.InHouseRepairItemUUID,
      ihritem.InHouseRepairItemCharUUID,
      ihritem.CreationDateTime,
      ihritem.CreatedByUser,
      ihritem.LastChangeDateTime,
      ihritem.LastChangedByUser,
      ihritem.InhRepairItemObjectType, //Transaction Category, BUS2000257 (Item)

      ihritem.InHouseRepairUUID,
      @ObjectModel: {
        foreignKey.association: '_InhRepairItemCategory'
      }
      ihritem.InhRepairItemCategory,
      @ObjectModel: {
        foreignKey.association: '_InhRepairItemStatus'
      }
      ihritem.InhRepairItemStatus,
      @ObjectModel: {
        foreignKey.association: '_InhRepairItemSuplmntyStatus'
      }
      ihritem.InhRepairItemSuplmntyStatus,
      @ObjectModel: {
        foreignKey.association: '_InhRepairItemAvailyStatus'
      }
      ihritem.InhRepairItemAvailyStatus,
      ihritem.InhRepairItemDeliveryStatus,
      @Semantics: {
        booleanIndicator: true
      }
      @ObjectModel: {
        foreignKey.association: '_InhRepairItemHasError'
      }
      ihritem.InhRepairItemHasError,
      @Semantics: {
        booleanIndicator: true
      }
      @ObjectModel: {
        foreignKey.association: '_InhRepairItemIsOpen'
      }
      ihritem.InhRepairItemIsOpen,
      ihritem.ProductUUID,
      ihritem.OriginallyRequestedProduct, //Material Number (Alphanumeric key)

      @ObjectModel: {
        foreignKey.association: '_Product'
      }
      ihritem.Product, //Material Number (Alphanumeric key)

      @ObjectModel: {
        foreignKey.association: '_InhRepairReferenceEquipment'
      }
      ihritem.InhRepairReferenceEquipment,

      //required for Equipment navigation - Target Mapping Parameter (MaintenanceObject-displayFactSheet)

      case when not ihritem.InhRepairReferenceEquipment is initial
        then cast('EAMS_EQUI' as eams_tec_obj_type_value)
      end                                                                                   as TechObjIsEquipOrFuncnlLoc,
      //required for Equipment navigation - Target Mapping Parameter (MaintenanceObject-displayFactSheet)

      case when not ihritem.InhRepairReferenceEquipment is initial
        then cast(ihritem.InhRepairReferenceEquipment as eams_tec_obj)
      end                                                                                   as TechnicalObject,

      ihritem.SerialNumber,

      // Data for Quick View

      _InHouseRepairTP.SoldToParty,
      _InHouseRepairTP.ContactPerson,
      _InHouseRepairTP.ShipToParty,

      // These fields are required for the Service contract integration

      _InHouseRepairTP.DistributionChannel,
      _InHouseRepairTP.Division,
      _InHouseRepairTP.SalesOrganization,

      //Service Team

      @ObjectModel: { text.element: ['RespyMgmtServiceTeamDesc'] }
      case when ihritem._RepairOrder._SuccessorServiceTransaction._ServiceTeamHeader.TeamName is not null
        then cast(ihritem._RepairOrder._SuccessorServiceTransaction._ServiceTeamHeader.TeamName as crms4_service_team_name_rm_lbl )
        else cast(ihritem._RepairQuotation._SuccessorServiceTransaction._ServiceTeamHeader.TeamName as crms4_service_team_name_rm_lbl )
      end                                                                                   as RespyMgmtServiceTeamName,

      @Semantics.text: true
      case when ihritem._RepairOrder._SuccessorServiceTransaction._ServiceTeamHeader.TeamName is not null
        then cast( ihritem._RepairOrder._SuccessorServiceTransaction._ServiceTeamHeader._TeamDescription.TeamDescription as crms4_service_team_desc_rm_lbl )
        else cast( ihritem._RepairQuotation._SuccessorServiceTransaction._ServiceTeamHeader._TeamDescription.TeamDescription as crms4_service_team_desc_rm_lbl )
      end                                                                                   as RespyMgmtServiceTeamDesc,

      //Number of Open Repair Confirmations

      //The filter values of a selection variant on the UI cannot handle null values. Therefore we need to convert null values to integer 0 values.

      case when _InhRepairItmNrOfOpenSrvcConf.NrOfOpnInhReprSrvcConf is null
        then cast(0 as crms4_repa_nrof_open_repr_conf)
        else _InhRepairItmNrOfOpenSrvcConf.NrOfOpnInhReprSrvcConf
      end                                                                                   as NrOfOpnInhReprSrvcConf,

      //Status used for front end level 0 changes based on system status

      //We deliberatley have no else clause, because of better performance. This leads to a null value which is published as false by odata.

      @Semantics.booleanIndicator: true
      case ihritem._SrvcMgmtObjectStatus.SrvcMgmtObjectStatus
         when 'I1002'  then cast( 'X' as crms4_repa_stat_item_new preserving type ) end     as InhRepairItemIsNew,

      //Status used for front end level 0 changes based on system status

      //We deliberatley have no else clause, because of better performance. This leads to a null value which is published as false by odata.

      @Semantics.booleanIndicator: true
      case ihritem._SrvcMgmtObjectStatus.SrvcMgmtObjectStatus
        when 'I1003' then cast( 'X' as crms4_repa_stat_item_inprocess preserving type ) end as InhRepairItemIsInProcess,

      //Status used for front end level 0 changes based on system status


      //There are two options of calculating the completed status:

      //1.  You join with the status table and check for status “I1005”

      //2.  You negate the status “Is Open”, because this is the exact opposite of completed

      //We decided for the second approach because it does not need a join and therefore has better performance.


      //We deliberatley have no else clause, because of better performance. This leads to a null value which is published as false by odata.

      @Semantics.booleanIndicator: true
      case ihritem.InhRepairItemIsOpen
      when '' then cast( 'X'  as crms4_repa_stat_item_completed preserving type ) end       as InhRepairItemIsCompleted,

      //Number of Non-closed/Incomplete Maintenance Orders

      _InhReprItmNrOfOpnMaintOrd,
      ihritem.ReferenceCustomerReturnItem,
      ihritem.RefRetsMgmtProcessItem,
      ihritem.RefRetsMgmtProcItmQtySplit,

      // Fields that are processed with the header segment (ORDERADM_H) in one order must be at the end

      // of the field list. Otherwise, the logic of the mapping adapter used for one order RAP does not work properly.

      ihritem.InhRepairType, //Transaction Type (Header), e.g. REP1

      ihritem.PostingDate, //Creation date of the in-house repair

      
      /* Associations */
      ihritem._InhRepairItemCategory,
      ihritem._InhRepairItemStatus,
      ihritem._InhRepairItemSuplmntyStatus,
      ihritem._InhRepairItemHasError,
      ihritem._InhRepairItemIsOpen,
      ihritem._InhRepairReferenceEquipment,
      ihritem._Product,

      _InHouseRepair,
      _InHouseRepairTP,
      _InhRepairItemNoteTP,
      ihritem._RepairOrder,
      ihritem._RepairQuotation,
      //      _ServiceQuotationStatus,

      ihritem._SrvcMgmtObjectStatus,
      _SitnInstceIndicator,
      _SrvcDocCreditStatus,
      ihritem._InhRepairItemAvailyStatus,

      //text associations are no longer used in our projection views. therefore, we want to remove them.

      //but these associations are still used in C1 released view ESH_N_INHOUSEREPAIR for our enterprise search modell

      //therefore, removal is not possible

      ihritem._ProductText,
      ihritem._InhRepairReferenceEquipText,
      ihritem._OutboundDelivery,
      _CustomerReturnsItemReference,
      _InhRepairItmFUPCustReturnTP
}
where
  ihritem.CustMgmtObjectType = 'BUS2000256'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_INHOUSEREPAIRITEM",
"I_INHOUSEREPAIRTP",
"I_INHREPAIRTRANSACTIONRELATION",
"I_RESPYMGMTTEAMDESCRIPTION",
"I_RESPYMGMTTEAMHEADERDETAIL",
"I_SERVICEDOCUMENT",
"I_SRVCMGMTOBJECTSTATUS",
"P_INHREPAIRITMNROFOPENCONF"
],
"ASSOCIATED":
[
"I_CUSTMGMTDOCITEMCATEGORY",
"I_EQUIPMENT",
"I_EQUIPMENTTEXT",
"I_INHOUSEREPAIR",
"I_INHOUSEREPAIRTP",
"I_INHREPAIRITEMAVAILYSTATUS",
"I_INHREPAIRITEMSTATUS",
"I_INHREPAIRITMCUSTRETRELATION",
"I_INHREPAIRTRANSACTIONRELATION",
"I_PRODUCT",
"I_PRODUCTTEXT",
"I_SERVICEDOCERRORSTATUS",
"I_SERVICEDOCOPENSTATUS",
"I_SITNINSTCEINDICATOR",
"I_SRVCMGMTOBJECTSTATUS",
"R_INHREPAIRITEMCREDITSTATUS",
"R_INHREPAIRITEMNOTETP",
"R_INHREPAIRITMFUPCUSTRETURNTP",
"R_INHREPAIRITMNROFOPNMAINTORDS"
],
"BASE":
[
"I_INHOUSEREPAIRITEM"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/