I_UserAddress
Benutzeradresse
I_UserAddress is a Composite CDS View that provides data about "Benutzeradresse" in SAP S/4HANA. It reads from 2 data sources (I_UserAddressLink, I_UserBasic) and exposes 23 fields with key field UserID. It has 13 associations to related views. Part of development package SUSR.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_UserAddressLink | _AddressLink | from |
| I_UserBasic | _UserBasic | inner |
Associations (13)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_AddressPersonName | _PersonName | _PersonName.AddressPersonID = $projection.UserAddressPersonIdentifier and _PersonName.AddressRepresentationCode = '' |
| [1..1] | I_AddressWorkplaceDetails | _PersonWorkplace | _PersonWorkplace.AddressPersonID = $projection.UserAddressPersonIdentifier and _PersonWorkplace.AddressID = $projection.UserAddressIdentifier and _PersonWorkplace.AddressRepresentationCode = '' |
| [1..1] | I_OrganizationAddress | _Organization | _Organization.AddressPersonID = '' and _Organization.AddressID = $projection.UserAddressIdentifier and _Organization.AddressRepresentationCode = '' |
| [1..1] | I_Address_2 | _Location | _Location.AddressID = $projection.UserAddressIdentifier and _Location.AddressRepresentationCode = '' |
| [0..1] | I_UserCompany | _Company | _Company.UserAddressIdentifier = $projection.UserAddressIdentifier |
| [0..1] | I_UserCompany | _TemplateCompany | _TemplateCompany.UserAddressIdentifier = $projection.UserTemplateAddressIdentifier and $projection.UserTemplateOrgType = 'C' |
| [0..1] | I_AddrCurDefaultEmailAddress | _DefaultEmail | _DefaultEmail.AddressPersonID = $projection.UserAddressPersonIdentifier and _DefaultEmail.AddressID = $projection.UserAddressIdentifier |
| [0..1] | I_AddrCurDfltLandlinePhoneNmbr | _DefaultPhone | _DefaultPhone.AddressPersonID = $projection.UserAddressPersonIdentifier and _DefaultPhone.AddressID = $projection.UserAddressIdentifier |
| [0..1] | I_AddrCurDefaultFaxNumber | _DefaultFax | _DefaultFax.AddressPersonID = $projection.UserAddressPersonIdentifier and _DefaultFax.AddressID = $projection.UserAddressIdentifier |
| [0..1] | I_AddrCurDfltMobilePhoneNumber | _DefaultMobile | _DefaultMobile.AddressPersonID = $projection.UserAddressPersonIdentifier and _DefaultMobile.AddressID = $projection.UserAddressIdentifier |
| [0..*] | I_AddressPhoneNumber_2 | _Phone | _Phone.AddressPersonID = $projection.UserAddressPersonIdentifier and _Phone.AddressID = $projection.UserAddressIdentifier |
| [0..*] | I_AddressFaxNumber_2 | _Fax | _Fax.AddressPersonID = $projection.UserAddressPersonIdentifier and _Fax.AddressID = $projection.UserAddressIdentifier |
| [0..*] | I_AddressEmailAddress_2 | _EMail | _EMail.AddressPersonID = $projection.UserAddressPersonIdentifier and _EMail.AddressID = $projection.UserAddressIdentifier |
Annotations (11)
| Name | Value | Level | Field |
|---|---|---|---|
| EndUserText.label | Benutzeradresse | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.lifecycle.contract.type | #PUBLIC_LOCAL_API | view | |
| ObjectModel.compositionRoot | true | view | |
| ObjectModel.representativeKey | UserID | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| ObjectModel.usageType.serviceQuality | #A | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| AbapCatalog.extensibility.extensible | false | view | |
| Metadata.allowExtensions | true | view |
Fields (23)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | UserID | I_UserBasic | UserID | |
| UserGroup | I_UserBasic | UserGroup | ||
| UserAddressPersonIdentifier | I_UserAddressLink | UserAddressPersonIdentifier | ||
| UserAddressIdentifier | I_UserAddressLink | UserAddressIdentifier | ||
| BusinessPartnerUUID | I_UserAddressLink | BusinessPartnerUUID | ||
| IdentityAddressType | I_UserAddressLink | IdentityAddressType | ||
| UserTemplateAddressIdentifier | I_UserAddressLink | UserTemplateAddressIdentifier | ||
| UserTemplateOrgType | I_UserAddressLink | UserTemplateOrgType | ||
| ResponsibleUser | I_UserAddressLink | ResponsibleUser | ||
| UserDescription | I_UserAddressLink | UserDescription | ||
| _Company | _Company | |||
| _TemplateCompany | _TemplateCompany | |||
| _PersonName | _PersonName | |||
| _PersonWorkplace | _PersonWorkplace | |||
| _Organization | _Organization | |||
| _Location | _Location | |||
| _DefaultEmail | _DefaultEmail | |||
| _DefaultPhone | _DefaultPhone | |||
| _DefaultFax | _DefaultFax | |||
| _DefaultMobile | _DefaultMobile | |||
| _Phone | _Phone | |||
| _Fax | _Fax | |||
| _EMail | _EMail |
@EndUserText: { label: 'Benutzeradresse' }
@AccessControl: { authorizationCheck: #CHECK
, privilegedAssociations: [ '_PersonName'
, '_PersonWorkplace'
, '_Organization'
, '_Location'
, '_DefaultEmail'
, '_DefaultPhone'
, '_DefaultMobile'
, '_Phone'
, '_Fax'
, '_EMail'
]
}
@VDM: { viewType: #COMPOSITE
, lifecycle.contract.type: #PUBLIC_LOCAL_API
}
@ObjectModel: { compositionRoot: true
, representativeKey: 'UserID'
, usageType: { dataClass: #MASTER
, serviceQuality: #A
, sizeCategory: #L
}
}
@AbapCatalog: { viewEnhancementCategory: [ #NONE ]
, extensibility: { extensible: false }
}
@Metadata: { allowExtensions: true }
define view entity I_UserAddress
as
select from I_UserAddressLink as _AddressLink
inner join I_UserBasic as _UserBasic on _AddressLink.UserID = _UserBasic.UserID
association [1..1] to I_AddressPersonName as _PersonName on _PersonName.AddressPersonID = $projection.UserAddressPersonIdentifier
and _PersonName.AddressRepresentationCode = '' //adrp.nation
association [1..1] to I_AddressWorkplaceDetails as _PersonWorkplace on _PersonWorkplace.AddressPersonID = $projection.UserAddressPersonIdentifier
and _PersonWorkplace.AddressID = $projection.UserAddressIdentifier
and _PersonWorkplace.AddressRepresentationCode = '' //adrp.nation
association [1..1] to I_OrganizationAddress as _Organization on _Organization.AddressPersonID = '' //$projection.AddressPersonID
and _Organization.AddressID = $projection.UserAddressIdentifier
and _Organization.AddressRepresentationCode = '' //adrp.nation
/*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ] } */
association [1..1] to I_Address_2 as _Location on _Location.AddressID = $projection.UserAddressIdentifier
and _Location.AddressRepresentationCode = '' //adrp.nation
/*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ] } */
association [0..1] to I_UserCompany as _Company on _Company.UserAddressIdentifier = $projection.UserAddressIdentifier
/*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ] } */
association [0..1] to I_UserCompany as _TemplateCompany on _TemplateCompany.UserAddressIdentifier = $projection.UserTemplateAddressIdentifier
and $projection.UserTemplateOrgType = 'C'
association [0..1] to I_AddrCurDefaultEmailAddress as _DefaultEmail on _DefaultEmail.AddressPersonID = $projection.UserAddressPersonIdentifier
and _DefaultEmail.AddressID = $projection.UserAddressIdentifier
association [0..1] to I_AddrCurDfltLandlinePhoneNmbr as _DefaultPhone on _DefaultPhone.AddressPersonID = $projection.UserAddressPersonIdentifier
and _DefaultPhone.AddressID = $projection.UserAddressIdentifier
association [0..1] to I_AddrCurDefaultFaxNumber as _DefaultFax on _DefaultFax.AddressPersonID = $projection.UserAddressPersonIdentifier
and _DefaultFax.AddressID = $projection.UserAddressIdentifier
association [0..1] to I_AddrCurDfltMobilePhoneNumber as _DefaultMobile on _DefaultMobile.AddressPersonID = $projection.UserAddressPersonIdentifier
and _DefaultMobile.AddressID = $projection.UserAddressIdentifier
association [0..*] to I_AddressPhoneNumber_2 as _Phone on _Phone.AddressPersonID = $projection.UserAddressPersonIdentifier
and _Phone.AddressID = $projection.UserAddressIdentifier
// and _Phone.comm_type = 'TEL' // This filter is already implemented by I_AddressPhoneNumber_2
association [0..*] to I_AddressFaxNumber_2 as _Fax on _Fax.AddressPersonID = $projection.UserAddressPersonIdentifier
and _Fax.AddressID = $projection.UserAddressIdentifier
// and _Facsimile.comm_type = 'FAX' // This filter is already implemented by I_AddressFaxNumber_2
association [0..*] to I_AddressEmailAddress_2 as _EMail on _EMail.AddressPersonID = $projection.UserAddressPersonIdentifier
and _EMail.AddressID = $projection.UserAddressIdentifier
// and _Email.comm_type = 'INT' //This filter is already implemented by I_AddressEmailAddress_2:
{
//_____technical_Data______________________________________________________________________________
key _UserBasic.UserID,
@Consumption: { hidden: true }
_UserBasic.UserGroup,
@Consumption: { hidden: true }
_AddressLink.UserAddressPersonIdentifier,
@Consumption: { hidden: true }
_AddressLink.UserAddressIdentifier,
@Consumption: { hidden: true }
_AddressLink.BusinessPartnerUUID,
@Consumption: { hidden: true }
_AddressLink.IdentityAddressType,
@Consumption: { hidden: true }
_AddressLink.UserTemplateAddressIdentifier,
@Consumption: { hidden: true }
_AddressLink.UserTemplateOrgType,
//_____Description Data____________________________________________________________________________
_AddressLink.ResponsibleUser,
_AddressLink.UserDescription,
//_____AddressData_________________________________________________________________________________
_Company,
_TemplateCompany,
_PersonName,
_PersonWorkplace,
_Organization,
_Location,
_DefaultEmail,
_DefaultPhone,
_DefaultFax,
_DefaultMobile,
_Phone,
_Fax,
_EMail
}
where _AddressLink.IdentityAddressType <> '01' //technical users (having no address at all)
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