I_SWI_WIIinvUsers

DDL: I_SWI_WIIINVUSERS Type: view_entity

Work Items with Invalid Users

I_SWI_WIIinvUsers is a CDS View that provides data about "Work Items with Invalid Users" in SAP S/4HANA. It reads from 5 data sources (swwuserwi, swwuserwi, usr02, usr02, usracl) and exposes 5 fields with key fields WorkItem, UserId, UserId.

Data Sources (5)

SourceAliasJoin Type
swwuserwi swwuserwi from
swwuserwi swwuserwi union
usr02 usr02 inner
usr02 usr02 left_outer
usracl usracl left_outer

Annotations (6)

NameValueLevelField
AccessControl.authorizationCheck #NOT_REQUIRED view
EndUserText.label Work Items with Invalid Users view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.sizeCategory #S view
ObjectModel.usageType.dataClass #MIXED view

Fields (5)

KeyFieldSource TableSource FieldDescription
KEY WorkItem swwuserwi wi_id
KEY UserId swwuserwi user_id
wi_idasWorkItem
KEY UserId swwuserwi user_id
InvalidationReason
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Work Items with Invalid Users'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
  serviceQuality: #X,
  sizeCategory: #S,
  dataClass: #MIXED
}
define view entity I_SWI_WIIinvUsers
  as select from    swwuserwi
    inner join      usr02  on swwuserwi.user_id = usr02.bname
    left outer join usracl on usr02.bname = usracl.bname
{
  key swwuserwi.wi_id                                             as WorkItem,
  key swwuserwi.user_id                                           as UserId,
      cast (case
             when usr02.gltgv > $session.system_date or usr02.gltgb < $session.system_date and usr02.gltgb > '00000000' then 1
             when usracl.pname is null and usr02.uflag = 128 then 2
             when usr02.uflag < 128 then 2
             else 5
            end  as sww_user_invalidation_reason preserving type) as InvalidationReason
}
where
  (
    (
      (
            usr02.uflag      > 0
        and usr02.uflag      < 128
      ) //user is locked

      or(
            usracl.pname     is null
        and usr02.uflag      = 128
      ) //user is locked but SNC logon is possible

    )
    or(
            usr02.gltgv      > $session.system_date
    ) //user is not valid yet

    or(
            usr02.gltgb      < $session.system_date
      and   usr02.gltgb      > '00000000'
    ) //user is outdated

  )
  and       swwuserwi.no_sel = ''

union select from swwuserwi
  left outer join usr02 on swwuserwi.user_id = usr02.bname
{
  key swwuserwi.wi_id                                         as WorkItem,
  key swwuserwi.user_id                                       as UserId,
      cast(3 as sww_user_invalidation_reason preserving type) as InvalidationReason
}
where
      swwuserwi.user_id is not initial
  and swwuserwi.no_sel  = ''
  and usr02.bname       is null //user is deleted

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"SWWUSERWI",
"USR02",
"USRACL"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/