C_EHSMyDataCollectionAmounts

DDL: C_EHSMYDATACOLLECTIONAMOUNTS SQL: CEHSAMNSMYDC Type: view CONSUMPTION

My Data Collection Amounts

C_EHSMyDataCollectionAmounts is a Consumption CDS View that provides data about "My Data Collection Amounts" in SAP S/4HANA. It reads from 1 data source (I_EHSAmountRoot) and exposes 27 fields with key field EHSAmountUUID. It has 1 association to related views.

Data Sources (1)

SourceAliasJoin Type
I_EHSAmountRoot AmountRoot from

Associations (1)

CardinalityTargetAliasCondition
[0..*] I_EHSAmountIssueTypeText _EHSAmountIssueTypeText $projection.EHSAmountIssueType = _EHSAmountIssueTypeText.EHSAmountIssueType

Annotations (15)

NameValueLevelField
EndUserText.label My Data Collection Amounts view
AbapCatalog.sqlViewName CEHSAMNSMYDC view
AbapCatalog.compiler.compareFilter true view
VDM.viewType #CONSUMPTION view
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #NOT_REQUIRED view
Metadata.allowExtensions true view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.transactionalProcessingDelegated true view
ObjectModel.createEnabled false view
ObjectModel.updateEnabled true view
ObjectModel.deleteEnabled false view

Fields (27)

KeyFieldSource TableSource FieldDescription
KEY EHSAmountUUID I_EHSAmountRoot EHSAmountUUID
EHSAmountUTCDateTime I_EHSAmountRoot EHSAmountUTCDateTime
UnitOfMeasureName I_EHSAmountRoot UnitOfMeasureName
UnitOfMeasure
_UnitText I_EHSAmountRoot _UnitText
UnitOfMeasureDimension I_EHSAmountRoot UnitOfMeasureDimension
EHSSubjectType I_EHSAmountRoot EHSSubjectType
EHSSubjectUUID I_EHSAmountRoot EHSSubjectUUID
EHSAmountValue I_EHSAmountRoot EHSAmountValue
EHSAmountValueAsText I_EHSAmountRoot EHSAmountValueAsText
EHSAmountValueInAltvUoMAsText
EHSAmountSourceUUID I_EHSAmountRoot EHSAmountSourceUUID
EHSAmountStatus I_EHSAmountRoot EHSAmountStatus
_EHSAmountStatus I_EHSAmountRoot _EHSAmountStatus
EHSAmountRemarkText I_EHSAmountRoot Note
EHSAmountIsMissing I_EHSAmountRoot EHSAmountIsMissing
EHSAmountIsNotAvailable I_EHSAmountRoot EHSAmountIsNotAvailable
EHSLocationUUID _EHSMyDataCollection EHSLocationUUID
_EHSLocation _EHSMyDataCollection _EHSLocation
EHSSchedulePeriod _EHSMyDataCollection EHSSchedulePeriod
DataUsagePeriodicity _EHSMyDataCollection DataUsagePeriodicity
EHSAmountDueText
EHSAmountDueCriticality
EHSAmountPeriodText
EHSAmountNumberOfAttachments
EHSAltvUnitOfMeasurement _EHSMyDataCollection EHSAltvUnitOfMeasurement
_EHSAmountIssueTypeText _EHSAmountIssueTypeText
@EndUserText.label: 'My Data Collection Amounts'

@AbapCatalog.sqlViewName: 'CEHSAMNSMYDC'
@AbapCatalog.compiler.compareFilter: true

@VDM.viewType: #CONSUMPTION

@AccessControl:
{
  authorizationCheck: #MANDATORY,
  // blocking of personal data not required (user data can not be blocked and no BP info from user exposed)

  personalData.blocking: #NOT_REQUIRED
}

@Metadata.allowExtensions: true

// Client handling by session

@ClientHandling.algorithm: #SESSION_VARIABLE


// used for BOBF Master Data Object

@ObjectModel.usageType:{ serviceQuality: #D,        // < 15 msec

                         sizeCategory:  #L,         // < 10.000.000

                         dataClass: #MIXED }

@ObjectModel:{
            transactionalProcessingDelegated: true,
            createEnabled: false,
            updateEnabled: true,
            deleteEnabled: false }

@ObjectModel.representativeKey: ['EHSAmountUUID']

define view C_EHSMyDataCollectionAmounts

  as select from I_EHSAmountRoot       as AmountRoot


    join         I_EHSMyDataCollection as _EHSMyDataCollection on AmountRoot.EHSAmountSourceUUID = _EHSMyDataCollection.DataCollectionUUID
  /*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ]  } */
  association [0..*] to I_EHSAmountIssueTypeText as _EHSAmountIssueTypeText on $projection.EHSAmountIssueType = _EHSAmountIssueTypeText.EHSAmountIssueType

{
      //     @ObjectModel.text.element:['EHSAmountValueAsText']

      @ObjectModel.readOnly: true
  key AmountRoot.EHSAmountUUID,

      @ObjectModel.readOnly: true
      AmountRoot.EHSAmountUTCDateTime,
      @ObjectModel.readOnly: true
      AmountRoot.UnitOfMeasureName,
      @ObjectModel.readOnly: true
      cast( AmountRoot.UnitOfMeasure as ehfnd_unit_code_nce preserving type ) as UnitOfMeasure,
      AmountRoot._UnitText,
      @ObjectModel.readOnly: true
      case
      when _EHSMyDataCollection.EHSAltvUnitOfMeasurement is not initial
      then _EHSMyDataCollection.EHSAltvUnitOfMeasurementName
      else _EHSMyDataCollection.UnitOfMeasureName end as EHSAltvUnitOfMeasurementName,


      @ObjectModel.readOnly: true
      AmountRoot.UnitOfMeasureDimension,

      @ObjectModel.readOnly: true
      AmountRoot.EHSSubjectType,
      @ObjectModel.readOnly: true
      AmountRoot.EHSSubjectUUID,

      @ObjectModel.readOnly: true
      AmountRoot.EHSAmountValue                       as EHSAmountValue,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @ObjectModel.filter.transformedBy: 'ABAP:CL_EHFND_AMOUNT_VALUE_EXIT'
      @ObjectModel.sort.transformedBy: 'ABAP:CL_EHFND_AMOUNT_VALUE_EXIT'
      AmountRoot.EHSAmountValueAsText                 as EHSAmountValueAsText,

      @ObjectModel.readOnly: true
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHFND_AMOUNT_VALUE_EXIT'
      @ObjectModel.filter.enabled: false
      @ObjectModel.sort.enabled: false
      cast('' as abap.char( 40 ) )                    as EHSAmountValueInAltvUoMAsText,

      @ObjectModel.readOnly: true
      AmountRoot.EHSAmountSourceUUID,
      @ObjectModel.readOnly: true
      @ObjectModel.filter.enabled: true
      AmountRoot.EHSAmountStatus,
      AmountRoot._EHSAmountStatus,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      AmountRoot.Note                                 as EHSAmountRemarkText,

      @ObjectModel.readOnly: true
      AmountRoot.EHSAmountIsMissing                   as EHSAmountIsMissing,
      @ObjectModel.readOnly: true
      AmountRoot.EHSAmountIsNotAvailable              as EHSAmountIsNotAvailable,

      @ObjectModel.readOnly: true
      @ObjectModel.text.association: '_EHSAmountIssueTypeText'
      @ObjectModel.filter.enabled: true
      case
      when AmountRoot.EHSAmountIsFaulty = 'X' then '02'
      when AmountRoot.EHSAmountHasWarning = 'X' then '03'
      when AmountRoot.EHSAmountIsMissing = 'X' then '04'
      when AmountRoot.EHSAmountIsNotAvailable = 'X' then '05'
      else ''
      end                                             as EHSAmountIssueType,


      @ObjectModel.readOnly: true
      case
      when AmountRoot.EHSAmountIsFaulty = 'X' then  1
      when AmountRoot.EHSAmountHasWarning = 'X' then 2
      when AmountRoot.EHSAmountIsMissing = 'X' then 0
      when AmountRoot.EHSAmountIsNotAvailable = 'X' then 0
      else 4
      end                                             as EHSAmountIssueTypeCriticality,


      @ObjectModel.readOnly: true
      _EHSMyDataCollection.EHSLocationUUID            as EHSLocationUUID,

      _EHSMyDataCollection._EHSLocation               as _EHSLocation,
      @ObjectModel.readOnly: true
      _EHSMyDataCollection.EHSSchedulePeriod,

      @ObjectModel.readOnly: true
      _EHSMyDataCollection.DataUsagePeriodicity,

      @ObjectModel:{ readOnly: true, virtualElement: true, virtualElementCalculatedBy: 'ABAP:CL_EHENV_AMOUNT_DUE_EXIT' }
      @ObjectModel.filter.enabled: false
      @ObjectModel.sort.enabled: false
      cast ( '' as abap.char( 100 ) )                 as EHSAmountDueText,

      @ObjectModel:{ readOnly: true, virtualElement: true, virtualElementCalculatedBy: 'ABAP:CL_EHENV_AMOUNT_DUE_EXIT' }
      @ObjectModel.filter.enabled: false
      @ObjectModel.sort.enabled: false
      cast ( 3 as abap.int1 )                         as EHSAmountDueCriticality,

      @ObjectModel:{ readOnly: true, virtualElement: true, virtualElementCalculatedBy: 'ABAP:CL_EHENV_AMOUNT_DUE_EXIT' }
      @ObjectModel.filter.enabled: false
      @ObjectModel.sort.enabled: false
      cast ( '' as abap.char( 100 ) )                 as EHSAmountPeriodText,
      
      @ObjectModel:{ readOnly: true, virtualElement: true, virtualElementCalculatedBy: 'ABAP:CL_EHENV_AMOUNT_ATT_EXIT' }
      @ObjectModel.filter.enabled: false
      @ObjectModel.sort.enabled: false
      cast ( '' as abap.char(2) )                 as EHSAmountNumberOfAttachments,

      @ObjectModel.readOnly: true
      _EHSMyDataCollection.EHSAltvUnitOfMeasurement,

      _EHSAmountIssueTypeText

}

where
  //Only Data Collection

  AmountRoot.EHSAmountSourceType = '02'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_EHSAMOUNTROOT",
"I_EHSMYDATACOLLECTION"
],
"ASSOCIATED":
[
"I_EHSAMOUNTISSUETYPETEXT",
"I_EHSAMOUNTSTATUS",
"I_EHSLOCATIONREVISION",
"I_UNITOFMEASURE"
],
"BASE":
[
"I_EHSAMOUNTROOT",
"I_EHSMYDATACOLLECTION"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/