I_UserAddress

DDL: I_USERADDRESS Type: view_entity COMPOSITE Package: SUSR

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)

SourceAliasJoin Type
I_UserAddressLink _AddressLink from
I_UserBasic _UserBasic inner

Associations (13)

CardinalityTargetAliasCondition
[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)

NameValueLevelField
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)

KeyFieldSource TableSource FieldDescription
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)