P_ServiceOrderItemDateConv
Helper view for Service Order Item Cube
P_ServiceOrderItemDateConv is a Composite CDS View that provides data about "Helper view for Service Order Item Cube" in SAP S/4HANA. It reads from 1 data source (I_ServiceDocumentItemEnhcd) and exposes 90 fields with key fields ServiceObjectType, ServiceDocument, ServiceDocumentItem. It has 2 associations to related views. Part of development package CRMS4_ANALYTICS_SERVICE_ORDER.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| I_ServiceDocumentItemEnhcd | I_ServiceDocumentItemEnhcd | from |
Associations (2)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1] | I_ServiceDocumentEnhcd | _ServiceDocument | $projection.ServiceObjectType = _ServiceDocument.ServiceObjectType and $projection.ServiceDocument = _ServiceDocument.ServiceDocument |
| [1] | I_ServiceDocumentRefObject | _MainObject | $projection.ServiceObjectType = _MainObject.ServiceObjectType and $projection.ServiceDocument = _MainObject.ServiceDocument and $projection.ServiceDocumentItem = _MainObject.ServiceDocumentItem and _MainObject.SrvcRefObjIsMainObject is not initial |
Annotations (5)
| Name | Value | Level | Field |
|---|---|---|---|
| VDM.private | true | view | |
| VDM.viewType | #COMPOSITE | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #XXL | view |
Fields (90)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ServiceObjectType | ServiceObjectType | ||
| KEY | ServiceDocument | ServiceDocument | ||
| KEY | ServiceDocumentItem | ServiceDocumentItem | ||
| ServiceDocumentDescription | ServiceDocumentDescription | |||
| ServiceDocumentItemObjectType | ServiceDocumentItemObjectType | |||
| ServiceDocumentItemDescription | ServiceDocumentItemDescription | |||
| ParentServiceDocumentItemUUID | ParentServiceDocumentItemUUID | |||
| ServiceDocumentItemPriority | ServiceDocumentItemPriority | |||
| ServiceDocumentType | ServiceDocumentType | |||
| PostingDate | PostingDate | |||
| TransactionCurrency | TransactionCurrency | |||
| RequestedServiceStartDate | ||||
| RequestedServiceEndDate | ||||
| ServiceFirstResponseByDate | ||||
| SrvcDocItemSLADueByDate | ||||
| PlannedServiceStartDate | ||||
| PlannedServiceEndDate | ||||
| CurrentDate | ||||
| ServiceReferenceObjectType | _MainObject | ServiceReferenceObjectType | ||
| Equipment | _MainObject | Equipment | ||
| EquipmentelseendasReferenceObjectID | ||||
| EquipmentNameelseendasSrvcRefObjName | ||||
| ServiceDocumentIsOpen | _ServiceDocument | ServiceDocumentIsOpen | ||
| ServiceTeam | ServiceTeam | |||
| ResponsibleEmployee | ResponsibleEmployee | |||
| ServiceEmployee | ServiceEmployee | |||
| ContactPersonBusinessPartnerId | ContactPerson | |||
| ShipToParty | ShipToParty | |||
| RefBusinessSolutionOrder | RefBusinessSolutionOrder | |||
| ServiceDocumentItemStatus | ServiceDocumentItemStatus | |||
| ServiceDocumentItemHasError | ServiceDocumentItemHasError | |||
| ServiceDocumentItemIsOpen | ServiceDocumentItemIsOpen | |||
| ServiceDocItemCreationDate | ServiceDocItemCreationDate | |||
| OriginallyRequestedProduct | OriginallyRequestedProduct | |||
| ServiceDocumentItemQuantity | ServiceDocumentItemQuantity | |||
| ServiceDocItemQuantityUnit | ServiceDocItemQuantityUnit | |||
| ServiceDocItemCategory | ServiceDocItemCategory | |||
| ServiceDocumentItemNetAmount | ServiceDocumentItemNetAmount | |||
| RequestedServiceStartDateTime | RequestedServiceStartDateTime | |||
| RequestedServiceEndDateTime | RequestedServiceEndDateTime | |||
| NmbrOfIncompleteServiceOrders | ||||
| NmbrOfServiceOrderItems | ||||
| NumberOfOverdueServiceOrders | ||||
| SalesOrganization | SalesOrganization | |||
| SalesOffice | SalesOffice | |||
| SalesGroup | SalesGroup | |||
| DistributionChannel | DistributionChannel | |||
| Division | Division | |||
| ServiceOrganization | ServiceOrganization | |||
| SalesOrganizationOrgUnitID | SalesOrganizationOrgUnitID | |||
| SalesOfficeOrgUnitID | SalesOfficeOrgUnitID | |||
| SalesGroupOrgUnitID | SalesGroupOrgUnitID | |||
| SoldToParty | SoldToParty | |||
| RespyMgmtServiceTeam | RespyMgmtServiceTeam | |||
| RespyMgmtServiceTeamDesc | ||||
| TeamName | ||||
| Product | Product | |||
| _RespEmployee | _RespEmployee | |||
| _ServiceDocItemCategory | _ServiceDocItemCategory | |||
| _ServiceDocItemPriority | _ServiceDocItemPriority | |||
| _ServiceDocItemStatus | _ServiceDocItemStatus | |||
| _SrvcDocItmLifecycleStatus | _SrvcDocItmLifecycleStatus | |||
| _ServiceDocItemHasError | _ServiceDocItemHasError | |||
| _ServiceDocumentType | _ServiceDocumentType | |||
| _ServiceDocument | _ServiceDocument | |||
| _ServiceObjType | _ServiceObjType | |||
| _TransactionCurrency | _TransactionCurrency | |||
| _SalesOrganizationOrgUnit | _SalesOrganizationOrgUnit | |||
| _SalesOfficeOrgUnit | _SalesOfficeOrgUnit | |||
| _SalesGroupOrgUnit | _SalesGroupOrgUnit | |||
| _SalesOrganizationOrgUnit_2 | _SalesOrganizationOrgUnit_2 | |||
| _SalesOfficeOrgUnit_2 | _SalesOfficeOrgUnit_2 | |||
| _SalesGroupOrgUnit_2 | _SalesGroupOrgUnit_2 | |||
| _SalesOrganization | _SalesOrganization | |||
| _SalesOffice | _SalesOffice | |||
| _SalesGroup | _SalesGroup | |||
| _Division | _Division | |||
| _DistributionChannel | _DistributionChannel | |||
| _SoldToParty | _SoldToParty | |||
| _ServiceDocItemRefObj | _ServiceDocItemRefObj | |||
| _ServiceTeam | _ServiceTeam | |||
| _ServiceEmployee | _ServiceEmployee | |||
| _ContactPerson | _ContactPerson | |||
| _ShipToParty | _ShipToParty | |||
| _ServiceDocumentIsOpen | _ServiceDocument | _ServiceDocumentIsOpen | ||
| _ServiceDocumentItemIsOpen | _ServiceDocumentIsOpen | |||
| _SrvcReferenceObjectType | _MainObject | _SrvcReferenceObjectType | ||
| _Equipment | _MainObject | _Equipment | ||
| _ServiceTeamHeader | _ServiceTeamHeader | |||
| _Product | _Product |
@VDM: {
private:true,
viewType: #COMPOSITE
}
@AccessControl: {
personalData.blocking: #('TRANSACTIONAL_DATA')
}
@ObjectModel: {
usageType: {
dataClass: #MIXED,
serviceQuality: #D,
sizeCategory: #XXL
}
}
define view entity P_ServiceOrderItemDateConv
as select from I_ServiceDocumentItemEnhcd
association [1] to I_ServiceDocumentEnhcd as _ServiceDocument on $projection.ServiceObjectType = _ServiceDocument.ServiceObjectType
and $projection.ServiceDocument = _ServiceDocument.ServiceDocument
association [1] to I_ServiceDocumentRefObject as _MainObject on $projection.ServiceObjectType = _MainObject.ServiceObjectType
and $projection.ServiceDocument = _MainObject.ServiceDocument
and $projection.ServiceDocumentItem = _MainObject.ServiceDocumentItem
and _MainObject.SrvcRefObjIsMainObject is not initial
{
@ObjectModel.foreignKey.association: '_ServiceObjType'
key ServiceObjectType,
@ObjectModel.foreignKey.association: '_ServiceDocument'
key ServiceDocument,
key ServiceDocumentItem,
ServiceDocumentDescription,
ServiceDocumentItemObjectType,
ServiceDocumentItemDescription,
ParentServiceDocumentItemUUID,
ServiceDocumentItemPriority,
@ObjectModel.foreignKey.association: '_ServiceDocumentType'
ServiceDocumentType,
PostingDate,
@ObjectModel.foreignKey.association: '_TransactionCurrency'
TransactionCurrency,
tstmp_to_dats( RequestedServiceStartDateTime, $session.user_timezone, $session.client, 'NULL' ) as RequestedServiceStartDate,
tstmp_to_dats( RequestedServiceEndDateTime, $session.user_timezone, $session.client, 'NULL' ) as RequestedServiceEndDate,
tstmp_to_dats( ServiceFirstResponseByDateTime, $session.user_timezone, $session.client, 'NULL' ) as ServiceFirstResponseByDate,
tstmp_to_dats( SrvcDocItemSLADueByDateTime, $session.user_timezone, $session.client, 'NULL' ) as SrvcDocItemSLADueByDate,
tstmp_to_dats( PlannedServiceStartDateTime, $session.user_timezone, $session.client, 'NULL' ) as PlannedServiceStartDate,
tstmp_to_dats( PlannedServiceEndDateTime, $session.user_timezone, $session.client, 'NULL' ) as PlannedServiceEndDate,
cast ( $session.system_date as abap.dats) as CurrentDate,
//Main Equipment based search
@ObjectModel.foreignKey.association: '_SrvcReferenceObjectType'
_MainObject.ServiceReferenceObjectType as ServiceReferenceObjectType,
@ObjectModel.foreignKey.association: '_Equipment'
_MainObject.Equipment as Equipment,
case
when _MainObject.ServiceReferenceObjectType = 'A'
then _MainObject.ProductID
when _MainObject.ServiceReferenceObjectType = 'B'
then _MainObject.FunctionalLocation
when _MainObject.ServiceReferenceObjectType = 'C'
then _MainObject.Equipment
else ''
end as ReferenceObjectID,
case
when _MainObject.ServiceReferenceObjectType = 'A'
then _MainObject._Product._MaterialText[1: Language=$session.system_language].ProductDescription
when _MainObject.ServiceReferenceObjectType = 'B'
then _MainObject._FunctionalLocation._FunctionalLocationText[1: Language=$session.system_language].FunctionalLocationName
when _MainObject.ServiceReferenceObjectType = 'C'
then _MainObject._Equipment._EquipmentText[1: Language=$session.system_language].EquipmentName
else ''
end as SrvcRefObjName,
@ObjectModel.foreignKey.association: '_ServiceDocumentIsOpen'
_ServiceDocument.ServiceDocumentIsOpen as ServiceDocumentIsOpen,
@ObjectModel.foreignKey.association: '_ServiceTeam'
ServiceTeam,
@ObjectModel.foreignKey.association: '_RespEmployee'
ResponsibleEmployee,
@ObjectModel.foreignKey.association: '_ServiceEmployee'
ServiceEmployee,
@ObjectModel.foreignKey.association: '_ContactPerson'
ContactPerson as ContactPersonBusinessPartnerId,
@ObjectModel.foreignKey.association: '_ShipToParty'
ShipToParty,
RefBusinessSolutionOrder,
@ObjectModel.foreignKey.association: '_SrvcDocItmLifecycleStatus'
ServiceDocumentItemStatus,
@ObjectModel.foreignKey.association: '_ServiceDocItemHasError'
ServiceDocumentItemHasError,
@ObjectModel.foreignKey.association: '_ServiceDocumentItemIsOpen'
ServiceDocumentItemIsOpen,
@Semantics.systemDate.createdAt: true
ServiceDocItemCreationDate,
OriginallyRequestedProduct,
@Aggregation.default: #SUM
@Semantics: { quantity : {unitOfMeasure: 'ServiceDocItemQuantityUnit'} }
ServiceDocumentItemQuantity,
ServiceDocItemQuantityUnit,
@ObjectModel.foreignKey.association: '_ServiceDocItemCategory'
ServiceDocItemCategory,
@Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
ServiceDocumentItemNetAmount,
RequestedServiceStartDateTime,
RequestedServiceEndDateTime,
cast (1 as abap.int4) as NmbrOfIncompleteServiceOrders,
cast (1 as abap.int4) as NmbrOfServiceOrderItems,
cast (1 as abap.int4) as NumberOfOverdueServiceOrders,
// case when RequestedServiceEndDate < $session.system_date
// then cast (1 as abap.int4)
// end as NumberOfOverdueServiceOrders,
@ObjectModel.foreignKey.association: '_SalesOrganization'
SalesOrganization,
@ObjectModel.foreignKey.association: '_SalesOffice'
SalesOffice,
@ObjectModel.foreignKey.association: '_SalesGroup'
SalesGroup,
@ObjectModel.foreignKey.association: '_DistributionChannel'
DistributionChannel,
@ObjectModel.foreignKey.association: '_Division'
Division,
ServiceOrganization,
@ObjectModel.foreignKey.association: '_SalesOrganizationOrgUnit_2'
SalesOrganizationOrgUnitID,
@ObjectModel.foreignKey.association: '_SalesOfficeOrgUnit_2'
SalesOfficeOrgUnitID,
@ObjectModel.foreignKey.association: '_SalesGroupOrgUnit_2'
SalesGroupOrgUnitID,
@ObjectModel.foreignKey.association: '_SoldToParty'
SoldToParty,
@ObjectModel.foreignKey.association: '_ServiceTeamHeader'
RespyMgmtServiceTeam,
I_ServiceDocumentItemEnhcd._ServiceTeamHeader._TeamDescription.TeamDescription as RespyMgmtServiceTeamDesc,
I_ServiceDocumentItemEnhcd._ServiceTeamHeader.TeamName as TeamName,
@ObjectModel.foreignKey.association: '_Product'
Product,
/* Associations */
_RespEmployee,
_ServiceDocItemCategory,
_ServiceDocItemPriority,
// @API.element.releaseState: #DEPRECATED
// @API.element.successor: '_SrvcDocItmLifecycleStatus'
_ServiceDocItemStatus,
_SrvcDocItmLifecycleStatus,
_ServiceDocItemHasError,
_ServiceDocumentType,
_ServiceDocument,
_ServiceObjType,
_TransactionCurrency,
// @API.element.releaseState: #DEPRECATED
// @API.element.successor: '_SalesOrganizationOrgUnit_2'
_SalesOrganizationOrgUnit,
//
// @API.element.releaseState: #DEPRECATED
// @API.element.successor: '_SalesOfficeOrgUnit_2'
_SalesOfficeOrgUnit,
//
// @API.element.releaseState: #DEPRECATED
// @API.element.successor: '_SalesGroupOrgUnit_2'
_SalesGroupOrgUnit,
//
_SalesOrganizationOrgUnit_2,
_SalesOfficeOrgUnit_2,
_SalesGroupOrgUnit_2,
_SalesOrganization,
_SalesOffice,
_SalesGroup,
_Division,
_DistributionChannel,
_SoldToParty,
_ServiceDocItemRefObj,
_ServiceTeam,
_ServiceEmployee,
_ContactPerson,
_ShipToParty,
_ServiceDocument._ServiceDocumentIsOpen as _ServiceDocumentIsOpen,
_ServiceDocumentIsOpen as _ServiceDocumentItemIsOpen,
//Main Equipment based search
_MainObject._SrvcReferenceObjectType as _SrvcReferenceObjectType,
_MainObject._Equipment as _Equipment,
//END - Main Equipment based search
_ServiceTeamHeader,
_Product
}
where
_ServiceDocument.ServiceDocumentIsOpen = 'X'
and ServiceObjectType = 'BUS2000116'
and ServiceDocumentItemIsQuotation != 'X'
and _ServiceDocument.SrvcDocIsMaintServiceOrder != 'X'
and _ServiceDocument.ServiceDocumentTemplateType is initial
and RefInHouseRepairIsExisting is initial
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