R_InhRepairItemNoteTP
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)
| Source | Alias | Join Type |
|---|---|---|
| P_InhRepairItemNote | ihritemnote | from |
Associations (5)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [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)
| Name | Value | Level | Field |
|---|---|---|---|
| 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)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| 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'
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA