P_RealTimeMfgOrderToBePostKPI1

DDL: P_REALTIMEMFGORDERTOBEPOSTKPI1 SQL: PRTMOTBPKPI1 Type: view COMPOSITE Package: ODATA_EBW_ORDER_INSPECTOR

P_RealTimeMfgOrderToBePostKPI1

P_RealTimeMfgOrderToBePostKPI1 is a Composite CDS View that provides data about "P_RealTimeMfgOrderToBePostKPI1" in SAP S/4HANA. It reads from 2 data sources (I_LedgerCompanyCodeCrcyRoles, P_RealTimeMfgOrder) and exposes 30 fields with key fields OrderID, Ledger. Part of development package ODATA_EBW_ORDER_INSPECTOR.

Data Sources (2)

SourceAliasJoin Type
I_LedgerCompanyCodeCrcyRoles _CrcyRoles inner
P_RealTimeMfgOrder P_RealTimeMfgOrder from

Parameters (2)

NameTypeDefault
P_FiscalPeriodStartDate budat
P_FiscalPeriodEndDate budat

Annotations (10)

NameValueLevelField
AbapCatalog.sqlViewName PRTMOTBPKPI1 view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #NOT_REQUIRED view
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #COMPOSITE view
VDM.private true view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XXL view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
AbapCatalog.preserveKey true view

Fields (30)

KeyFieldSource TableSource FieldDescription
KEY OrderID _Ord OrderID
KEY Ledger _Ledger Ledger
LedgerName
OrderDescription _Ord OrderDescription
ControllingObject _Ord ControllingObject
OrderType _Ord OrderType
OrderCategory _Ord OrderCategory
ControllingArea _Ord ControllingArea
CompanyCode _Ord CompanyCode
Material _Ord Material
Plant _Ord Plant
StatusCode _Ord StatusCode
ProfitCenter ProfitCenter
ResultsAnalysisKey ResultsAnalysisKey
EventBasedProcessingKey EventBasedProcessingKey
SimulationStatus _OrderLog SimulationStatus
LogNumber _OrderLog LogNumber
LogHandle LogHandle
LogMessageText _OrderLog LogMessageText
EventBasedProdnCostWlLogType _OrderLog EventBasedProdnCostWlLogType
CompanyCodeCurrency
GlobalCurrency
FreeDefinedCurrency1
FreeDefinedCurrency2
FreeDefinedCurrency3
FreeDefinedCurrency4
FreeDefinedCurrency5
FreeDefinedCurrency6
FreeDefinedCurrency7
FreeDefinedCurrency8
@AbapCatalog.sqlViewName: 'PRTMOTBPKPI1'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE
//@EndUserText.label: 'Event-based Order KPI'

@VDM.viewType: #COMPOSITE
@VDM.private:true
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@AbapCatalog.preserveKey:true

define view P_RealTimeMfgOrderToBePostKPI1
  with parameters
    P_FiscalPeriodStartDate : budat,
    P_FiscalPeriodEndDate   : budat
  as select from           P_RealTimeMfgOrder(P_FiscalPeriodEndDate      : $parameters.P_FiscalPeriodEndDate) as _Ord
    inner join             I_LedgerCompanyCodeCrcyRoles                                                       as _CrcyRoles on _CrcyRoles.CompanyCode = _Ord.CompanyCode

  //inner join             I_Ledger                                                                           as _Ledger    on  _CrcyRoles.Ledger  = _Ledger.Ledger

  //                                                                                                        and _Ledger.LedgerType = ''

    left outer to one join P_RealTimeMfgOrdWIPRlvtActCost(P_FiscalPeriodStartDate    : $parameters.P_FiscalPeriodStartDate,
                                                          P_FiscalPeriodEndDate      : $parameters.P_FiscalPeriodEndDate
                                                          )                                                   as _ActlCosts on  _ActlCosts.OrderID     = _Ord.OrderID
                                                                                                                            and _ActlCosts.Ledger      = _CrcyRoles.Ledger
                                                                                                                            and _ActlCosts.CompanyCode = _Ord.CompanyCode

    left outer to one join P_RealTimeMfgOrdBalance(P_FiscalPeriodStartDate    : $parameters.P_FiscalPeriodStartDate,
                                                   P_FiscalPeriodEndDate      : $parameters.P_FiscalPeriodEndDate
                                                   )                                                          as _Balance   on  _Balance.OrderID     = _Ord.OrderID
                                                                                                                            and _Balance.Ledger      = _CrcyRoles.Ledger
                                                                                                                            and _Balance.CompanyCode = _Ord.CompanyCode

    left outer to one join P_RealTimeMfgOrderWIP(P_FiscalPeriodStartDate    : $parameters.P_FiscalPeriodStartDate,
                                                 P_FiscalPeriodEndDate      : $parameters.P_FiscalPeriodEndDate
                                                 )                                                            as _WIP       on  _WIP.OrderID     = _Ord.OrderID
                                                                                                                            and _WIP.Ledger      = _CrcyRoles.Ledger
                                                                                                                            and _WIP.CompanyCode = _Ord.CompanyCode

    left outer to one join P_RealTimeMfgOrderReserve(P_FiscalPeriodStartDate    : $parameters.P_FiscalPeriodStartDate,
                                                     P_FiscalPeriodEndDate      : $parameters.P_FiscalPeriodEndDate
                                                     )                                                        as _Rsrv      on  _Rsrv.OrderID = _Ord.OrderID
                                                                                                                            and _Rsrv.Ledger  = _CrcyRoles.Ledger


    left outer to one join R_EvtBsdProdnCostError                                                             as _OrderLog  on  _Ord.OrderID                          =  _OrderLog.OrderID
                                                                                                                            and _CrcyRoles.Ledger                     =  _OrderLog.Ledger
                                                                                                                            and _OrderLog.BusinessTransactionCategory <> 'KZPR'
  //    left outer to one join P_COOutputQuantitiesByObject(

  //                           P_FromFiscalYearPeriod : '0000000',

  //                           P_ToFiscalYearPeriod   : $parameters.P_ToFiscalYearPeriod)                              as _OutputQty on _Ord.ControllingObject = _OutputQty.ControllingObject


{
  key _Ord.OrderID,
  key _Ledger.Ledger,
      _Ledger._Text[1: Language = $session.system_language].LedgerName,
      _Ord.OrderDescription,

      _Ord.ControllingObject,
      _Ord.OrderType,
      _Ord.OrderCategory,

      _Ord.ControllingArea,
      _Ord.CompanyCode,
      _Ord.Material,
      _Ord.Plant,
      _Ord.StatusCode,
      ProfitCenter,

      ResultsAnalysisKey,
      EventBasedProcessingKey,
      //      ProductionUnit,

      _OrderLog.SimulationStatus,

      _OrderLog.LogNumber,
      LogHandle,
      _OrderLog.LogMessageText,
      //Severity,

      _OrderLog.EventBasedProdnCostWlLogType,


      //      @Semantics.unitOfMeasure:true

      //      cast(CostCtrActivityTypeQtyUnit as fis_meinh)   as BaseUnit,


      //      @DefaultAggregation: #SUM

      //      @Semantics: { quantity : {unitOfMeasure: 'BaseUnit'} }

      //      COALESCE(PlanOutputQuantity, 0)                 as PlanOutputQuantity,

      //      @DefaultAggregation: #SUM

      //      @Semantics: { quantity : {unitOfMeasure: 'BaseUnit'} }

      //      COALESCE(ActualOutputQuantity, 0)               as ActualOutputQuantity,



      /////////////////////////////////////////////////////////////////////////////////////

      // //Cumulative to be posted value

      /////////////////////////////////////////////////////////////////////////////////////


      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
      cast(
      case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                coalesce(_ActlCosts.AmountInCompanyCodeCurrency, 0)
                - coalesce(_WIP.AmountInCompanyCodeCurrency, 0)
                - coalesce(_Rsrv.AmountInCompanyCodeCurrency, 0)
          else
      //COALESCE(_Balance.AmountInCompanyCodeCurrency, 0)

                _Balance.AmountInCompanyCodeCurrency
                end
      else
           case when _Ord.RcvrObjectType = 'MA' then
                case when RealTimeVarianceIsActive = 'X' then
                  - coalesce(_Balance.AmountInCompanyCodeCurrency, 0)
                  - coalesce(_WIP.AmountInCompanyCodeCurrency, 0)
                  - coalesce(_Rsrv.AmountInCompanyCodeCurrency, 0)
                  else
                  - coalesce(_WIP.AmountInCompanyCodeCurrency, 0)
      //- _WIP.AmountInCompanyCodeCurrency

                  - coalesce(_Rsrv.AmountInCompanyCodeCurrency, 0)
                  end
           else
      //COALESCE(_Balance.AmountInCompanyCodeCurrency, 0)

                _Balance.AmountInCompanyCodeCurrency
            end
       end as fis_hsl)                                as AmountInCompanyCodeCurrency,


      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
      cast (
        case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                coalesce(_ActlCosts.AmountInGlobalCurrency, 0)
                - coalesce(_WIP.AmountInGlobalCurrency, 0)
                - coalesce(_Rsrv.AmountInGlobalCurrency, 0)
          else
      // COALESCE(_Balance.AmountInGlobalCurrency, 0)

                _Balance.AmountInGlobalCurrency
          end
        else
          case when _Ord.RcvrObjectType = 'MA' then
             case when RealTimeVarianceIsActive = 'X' then
                - coalesce(_Balance.AmountInGlobalCurrency, 0)
                - coalesce(_WIP.AmountInGlobalCurrency, 0)
                - coalesce(_Rsrv.AmountInGlobalCurrency, 0)
             else
                - coalesce(_WIP.AmountInGlobalCurrency, 0)
      //- _WIP.AmountInGlobalCurrency

                - coalesce(_Rsrv.AmountInGlobalCurrency, 0)
             end
          else
      //COALESCE(_Balance.AmountInGlobalCurrency, 0)

                _Balance.AmountInGlobalCurrency
          end
        end as fis_ksl )                              as AmountInGlobalCurrency,

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
      cast (
      case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                coalesce(_ActlCosts.AmountInFreeDefinedCurrency1, 0)
                - coalesce(_WIP.AmountInFreeDefinedCurrency1, 0)
                - coalesce(_Rsrv.AmountInFreeDefinedCurrency1, 0)
          else
      //COALESCE(_Balance.AmountInFreeDefinedCurrency1, 0)

                _Balance.AmountInFreeDefinedCurrency1
                end
      else
           case when _Ord.RcvrObjectType = 'MA' then
                case when RealTimeVarianceIsActive = 'X' then
                  - coalesce(_Balance.AmountInFreeDefinedCurrency1, 0)
                  - coalesce(_WIP.AmountInFreeDefinedCurrency1, 0)
                  - coalesce(_Rsrv.AmountInFreeDefinedCurrency1, 0)
                  else
                  - coalesce(_WIP.AmountInFreeDefinedCurrency1, 0)
      //- _WIP.AmountInFreeDefinedCurrency1

                  - coalesce(_Rsrv.AmountInFreeDefinedCurrency1, 0)
                  end
           else
      //COALESCE(_Balance.AmountInFreeDefinedCurrency1, 0)

                _Balance.AmountInFreeDefinedCurrency1
            end
      end as fis_osl )                                as AmountInFreeDefinedCurrency1,

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
      cast (
        case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                coalesce(_ActlCosts.AmountInFreeDefinedCurrency2, 0)
                - coalesce(_WIP.AmountInFreeDefinedCurrency2, 0)
                - coalesce(_Rsrv.AmountInFreeDefinedCurrency2, 0)
          else
      //COALESCE(_Balance.AmountInFreeDefinedCurrency2, 0)

                _Balance.AmountInFreeDefinedCurrency2
                end
      else
           case when _Ord.RcvrObjectType = 'MA' then
                case when RealTimeVarianceIsActive = 'X' then
                  - coalesce(_Balance.AmountInFreeDefinedCurrency2, 0)
                  - coalesce(_WIP.AmountInFreeDefinedCurrency2, 0)
                  - coalesce(_Rsrv.AmountInFreeDefinedCurrency2, 0)
                  else
                  - coalesce(_WIP.AmountInFreeDefinedCurrency2, 0)
      //- _WIP.AmountInFreeDefinedCurrency2

                  - coalesce(_Rsrv.AmountInFreeDefinedCurrency2, 0)
                  end
           else
      //COALESCE(_Balance.AmountInFreeDefinedCurrency2, 0)

                _Balance.AmountInFreeDefinedCurrency2
            end
      end as fis_vsl )                                as AmountInFreeDefinedCurrency2,

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
      cast (
        case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                coalesce(_ActlCosts.AmountInFreeDefinedCurrency3, 0)
                - coalesce(_WIP.AmountInFreeDefinedCurrency3, 0)
                - coalesce(_Rsrv.AmountInFreeDefinedCurrency3, 0)
          else
      //COALESCE(_Balance.AmountInFreeDefinedCurrency3, 0)

                _Balance.AmountInFreeDefinedCurrency3
                end
      else
           case when _Ord.RcvrObjectType = 'MA' then
                case when RealTimeVarianceIsActive = 'X' then
                  - coalesce(_Balance.AmountInFreeDefinedCurrency3, 0)
                  - coalesce(_WIP.AmountInFreeDefinedCurrency3, 0)
                  - coalesce(_Rsrv.AmountInFreeDefinedCurrency3, 0)
                  else
                  - coalesce(_WIP.AmountInFreeDefinedCurrency3, 0)
      //- _WIP.AmountInFreeDefinedCurrency3

                  - coalesce(_Rsrv.AmountInFreeDefinedCurrency3, 0)
                  end
           else
      //COALESCE(_Balance.AmountInFreeDefinedCurrency3, 0)

                _Balance.AmountInFreeDefinedCurrency3
            end
      end as fis_bsl )                                as AmountInFreeDefinedCurrency3, //BSL,


      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
      cast (
        case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                coalesce(_ActlCosts.AmountInFreeDefinedCurrency4, 0)
                - coalesce(_WIP.AmountInFreeDefinedCurrency4, 0)
                - coalesce(_Rsrv.AmountInFreeDefinedCurrency4, 0)
          else
      //COALESCE(_Balance.AmountInFreeDefinedCurrency4, 0)

                _Balance.AmountInFreeDefinedCurrency4
                end
      else
           case when _Ord.RcvrObjectType = 'MA' then
                case when RealTimeVarianceIsActive = 'X' then
                  - coalesce(_Balance.AmountInFreeDefinedCurrency4, 0)
                  - coalesce(_WIP.AmountInFreeDefinedCurrency4, 0)
                  - coalesce(_Rsrv.AmountInFreeDefinedCurrency4, 0)
                  else
                  - coalesce(_WIP.AmountInFreeDefinedCurrency4, 0)
      //- _WIP.AmountInFreeDefinedCurrency4

                  - coalesce(_Rsrv.AmountInFreeDefinedCurrency4, 0)
                  end
           else
      //COALESCE(_Balance.AmountInFreeDefinedCurrency4, 0)

                _Balance.AmountInFreeDefinedCurrency4
            end
      end as fis_csl )                                as AmountInFreeDefinedCurrency4, //CSL,


      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
      cast (
        case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                coalesce(_ActlCosts.AmountInFreeDefinedCurrency5, 0)
                - coalesce(_WIP.AmountInFreeDefinedCurrency5, 0)
                - coalesce(_Rsrv.AmountInFreeDefinedCurrency5, 0)
          else
      //COALESCE(_Balance.AmountInFreeDefinedCurrency5, 0)

                _Balance.AmountInFreeDefinedCurrency5
                end
      else
           case when _Ord.RcvrObjectType = 'MA' then
                case when RealTimeVarianceIsActive = 'X' then
                  - coalesce(_Balance.AmountInFreeDefinedCurrency5, 0)
                  - coalesce(_WIP.AmountInFreeDefinedCurrency5, 0)
                  - coalesce(_Rsrv.AmountInFreeDefinedCurrency5, 0)
                  else
                  - coalesce(_WIP.AmountInFreeDefinedCurrency5, 0)
      //- _WIP.AmountInFreeDefinedCurrency5

                  - coalesce(_Rsrv.AmountInFreeDefinedCurrency5, 0)
                  end
           else
      //COALESCE(_Balance.AmountInFreeDefinedCurrency5, 0)

                _Balance.AmountInFreeDefinedCurrency5
            end
      end as fis_dsl )                                as AmountInFreeDefinedCurrency5, //DSL,


      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
      cast (
        case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                  coalesce(_ActlCosts.AmountInFreeDefinedCurrency6, 0)
                  - coalesce(_WIP.AmountInFreeDefinedCurrency6, 0)
                  - coalesce(_Rsrv.AmountInFreeDefinedCurrency6, 0)
            else
      //COALESCE(_Balance.AmountInFreeDefinedCurrency6, 0)

                  _Balance.AmountInFreeDefinedCurrency6
                  end
        else
             case when _Ord.RcvrObjectType = 'MA' then
                  case when RealTimeVarianceIsActive = 'X' then
                    - coalesce(_Balance.AmountInFreeDefinedCurrency6, 0)
                    - coalesce(_WIP.AmountInFreeDefinedCurrency6, 0)
                    - coalesce(_Rsrv.AmountInFreeDefinedCurrency6, 0)
                    else
                    - coalesce(_WIP.AmountInFreeDefinedCurrency6, 0)
      //- _WIP.AmountInFreeDefinedCurrency6

                    - coalesce(_Rsrv.AmountInFreeDefinedCurrency6, 0)
                    end
             else
      //COALESCE(_Balance.AmountInFreeDefinedCurrency6, 0)

                  _Balance.AmountInFreeDefinedCurrency6
             end
        end as fis_esl )                              as AmountInFreeDefinedCurrency6, // ESL,


      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
      cast (
        case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                  coalesce(_ActlCosts.AmountInFreeDefinedCurrency7, 0)
                  - coalesce(_WIP.AmountInFreeDefinedCurrency7, 0)
                  - coalesce(_Rsrv.AmountInFreeDefinedCurrency7, 0)
            else
      //COALESCE(_Balance.AmountInFreeDefinedCurrency7, 0)

                  _Balance.AmountInFreeDefinedCurrency7
                  end
        else
             case when _Ord.RcvrObjectType = 'MA' then
                  case when RealTimeVarianceIsActive = 'X' then
                    - coalesce(_Balance.AmountInFreeDefinedCurrency7, 0)
                    - coalesce(_WIP.AmountInFreeDefinedCurrency7, 0)
                    - coalesce(_Rsrv.AmountInFreeDefinedCurrency7, 0)
                    else
                    - coalesce(_WIP.AmountInFreeDefinedCurrency7, 0)
      //- _WIP.AmountInFreeDefinedCurrency7

                    - coalesce(_Rsrv.AmountInFreeDefinedCurrency7, 0)
                    end
             else
      //COALESCE(_Balance.AmountInFreeDefinedCurrency7, 0)

                  _Balance.AmountInFreeDefinedCurrency7
              end
        end as fis_fsl)                               as AmountInFreeDefinedCurrency7, //FSL,


      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
      cast (
        case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                  coalesce(_ActlCosts.AmountInFreeDefinedCurrency8, 0)
                  - coalesce(_WIP.AmountInFreeDefinedCurrency8, 0)
                  - coalesce(_Rsrv.AmountInFreeDefinedCurrency8, 0)
            else
      //COALESCE(_Balance.AmountInFreeDefinedCurrency8, 0)

                  _Balance.AmountInFreeDefinedCurrency8
                  end
        else
             case when _Ord.RcvrObjectType = 'MA' then
                  case when RealTimeVarianceIsActive = 'X' then
                    - coalesce(_Balance.AmountInFreeDefinedCurrency8, 0)
                    - coalesce(_WIP.AmountInFreeDefinedCurrency8, 0)
                    - coalesce(_Rsrv.AmountInFreeDefinedCurrency8, 0)
                    else
                    - coalesce(_WIP.AmountInFreeDefinedCurrency8, 0)
      //- _WIP.AmountInFreeDefinedCurrency8

                    - coalesce(_Rsrv.AmountInFreeDefinedCurrency8, 0)
                    end
             else
      //COALESCE(_Balance.AmountInFreeDefinedCurrency8, 0)

                  _Balance.AmountInFreeDefinedCurrency8
              end
        end as fis_gsl )                              as AmountInFreeDefinedCurrency8, //GSL,



      //Current period to be posted value

      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
      cast(
      case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                coalesce(_ActlCosts.PeriodAmountInCompanyCodeCrcy, 0)
                - coalesce(_WIP.PeriodAmountInCompanyCodeCrcy, 0)
                - coalesce(_Rsrv.PeriodAmountInCompanyCodeCrcy, 0)
          else
      //COALESCE(_Balance.PeriodAmountInCompanyCodeCrcy, 0)

                _Balance.PeriodAmountInCompanyCodeCrcy
                end
      else
           case when _Ord.RcvrObjectType = 'MA' then
                case when RealTimeVarianceIsActive = 'X' then
                  - coalesce(_Balance.PeriodAmountInCompanyCodeCrcy, 0)
                  - coalesce(_WIP.PeriodAmountInCompanyCodeCrcy, 0)
                  - coalesce(_Rsrv.PeriodAmountInCompanyCodeCrcy, 0)
                  else
                  - coalesce(_WIP.PeriodAmountInCompanyCodeCrcy, 0)
      //- _WIP.PeriodAmountInCompanyCodeCrcy

                  - coalesce(_Rsrv.PeriodAmountInCompanyCodeCrcy, 0)
                  end
           else
      //COALESCE(_Balance.PeriodAmountInCompanyCodeCrcy, 0)

                _Balance.PeriodAmountInCompanyCodeCrcy
            end
       end as fis_hsl)                                as PeriodAmountInCompanyCodeCrcy,


      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
      cast (
        case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                coalesce(_ActlCosts.PeriodAmountInGlobalCurrency, 0)
                - coalesce(_WIP.PeriodAmountInGlobalCurrency, 0)
                - coalesce(_Rsrv.PeriodAmountInGlobalCurrency, 0)
          else
      //COALESCE(_Balance.PeriodAmountInGlobalCurrency, 0)

                _Balance.PeriodAmountInGlobalCurrency
          end
        else
          case when _Ord.RcvrObjectType = 'MA' then
             case when RealTimeVarianceIsActive = 'X' then
                - coalesce(_Balance.PeriodAmountInGlobalCurrency, 0)
                - coalesce(_WIP.PeriodAmountInGlobalCurrency, 0)
                - coalesce(_Rsrv.PeriodAmountInGlobalCurrency, 0)
             else
                - coalesce(_WIP.PeriodAmountInGlobalCurrency, 0)
      //- _WIP.PeriodAmountInGlobalCurrency

                - coalesce(_Rsrv.PeriodAmountInGlobalCurrency, 0)
             end
          else
      //COALESCE(_Balance.PeriodAmountInGlobalCurrency, 0)

                _Balance.PeriodAmountInGlobalCurrency
          end
        end as fis_ksl )                              as PeriodAmountInGlobalCurrency,


      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
      cast (
      case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                coalesce(_ActlCosts.PeriodAmountInFreeDfndCrcy1, 0)
                - coalesce(_WIP.PeriodAmountInFreeDfndCrcy1, 0)
                - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy1, 0)
          else
      //COALESCE(_Balance.PeriodAmountInFreeDfndCrcy1, 0)

                _Balance.PeriodAmountInFreeDfndCrcy1
                end
      else
           case when _Ord.RcvrObjectType = 'MA' then
                case when RealTimeVarianceIsActive = 'X' then
                  - coalesce(_Balance.PeriodAmountInFreeDfndCrcy1, 0)
                  - coalesce(_WIP.PeriodAmountInFreeDfndCrcy1, 0)
                  - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy1, 0)
                  else
                  - coalesce(_WIP.PeriodAmountInFreeDfndCrcy1, 0)
      //- _WIP.PeriodAmountInFreeDfndCrcy1

                  - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy1, 0)
                  end
           else
      //COALESCE(_Balance.PeriodAmountInFreeDfndCrcy1, 0)

                _Balance.PeriodAmountInFreeDfndCrcy1
            end
      end as fis_osl )                                as PeriodAmountInFreeDfndCrcy1,


      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
      cast (
        case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                coalesce(_ActlCosts.PeriodAmountInFreeDfndCrcy2, 0)
                - coalesce(_WIP.PeriodAmountInFreeDfndCrcy2, 0)
                - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy2, 0)
          else
      //COALESCE(_Balance.PeriodAmountInFreeDfndCrcy2, 0)

                _Balance.PeriodAmountInFreeDfndCrcy2
                end
      else
           case when _Ord.RcvrObjectType = 'MA' then
                case when RealTimeVarianceIsActive = 'X' then
                  - coalesce(_Balance.PeriodAmountInFreeDfndCrcy2, 0)
                  - coalesce(_WIP.PeriodAmountInFreeDfndCrcy2, 0)
                  - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy2, 0)
                  else
                  - coalesce(_WIP.PeriodAmountInFreeDfndCrcy2, 0)
      //- _WIP.PeriodAmountInFreeDfndCrcy2

                  - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy2, 0)
                  end
           else
      //COALESCE(_Balance.PeriodAmountInFreeDfndCrcy2, 0)

                _Balance.PeriodAmountInFreeDfndCrcy2
            end
      end as fis_vsl )                                as PeriodAmountInFreeDfndCrcy2,


      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
      cast (
        case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                coalesce(_ActlCosts.PeriodAmountInFreeDfndCrcy3, 0)
                - coalesce(_WIP.PeriodAmountInFreeDfndCrcy3, 0)
                - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy3, 0)
          else
      //COALESCE(_Balance.PeriodAmountInFreeDfndCrcy3, 0)

                _Balance.PeriodAmountInFreeDfndCrcy3
                end
      else
           case when _Ord.RcvrObjectType = 'MA' then
                case when RealTimeVarianceIsActive = 'X' then
                  - coalesce(_Balance.PeriodAmountInFreeDfndCrcy3, 0)
                  - coalesce(_WIP.PeriodAmountInFreeDfndCrcy3, 0)
                  - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy3, 0)
                  else
                  - coalesce(_WIP.PeriodAmountInFreeDfndCrcy3, 0)
      //- _WIP.PeriodAmountInFreeDfndCrcy3

                  - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy3, 0)
                  end
           else
      //COALESCE(_Balance.PeriodAmountInFreeDfndCrcy3, 0)

                _Balance.PeriodAmountInFreeDfndCrcy3
            end
      end as fis_bsl )                                as PeriodAmountInFreeDfndCrcy3, //BSL,



      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
      cast (
        case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                coalesce(_ActlCosts.PeriodAmountInFreeDfndCrcy4, 0)
                - coalesce(_WIP.PeriodAmountInFreeDfndCrcy4, 0)
                - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy4, 0)
          else
      //COALESCE(_Balance.PeriodAmountInFreeDfndCrcy4, 0)

                _Balance.PeriodAmountInFreeDfndCrcy4
                end
      else
           case when _Ord.RcvrObjectType = 'MA' then
                case when RealTimeVarianceIsActive = 'X' then
                  - coalesce(_Balance.PeriodAmountInFreeDfndCrcy4, 0)
                  - coalesce(_WIP.PeriodAmountInFreeDfndCrcy4, 0)
                  - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy4, 0)
                  else
                  - coalesce(_WIP.PeriodAmountInFreeDfndCrcy4, 0)
      //- _WIP.PeriodAmountInFreeDfndCrcy4

                  - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy4, 0)
                  end
           else
      //COALESCE(_Balance.PeriodAmountInFreeDfndCrcy4, 0)

                _Balance.PeriodAmountInFreeDfndCrcy4
            end
      end as fis_csl )                                as PeriodAmountInFreeDfndCrcy4, //CSL,



      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
      cast (
        case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                coalesce(_ActlCosts.PeriodAmountInFreeDfndCrcy5, 0)
                - coalesce(_WIP.PeriodAmountInFreeDfndCrcy5, 0)
                - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy5, 0)
          else
      //COALESCE(_Balance.PeriodAmountInFreeDfndCrcy5, 0)

                _Balance.PeriodAmountInFreeDfndCrcy5
                end
      else
           case when _Ord.RcvrObjectType = 'MA' then
                case when RealTimeVarianceIsActive = 'X' then
                  - coalesce(_Balance.PeriodAmountInFreeDfndCrcy5, 0)
                  - coalesce(_WIP.PeriodAmountInFreeDfndCrcy5, 0)
                  - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy5, 0)
                  else
                  - coalesce(_WIP.PeriodAmountInFreeDfndCrcy5, 0)
      //- _WIP.PeriodAmountInFreeDfndCrcy5

                  - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy5, 0)
                  end
           else
      //COALESCE(_Balance.PeriodAmountInFreeDfndCrcy5, 0)

                _Balance.PeriodAmountInFreeDfndCrcy5
            end
      end as fis_dsl )                                as PeriodAmountInFreeDfndCrcy5, //DSL,



      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
      cast (
        case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                  coalesce(_ActlCosts.PeriodAmountInFreeDfndCrcy6, 0)
                  - coalesce(_WIP.PeriodAmountInFreeDfndCrcy6, 0)
                  - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy6, 0)
            else
      //COALESCE(_Balance.PeriodAmountInFreeDfndCrcy6, 0)

                  _Balance.PeriodAmountInFreeDfndCrcy6
                  end
        else
             case when _Ord.RcvrObjectType = 'MA' then
                  case when RealTimeVarianceIsActive = 'X' then
                    - coalesce(_Balance.PeriodAmountInFreeDfndCrcy6, 0)
                    - coalesce(_WIP.PeriodAmountInFreeDfndCrcy6, 0)
                    - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy6, 0)
                    else
                    - coalesce(_WIP.PeriodAmountInFreeDfndCrcy6, 0)
      //- _WIP.PeriodAmountInFreeDfndCrcy6

                    - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy6, 0)
                    end
             else
      //COALESCE(_Balance.PeriodAmountInFreeDfndCrcy6, 0)

                  _Balance.PeriodAmountInFreeDfndCrcy6
             end
        end as fis_esl )                              as PeriodAmountInFreeDfndCrcy6, // ESL,



      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
      cast (
        case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                  coalesce(_ActlCosts.PeriodAmountInFreeDfndCrcy7, 0)
                  - coalesce(_WIP.PeriodAmountInFreeDfndCrcy7, 0)
                  - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy7, 0)
            else
      //COALESCE(_Balance.PeriodAmountInFreeDfndCrcy7, 0)

                  _Balance.PeriodAmountInFreeDfndCrcy7
                  end
        else
             case when _Ord.RcvrObjectType = 'MA' then
                  case when RealTimeVarianceIsActive = 'X' then
                    - coalesce(_Balance.PeriodAmountInFreeDfndCrcy7, 0)
                    - coalesce(_WIP.PeriodAmountInFreeDfndCrcy7, 0)
                    - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy7, 0)
                    else
                    - coalesce(_WIP.PeriodAmountInFreeDfndCrcy7, 0)
      //- _WIP.PeriodAmountInFreeDfndCrcy7

                    - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy7, 0)
                    end
             else
      //COALESCE(_Balance.PeriodAmountInFreeDfndCrcy7, 0)

                  _Balance.PeriodAmountInFreeDfndCrcy7
              end
        end as fis_fsl)                               as PeriodAmountInFreeDfndCrcy7, //FSL,



      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
      cast (
        case when _Ord.StatusCode = 'I0002' then
          case when _Ord.RcvrObjectType = 'MA' or _Ord.WIPIsForNonMaterialReceiver = 'X' then
                  coalesce(_ActlCosts.PeriodAmountInFreeDfndCrcy8, 0)
                  - coalesce(_WIP.PeriodAmountInFreeDfndCrcy8, 0)
                  - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy8, 0)
            else
      //COALESCE(_Balance.PeriodAmountInFreeDfndCrcy8, 0)

                  _Balance.PeriodAmountInFreeDfndCrcy8
                  end
        else
             case when _Ord.RcvrObjectType = 'MA' then
                  case when RealTimeVarianceIsActive = 'X' then
                    - coalesce(_Balance.PeriodAmountInFreeDfndCrcy8, 0)
                    - coalesce(_WIP.PeriodAmountInFreeDfndCrcy8, 0)
                    - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy8, 0)
                    else
                    - coalesce(_WIP.PeriodAmountInFreeDfndCrcy8, 0)
      //- _WIP.PeriodAmountInFreeDfndCrcy8

                    - coalesce(_Rsrv.PeriodAmountInFreeDfndCrcy8, 0)
                    end
             else
      //COALESCE(_Balance.PeriodAmountInFreeDfndCrcy8, 0)

                  _Balance.PeriodAmountInFreeDfndCrcy8
              end
        end as fis_gsl )                              as PeriodAmountInFreeDfndCrcy8, //GSL,




      _CrcyRoles._CoCodeCurrencyRoleCurrency.Currency as CompanyCodeCurrency,
      _CrcyRoles._GlobalCurrencyRoleCurrency.Currency as GlobalCurrency,
      _CrcyRoles._FreeDfndCrcyRole1Currency.Currency  as FreeDefinedCurrency1,
      _CrcyRoles._FreeDfndCrcyRole2Currency.Currency  as FreeDefinedCurrency2,
      _CrcyRoles._FreeDfndCrcyRole3Currency.Currency  as FreeDefinedCurrency3,
      _CrcyRoles._FreeDfndCrcyRole4Currency.Currency  as FreeDefinedCurrency4,
      _CrcyRoles._FreeDfndCrcyRole5Currency.Currency  as FreeDefinedCurrency5,
      _CrcyRoles._FreeDfndCrcyRole6Currency.Currency  as FreeDefinedCurrency6,
      _CrcyRoles._FreeDfndCrcyRole7Currency.Currency  as FreeDefinedCurrency7,
      _CrcyRoles._FreeDfndCrcyRole8Currency.Currency  as FreeDefinedCurrency8



}
where
      _CrcyRoles._Ledger.LedgerType              = ''
  and _CrcyRoles._Ledger.ReferenceLedger         = ''
  and ( _CrcyRoles._Ledger.AccountingValuationView = '0' 
       or _CrcyRoles._Ledger.AccountingValuationView = '1' 
       or _CrcyRoles._Ledger.AccountingValuationView = ''
       or _CrcyRoles._Ledger.AccountingValuationView = '2'
       or _CrcyRoles._Ledger.AccountingValuationView = '3' )