I_ProductStructureVariant
Product Structure Variant
I_ProductStructureVariant (Composite)
Package: Explore, extend and adapt the SAP S/4HANA Cloud Private Edition with built-in and side-by-side extension capabilities.
Cross Applications
I_ProductStructureVariant is a Composite CDS View that provides data about "Product Structure Variant" in SAP S/4HANA. It reads from 3 data sources (I_ProdStrucVariantBasic, I_ProdStrucVariantMaterial, I_ProdStrucVariantChangeState) and exposes 24 fields with key fields ProductStructureVariantUUID, ProdStrucVariantChgStateIntID. It has 6 associations to related views.
SAP API Hub
| State | Deprecated |
|---|---|
| Line of Business | Cross Applications |
| Application Component | PLM-WUI-OBJ-PSM |
| Capabilities | Data Source in SQL Select, Data Source for Search, Data Source for Defining CDS Entities |
| Package | Cross Applications for SAP S/4HANA Cloud Private Edition |
Documentation
- Analytics with CDS Views — Build Analytics for S/4HANA Cloud Private Edition ABAP CDS views replicated to SAP Cloud Platform
- CDS Views on SAP Business Accelerator Hub — Explore SAP S/4HANA Cloud Private Edition CDS Views on SAP Business Accelerator Hub
- Create CDS View as API — Create CDS views in SAP S/4HANA Cloud Private Edition and consume them as APIs
- Custom CDS Views — Access data using a Custom Core Data Service view (Custom CDS view)
- Key User Extensibility Tools — The Key User Extensibility Tools of S/4HANA
- SAP Extensibility Explorer for SAP S/4HANA Cloud Private Edition — Explore SAP S/4HANA Cloud Private Edition Extensibility options by leveraging the sample scenarios from SAP
- SAP S/4HANA Extensibility — SAP S/4HANA Extensibility Tutorial
- VDM View Types — The Virtual Data Model in SAP S/4HANA Cloud Private Edition
- View Browser — Search, browse and tag CDS Views
Data Sources (3)
| Source | Alias | Join Type |
|---|---|---|
| I_ProdStrucVariantBasic | _Variant | from |
| I_ProdStrucVariantMaterial | _VariantMaterial | left_outer |
| I_ProdStrucVariantChangeState | _VntChangeState | inner |
Associations (6)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_ProdStrucVariantChangeState | _VariantChangeState | _Variant.ProductStructureVariantUUID = _VariantChangeState.ProductStructureVariantUUID and $projection.ProdStrucVariantChgStateIntID = _VariantChangeState.ProdStrucVariantChgStateIntID |
| [0..1] | I_ProdStrucVariantBasic | _VariantBasic | $projection.ProductStructureVariantUUID = _VariantBasic.ProductStructureVariantUUID |
| [0..*] | I_ProductStructureVariantText | _Text | _Variant.ProductStructureVariantUUID = _Text.ProductStructureVariantUUID and _VntChangeState.ProdStrucVariantChgStateIntID = _Text.ProdStrucVariantChgStateIntID |
| [0..1] | I_ProdStrucLogAccMActive | _ChangeMasterLogAccMActive | _ChangeMasterLogAccMActive.LogAccMObjectType = 'PLM_PPEPV' or _ChangeMasterLogAccMActive.LogAccMObjectType = 'PLM_PPEPIV' |
| [0..*] | I_ProdStrucLogAccMSecureAssgmt | _ChgMstrLogAccMSecureIDAssgmt | $projection.ProdStrucVariantUniqueID = _ChgMstrLogAccMSecureIDAssgmt.LogAccMObjectID and ( _ChgMstrLogAccMSecureIDAssgmt.LogAccMObjectType = 'PLM_PPEPV' or _ChgMstrLogAccMSecureIDAssgmt.LogAccMObjectType = 'PLM_PPEPIV' ) |
| [0..*] | I_ProdStrucLogAccMUserAuthzn | _ChangeMstrLogAccMUserAuthzn | $projection.ProdStrucVariantUniqueID = _ChangeMstrLogAccMUserAuthzn.LogAccMObjectID and ( _ChangeMstrLogAccMUserAuthzn.LogAccMObjectType = 'PLM_PPEPV' or _ChangeMstrLogAccMUserAuthzn.LogAccMObjectType = 'PLM_PPEPIV' ) and ( _ChangeMstrLogAccMUserAuthzn.LogAccMUserAuthznFrom = '03' or _ChangeMstrLogAccMUserAuthzn.LogAccMUserAuthznFrom = '*' ) and _ChangeMstrLogAccMUserAuthzn.UserID = $session.user |
Annotations (13)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IPSVARIANT | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| VDM.viewType | #COMPOSITE | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| ObjectModel.representativeKey | ProductStructureVariantUUID | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| ObjectModel.usageType.sizeCategory | #M | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| EndUserText.label | Product Structure Variant | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| VDM.lifecycle.status | #DEPRECATED | view | |
| VDM.lifecycle.successor | I_ProductStructureVariant_2 | view |
Fields (24)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProductStructureVariantUUID | I_ProdStrucVariantBasic | ProductStructureVariantUUID | Internal Number of the PVS Variant |
| KEY | ProdStrucVariantChgStateIntID | I_ProdStrucVariantChangeState | ProdStrucVariantChgStateIntID | Internal Counter for iPPE Objects |
| ProdStrucVariantUniqueID | I_ProdStrucVariantBasic | ProdStrucVariantUniqueID | ||
| ProductStructureVariantName | ProductStructureVariantName | Variant | ||
| ProdStructureVariantParentUUID | ProdStructureVariantParentUUID | Internal Number of iPPE Node | ||
| ProductStructureCreationDate | ProductStructureCreationDate | Date of Application | ||
| ProductStructureCreatedByUser | ProductStructureCreatedByUser | User who created record | ||
| ProductStrucLastChangedDate | ProductStrucLastChangedDate | Date of Last Change | ||
| ProductStrucLastChangedByUser | ProductStrucLastChangedByUser | Name of Person Who Changed Object | ||
| ProdStrucVariantChangeNumber | I_ProdStrucVariantChangeState | ProdStrucVariantChangeNumber | Change Number in iPPE | |
| AuthorizationGroup | I_ProdStrucVariantChangeState | AuthorizationGroup | Authorization group for change master record | |
| ProdStrucVarIsMrkdForDeletion | I_ProdStrucVariantChangeState | ProdStrucVarIsMrkdForDeletion | Deletion Indicator | |
| ProdStrucVarChgNmbrDescription | I_ProdStrucVariantChangeState | ProdStrucVarChgNmbrDescription | Change number description | |
| ProductStructureVariantQty | I_ProdStrucVariantMaterial | ProductStructureVariantQty | Fixed Quantity in Variant of iPPE Product Structure | |
| ProductStructureVariantUnit | I_ProdStrucVariantMaterial | ProductStructureVariantUnit | Unit of Measure | |
| Material | I_ProdStrucVariantMaterial | Material | Product Number | |
| MaterialAuthorizationGroup | I_ProdStrucVariantMaterial | MaterialAuthorizationGroup | Authorization Group | |
| ProductStructureVariantType | I_ProdStrucVariantBasic | ProductStructureVariantType | iPPE Variant Type | |
| _Text | _Text | |||
| _VariantChangeState | _VariantChangeState | |||
| _VariantBasic | _VariantBasic | |||
| _ChangeMasterLogAccMActive | _ChangeMasterLogAccMActive | |||
| _ChgMstrLogAccMSecureIDAssgmt | _ChgMstrLogAccMSecureIDAssgmt | |||
| _ChangeMstrLogAccMUserAuthzn | _ChangeMstrLogAccMUserAuthzn |
Derived SQL interpretation, reconstructed from the parsed view metadata (data sources, associations, and field mappings). SAP annotations are omitted and the structure is reformulated as SQL — this is a functional approximation, not the verbatim SAP source.
-- Derived SQL interpretation of CDS view I_ProductStructureVariant.
-- Reconstructed from parsed metadata (data sources, associations, fields).
-- SAP annotations are omitted and the structure is reformulated as SQL;
-- this is a functional approximation, not the verbatim SAP source. Some join
-- conditions may be unavailable and a few CDS constructs are kept as-is.
-- SQL view name: IPSVARIANT
CREATE VIEW I_ProductStructureVariant AS
SELECT
_Variant.ProductStructureVariantUUID AS ProductStructureVariantUUID,
_VntChangeState.ProdStrucVariantChgStateIntID AS ProdStrucVariantChgStateIntID,
_Variant.ProdStrucVariantUniqueID AS ProdStrucVariantUniqueID,
ProductStructureVariantName,
ProdStructureVariantParentUUID,
ProductStructureCreationDate,
ProductStructureCreatedByUser,
ProductStrucLastChangedDate,
ProductStrucLastChangedByUser,
_VntChangeState.ProdStrucVariantChangeNumber AS ProdStrucVariantChangeNumber,
_VntChangeState.AuthorizationGroup AS AuthorizationGroup,
_VntChangeState.ProdStrucVarIsMrkdForDeletion AS ProdStrucVarIsMrkdForDeletion,
_VntChangeState.ProdStrucVarChgNmbrDescription AS ProdStrucVarChgNmbrDescription,
_VariantMaterial.ProductStructureVariantQty AS ProductStructureVariantQty,
_VariantMaterial.ProductStructureVariantUnit AS ProductStructureVariantUnit,
_VariantMaterial.Material AS Material,
_VariantMaterial.MaterialAuthorizationGroup AS MaterialAuthorizationGroup,
_Variant.ProductStructureVariantType AS ProductStructureVariantType
FROM I_ProdStrucVariantBasic AS _Variant
INNER JOIN I_ProdStrucVariantChangeState AS _VntChangeState ON /* join condition not captured in parsed metadata */
LEFT OUTER JOIN I_ProdStrucVariantMaterial AS _VariantMaterial ON /* join condition not captured in parsed metadata */
LEFT OUTER JOIN I_ProdStrucVariantChangeState AS _VariantChangeState ON _Variant.ProductStructureVariantUUID = _VariantChangeState.ProductStructureVariantUUID AND ProdStrucVariantChgStateIntID = _VariantChangeState.ProdStrucVariantChgStateIntID -- association [0..1]
LEFT OUTER JOIN I_ProdStrucVariantBasic AS _VariantBasic ON ProductStructureVariantUUID = _VariantBasic.ProductStructureVariantUUID -- association [0..1]
LEFT OUTER JOIN I_ProductStructureVariantText AS _Text ON _Variant.ProductStructureVariantUUID = _Text.ProductStructureVariantUUID AND _VntChangeState.ProdStrucVariantChgStateIntID = _Text.ProdStrucVariantChgStateIntID -- association [0..*]
LEFT OUTER JOIN I_ProdStrucLogAccMActive AS _ChangeMasterLogAccMActive ON _ChangeMasterLogAccMActive.LogAccMObjectType = 'PLM_PPEPV' OR _ChangeMasterLogAccMActive.LogAccMObjectType = 'PLM_PPEPIV' -- association [0..1]
LEFT OUTER JOIN I_ProdStrucLogAccMSecureAssgmt AS _ChgMstrLogAccMSecureIDAssgmt ON ProdStrucVariantUniqueID = _ChgMstrLogAccMSecureIDAssgmt.LogAccMObjectID AND ( _ChgMstrLogAccMSecureIDAssgmt.LogAccMObjectType = 'PLM_PPEPV' OR _ChgMstrLogAccMSecureIDAssgmt.LogAccMObjectType = 'PLM_PPEPIV' ) -- association [0..*]
LEFT OUTER JOIN I_ProdStrucLogAccMUserAuthzn AS _ChangeMstrLogAccMUserAuthzn ON ProdStrucVariantUniqueID = _ChangeMstrLogAccMUserAuthzn.LogAccMObjectID AND ( _ChangeMstrLogAccMUserAuthzn.LogAccMObjectType = 'PLM_PPEPV' OR _ChangeMstrLogAccMUserAuthzn.LogAccMObjectType = 'PLM_PPEPIV' ) AND ( _ChangeMstrLogAccMUserAuthzn.LogAccMUserAuthznFrom = '03' OR _ChangeMstrLogAccMUserAuthzn.LogAccMUserAuthznFrom = '*' ) AND _ChangeMstrLogAccMUserAuthzn.UserID = $session.user -- association [0..*]
;
Learn More
- S/4HANA CDS View Deprecation: What You Need to Know
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- CDS View Annotations — A Complete Guide
- What Is a CDS View in SAP S/4HANA?
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- 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
- BSEG to ACDOCA: The Universal Journal Migration
- Business Partner Migration: KNA1/LFA1 to BUT000
- Material Document Migration: MSEG/MKPF to MATDOC
- How to Find the Right CDS View for an SAP Table
- BW Extractor to CDS View Migration Guide
- ABAP CDS View Tutorial — From Basics to Real-World Examples
- RAP and CDS Views — Building Transactional Apps in SAP S/4HANA
- Sales Document Status Migration: VBUP/VBUK Removal in S/4HANA
- CO Tables in S/4HANA: COEP, COBK, COSS, COSP to ACDOCA