C_SrvcOrdEmailDataProvider
Email Data Provider for Service Order
C_SrvcOrdEmailDataProvider is a Consumption CDS View that provides data about "Email Data Provider for Service Order" in SAP S/4HANA. It reads from 1 data source (I_ServiceDocumentEnhcd) and exposes 25 fields with key fields ServiceDocument, ServiceObjectType. It has 1 association to related views.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| I_ServiceDocumentEnhcd | I_ServiceDocumentEnhcd | from |
Associations (1)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_ServiceDocumentRefObject | _ServiceDocMainRefObj | _ServiceDocMainRefObj.ServiceObjectType = $projection.ServiceObjectType and _ServiceDocMainRefObj.ServiceDocument = $projection.ServiceDocument and _ServiceDocMainRefObj.ServiceDocumentItem is initial and _ServiceDocMainRefObj.SrvcRefObjIsMainObject is not initial |
Annotations (11)
| Name | Value | Level | Field |
|---|---|---|---|
| EndUserText.label | Email Data Provider for Service Order | view | |
| VDM.viewType | #CONSUMPTION | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| ObjectModel.representativeKey | ServiceDocument | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #XXL | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AbapCatalog.sqlViewName | CSRVCORDEMAILDP | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view |
Fields (25)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ServiceDocument | I_ServiceDocumentEnhcd | ServiceDocument | |
| KEY | ServiceObjectType | I_ServiceDocumentEnhcd | ServiceObjectType | |
| ServiceOrderDescription | ||||
| SoldToPartyName | ||||
| ContactPersonName | ||||
| ShipToPartyName | ||||
| ResponsibleEmployeeName | ||||
| RequestedServiceStartDate | I_ServiceDocumentEnhcd | RequestedServiceStartDate | ||
| ServiceDocNetAmount | I_ServiceDocumentEnhcd | ServiceDocNetAmount | ||
| ServiceDocGrossAmount | I_ServiceDocumentEnhcd | ServiceDocGrossAmount | ||
| TransactionCurrency | I_ServiceDocumentEnhcd | TransactionCurrency | ||
| Equipment | _ServiceDocMainRefObj | Equipment | ||
| SerialNumberendasSerialNumber | ||||
| CompanyCodeName | ||||
| ServiceDocumentType | I_ServiceDocumentEnhcd | ServiceDocumentType | ||
| SalesOrganization | I_ServiceDocumentEnhcd | SalesOrganization | ||
| SalesOffice | I_ServiceDocumentEnhcd | SalesOffice | ||
| SalesGroup | I_ServiceDocumentEnhcd | SalesGroup | ||
| DistributionChannel | I_ServiceDocumentEnhcd | DistributionChannel | ||
| Division | I_ServiceDocumentEnhcd | Division | ||
| RespEmployeeBusinessPartnerId | I_ServiceDocumentEnhcd | ResponsibleEmployee | ||
| SalesOrganizationOrgUnitID | I_ServiceDocumentEnhcd | SalesOrganizationOrgUnitID | ||
| SalesOfficeOrgUnitID | I_ServiceDocumentEnhcd | SalesOfficeOrgUnitID | ||
| SalesGroupOrgUnitID | I_ServiceDocumentEnhcd | SalesGroupOrgUnitID | ||
| ServiceOrganization | I_ServiceDocumentEnhcd | ServiceOrganization |
@EndUserText.label: 'Email Data Provider for Service Order'
@VDM: {
viewType: #CONSUMPTION
}
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #('TRANSACTIONAL_DATA')
}
@ObjectModel: {
semanticKey: ['ServiceDocument'],
representativeKey: 'ServiceDocument',
usageType: {serviceQuality: #C, sizeCategory: #XXL, dataClass: #TRANSACTIONAL},
supportedCapabilities: [#OUTPUT_EMAIL_DATA_PROVIDER]
}
@ClientHandling: {
algorithm: #SESSION_VARIABLE
}
@AbapCatalog: {
sqlViewName: 'CSRVCORDEMAILDP',
compiler.compareFilter: true,
preserveKey: true
}
define root view C_SrvcOrdEmailDataProvider
as select from I_ServiceDocumentEnhcd
association [0..1] to I_ServiceDocumentRefObject as _ServiceDocMainRefObj on _ServiceDocMainRefObj.ServiceObjectType = $projection.ServiceObjectType
and _ServiceDocMainRefObj.ServiceDocument = $projection.ServiceDocument
and _ServiceDocMainRefObj.ServiceDocumentItem is initial
and _ServiceDocMainRefObj.SrvcRefObjIsMainObject is not initial
{
key I_ServiceDocumentEnhcd.ServiceDocument,
key I_ServiceDocumentEnhcd.ServiceObjectType,
cast(I_ServiceDocumentEnhcd.ServiceDocumentDescription as crms4_srvc_ord_description preserving type) as ServiceOrderDescription,
cast(I_ServiceDocumentEnhcd._SoldToParty.BusinessPartnerName as vdm_sold_to_name) as SoldToPartyName,
cast(I_ServiceDocumentEnhcd._ContactPerson.BusinessPartnerName as crms4_contact_person_name) as ContactPersonName,
cast(I_ServiceDocumentEnhcd._ShipToParty.BusinessPartnerName as ship_to_name) as ShipToPartyName,
cast(I_ServiceDocumentEnhcd._RespEmployee.BusinessPartnerName as resp_empl_name) as ResponsibleEmployeeName,
I_ServiceDocumentEnhcd.RequestedServiceStartDate,
I_ServiceDocumentEnhcd.ServiceDocNetAmount,
I_ServiceDocumentEnhcd.ServiceDocGrossAmount,
I_ServiceDocumentEnhcd.TransactionCurrency,
_ServiceDocMainRefObj.Equipment,
cast( case when _ServiceDocMainRefObj.ProductID is not initial
then _ServiceDocMainRefObj.ProductID
else _ServiceDocMainRefObj._Equipment.Material
end as productnumber preserving type ) as ProductID,
case when _ServiceDocMainRefObj.SerialNumber is not initial
then _ServiceDocMainRefObj.SerialNumber
else _ServiceDocMainRefObj._Equipment.SerialNumber
end as SerialNumber,
_SalesOrganization._CompanyCode.CompanyCodeName as CompanyCodeName,
// The following fields are required for authorization checks
@Consumption.hidden: true
I_ServiceDocumentEnhcd.ServiceDocumentType,
@Consumption.hidden: true
I_ServiceDocumentEnhcd.SalesOrganization,
@Consumption.hidden: true
I_ServiceDocumentEnhcd.SalesOffice,
@Consumption.hidden: true
I_ServiceDocumentEnhcd.SalesGroup,
@Consumption.hidden: true
I_ServiceDocumentEnhcd.DistributionChannel,
@Consumption.hidden: true
I_ServiceDocumentEnhcd.Division,
@Consumption.hidden: true
I_ServiceDocumentEnhcd.ResponsibleEmployee as RespEmployeeBusinessPartnerId,
@Consumption.hidden: true
I_ServiceDocumentEnhcd.SalesOrganizationOrgUnitID,
@Consumption.hidden: true
I_ServiceDocumentEnhcd.SalesOfficeOrgUnitID,
@Consumption.hidden: true
I_ServiceDocumentEnhcd.SalesGroupOrgUnitID,
@Consumption.hidden: true
I_ServiceDocumentEnhcd.ServiceOrganization
}
where
I_ServiceDocumentEnhcd.ServiceObjectType = 'BUS2000116'
and I_ServiceDocumentEnhcd.ServiceDocumentIsQuotation = ' '
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BUSINESSPARTNER",
"I_COMPANYCODE",
"I_EQUIPMENT",
"I_SALESORGANIZATION",
"I_SERVICEDOCUMENTENHCD",
"I_SERVICEDOCUMENTREFOBJECT"
],
"ASSOCIATED":
[
"I_SERVICEDOCUMENTREFOBJECT"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
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