@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":""
}
}*/
Depth:
1
2
3
4
5
All
Reload
C_EHSMyDataCollectionAmounts view