R_InhRepairItemNoteTP

DDL: R_INHREPAIRITEMNOTETP Type: view_entity TRANSACTIONAL

Notes for In-House Repair Item

R_InhRepairItemNoteTP is a Transactional CDS View that provides data about "Notes for In-House Repair Item" in SAP S/4HANA. It reads from 1 data source (P_InhRepairItemNote) and exposes 25 fields with key fields InHouseRepair, InHouseRepairItem, TextObjectType, Language. It has 5 associations to related views.

Data Sources (1)

SourceAliasJoin Type
P_InhRepairItemNote ihritemnote from

Associations (5)

CardinalityTargetAliasCondition
[1..1] I_InHouseRepairTP _InHouseRepairTP $projection.InHouseRepair = _InHouseRepairTP.InHouseRepair
[1..1] I_InHouseRepair _InHouseRepair $projection.CustMgmtObjectType = _InHouseRepair.CustMgmtObjectType and $projection.InHouseRepair = _InHouseRepair.InHouseRepair
[0..1] I_TextObjectType _TextObjectType $projection.TextObjectType = _TextObjectType.TextObjectType and $projection.TextObjectCategory = _TextObjectType.TextObjectCategory
[0..1] I_TextObjectCategory _TextObjectCategory $projection.TextObjectCategory = _TextObjectCategory.TextObjectCategory
[0..1] I_Language _Language $projection.Language = _Language.Language

Annotations (8)

NameValueLevelField
EndUserText.label Notes for In-House Repair Item view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
VDM.viewType #TRANSACTIONAL view
AccessControl.authorizationCheck #MANDATORY view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view

Fields (25)

KeyFieldSource TableSource FieldDescription
KEY InHouseRepair P_InhRepairItemNote InHouseRepair
KEY InHouseRepairItem P_InhRepairItemNote InHouseRepairItem
KEY TextObjectType P_InhRepairItemNote TextObjectType
KEY Language P_InhRepairItemNote Language
InHouseRepairItemUUID P_InhRepairItemNote InHouseRepairItemUUID
TextObjectCategory P_InhRepairItemNote TextObjectCategory
CreatedByUser P_InhRepairItemNote CreatedByUser
InhRepairNoteText _InoteTemp text
LastChangeDateTime _InHouseRepairItemTP LastChangeDateTime
CustMgmtObjectType P_InhRepairItemNote CustMgmtObjectType
RespEmployeeBusinessPartnerId _InHouseRepair ResponsibleEmployee
SalesOrganization _InHouseRepair SalesOrganization
DistributionChannel _InHouseRepair DistributionChannel
Division _InHouseRepair Division
SalesOffice _InHouseRepair SalesOffice
SalesGroup _InHouseRepair SalesGroup
SalesOrganizationOrgUnitID _InHouseRepair SalesOrganizationOrgUnitID
SalesOfficeOrgUnitID _InHouseRepair SalesOfficeOrgUnitID
SalesGroupOrgUnitID _InHouseRepair SalesGroupOrgUnitID
_TextObjectType _TextObjectType
_TextObjectCategory _TextObjectCategory
_Language _Language
_InHouseRepairItemTP _InHouseRepairItemTP
_InHouseRepair _InHouseRepair
_InHouseRepairTP _InHouseRepairTP
@EndUserText.label: 'Notes for In-House Repair Item'
@VDM: {
  lifecycle.contract.type: #SAP_INTERNAL_API,
  viewType: #TRANSACTIONAL
}
@AccessControl: {
  authorizationCheck: #MANDATORY
}
@Metadata: {
  ignorePropagatedAnnotations: true
}
@ObjectModel: {
  usageType: {serviceQuality: #C, sizeCategory: #L, dataClass: #TRANSACTIONAL}
}

define view entity R_InhRepairItemNoteTP
  as select from           P_InhRepairItemNote as ihritemnote

  // We need an empty string field for the text. String fields cannot be created as "cast('' as systring)...".

  // Hence, we implement a dummy join that never returns a matching record but provides the string field (which then is null).

    left outer to one join crms4t_note_temp    as _InoteTemp on _InoteTemp.id = ihritemnote.InHouseRepair

  association        to parent I_InHouseRepairItemTP as _InHouseRepairItemTP on  $projection.InHouseRepair     = _InHouseRepairItemTP.InHouseRepair
                                                                             and $projection.InHouseRepairItem = _InHouseRepairItemTP.InHouseRepairItem

  association [1..1] to I_InHouseRepairTP            as _InHouseRepairTP     on  $projection.InHouseRepair = _InHouseRepairTP.InHouseRepair

  //required for authorization check

  association [1..1] to I_InHouseRepair              as _InHouseRepair       on  $projection.CustMgmtObjectType = _InHouseRepair.CustMgmtObjectType
                                                                             and $projection.InHouseRepair      = _InHouseRepair.InHouseRepair
  association [0..1] to I_TextObjectType             as _TextObjectType      on  $projection.TextObjectType     = _TextObjectType.TextObjectType
                                                                             and $projection.TextObjectCategory = _TextObjectType.TextObjectCategory

  association [0..1] to I_TextObjectCategory         as _TextObjectCategory  on  $projection.TextObjectCategory = _TextObjectCategory.TextObjectCategory

  association [0..1] to I_Language                   as _Language            on  $projection.Language = _Language.Language
{
  key  ihritemnote.InHouseRepair,
  key  ihritemnote.InHouseRepairItem,
       @ObjectModel.foreignKey.association: '_TextobjectType'
  key  ihritemnote.TextObjectType,
       @Semantics.language: true
       @ObjectModel.foreignKey.association: '_Language'
  key  ihritemnote.Language,

       ihritemnote.InHouseRepairItemUUID,

       @ObjectModel.foreignKey.association: '_Textobjectcategory'
       ihritemnote.TextObjectCategory,

       @Semantics.user.createdBy: true
       ihritemnote.CreatedByUser,

       @Semantics.text:true
       _InoteTemp.text as InhRepairNoteText,

        // used as ETag (ETag dependent setting not possible due to custom query)

       _InHouseRepairItemTP.LastChangeDateTime,

       // required for association to I_InhouseRepair. This is neccessary due to restrictions in projection view

       // when using custom query

       ihritemnote.CustMgmtObjectType,

      // Responsible Employee

      _InHouseRepair.ResponsibleEmployee                                   as RespEmployeeBusinessPartnerId,

      // Organizational Data

      @Consumption.hidden: true
      _InHouseRepair.SalesOrganization                                     as SalesOrganization,
      @Consumption.hidden: true
      _InHouseRepair.DistributionChannel                                   as DistributionChannel,
      @Consumption.hidden: true
      _InHouseRepair.Division                                              as Division,
      @Consumption.hidden: true
      _InHouseRepair.SalesOffice                                           as SalesOffice,
      @Consumption.hidden: true
      _InHouseRepair.SalesGroup                                            as SalesGroup,

      // CRM Org units

      //these fields are only ON PREMISE

      @Feature: 'BF:API_FULLSCOPE'
      @Consumption.hidden: true
      _InHouseRepair.SalesOrganizationOrgUnitID                            as SalesOrganizationOrgUnitID,
      @Feature: 'BF:API_FULLSCOPE'
      @Consumption.hidden: true
      _InHouseRepair.SalesOfficeOrgUnitID                                  as SalesOfficeOrgUnitID,
      @Feature: 'BF:API_FULLSCOPE'
      @Consumption.hidden: true
      _InHouseRepair.SalesGroupOrgUnitID                                   as SalesGroupOrgUnitID,

       _TextObjectType,
       _TextObjectCategory,
       _Language,
       _InHouseRepairItemTP,
       _InHouseRepair,
       _InHouseRepairTP
}
where
  ihritemnote.CustMgmtObjectType = 'BUS2000256'