P_SalesDocumentByObjectStatus
Sales Documents and Items by Object Status
P_SalesDocumentByObjectStatus is a Consumption CDS View that provides data about "Sales Documents and Items by Object Status" in SAP S/4HANA. It reads from 4 data sources (I_StatusObjectActiveStatus, I_StatusObjectActiveStatus, I_SalesDocument, I_SalesDocumentItem) and exposes 23 fields with key fields SalesDocument, SalesDocumentItem, SystemStatus, UserStatus, StatusProfile. It has 5 associations to related views.
Data Sources (4)
| Source | Alias | Join Type |
|---|---|---|
| I_StatusObjectActiveStatus | _StatusObjectActiveStatus | inner |
| I_StatusObjectActiveStatus | _StatusObjectActiveStatus | inner |
| I_SalesDocument | SalesDocument | from |
| I_SalesDocumentItem | SalesDocumentItem | union |
Associations (5)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_StatusCode | _StatusCode | $projection.SystemStatus = _StatusCode.StatusCode and $projection.StatusProfile = _StatusCode.StatusProfile |
| [0..1] | I_StatusCodeText | _StatusCodeText | _StatusObjectActiveStatus.StatusCode = _StatusCodeText.StatusCode and $projection.StatusProfile = _StatusCodeText.StatusProfile and _StatusObjectActiveStatus.IsUserStatus = ' ' and _StatusCodeText.Language = $session.system_language |
| [0..1] | I_UserStatus | _UserStatus | $projection.StatusProfile = _UserStatus.StatusProfile and $projection.UserStatus = _UserStatus.UserStatus |
| [0..1] | I_UserStatusText | _UserStatusText | $projection.StatusProfile = _UserStatusText.StatusProfile and _StatusObjectActiveStatus.StatusCode = _UserStatusText.UserStatus and _StatusObjectActiveStatus.IsUserStatus = 'X' and _UserStatusText.Language = $session.system_language |
| [0..1] | I_StatusProfile | _StatusProfile | $projection.StatusProfile = _StatusProfile.StatusProfile |
Annotations (10)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | PSLSDOCBYOBJSTS | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AccessControl.authorizationCheck | #NOT_REQUIRED | view | |
| EndUserText.label | Sales Documents and Items by Object Status | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| VDM.viewType | #CONSUMPTION | view | |
| VDM.private | true | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #L | view |
Fields (23)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | SalesDocument | I_SalesDocument | SalesDocument | |
| KEY | SalesDocumentItem | |||
| KEY | SystemStatus | _StatusCodeText | StatusCode | |
| KEY | UserStatus | _UserStatusText | UserStatus | |
| KEY | StatusProfile | I_StatusObjectActiveStatus | StatusProfile | |
| SystemStatusName | _StatusCodeText | StatusName | ||
| SystemStatusShortName | _StatusCodeText | StatusShortName | ||
| UserStatusName | _UserStatusText | UserStatusName | ||
| UserStatusShortName | _UserStatusText | UserStatusShortName | ||
| _StatusCode | _StatusCode | |||
| _UserStatus | _UserStatus | |||
| SalesDocument | ||||
| KEY | SalesDocumentItem | I_SalesDocumentItem | SalesDocumentItem | |
| KEY | SystemStatus | _StatusCodeText | StatusCode | |
| KEY | UserStatus | _UserStatusText | UserStatus | |
| KEY | StatusProfile | I_StatusObjectActiveStatus | StatusProfile | |
| SystemStatusName | _StatusCodeText | StatusName | ||
| SystemStatusShortName | _StatusCodeText | StatusShortName | ||
| UserStatusName | _UserStatusText | UserStatusName | ||
| UserStatusShortName | _UserStatusText | UserStatusShortName | ||
| _StatusCode | _StatusCode | |||
| _UserStatus | _UserStatus | |||
| _StatusProfile | _StatusProfile |
@AbapCatalog.sqlViewName: 'PSLSDOCBYOBJSTS'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Sales Documents and Items by Object Status'
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM.viewType: #CONSUMPTION
@VDM.private: true
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
define view P_SalesDocumentByObjectStatus
as select from I_SalesDocument as SalesDocument
inner join I_StatusObjectActiveStatus as _StatusObjectActiveStatus on SalesDocument.ControllingObject = _StatusObjectActiveStatus.StatusObject
association [0..1] to I_StatusCode as _StatusCode on $projection.SystemStatus = _StatusCode.StatusCode
and $projection.StatusProfile = _StatusCode.StatusProfile
// Retrieve system status short name and description
association [0..1] to I_StatusCodeText as _StatusCodeText on _StatusObjectActiveStatus.StatusCode = _StatusCodeText.StatusCode
and $projection.StatusProfile = _StatusCodeText.StatusProfile
and _StatusObjectActiveStatus.IsUserStatus = ' '
and _StatusCodeText.Language = $session.system_language
association [0..1] to I_UserStatus as _UserStatus on $projection.StatusProfile = _UserStatus.StatusProfile
and $projection.UserStatus = _UserStatus.UserStatus
// Retrieve user status short name and description
association [0..1] to I_UserStatusText as _UserStatusText on $projection.StatusProfile = _UserStatusText.StatusProfile
and _StatusObjectActiveStatus.StatusCode = _UserStatusText.UserStatus
and _StatusObjectActiveStatus.IsUserStatus = 'X'
and _UserStatusText.Language = $session.system_language
association [0..1] to I_StatusProfile as _StatusProfile on $projection.StatusProfile = _StatusProfile.StatusProfile
{
key SalesDocument.SalesDocument,
key '000000' as SalesDocumentItem,
@ObjectModel.foreignKey.association: '_StatusCode'
key _StatusCodeText.StatusCode as SystemStatus,
@ObjectModel.foreignKey.association: '_UserStatus'
key _UserStatusText.UserStatus as UserStatus,
@ObjectModel.foreignKey.association: '_StatusProfile'
key _StatusObjectActiveStatus.StatusProfile,
_StatusCodeText.StatusName as SystemStatusName,
_StatusCodeText.StatusShortName as SystemStatusShortName,
_UserStatusText.UserStatusName,
_UserStatusText.UserStatusShortName,
_StatusCode,
_UserStatus,
_StatusProfile
} where
SalesDocument.SDDocumentCategory = 'A' // Inquiry
or SalesDocument.SDDocumentCategory = 'B' // Quotation
or SalesDocument.SDDocumentCategory = 'C' // Order
or SalesDocument.SDDocumentCategory = 'D' // Item Proposal
or SalesDocument.SDDocumentCategory = 'G' // Contract
or SalesDocument.SDDocumentCategory = 'H' // Returns
or SalesDocument.SDDocumentCategory = 'I' // Order w/o charge
or SalesDocument.SDDocumentCategory = 'K' // Credit memo request
or SalesDocument.SDDocumentCategory = 'L' // Debit memo request
union
select from I_SalesDocumentItem as SalesDocumentItem
inner join I_StatusObjectActiveStatus as _StatusObjectActiveStatus on SalesDocumentItem.ControllingObject = _StatusObjectActiveStatus.StatusObject
association [0..1] to I_StatusCode as _StatusCode on $projection.SystemStatus = _StatusCode.StatusCode
and $projection.StatusProfile = _StatusCode.StatusProfile
// Retrieve system status short name and description
association [0..1] to I_StatusCodeText as _StatusCodeText on _StatusObjectActiveStatus.StatusCode = _StatusCodeText.StatusCode
and $projection.StatusProfile = _StatusCodeText.StatusProfile
and _StatusObjectActiveStatus.IsUserStatus = ' '
and _StatusCodeText.Language = $session.system_language
association [0..1] to I_UserStatus as _UserStatus on $projection.StatusProfile = _UserStatus.StatusProfile
and $projection.UserStatus = _UserStatus.UserStatus
// Retrieve user status short name and description
association [0..1] to I_UserStatusText as _UserStatusText on $projection.StatusProfile = _UserStatusText.StatusProfile
and _StatusObjectActiveStatus.StatusCode = _UserStatusText.UserStatus
and _StatusObjectActiveStatus.IsUserStatus = 'X'
and _UserStatusText.Language = $session.system_language
association [0..1] to I_StatusProfile as _StatusProfile on $projection.StatusProfile = _StatusProfile.StatusProfile
{
key SalesDocumentItem.SalesDocument,
key SalesDocumentItem.SalesDocumentItem,
@ObjectModel.foreignKey.association: '_StatusCode'
key _StatusCodeText.StatusCode as SystemStatus,
@ObjectModel.foreignKey.association: '_UserStatus'
key _UserStatusText.UserStatus as UserStatus,
@ObjectModel.foreignKey.association: '_StatusProfile'
key _StatusObjectActiveStatus.StatusProfile,
_StatusCodeText.StatusName as SystemStatusName,
_StatusCodeText.StatusShortName as SystemStatusShortName,
_UserStatusText.UserStatusName,
_UserStatusText.UserStatusShortName,
_StatusCode,
_UserStatus,
_StatusProfile
} where
SalesDocumentItem.SDDocumentCategory = 'A' // Inquiry
or SalesDocumentItem.SDDocumentCategory = 'B' // Quotation
or SalesDocumentItem.SDDocumentCategory = 'C' // Order
or SalesDocumentItem.SDDocumentCategory = 'D' // Item Proposal
or SalesDocumentItem.SDDocumentCategory = 'G' // Contract
or SalesDocumentItem.SDDocumentCategory = 'H' // Returns
or SalesDocumentItem.SDDocumentCategory = 'I' // Order w/o charge
or SalesDocumentItem.SDDocumentCategory = 'K' // Credit memo request
or SalesDocumentItem.SDDocumentCategory = 'L' // Debit memo request
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