@AbapCatalog.sqlViewName: 'PDGRBBBCTOBABSE'
@AbapCatalog.preserveKey: true
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ClientHandling.type: #INHERITED
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM.viewType: #COMPOSITE
@VDM.private: true
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@ObjectModel.usageType.serviceQuality: #D -- View will be consumed for Analytical Reporting
@ObjectModel.usageType.sizeCategory: #XXL -- No. of Records > 100,000
define view P_DGR_BeginBookBal_ConvToBase
with parameters
P_DisplayUnitOfMeasure : cds_dgr_display_uom,
P_DailyGrainReportType : cds_dgr_report_type,
P_DailyGrainReportDate : cds_dgr_date
as select from P_DGR_BeginBookBal_TimeStamps
( P_DisplayUnitOfMeasure : :P_DisplayUnitOfMeasure,
P_DailyGrainReportType: :P_DailyGrainReportType,
P_DailyGrainReportDate: :P_DailyGrainReportDate) as BBB
left outer join I_ACMMaterialUnitCnvrsnFactor as ConvFactor on ConvFactor.Material = BBB.Material
and ConvFactor.AlternativeUnit = BBB.BeginingBookBalanceUnit
left outer join I_UnitOfMeasure as ConvFactorT006 on ConvFactorT006.UnitOfMeasure = BBB.BeginingBookBalanceUnit
left outer join I_UnitOfMeasure as MatBaseT006 on MatBaseT006.UnitOfMeasure = BBB.MaterialBaseUnit
{
//BBB
BBB.CompanyCode,
BBB.Plant,
BBB.PlantGroup,
BBB.Material,
BBB.PhysicalCommodity,
BBB.StorageLocation,
BBB.BeginingBookBalanceQuantity,
BBB.BeginingBookBalanceUnit,
BBB.BeginingBookBalanceDate,
// BBB.QuantityRepositoryUUID,
// BBB.QuantityRepositoryVersion,
BBB.EndOfDayBusinessEntityKey,
BBB.EndOfDayTimestamp,
BBB.PreviousEndOfDayTimestamp,
BBB.BegingingBookBalancetTimestamp,
@Semantics.quantity.unitOfMeasure: 'BeginingBookBalanceBaseUnit'
case
when (ConvFactor.QuantityDenominator is not initial or ConvFactor.QuantityDenominator is not null) and
(ConvFactor.QuantityNumerator is not initial or ConvFactor.QuantityNumerator is not null)
then
((cast(BeginingBookBalanceQuantity as abap.fltp) * cast(ConvFactor.QuantityNumerator as abap.fltp)) / cast(ConvFactor.QuantityDenominator as abap.fltp))
when (ConvFactorT006.SIUnitCnvrsnRateDenominator is not initial or ConvFactorT006.SIUnitCnvrsnRateDenominator is not null) and
(ConvFactorT006.SIUnitCnvrsnRateNumerator is not initial or ConvFactorT006.SIUnitCnvrsnRateNumerator is not null) and
(MatBaseT006.SIUnitCnvrsnRateDenominator is not initial or MatBaseT006.SIUnitCnvrsnRateDenominator is not null) and
(MatBaseT006.SIUnitCnvrsnRateNumerator is not initial or MatBaseT006. SIUnitCnvrsnRateNumerator is not null)
then
((cast(( ( cast( BeginingBookBalanceQuantity as abap.fltp ) * cast(ConvFactorT006.SIUnitCnvrsnRateNumerator as abap.fltp) ) / cast(ConvFactorT006.SIUnitCnvrsnRateDenominator as abap.fltp) ) as abap.fltp) * cast(MatBaseT006.SIUnitCnvrsnRateDenominator as abap.fltp)) / cast(MatBaseT006.SIUnitCnvrsnRateNumerator as abap.fltp))
else //if conversion factors are not found in material master then refer from CUNI
unit_conversion( quantity => BeginingBookBalanceQuantity,
source_unit => BeginingBookBalanceUnit,
target_unit => MaterialBaseUnit,
error_handling => 'SET_TO_NULL' )
// client => client )
end as BeginingBookBalQtyInBaseUnit,
@Semantics.unitOfMeasure: true
BBB.MaterialBaseUnit as BeginingBookBalanceBaseUnit,
MessageText
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ACMMATERIALUNITCNVRSNFACTOR",
"I_UNITOFMEASURE",
"P_DGR_BEGINBOOKBAL_TIMESTAMPS"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/