I_User

DDL: I_USER SQL: IUSER Type: view BASIC

User

I_User is a Basic CDS View that provides data about "User" in SAP S/4HANA. It reads from 1 data source (usr21) and exposes 5 fields with key field UserID. It has 1 association to related views. It is exposed through 13 OData services (C_SALESORDERMANAGE_SD, UI_BPEMCASE, UI_CREDITMEMOREQUESTMANAGE, ...). It is used in 5 Fiori applications: Configure Supply Sort Rule, Manage Purchase Orders - Fashion, Manage Provisional Sales Contracts - Fashion, ....

Data Sources (1)

SourceAliasJoin Type
usr21 usr21 from

Associations (1)

CardinalityTargetAliasCondition
[0..1] I_AddrCurDefaultEmailAddress _AddrCurDefaultEmailAddress usr21.persnumber = _AddrCurDefaultEmailAddress.AddressPersonID and usr21.addrnumber = _AddrCurDefaultEmailAddress.AddressID

Annotations (13)

NameValueLevelField
EndUserText.label User view
VDM.viewType #BASIC view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
AbapCatalog.preserveKey true view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.sqlViewName IUSER view
ClientHandling.algorithm #SESSION_VARIABLE view
AccessControl.authorizationCheck #PRIVILEGED_ONLY view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.serviceQuality #A view
ObjectModel.usageType.sizeCategory #M view
ObjectModel.representativeKey UserID view

OData Services (13)

ServiceBindingVersionContractRelease
C_SALESORDERMANAGE_SD C_SALESORDERMANAGE_SRV V4 C1 NOT_RELEASED
UI_BPEMCASE UI_BPEMCASE V2 C1 NOT_RELEASED
UI_CREDITMEMOREQUESTMANAGE UI_CREDITMEMOREQUESTMANAGE V4 C1 NOT_RELEASED
UI_CUSTOMERRETURNMANAGE UI_CUSTOMERRETURNMANAGE V4 C1 NOT_RELEASED
UI_INBOUNDDELIVERYMANAGE UI_INBOUNDDELIVERYMANAGE V4 C1 NOT_RELEASED
UI_PRELIMBILLINGDOCUMENT_F6990 UI_PRELIMBILLINGDOCUMENT_F6990 V4 C1 NOT_RELEASED
UI_PURCONTRRENEGTTN_MANAGE UI_PURCONTRRENEGTTN_MANAGE V2 C1 NOT_RELEASED
UI_RFM_PO_MNG UI_RFM_PO_MNG V2 C1 NOT_RELEASED
UI_RFM_PRVSNLSLSCONTR UI_RFM_PRVSNLSLSCONTR V2 C1 NOT_RELEASED
UI_RFM_SUPPLY_SORTRULE UI_RFM_SUPPLY_SORTRULE V2 C1 NOT_RELEASED
UI_SALESCONTRACTMANAGE UI_SALESCONTRACTMANAGE V4 C1 NOT_RELEASED
UI_SALESQUOTATIONMANAGE UI_SALESQUOTATIONMANAGE V4 C1 NOT_RELEASED
UI_SUPLRUSRDFNDCRITRA_MANAGE UI_SUPLRUSRDFNDCRITRA V2 C1 NOT_RELEASED

Fiori Apps (5)

App IDApp NameTypeDescription
F4057 Configure Supply Sort Rule Transactional An application to configure supply sorting rules which are used in Supply Assignment Run.
F5391 Manage Purchase Orders - Fashion Transactional
F5398 Manage Provisional Sales Contracts - Fashion Transactional Manage Provisional Sales Contracts - Fashion. This is used to create the special types of contracts and the call off
F5714 Manage Renegotiations Transactional An application to create and manage renegotiations of central purchase contracts
F7256 Manage BPEM Clarification Cases Transactional

Configure Supply Sort Rule

Business Role: Order Fulfillment Manager (Retail)

This transactional application allows you to create static or dynamic sort attributes for a supply sort rule. The supply sort rules defined using this app are used during supply assignment in backorder processing (BOP), insight to action (ITA), or immediate assignment processes.

Manage Purchase Orders - Fashion

Business Role: Purchaser (Retail)

With this app, you can now consolidate purchase order items into an existing purchase order based on the settings in the rule maintained using the Configure Purchase Order Consolidation Rule app.

Manage Provisional Sales Contracts - Fashion

Business Role: Order Fulfillment Specialist (Retail)

With this app, you can display the provisional sales contract details at header and generic product levels, so you can get a complete view of different items in these contracts. You can also use this app to create provisional sales contracts as well as create subsequent orders (call-offs) for these contracts.

Manage Renegotiations

Business Role: Purchaser

With this app, you can initiate renegotiations on the prices for items in existing central purchase contracts. You can revisit prevalent central purchase contracts for chosen items and renegotiate the pricing conditions, to gain value from changed market conditions. The following new business add-in (BAdI) is available with this app:Change of Purchase Contract Renegotiation Item Pricing

Manage BPEM Clarification Cases

Business Role: Operations Specialist (Utilities)

A new Fiori app enables you to display a list of BPEM (Business Process Exception Management) clarification cases in Utilities meter-to-cash processes, to access detailed information related to clarification cases, and apply actions.The app provides forward navigation to the transaction EMMAC3 ("Display Clarification Case"), where further detailed information and BPEM features are available.

Fields (5)

KeyFieldSource TableSource FieldDescription
KEY UserID
UserDescription
_AddrCurDefaultEmailAddress _AddrCurDefaultEmailAddress
AddressPersonID usr21 persnumber
AddressID usr21 addrnumber
@EndUserText.label: 'User'
@VDM.viewType: #BASIC
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@AbapCatalog.preserveKey: true
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.sqlViewName: 'IUSER'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@ObjectModel.usageType.dataClass: #MASTER
@ObjectModel.usageType.serviceQuality: #A
@ObjectModel.usageType.sizeCategory: #M
@ObjectModel.representativeKey: 'UserID'
// 1. Background information:

// Users represent either persons or technical entities.

// Cloud      Environment: Users created for persons, communication and printing are owned by the customer.

//                        All other users are owned by SAP.

// On Premise Environment: All users are owned by the customer.

//

// 2. Restrictions:

// Because any kind of user can create or change data in the system,

// fields like "CreatedByUser" or "LastChangedByUser" must refer to this entity by a "[0..1]" association

// to obtain a descriptive text of the user. 

// -> Do not assume that the target of the association exists.

// -> Do not assume that such a user always corresponds to a business partner of type person ('BP person').

//

// This view must not be exposed to end users directly, because it exposes person relevant information.

// Only use this view in the definition of context-specific consumption views as a target for the "CreatedByUser"

// and "LastChangedByUser" associations. That's why, the view definition intentionally does not contain the

// "@ObjectModel.representativeKey", "@ObjectModel.text.element" or "@Analytics..." annotations.

//

// 3. Hints/Remarks:

// For users connected to a BP person, the UserDescrition contains what was formerly known as 'Person Fullname'.

// For users having classical address (on premise only) the UserDescrition is defined by the customer.

//                In this case, it rarely contains 'Person Fullname'.

// For users without address data we differentiate between cloud and on premise environment:

// -> Cloud:      Preset  by SAP.

// -> On Premise: Defined by the customer.

//                Also here, it's quite unusual that UserDescription contains 'Person Fullname', because usually

//                there is no individual person behind it. Usually it contains a description of the purpose of

//                the technical entity.


define view I_User
  as select from usr21

  association [0..1] to I_AddrCurDefaultEmailAddress as _AddrCurDefaultEmailAddress 
                     on  usr21.persnumber = _AddrCurDefaultEmailAddress.AddressPersonID
                     and usr21.addrnumber = _AddrCurDefaultEmailAddress.AddressID   

{
      @ObjectModel.text.element:['UserDescription']
  key cast( usr21.bname    as vdm_userid          preserving type ) as UserID,
      @Semantics.text: true
      cast( usr21.techdesc as vdm_userdescription preserving type ) as UserDescription,
      case usr21.idadtype
        when '00' then ' '  //users having classical address (NO connection to Business Partner)

        when '02' then ' '  //users connected to a BP person

        when '03' then ' '  //users connected to a BP person with a relation to a BP Organization

        when '04' then ' '  //users connected to a BP person and have a BP workplace address

        else           'X'  //users without address data (intended for technical purposes only)

      end                                                           as IsTechnicalUser,
      _AddrCurDefaultEmailAddress,
      @Consumption.hidden:true
      @Analytics.hidden:true
      usr21.persnumber                                              as AddressPersonID,
      @Consumption.hidden:true
      @Analytics.hidden:true
      usr21.addrnumber                                              as AddressID        
}