I_Supplier
Supplier
I_Supplier is a Basic CDS View (Dimension) that provides data about "Supplier" in SAP S/4HANA. It reads from 1 data source (lfa1). It has 25 associations to related views.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| lfa1 | lfa1 | from |
Associations (25)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_SupplierToBusinessPartner | _SupplierToBusinessPartner | $projection.Supplier = _SupplierToBusinessPartner.Supplier |
| [0..1] | bp1020 | _FiscalData | lfa1.lifnr = _FiscalData.partnr |
| [0..*] | I_SupplierCompany | _SupplierCompany | $projection.Supplier = _SupplierCompany.Supplier |
| [0..*] | I_SupplierPurchasingOrg | _SupplierPurchasingOrg | $projection.Supplier = _SupplierPurchasingOrg.Supplier |
| [0..*] | I_SupplierBankDetails | _SupplierBankDetails | $projection.Supplier = _SupplierBankDetails.Supplier |
| [0..1] | I_SupplierAccountGroup | _SupplierAccountGroup | $projection.SupplierAccountGroup = _SupplierAccountGroup.SupplierAccountGroup |
| [0..*] | I_Industries | _Industry | $projection.Industry = _Industry.IndustrySector |
| [0..1] | I_Customer | _CorrespondingCustomer | $projection.Customer = _CorrespondingCustomer.Customer |
| [0..*] | I_SupplierAccountGroupText | _SupplierAccountGroupText | $projection.SupplierAccountGroup = _SupplierAccountGroupText.SupplierAccountGroup |
| [0..*] | I_SupplierIndustryText | _SupplierIndustryText | $projection.Industry = _SupplierIndustryText.SupplierIndustry |
| [0..1] | I_ProcurementBlock | _ProcurementBlock | $projection.SupplierProcurementBlock = _ProcurementBlock.ProcurementBlock |
| [0..1] | I_QualityManagementSystem | _QualityManagementSystem | $projection.SuplrQualityManagementSystem = _QualityManagementSystem.QualityManagementSystem |
| [1..1] | I_Address | _StandardAddress | $projection.AddressID = _StandardAddress.AddressID |
| [0..1] | E_Supplier | _SupplierExt | $projection.Supplier = _SupplierExt.Supplier |
| [0..1] | I_OrganizationAddress | _AddressDefaultRepresentation | $projection.AddressID = _AddressDefaultRepresentation.AddressID and _AddressDefaultRepresentation.AddressRepresentationCode is initial |
| [0..1] | I_Address_2 | _AddressRepresentation | $projection.AddressID = _AddressRepresentation.AddressID and _AddressRepresentation.AddressRepresentationCode is initial and _AddressRepresentation.AddressPersonID is initial |
| [0..*] | I_AddressEmailAddress_2 | _EmailAddress | _EmailAddress.AddressID = $projection.AddressID and _EmailAddress.AddressPersonID is initial |
| [0..1] | I_AddrCurDefaultEmailAddress | _CurrentDfltEmailAddress | _CurrentDfltEmailAddress.AddressID = $projection.AddressID and _CurrentDfltEmailAddress.AddressPersonID is initial |
| [0..*] | I_AddressPhoneNumber_2 | _PhoneNumber | _PhoneNumber.AddressID = $projection.AddressID and _PhoneNumber.AddressPersonID is initial |
| [0..1] | I_AddrCurDfltLandlinePhoneNmbr | _CurrentDfltLandlinePhoneNmbr | _CurrentDfltLandlinePhoneNmbr.AddressID = $projection.AddressID and _CurrentDfltLandlinePhoneNmbr.AddressPersonID is initial |
| [0..1] | I_AddrCurDfltMobilePhoneNumber | _CurrentDfltMobilePhoneNumber | _CurrentDfltMobilePhoneNumber.AddressID = $projection.AddressID and _CurrentDfltMobilePhoneNumber.AddressPersonID is initial |
| [0..*] | I_AddressFaxNumber_2 | _FaxNumber | _FaxNumber.AddressID = $projection.AddressID and _FaxNumber.AddressPersonID is initial |
| [0..1] | I_AddrCurDefaultFaxNumber | _CurrentDfltFaxNumber | _CurrentDfltFaxNumber.AddressID = $projection.AddressID and _CurrentDfltFaxNumber.AddressPersonID is initial |
| [0..*] | I_AddressURI | _UniformResourceIdentifier | _UniformResourceIdentifier.AddressID = $projection.AddressID and _UniformResourceIdentifier.AddressPersonID is initial |
| [0..1] | I_AddressMainWebsiteURL | _MainWebsiteURL | _MainWebsiteURL.AddressID = $projection.AddressID and _MainWebsiteURL.AddressPersonID is initial |
Annotations (18)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | I_SUPPLIER_CDS | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.personalData.blocking | #REQUIRED | view | |
| AccessControl.personalData.blockingIndicator | IsBusinessPurposeCompleted | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| Analytics.dataCategory | #DIMENSION | view | |
| Analytics.dataExtraction.enabled | true | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| EndUserText.label | Supplier | view | |
| Metadata.allowExtensions | true | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| ObjectModel.modelingPattern | #ANALYTICAL_DIMENSION | view | |
| ObjectModel.representativeKey | Supplier | view | |
| ObjectModel.usageType.serviceQuality | #A | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| VDM.viewType | #BASIC | view | |
| ObjectModel.sapObjectNodeType.name | Supplier | view |
@AbapCatalog.sqlViewName: 'I_SUPPLIER_CDS'
@AbapCatalog.preserveKey:true
@AccessControl.personalData.blocking: #REQUIRED
@AccessControl.personalData.blockingIndicator: 'IsBusinessPurposeCompleted'
@AccessControl.authorizationCheck: #CHECK
@AccessControl.privilegedAssociations: ['_AddressDefaultRepresentation','_AddressRepresentation']
@Analytics: {
dataCategory: #DIMENSION,
dataExtraction: {
enabled: true,
delta.changeDataCapture: {
mapping:[
{
table: 'LFA1', role: #MAIN,
viewElement: ['Supplier'],
tableElement: ['lifnr']
},
{
table: 'ADRC', role: #LEFT_OUTER_TO_ONE_JOIN,
viewElement: ['AddressID'],
tableElement: ['Addrnumber']
} ]
}
}
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Supplier'
@Metadata.allowExtensions: true
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.supportedCapabilities: [#SQL_DATA_SOURCE,
#CDS_MODELING_DATA_SOURCE,
#CDS_MODELING_ASSOCIATION_TARGET,
#ANALYTICAL_DIMENSION,
#EXTRACTION_DATA_SOURCE]
@ObjectModel.modelingPattern: #ANALYTICAL_DIMENSION
@ObjectModel.representativeKey: 'Supplier'
@ObjectModel.usageType.serviceQuality: #A
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #MASTER
@VDM.viewType: #BASIC
@ObjectModel.sapObjectNodeType.name: 'Supplier'
define view I_Supplier
as select from lfa1
//private associations
association [1..1] to I_SupplierToBusinessPartner as _SupplierToBusinessPartner on $projection.Supplier = _SupplierToBusinessPartner.Supplier
association [0..1] to bp1020 as _FiscalData on lfa1.lifnr = _FiscalData.partnr // technically wrong for lifnr<>but000.partner, but usage of $projection.BusinessPartner is not allowed. H
//public composition associations
association [0..*] to I_SupplierCompany as _SupplierCompany on $projection.Supplier = _SupplierCompany.Supplier
association [0..*] to I_SupplierPurchasingOrg as _SupplierPurchasingOrg on $projection.Supplier = _SupplierPurchasingOrg.Supplier
association [0..*] to I_SupplierBankDetails as _SupplierBankDetails on $projection.Supplier = _SupplierBankDetails.Supplier
//public value helps
association [0..1] to I_SupplierAccountGroup as _SupplierAccountGroup on $projection.SupplierAccountGroup = _SupplierAccountGroup.SupplierAccountGroup
association [0..*] to I_Industries as _Industry on $projection.Industry = _Industry.IndustrySector
//public foreign key associations
association [0..1] to I_Customer as _CorrespondingCustomer on $projection.Customer = _CorrespondingCustomer.Customer
////public texts
association [0..*] to I_SupplierAccountGroupText as _SupplierAccountGroupText on $projection.SupplierAccountGroup = _SupplierAccountGroupText.SupplierAccountGroup
association [0..*] to I_SupplierIndustryText as _SupplierIndustryText on $projection.Industry = _SupplierIndustryText.SupplierIndustry
////public foreign key associations
//quality management
association [0..1] to I_ProcurementBlock as _ProcurementBlock on $projection.SupplierProcurementBlock = _ProcurementBlock.ProcurementBlock
association [0..1] to I_QualityManagementSystem as _QualityManagementSystem on $projection.SuplrQualityManagementSystem = _QualityManagementSystem.QualityManagementSystem
association [1..1] to I_Address as _StandardAddress on $projection.AddressID = _StandardAddress.AddressID
// association [1..1] to I_BusinessPartnerAddress as _BusinessPartnerAddress on $projection.BusinessPartner = _BusinessPartnerAddress.BusinessPartner
// and $projection.AddressID = _BusinessPartnerAddress.AddressNumber
association [0..1] to E_Supplier as _SupplierExt on $projection.Supplier = _SupplierExt.Supplier
// association added for I_ADDRESS_2 adoption
association [0..1] to I_OrganizationAddress as _AddressDefaultRepresentation on $projection.AddressID = _AddressDefaultRepresentation.AddressID
and _AddressDefaultRepresentation.AddressRepresentationCode is initial
association [0..1] to I_Address_2 as _AddressRepresentation on $projection.AddressID = _AddressRepresentation.AddressID
and _AddressRepresentation.AddressRepresentationCode is initial
and _AddressRepresentation.AddressPersonID is initial
//Adoption from I_Address_2
association [0..*] to I_AddressEmailAddress_2 as _EmailAddress on _EmailAddress.AddressID = $projection.AddressID
and _EmailAddress.AddressPersonID is initial
association [0..1] to I_AddrCurDefaultEmailAddress as _CurrentDfltEmailAddress on _CurrentDfltEmailAddress.AddressID = $projection.AddressID
and _CurrentDfltEmailAddress.AddressPersonID is initial
association [0..*] to I_AddressPhoneNumber_2 as _PhoneNumber on _PhoneNumber.AddressID = $projection.AddressID
and _PhoneNumber.AddressPersonID is initial
association [0..1] to I_AddrCurDfltLandlinePhoneNmbr as _CurrentDfltLandlinePhoneNmbr on _CurrentDfltLandlinePhoneNmbr.AddressID = $projection.AddressID
and _CurrentDfltLandlinePhoneNmbr.AddressPersonID is initial
association [0..1] to I_AddrCurDfltMobilePhoneNumber as _CurrentDfltMobilePhoneNumber on _CurrentDfltMobilePhoneNumber.AddressID = $projection.AddressID
and _CurrentDfltMobilePhoneNumber.AddressPersonID is initial
association [0..*] to I_AddressFaxNumber_2 as _FaxNumber on _FaxNumber.AddressID = $projection.AddressID
and _FaxNumber.AddressPersonID is initial
association [0..1] to I_AddrCurDefaultFaxNumber as _CurrentDfltFaxNumber on _CurrentDfltFaxNumber.AddressID = $projection.AddressID
and _CurrentDfltFaxNumber.AddressPersonID is initial
association [0..*] to I_AddressURI as _UniformResourceIdentifier on _UniformResourceIdentifier.AddressID = $projection.AddressID
and _UniformResourceIdentifier.AddressPersonID is initial
association [0..1] to I_AddressMainWebsiteURL as _MainWebsiteURL on _MainWebsiteURL.AddressID = $projection.AddressID
and _MainWebsiteURL.AddressPersonID is initial
{
@ObjectModel.text.element: 'SupplierName'
@Consumption.labelElement: 'SupplierName'
key cast(lfa1.lifnr as lifnr preserving type) as Supplier,
// _SupplierToBusinessPartner._BusinessPartner.BusinessPartner as BusinessPartner,
@EndUserText.label: 'Account Group'
ktokk as SupplierAccountGroup,
@Semantics.text: true
cast(substring(rtrim(replace(concat(name1, concat(' &@', name2)), '&@', ''),' '),1,80) as md_supplier_name) as SupplierName,
cast(concat( concat( concat( concat( concat( concat_with_space( anred, name1, 1 ), name2 ), name3 ), name4 ), '/' ),
concat_with_space( pstlz, ort01 , 1 ) ) as md_supplier_full_name) as SupplierFullName,
// // For increase in field length
@Semantics.text: true
cast(substring(rtrim(replace(concat(_AddressDefaultRepresentation.AddresseeName1, concat(' &@', _AddressDefaultRepresentation.AddresseeName2)), '&@', ''),' '),1,81) as suppliername_2) as BPSupplierName,
cast(concat( concat_with_space( concat_with_space( concat_with_space(_AddressDefaultRepresentation.AddresseeName1, _AddressDefaultRepresentation.AddresseeName2,1 ), _AddressDefaultRepresentation.AddresseeName3,1 ), _AddressDefaultRepresentation.AddresseeName4,1 ), ' ' ) as supplierfullname_2) as BPSupplierFullName,
// _AddressRepresentation.OrganizationName1 as BusinessPartnerName1,
// _AddressRepresentation.OrganizationName2 as BusinessPartnerName2,
// _AddressRepresentation.OrganizationName3 as BusinessPartnerName3,
// _AddressRepresentation.OrganizationName4 as BusinessPartnerName4,
//Adoption of Name and Address fields
_AddressDefaultRepresentation.AddresseeName1 as BusinessPartnerName1,
_AddressDefaultRepresentation.AddresseeName2 as BusinessPartnerName2,
_AddressDefaultRepresentation.AddresseeName3 as BusinessPartnerName3,
_AddressDefaultRepresentation.AddresseeName4 as BusinessPartnerName4,
_AddressDefaultRepresentation.CityName as BPAddrCityName,
_AddressDefaultRepresentation.StreetName as BPAddrStreetName,
_AddressDefaultRepresentation.AddressSearchTerm1 as AddressSearchTerm1,
_AddressDefaultRepresentation.AddressSearchTerm2 as AddressSearchTerm2,
_AddressDefaultRepresentation.DistrictName as DistrictName,
_AddressDefaultRepresentation.POBoxDeviatingCityName as POBoxDeviatingCityName,
_AddressDefaultRepresentation.FormOfAddress as BusinessPartnerFormOfAddress,
lfa1.cvp_xblck as IsBusinessPurposeCompleted,
@EndUserText.label: 'Created By'
ernam as CreatedByUser,
erdat as CreationDate,
xcpdk as IsOneTimeAccount,
begru as AuthorizationGroup,
stceg as VATRegistration,
@EndUserText.label: 'Posting Block(Deprecated)'
@API.element.releaseState: #DEPRECATED
@API.element.successor: 'PostingIsBlocked'
sperr as AccountIsBlockedForPosting,
txjcd as TaxJurisdiction,
scacd as SupplierStandardCarrierAccess,
sfrgr as SupplierFwdAgentFreightGroup,
dlgrp as SupplierAgentProcedureGroup,
regss as SupplIsSocialInsuranceRegtrd,
actss as SocialInsuranceActivityCode,
@EndUserText.label: 'Group Key'
konzs as SupplierCorporateGroup, //to be used
kunnr as Customer,
brsch as Industry, // siehe Anmerkung
stcd1 as TaxNumber1, // tax number 1&2: siehe Anmerkung
stcd2 as TaxNumber2,
stcd3 as TaxNumber3,
stcd4 as TaxNumber4,
stcd5 as TaxNumber5,
stcd6 as TaxNumber6,
sperr as PostingIsBlocked,
@EndUserText.label: 'Purch. Block'
sperm as PurchasingIsBlocked,
@EndUserText.quickInfo: 'International Location Number (Part 1)'
bbbnr as InternationalLocationNumber1,
@EndUserText.quickInfo: 'International Location Number (Part 2)'
bbsnr as InternationalLocationNumber2,
@EndUserText.label: 'Check Digit'
bubkz as InternationalLocationNumber3,
adrnr as AddressID,
lfa1.regio as Region,
lfa1.name1 as OrganizationBPName1,
lfa1.name2 as OrganizationBPName2,
lfa1.ort01 as CityName,
lfa1.pstlz as PostalCode,
lfa1.stras as StreetName,
lfa1.land1 as Country,
cast((concat(concat(bbbnr,concat(' & ', bbsnr)),concat(' & ',bubkz))) as md_international_loc ) as ConcatenatedInternationalLocNo,
//quality management
sperq as SupplierProcurementBlock,
qssys as SuplrQualityManagementSystem,
qssysdat as SuplrQltyInProcmtCertfnValidTo,
//globalization
lfa1.spras as SupplierLanguage,
lfa1.lnrza as AlternativePayeeAccountNumber,
lfa1.telf1 as PhoneNumber1,
lfa1.telfx as FaxNumber,
lfa1.stkzn as IsNaturalPerson,
lfa1.stenr
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