I_CommodityOrderFillTP

DDL: I_COMMODITYORDERFILLTP SQL: ICMMDTYORDFILLTP Type: view TRANSACTIONAL Package: FS_CMM_CDOTE_ORDER_FILL

Commodity Order Fill Transactional View

I_CommodityOrderFillTP is a Transactional CDS View that provides data about "Commodity Order Fill Transactional View" in SAP S/4HANA. It reads from 7 data sources and exposes 76 fields with key field CommodityOrderFillUUID. It has 3 associations to related views. Part of development package FS_CMM_CDOTE_ORDER_FILL.

Data Sources (7)

SourceAliasJoin Type
I_CmmdtyOrdFillPrcdQtyByOrdReq _CmmdtyOrdFillPrcdQtyByOrdReq left_outer
I_CmmdtyOrdReqFillQtyByOrdReq _CmmdtyOrdReqFillQtyByOrdReq left_outer
I_CmmdtyOrdToBePrcdQtyByOrdReq _CmmdtyOrdToBePrcdQtyByOrdReq left_outer
I_CmmdtyOrderRequestType _CommodityOrderRequestType left_outer
I_CompanyCodeVH _CompanyCodeValueHelp left_outer
I_CmmdtyDrvtvOrdTrdExecRecent ExecRecent left_outer
I_CommodityOrderFill I_CommodityOrderFill from

Associations (3)

CardinalityTargetAliasCondition
[0..1] I_CmmdtyOrdFillForwardTP _Forward $projection.CommodityOrderFillUUID = _Forward.CommodityOrderFillUUID
[1..1] I_CommodityOrdFillPacketTP _FillPacket $projection.CommodityOrderFillPacketUUID = _FillPacket.CommodityOrderFillPacketUUID -- Extension View for Free Characteristics in Commodity Order Fill
[0..1] E_CommodityOrderFill _Extension $projection.CommodityOrderFillUUID = _Extension.CommodityOrderFillUUID

Annotations (13)

NameValueLevelField
AbapCatalog.sqlViewName ICMMDTYORDFILLTP view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Commodity Order Fill Transactional View view
VDM.viewType #TRANSACTIONAL view
ObjectModel.writeActivePersistence CMMFDOF_D_FILL view
ObjectModel.createEnabled true view
ObjectModel.updateEnabled EXTERNAL_CALCULATION view
ObjectModel.deleteEnabled false view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view

Fields (76)

KeyFieldSource TableSource FieldDescription
KEY CommodityOrderFillUUID I_CommodityOrderFill CommodityOrderFillUUID
CommodityOrderFillPacketUUID I_CommodityOrderFill CommodityOrderFillPacketUUID
CommodityOrderFill I_CommodityOrderFill CommodityOrderFill
CmmdtyOrderFillRequestType I_CommodityOrderFill CmmdtyOrderFillRequestType
CommodityOrderFillPacketID I_CommodityOrderFill CommodityOrderFillPacketID
CmmdtyOrderFillPacket I_CommodityOrderFill CmmdtyOrderFillPacket
ControllingArea I_CompanyCodeVH ControllingArea
CmmdtyOrderFillDateTime I_CommodityOrderFill CmmdtyOrderFillDateTime
CompanyCode I_CommodityOrderFill CompanyCode
CommodityOrderRequestUUID I_CommodityOrderFill CommodityOrderRequestUUID
CommodityOrderRequest I_CommodityOrderFill CommodityOrderRequest
CmmdtyOrderReqLegUUID I_CommodityOrderFill CmmdtyOrderReqLegUUID
CmmdtyOrderDateTime I_CommodityOrderFill CmmdtyOrderDateTime
CmmdtyOrderRequestKind I_CmmdtyOrderRequestType CmmdtyOrderRequestKind
CmmdtyOrderReqDocCardinalValue I_CmmdtyOrderRequestType CmmdtyOrderReqDocCardinalValue
CmmdtyOrderRequestSource I_CommodityOrderFill CmmdtyOrderRequestSource
CmmdtyOrdReqCntrPtyBroker I_CommodityOrderFill CmmdtyOrdReqCntrPtyBroker
CmmdtyOrderFillStatus I_CommodityOrderFill CmmdtyOrderFillStatus
CmmdtyOrderFillPacketStatus _FillPacket CmmdtyOrderFillPacketStatus
CmmdtyFillPacketMsgOrdID _FillPacket CmmdtyFillPacketMsgOrdID
CmmdtyFillPacketTrdExecutionID _FillPacket CmmdtyFillPacketTrdExecutionID
CommoditySubAccountUUID I_CommodityOrderFill CommoditySubAccountUUID
CommoditySubAccount I_CommodityOrderFill CommoditySubAccount
CommoditySubAccountName I_CommodityOrderFill CommoditySubAccountName
CmmdtyOrdFillFinancialTransID I_CommodityOrderFill CmmdtyOrdFillFinancialTransID
CmmdtyOrdReqCntrPtySubAcct I_CommodityOrderFill CmmdtyOrdReqCntrPtySubAcct
CmmdtyOrderReqLegOwnerRole I_CommodityOrderFill CmmdtyOrderReqLegOwnerRole
CmmdtyOrderRequestFlowType I_CommodityOrderFill CmmdtyOrderRequestFlowType
Counterparty I_CmmdtyOrderRequestType Counterparty
CmmdtyOrderFillFutureID I_CommodityOrderFill CmmdtyOrderFillFutureID
Commodity I_CommodityOrderFill Commodity
MarketIdentifierCode I_CommodityOrderFill MarketIdentifierCode
DerivativeContrSpecification I_CommodityOrderFill DerivativeContrSpecification
MaturityKeyDate I_CommodityOrderFill MaturityKeyDate
ProfitCenter I_CommodityOrderFill ProfitCenter
CmmdtyOrderFillQuantityInLots I_CommodityOrderFill CmmdtyOrderFillQuantityInLots
CmmdtyOrderRequestQuantity I_CommodityOrderFill CmmdtyOrderRequestQuantity
CmmdtyOrderFillQuantityUnit I_CommodityOrderFill CmmdtyOrderFillQuantityUnit
CmmdtyOrdFillCumulativeQtyUnit I_CommodityOrderFill CmmdtyOrdFillCumulativeQtyUnit
CmmdtyOrderFillPrice I_CommodityOrderFill CmmdtyOrderFillPrice
CmmdtyOrderFillPriceCrcy I_CommodityOrderFill CmmdtyOrderFillPriceCrcy
CmmdtyOrderFillTotalQuantity I_CommodityOrderFill CmmdtyOrderFillTotalQuantity
CmmdtyOrderFillTotQuantityUnit I_CommodityOrderFill CmmdtyOrderFillTotQuantityUnit
CmmdtyOrderFillQuantityToPrice
CmmdtyOrderFillQtyToPriceUnit I_CommodityOrderFill CmmdtyOrdFillUoMPerLot
CmmdtyOrderFillTotalPrice I_CommodityOrderFill CmmdtyOrderFillTotalPrice
CmmdtyOrderFillTotalPriceCrcy I_CommodityOrderFill CmmdtyOrderFillTotalPriceCrcy
CmmdtyOrdReqFilledQuantity I_CmmdtyOrdReqFillQtyByOrdReq CmmdtyOrdReqFilledQuantity
CmmdtyOrdReqFilledQuantityUnit I_CmmdtyOrdReqFillQtyByOrdReq CmmdtyOrdReqFilledQuantityUnit
CmmdtyOrdRequestQuantityInLot I_CommodityOrderFill CmmdtyOrdRequestQuantityInLot
CmmdtyOrdFillPricedQtyUnit I_CommodityOrderFill CmmdtyOrdFillUoMPerLot
CommodityDerivativeBroker
ReferenceBrokerAccount I_CommodityOrderFill ReferenceBrokerAccount
CmmdtyOrdFillAssignOrder I_CommodityOrderFill CmmdtyOrdFillAssignOrder
CmmdtyOrdFillCumPricedQuantity I_CmmdtyOrdFillPrcdQtyByOrdReq CmmdtyOrdReqPricedQuantity
CmmdtyOrdReqToPriceTotQty I_CmmdtyOrdToBePrcdQtyByOrdReq CmmdtyOrdReqToPriceTotQty
CmmdtyOrdReqPricedQuantityUnit I_CmmdtyOrdFillPrcdQtyByOrdReq CmmdtyOrdReqPricedQuantityUnit
CmmdtyOrdFillUoMPerLot I_CommodityOrderFill CmmdtyOrdFillUoMPerLot
CmmdtyOrderFillCurrencyPerLot I_CommodityOrderFill CmmdtyOrderFillCurrencyPerLot
CmmdtyOrdFillQuantityPerLot I_CommodityOrderFill CmmdtyOrdFillQuantityPerLot
IsArchived I_CommodityOrderFill IsArchived
CmmdtyOrderFillCounterParty I_CommodityOrderFill CmmdtyOrderFillCounterParty
CmmdtyOrderIsFillWithOrder I_CommodityOrderFill CmmdtyOrderIsFillWithOrder
CreatedByUser
CreationDateTime I_CommodityOrderFill CreationDateTime
LastChangedByUser I_CommodityOrderFill LastChangedByUser
LastChangeDateTime I_CommodityOrderFill LastChangeDateTime
CmmdtyOrdFillRejectionReason I_CommodityOrderFill CmmdtyOrdFillRejectionReason
ItemPrice
CmmdtyOrderRequestType
CmmdtyOrderRequestTypeText I_CmmdtyOrderRequestType CmmdtyOrderRequestTypeText
CmmdtyOrderRequestReason I_CommodityOrderFill CmmdtyOrderRequestReason
CommodityOrderRequestTicks
CommodityProductSymbol I_CommodityOrderFill CommodityProductSymbol
_FillPacket _FillPacket
_Forward _Forward
@AbapCatalog.sqlViewName: 'ICMMDTYORDFILLTP'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Commodity Order Fill Transactional View'
@VDM.viewType: #TRANSACTIONAL

---- Business Object Model for Commodity Order Fill
@ObjectModel: {
    writeActivePersistence         : 'CMMFDOF_D_FILL',
    createEnabled                  : true,
    updateEnabled                  : 'EXTERNAL_CALCULATION',
    deleteEnabled                  : false,
    usageType: {
        serviceQuality : #D,
        sizeCategory   : #L,
        dataClass      : #TRANSACTIONAL   },
    semanticKey              : ['COMMODITYORDERFILL'],
    alternativeKey:  [{
        id : 'COMMODITYORDERFILL',
        uniqueness : #UNIQUE_IF_NOT_INITIAL,
        element : ['COMMODITYORDERFILL']     }]
}

-- Transactional view for Commodity Order Fill
define view I_CommodityOrderFillTP
  as select from    I_CommodityOrderFill

  -- To get Recent Change Time Interval
    left outer join I_CmmdtyDrvtvOrdTrdExecRecent  as ExecRecent                    on ExecRecent.SemanticObjectName = 'CommodityOrderFill'

  -- Total Quantity for Filled for an Order
    left outer join I_CmmdtyOrdReqFillQtyByOrdReq  as _CmmdtyOrdReqFillQtyByOrdReq  on I_CommodityOrderFill.CommodityOrderRequestUUID = _CmmdtyOrdReqFillQtyByOrdReq.CommodityOrderRequestUUID

  -- Total Quantity priced for an order
    left outer join I_CmmdtyOrdFillPrcdQtyByOrdReq as _CmmdtyOrdFillPrcdQtyByOrdReq on I_CommodityOrderFill.CommodityOrderRequestUUID = _CmmdtyOrdFillPrcdQtyByOrdReq.CommodityOrderRequestUUID

  -- Total Quantity yet to be Priced for an order
    left outer join I_CmmdtyOrdToBePrcdQtyByOrdReq as _CmmdtyOrdToBePrcdQtyByOrdReq on I_CommodityOrderFill.CommodityOrderRequestUUID = _CmmdtyOrdToBePrcdQtyByOrdReq.CommodityOrderRequestUUID

  --Association to get Order Kind and Counter party
    left outer join I_CmmdtyOrderRequestType       as _CommodityOrderRequestType    on I_CommodityOrderFill.CmmdtyOrderRequestType = _CommodityOrderRequestType.CmmdtyOrderRequestType

  -- Association for Company Code Value help
    left outer join I_CompanyCodeVH                as _CompanyCodeValueHelp         on _CompanyCodeValueHelp.CompanyCode = I_CommodityOrderFill.CompanyCode

  association [0..1] to I_CmmdtyOrdFillForwardTP   as _Forward    on $projection.CommodityOrderFillUUID = _Forward.CommodityOrderFillUUID


  association [1..1] to I_CommodityOrdFillPacketTP as _FillPacket on $projection.CommodityOrderFillPacketUUID = _FillPacket.CommodityOrderFillPacketUUID

  -- Extension View for Free Characteristics in Commodity Order Fill
  association [0..1] to E_CommodityOrderFill       as _Extension  on $projection.CommodityOrderFillUUID = _Extension.CommodityOrderFillUUID



{
  key I_CommodityOrderFill.CommodityOrderFillUUID,
      I_CommodityOrderFill.CommodityOrderFillPacketUUID,
      I_CommodityOrderFill.CommodityOrderFill,
      I_CommodityOrderFill.CmmdtyOrderFillRequestType,
      I_CommodityOrderFill.CommodityOrderFillPacketID,
      I_CommodityOrderFill.CmmdtyOrderFillPacket,
      _CompanyCodeValueHelp.ControllingArea,
      I_CommodityOrderFill.CmmdtyOrderFillDateTime,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      I_CommodityOrderFill.CompanyCode,
      I_CommodityOrderFill.CommodityOrderRequestUUID,
      I_CommodityOrderFill.CommodityOrderRequest,
      I_CommodityOrderFill.CmmdtyOrderReqLegUUID,
      I_CommodityOrderFill.CmmdtyOrderDateTime,
      _CommodityOrderRequestType.CmmdtyOrderRequestKind,
      _CommodityOrderRequestType.CmmdtyOrderReqDocCardinalValue,
      I_CommodityOrderFill.CmmdtyOrderRequestSource,
      I_CommodityOrderFill.CmmdtyOrdReqCntrPtyBroker,
      -- Commodity Fill Status Criticality
      @ObjectModel.readOnly: true
      case  I_CommodityOrderFill.CmmdtyOrderFillStatus
          when '03' then 3
          when '04' then 1
          else 0
      end                                                                                                                                                                                                                                                                                              as                StatusCriticality,
      I_CommodityOrderFill.CmmdtyOrderFillStatus,

      --Commodity Order Fill Kind
      cast(
      case
      when I_CommodityOrderFill.CmmdtyOrderFillQuantityInLots < I_CommodityOrderFill.CmmdtyOrdRequestQuantityInLot then '01'
      else '02'
      end as cmmfdof_commodityorderfillkind )                                                                                                                                                                                                                                                          as                CommodityOrderFillKind,


      --Commodity Order Fill Packet Status Criticality
      @ObjectModel.readOnly: true
      case _FillPacket.CmmdtyOrderFillPacketStatus
      when '09' then 3
      when '01' then 1
      when '03' then 1
      when '04' then 1
      when '05' then 1
      when '07' then 1
      when '08' then 1
      else 0
      end                                                                                                                                                                                                                                                                                              as                ConfirmationStatusCriticality,
      _FillPacket.CmmdtyOrderFillPacketStatus                                                                                                                                                                                                                                                          as                CmmdtyOrderFillPacketStatus,
      _FillPacket.CmmdtyFillPacketMsgOrdID                                                                                                                                                                                                                                                             as                CmmdtyFillPacketMsgOrdID,
      _FillPacket.CmmdtyFillPacketTrdExecutionID,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      I_CommodityOrderFill.CommoditySubAccountUUID,
      I_CommodityOrderFill.CommoditySubAccount,
      I_CommodityOrderFill.CommoditySubAccountName,
      I_CommodityOrderFill.CmmdtyOrdFillFinancialTransID,
      I_CommodityOrderFill.CmmdtyOrdReqCntrPtySubAcct,
      I_CommodityOrderFill.CmmdtyOrderReqLegOwnerRole,
      I_CommodityOrderFill.CmmdtyOrderRequestFlowType,
      _CommodityOrderRequestType.Counterparty,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      I_CommodityOrderFill.CmmdtyOrderFillFutureID,
      I_CommodityOrderFill.Commodity,
      I_CommodityOrderFill.MarketIdentifierCode,
      I_CommodityOrderFill.DerivativeContrSpecification,
      I_CommodityOrderFill.MaturityKeyDate,
      I_CommodityOrderFill.ProfitCenter,
      I_CommodityOrderFill.CmmdtyOrderFillQuantityInLots,
      I_CommodityOrderFill.CmmdtyOrderRequestQuantity                                                                                                                                                                                                                                                  as                CmmdtyOrderRequestQuantity,
      I_CommodityOrderFill.CmmdtyOrderFillQuantityUnit,
      I_CommodityOrderFill.CmmdtyOrdFillCumulativeQtyUnit,
      I_CommodityOrderFill.CmmdtyOrderFillPrice,
      I_CommodityOrderFill.CmmdtyOrderFillPriceCrcy,

      --Price Per Unit --To be deleted
      @ObjectModel.readOnly: true
      cast(
           concat_with_space(
           cast( I_CommodityOrderFill.CmmdtyOrderFillPrice as abap.char( 40 ) ),
                  concat( CmmdtyOrderFillPriceCrcy,
                  concat('/', CmmdtyOrderFillQuantityUnit ) ), 1  )
               as cmmfdof_priceperfilltext)                                                                                                                                                                                                                                                            as                CmmdtyOrdFillPricePerFillText,

      --Filled Quantity
      I_CommodityOrderFill.CmmdtyOrderFillQuantity                                                                                                                                                                                                                                                     as                CmmdtyOrderFillQuantity,

      I_CommodityOrderFill.CmmdtyOrderFillTotalQuantity                                                                                                                                                                                                                                                as                CmmdtyOrderFillTotalQuantity,
      I_CommodityOrderFill.CmmdtyOrderFillTotQuantityUnit,
      cast( coalesce(_CmmdtyOrdToBePrcdQtyByOrdReq.CmmdtyOrdReqToPriceTotQty,0) as cmmfdof_cmmdtyfillqtyforpricin preserving type )                                                                                                                                                                    as                CmmdtyOrderFillQuantityToPrice,
      I_CommodityOrderFill.CmmdtyOrdFillUoMPerLot                                                                                                                                                                                                                                                      as                CmmdtyOrderFillQtyToPriceUnit,

      I_CommodityOrderFill.CmmdtyOrderFillTotalPrice,
      I_CommodityOrderFill.CmmdtyOrderFillTotalPriceCrcy,
      @ObjectModel.readOnly:  true
      _CmmdtyOrdReqFillQtyByOrdReq.CmmdtyOrdReqFilledQuantity                                                                                                                                                                                                                                          as                CmmdtyOrdReqFilledQuantity,
      @ObjectModel.readOnly:  true
      _CmmdtyOrdReqFillQtyByOrdReq.CmmdtyOrdReqFilledQuantityUnit                                                                                                                                                                                                                                      as                CmmdtyOrdReqFilledQuantityUnit,
      I_CommodityOrderFill.CmmdtyOrdRequestQuantityInLot,

      -- Commodity Order Request To Be Filled Quantity
      @ObjectModel.readOnly:  true
      cast( ( I_CommodityOrderFill.CmmdtyOrderRequestQuantity - coalesce(_CmmdtyOrdReqFillQtyByOrdReq.CmmdtyOrdReqFilledQuantity, 0 ) ) as cmmfdor_cmmdtyordreqfilltoqty )                                                                                                                             as                CmmdtyOrdReqToBeFilledQty,

      -- Commodity Order Request To Be Filled Quantity Unit
      @ObjectModel.readOnly:  true
      cast( I_CommodityOrderFill.CmmdtyOrderFillQuantityUnit as cmmfdor_ordreqtobefilledqtyuom preserving type )                                                                                                                                                                                       as                CmmdtyOrdReqToBeFilledQtyUnit,

      @ObjectModel.readOnly:  true
      concat_with_space( cast( coalesce( I_CommodityOrderFill.CmmdtyOrderRequestQuantity, 0 ) as abap.char( 40 ) ),
        concat_with_space( I_CommodityOrderFill.CmmdtyOrderFillQuantityUnit, 'To Be Filled' , 1  ),
        1)                                                                                                                                                                                                                                                                                             as                CmmdtyOrdReqToBeFilledQtyTxt,

      -- Total Priced Qty/Unit for an order
      @ObjectModel.readOnly:  true
      coalesce(_CmmdtyOrdFillPrcdQtyByOrdReq.CmmdtyOrdReqPricedQuantity, 0)                                                                                                                                                                                                                            as                CmmdtyOrderFillPricedQuantity,

      I_CommodityOrderFill.CmmdtyOrdFillUoMPerLot                                                                                                                                                                                                                                                      as                CmmdtyOrdFillPricedQtyUnit,

     cast( I_CommodityOrderFill.CommodityDerivativeBroker as cmmfdor_brokerid) as CommodityDerivativeBroker,
      I_CommodityOrderFill.ReferenceBrokerAccount,
      I_CommodityOrderFill.CmmdtyOrdFillAssignOrder,

      _CmmdtyOrdFillPrcdQtyByOrdReq.CmmdtyOrdReqPricedQuantity                                                                                                                                                                                                                                         as                CmmdtyOrdFillCumPricedQuantity,
      cast( (_CmmdtyOrdToBePrcdQtyByOrdReq.CmmdtyOrdReqToPriceTotQty
       -  coalesce(_CmmdtyOrdFillPrcdQtyByOrdReq.CmmdtyOrdReqPricedQuantity , 0 ))
       as  cmmfdof_cmmdtyfillremqtyprice  )                                                                                                                                                                                                                                                            as                CmmdtyOrdFillRemQtyToPrice,

      @ObjectModel.readOnly: true
      _CmmdtyOrdToBePrcdQtyByOrdReq.CmmdtyOrdReqToPriceTotQty                                                                                                                                                                                                                                          as                CmmdtyOrdReqToPriceTotQty,

      @ObjectModel.readOnly: true
      _CmmdtyOrdFillPrcdQtyByOrdReq.CmmdtyOrdReqPricedQuantityUnit                                                                                                                                                                                                                                     as                CmmdtyOrdReqPricedQuantityUnit,

      -- Commodity Order Fill To Be Priced Quantity Unit Text
      @ObjectModel.readOnly: true
      concat_with_space(
      cast (  ( coalesce(_CmmdtyOrdToBePrcdQtyByOrdReq.CmmdtyOrdReqToPriceTotQty, 0 )
               ) as abap.char( 40 ) ),
            concat_with_space(  _CmmdtyOrdFillPrcdQtyByOrdReq.CmmdtyOrdReqPricedQuantityUnit ,
            'To Be Priced', 1  )  , 1 )                                                                                                                                                                                                                                                                as                CmmdtyOrdReqToBePricedQtyTxt,

      I_CommodityOrderFill.CmmdtyOrdFillUoMPerLot,
      I_CommodityOrderFill.CmmdtyOrderFillCurrencyPerLot,
      I_CommodityOrderFill.CmmdtyOrdFillQuantityPerLot,
      I_CommodityOrderFill.IsArchived,
      I_CommodityOrderFill.CmmdtyOrderFillCounterParty,
      I_CommodityOrderFill.CmmdtyOrderIsFillWithOrder,
      --Admin data
      I_CommodityOrderFill.CreatedByUser,
      I_CommodityOrderFill.CreationDateTime,
      I_CommodityOrderFill.LastChangedByUser,
      I_CommodityOrderFill.LastChangeDateTime,

      --Decision data
      @ObjectModel.readOnly: true
      case
       when _FillPacket.CommodityOrderFillDecidedOn is initial
       then I_CommodityOrderFill.CommodityOrderFillDecidedOn
       else
       _FillPacket.CommodityOrderFillDecidedOn
      end                                                                                                                                                                                                                                                                                              as                CommodityOrderFillDecidedOn,

      @ObjectModel.readOnly: true
      case _FillPacket.CommodityOrderFillDecidedBy
         when ' '
         then I_CommodityOrderFill.CommodityOrderFillDecidedBy
         else
         _FillPacket.CommodityOrderFillDecidedBy
       end                                                                                                                                                                                                                                                                                             as                CommodityOrderFillDecidedBy,


      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      I_CommodityOrderFill.CmmdtyOrdFillRejectionReason,

      cast (' ' as abap.char( 25 ) )                                                                                                                                                                                                                                                                   as                ItemPrice,

      -- Flag for recent changes done
      @ObjectModel.readOnly: true
      case
      when   ExecRecent.CmmdtyDrvtvOrdTrdExecRecentTme >=
             tstmp_seconds_between(  I_CommodityOrderFill.LastChangeDateTime,
      // Current System Time Stamp

                                     dats_tims_to_tstmp(
      // Current System Date

                                                         tstmp_to_dats( tstmp_current_utctimestamp(),
                                                                        abap_system_timezone( $session.client,'NULL' ),
                                                                        $session.client,
                                                                        'NULL' ),
      // Current System Time

                                                         tstmp_to_tims( tstmp_current_utctimestamp(),
                                                                        abap_system_timezone( $session.client,'NULL' ),
                                                                        $session.client,
                                                                        'NULL' ),
                                                         abap_system_timezone( $session.client,'NULL' ),
                                                         $session.client,
                                                         'NULL' ) ,
                                    'NULL' )
             then '3' // Default Color

             else '0' // Higlighted green

      end                                                                                                                                                                                                                                                                                              as                CmmdtyDrvtvOrdTrdExecIsRecent,

      -- Criticality
      @ObjectModel.readOnly: true
      case  coalesce( _CmmdtyOrdReqFillQtyByOrdReq.CmmdtyOrdReqFilledQuantity , 0 )
           when   I_CommodityOrderFill.CmmdtyOrderRequestQuantity  then 3
           else 0
      end                                                                                                                                                                                                                                                                                              as                Criticality,
      -- Criticality Code
      @ObjectModel.readOnly: true
      @UI.hidden: true
      case  coalesce( _CmmdtyOrdFillPrcdQtyByOrdReq.CmmdtyOrdReqPricedQuantity , 0 )
           when coalesce(_CmmdtyOrdToBePrcdQtyByOrdReq.CmmdtyOrdReqToPriceTotQty, 0 ) then 3
           else 0
      end                                                                                                                                                                                                                                                                                              as                CriticalityCode,


      --Association

      @ObjectModel.readOnly: true
      I_CommodityOrderFill.CmmdtyOrderRequestType,

      @ObjectModel.readOnly: true
      _CommodityOrderRequestType.CmmdtyOrderRequestTypeText                                                                                                                                                                                                                                            as                CmmdtyOrderRequestTypeText,

      @ObjectModel.readOnly: true
      I_CommodityOrderFill.CmmdtyOrderRequestReason,
      -- Number of Ticks in case of Trade at Settlement Order Request
      I_CommodityOrderFill.CommodityOrderRequestTicks,
      I_CommodityOrderFill.CommodityProductSymbol                                                                                                                                                                                                                                                      as                CommodityProductSymbol,
      -- For TAS order this indicates that the Fill Price was set upon Maintenance of Market Close Price in Treasury
      I_CommodityOrderFill.CmmdtyOrdFillIsMktClsPrcAssgd                                                                                                                                                                                                                                               as                CmmdtyOrdFillIsMktClsPrcAssgd,
      -- Filled in case of TAS Order: The value means the market close price without +/- ticks
      I_CommodityOrderFill.CmmdtyOrdFillMarketClosePrice                                                                                                                                                                                                                                               as                CmmdtyOrdFillMarketClosePrice,
      -- Spot Price for TAS Orders
      I_CommodityOrderFill.CmmdtyOrdFillMktPrcAtFwdCrtn                                                                                                                                                                                                                                                as                CmmdtyOrdFillMktPrcAtFwdCrtn,
      -- Indicates TAS Order esp. need in case of Fill w/o Order
      I_CommodityOrderFill.CmmdtyOrderReqIsTrdAtSettlmt                                                                                                                                                                                                                                                as                CmmdtyOrderReqIsTrdAtSettlmt,
      @ObjectModel.association.type: [#TO_COMPOSITION_ROOT, #TO_COMPOSITION_PARENT]
      _FillPacket,

      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _Forward

}