R_ACMApplicationDocumentTP

DDL: R_ACMAPPLICATIONDOCUMENTTP Type: view_entity TRANSACTIONAL

Root BO App Doc Item Data - TP

R_ACMApplicationDocumentTP is a Transactional CDS View that provides data about "Root BO App Doc Item Data - TP" in SAP S/4HANA. It reads from 2 data sources (I_ACMApplicationDocument, I_ACMMaterialMstrData) and exposes 141 fields with key fields ApplicationDocument, ApplicationDocumentItem, ACMDocumentSide, ApplicationDocumentSubItem. It has 29 associations to related views.

Data Sources (2)

SourceAliasJoin Type
I_ACMApplicationDocument AppDoc from
I_ACMMaterialMstrData MaterialMstr inner

Associations (29)

CardinalityTargetAliasCondition
[1] I_ACMStorageStatus _StorageStatus AppDoc.ACMStorageStatusObject = _StorageStatus.ACMStorageStatusObject ---Document Type Description
[0..1] I_ACMApplDocTypeDesc _DocTypeText $projection.ApplicationDocType = _DocTypeText.ApplicationDocType and _DocTypeText.Language = $session.system_language ---Application Instruction Description
[0..1] I_ACMApplInstructionsValueHelp _AppInstrText $projection.LoadDataCaptureApplInstruction = _AppInstrText.LoadDataCaptureApplInstruction ---Commodity Description
[0..1] I_ACMTrdgContrCmmdtyTxt _CommodityText $projection.PhysicalCommodity = _CommodityText.Commodity and _CommodityText.Language = $session.system_language ---Counterparty ---Contract Header ---Contract Business ---AppDoc Business
[0..1] I_ACMApplDocBusinessData _ApplDocBusiness $projection.ApplicationDocument = _ApplDocBusiness.ApplicationDocument and $projection.ApplicationDocumentItem = _ApplDocBusiness.ApplicationDocumentItem ---Spot Indicator Description
[0..1] I_ACMApplicationSpotIndFlag _SpotIndicator $projection.ACMApplOvwSpotFlag = _SpotIndicator.DomainValue ---Material Description
[0..1] I_ACMMaterialDetailsText _MaterialText $projection.Material = _MaterialText.Product and _MaterialText.Language = $session.system_language ---Pre-payment Agreement Details ---Nomination Header
[1..1] I_ACMMntnPrcgNominationHdrDet _NominationHeader $projection.NominationKey = _NominationHeader.ConfirmedNominationNumber ---CreatedBy Name
[0..1] I_ACMCreatedByUser _CreatedByName $projection.ApplDocumentCreatedBy = _CreatedByName.UserName ---ChangedBy Name
[0..1] I_ACMCreatedByUser _ChangedByName $projection.ApplDocumentChangedBy = _ChangedByName.UserName ---LDC Event Details Loading Event Data ---LDC Event Details UnLoading Event Data ---Pricing Distribution Status
[0..1] I_ACMApplicationPricingStatus _PrcDistStatus $projection.ACMApplPrcgDistrStatus = _PrcDistStatus.DomainValue ---Vendor split type description
[0..1] I_ACMApplicationSuplrSplitType _SupplierSplitType $projection.ACMLoadDataCaptureSplitType = _SupplierSplitType.DomainValue
[0..1] I_ACMApplicationSuplrSplitSrce _SupplierSplitSource $projection.ACMLoadDataCaptureSplitSource = _SupplierSplitSource.DomainValue ---Show History ---Optionality type Text ---Optionality type Text ---Crop Season Text
[0..1] I_ACMOptionalityCropSeasonTxt _CropYearText $projection.ACMContractOptionsCropSeasonID = _CropYearText.ACMContractOptionsCropSeasonID and _CropYearText.Language = $session.system_language ---Mode of Transport Text
[0..1] I_ModeOfTransportText _ModeText $projection.ModeOfTransport = _ModeText.ModeOfTransport and _ModeText.Language = $session.system_language
[0..1] I_ACMApplicationActionType _ActionTypeText $projection.ACMApplActionType = _ActionTypeText.DomainValue ---Exentesibility with AppDoc Items
[0..1] E_ApplicationDocumentItem _ExtensionAppDocItem $projection.ApplicationDocument = _ExtensionAppDocItem.ApplicationDocument and $projection.ApplicationDocumentItem = _ExtensionAppDocItem.ApplicationDocumentItem and $projection.ApplicationDocumentSubItem = _ExtensionAppDocItem.ApplicationDocumentSubItem and $projection.ACMDocumentSide = _ExtensionAppDocItem.ACMDocumentSide ---Exentesibility with AppData
[0..1] E_ApplicationDocument _ExtensionAppData $projection.ContractApplicationUUID = _ExtensionAppData.ContractApplicationUUID and $projection.ContractApplicationVersion = _ExtensionAppData.ContractApplicationVersion ---Contract Tab
[0..*] I_ACMTradingContractTP _Contract
[0..*] I_ACMContractPricingTP _Pricing
[0..*] I_ACMToleranceEvaluation _TolEval
[0..*] I_ACMApplDocEvtDet _ApplDocEvent
[0..*] I_ACMApplDocSettlmtUnit _SettlmtUnit
[0..*] I_ACMApplDocAnalysis _Grades
[0..*] I_ACMApplDocDPQSVolEval _DPQSEval
[0..*] I_ACMApplDocWeights _Weights
[0..*] I_ACMPpaytAgrmtAssgdDoc _PrepayAgrmt
[0..*] I_ACMDocStorDet _Storage
[0..*] I_ACMDocWrhsDet _Warehouse

Annotations (8)

NameValueLevelField
AccessControl.authorizationCheck #CHECK view
EndUserText.label Root BO App Doc Item Data - TP view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XXL view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.sapObjectNodeType.name ACMApplicationDocument view
VDM.viewType #TRANSACTIONAL view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view

Fields (141)

KeyFieldSource TableSource FieldDescription
KEY ApplicationDocument I_ACMApplicationDocument ApplicationDocument
KEY ApplicationDocumentItem I_ACMApplicationDocument ApplicationDocumentItem
KEY ACMDocumentSide I_ACMApplicationDocument ACMDocumentSide
KEY ApplicationDocumentSubItem I_ACMApplicationDocument ApplicationDocumentSubItem
ACMApplicationDocNumberItem
ApplicationStatusObject I_ACMApplicationDocument ApplicationStatusObject
SettlementStatusObject I_ACMApplicationDocument SettlementStatusObject
PostingDate I_ACMApplicationDocument PostingDate
Material I_ACMApplicationDocument Material
LoadDataCaptureObjectID I_ACMApplicationDocument LoadDataCaptureObjectID
LoadDataObjectUUID I_ACMApplicationDocument LoadDataObjectUUID
IsApplicationItemInTransit I_ACMApplicationDocument IsApplicationItemInTransit
ApplicationHasCallOff I_ACMApplicationDocument ApplicationHasCallOff
NominationKey I_ACMApplicationDocument NominationKey
NominationItem I_ACMApplicationDocument NominationItem
ACMReferenceType2 I_ACMApplicationDocument ACMReferenceType2
ACMReferenceDocument2 I_ACMApplicationDocument ACMReferenceDocument2
ACMReferenceType3 I_ACMApplicationDocument ACMReferenceType3
ACMReferenceDocument3 I_ACMApplicationDocument ACMReferenceDocument3
CustomerNum I_ACMApplicationDocument CustomerNum
ReferenceVendor I_ACMApplicationDocument ReferenceVendor
ACMDecimalGrossQuantity I_ACMApplicationDocument ACMDecimalGrossQuantity
ACMAppDocBaseUoM I_ACMApplicationDocument ACMAppDocBaseUoM
ACMAppDocDelivUoM I_ACMApplicationDocument ACMAppDocDelivUoM
ToBeAppliedQuantity I_ACMApplicationDocument ToBeAppliedQuantity
ToBeAppliedQuantityUnit I_ACMApplicationDocument ToBeAppliedQuantityUnit
AdjustedQuantity I_ACMApplicationDocument AdjustedQuantity
AdjustedQuantityUoM I_ACMApplicationDocument AdjustedQuantityUoM
ACMAppliedQuantityUoM I_ACMApplicationDocument ACMAppliedQuantityUoM
Counterparty0endasCounterparty
ACMIsApplicationShowHistory
ApplDocumentCreatedBy I_ACMApplicationDocument ApplDocumentCreatedBy
ApplicationItemCreatedOnDate I_ACMApplicationDocument ApplicationItemCreatedOnDate
ApplItemCreatedOnDateTime I_ACMApplicationDocument ApplItemCreatedOnDateTime
ApplDocumentChangedBy I_ACMApplicationDocument ApplDocumentChangedBy
ApplicationItemChangedOnDate I_ACMApplicationDocument ApplicationItemChangedOnDate
ApplItemChangedOnDateTime I_ACMApplicationDocument ApplItemChangedOnDateTime
DeliveryDate
ACMApplOvwSpotFlag I_ACMApplicationDocument ACMApplOvwSpotFlag
ACMApplDocIsBackToBack I_ACMApplicationDocument ACMApplDocIsBackToBack
LDCIsMultipleBuySellRelevant I_ACMApplicationDocument LDCIsMultipleBuySellRelevant
ACMSupplierSplitType I_ACMApplicationDocument ACMSupplierSplitType
StorageAgreement I_ACMApplicationDocument StorageAgreement
Plant I_ACMApplicationDocument Plant
StorageLocation I_ACMApplicationDocument StorageLocation
ACMContractOptionsCropSeasonID I_ACMApplicationDocument ACMContractOptionsCropSeasonID
TSWLocationID I_ACMApplicationDocument TSWLocationID
ACMApplItemHasBatchSplit I_ACMApplicationDocument ACMApplItemHasBatchSplit
WarehouseReceiptType I_ACMApplicationDocument WarehouseReceiptType
ACMInternalWareHouseReceiptNo I_ACMApplicationDocument ACMInternalWareHouseReceiptNo
WarehouseReceiptNo I_ACMApplicationDocument WarehouseReceiptNo
ACMApplPrcgDistrStatus I_ACMApplicationDocument ACMApplPrcgDistrStatus
ACMStorageStatusObject I_ACMApplicationDocument ACMStorageStatusObject
ACMApplicationDocumentLogID I_ACMApplicationDocument ACMApplicationDocumentLogID
ContractApplicationUUID I_ACMApplicationDocument ContractApplicationUUID
ContractApplicationVersion I_ACMApplicationDocument ContractApplicationVersion
TradingContractNumber I_ACMApplicationDocument TradingContractNumber
TradingContractItem I_ACMApplicationDocument TradingContractItem
OverfillID I_ACMApplicationDocument OverfillID
ContrItmProvisionalOverFillQty I_ACMApplicationDocument ContrItmProvisionalOverFillQty
ACMContrItmPrvsnlUnderFillQty I_ACMApplicationDocument ACMContrItmPrvsnlUnderFillQty
TrdgContrItemOverFillQuantity I_ACMApplicationDocument TrdgContrItemOverFillQuantity
TrdgContrItemUnderFillQuantity I_ACMApplicationDocument TrdgContrItemUnderFillQuantity
TrdgContractApplUnitOfMeasure I_ACMApplicationDocument TrdgContractApplUnitOfMeasure
ACMApplDocIsActiveVersion I_ACMApplicationDocument ACMApplDocIsActiveVersion
ACMAppDocStatus I_ACMApplicationDocument ACMAppDocStatus
ACMApplicationStatusText I_ACMApplicationDocument ACMApplicationStatusText
StatusProfileName _SettleStatus StatusProfileName
CaseStatusProfileName
ACMSettlementStatusText _SettleStatus SystemStatusName
ApplicationDocType I_ACMApplicationDocument ApplicationDocType
ApplicationItemCategory I_ACMApplicationDocument ApplicationItemCategory
DocumentDate I_ACMApplicationDocument DocumentDate
VehicleIdendasVehicleId
TruckRailBargeIdendasTruckRailBargeId
BillOfLadingendasBillOfLading
BillOfLadingDateendasBillOfLadingDate
ToPostingDateendasToPostingDate
LoadingDate _LoadData EventDate
UnloadingDate _UnloadData EventDate
PhysicalCommodity I_ACMMaterialMstrData Commodity
ApplicationLogObject
ApplicationLogSubobject
ACMLoadDataCaptureSplitType
ACMLoadDataCaptureSplitSource I_ACMApplicationDocument ACMLoadDataCaptureSplitSource
ACMOptionsLoadRate
ACMOptionsDischargeRate I_ACMApplicationDocument ACMOptionsDischargeRate
DeliveryStartDate I_ACMApplicationDocument DeliveryStartDate
ACMContrOptionsSourceLocation I_ACMApplicationDocument ACMContrOptionsSourceLocation
ACMOptionsLoadRateUnit I_ACMApplicationDocument ACMOptionsLoadRateUnit
ACMOptionsLoadRateTimeUnit I_ACMApplicationDocument ACMOptionsLoadRateTimeUnit
ACMOptnDelivPeriodTimeUnit I_ACMApplicationDocument ACMOptnDelivPeriodTimeUnit
ACMOptionsDischargeRateUnit I_ACMApplicationDocument ACMOptionsDischargeRateUnit
ACMOptnDschrgRateTimeUnit I_ACMApplicationDocument ACMOptnDschrgRateTimeUnit
ACMApplDocContrOptnLoadLoc I_ACMApplicationDocument ACMApplDocContrOptnLoadLoc
ACMApplDocContrOptnDschrgdLoc I_ACMApplicationDocument ACMApplDocContrOptnDschrgdLoc
ModeOfTransport I_ACMApplicationDocument ModeOfTransport
Incoterms I_ACMApplicationDocument Incoterms
ACMOptionsDeletionFlag I_ACMApplicationDocument ACMOptionsDeletionFlag
ACMOptnAlternateSupplierFlag I_ACMApplicationDocument ACMOptnAlternateSupplierFlag
MaterialDocument I_ACMApplicationDocument MaterialDocument
ACMApplItemQuantity I_ACMApplicationDocument ACMApplItemQuantity
ACMApplItemQuantityUoM I_ACMApplicationDocument ACMApplItemQuantityUoM
CounterpartyFullName _Counterparty CounterpartyFullName
CustomerName _Counterparty CustomerName
ACMCounterpartyFirstName _Counterparty ACMCounterpartyFirstName
ACMCounterpartyLastName _Counterparty ACMCounterpartyLastName
IsBusinessPurposeCompleted _Counterparty IsBusinessPurposeCompleted
_DocTypeText _DocTypeText
_AppInstrText _AppInstrText
_CommodityText _CommodityText
_ApplDocBusiness _ApplDocBusiness
_SpotIndicator _SpotIndicator
_MaterialText _MaterialText
_NominationHeader _NominationHeader
_CreatedByName _CreatedByName
_ChangedByName _ChangedByName
_PrcDistStatus _PrcDistStatus
_Contract _Contract
_Pricing _Pricing
_TolEval _TolEval
_ApplDocEvent _ApplDocEvent
_SettlmtUnit _SettlmtUnit
_Grades _Grades
_DPQSEval _DPQSEval
_Weights _Weights
_PrepayAgrmt _PrepayAgrmt
_Storage _Storage
_Warehouse _Warehouse
_VendSplit I_ACMApplicationDocument _VendSplit
QuantityHistoryParentItem I_ACMApplicationDocument QuantityHistoryParentItem
RootItem I_ACMApplicationDocument RootItem
ACMApplActionType I_ACMApplicationDocument ACMApplActionType
RootItemthenXelseendasSetNodeIsRoot
_SupplierSplitType _SupplierSplitType
_SupplierSplitSource _SupplierSplitSource
_CropYearText _CropYearText
_ModeText _ModeText
_NominationTicketFlow I_ACMApplicationDocument _NominationTicketFlow
_StorageStatus _StorageStatus
_ActionTypeText _ActionTypeText
@AbapCatalog.viewEnhancementCategory: [#PROJECTION_LIST]
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Root BO App Doc Item Data - TP'
@ObjectModel.usageType:{
  serviceQuality: #C,
  sizeCategory: #XXL,
  dataClass: #MIXED
}

@ObjectModel.sapObjectNodeType.name : 'ACMApplicationDocument'
@VDM: {
  viewType: #TRANSACTIONAL,
  lifecycle.contract.type: #SAP_INTERNAL_API
}
define root view entity R_ACMApplicationDocumentTP
  as select from           I_ACMApplicationDocument as AppDoc
  ---Material
    inner join             I_ACMMaterialMstrData    as MaterialMstr  on AppDoc.Material = MaterialMstr.Material
  ---Application Status
  //    left outer to one join I_ACMApplicationDocumentStatus as AppStatus     on AppDoc.ApplicationStatusObject = AppStatus.ApplicationStatusObject

  //      left outer to one  join I_ACMSystemStatus        as _AppStatus    on  AppDoc.ApplicationStatusObject           = _AppStatus.ApplicationStatusObject

  //  association [0..1] to I_ACMSystemStatus              as _AppStatus           on  AppDoc.ACMStorageStatusObject             = _AppStatus.ApplicationStatusObject

  //                                                                               and _AppStatus.ChangeDocumentStatusIsInactive is initial

  ---Settlement Status
    left outer to one join I_ACMSettlementStatus    as _SettleStatus on AppDoc.SettlementStatusObject = _SettleStatus.SettlementStatusObject
  //                                                                     and _SettleStatus.ChangeDocumentStatusIsInactive is initial

  //    //  association [0..1] to I_ACMSystemStatus              as _SettleStatus        on  AppDoc.ACMStorageStatusObject                = _SettleStatus.ApplicationStatusObject

  //                                                                     and _SettleStatus.ChangeDocumentStatusIsInactive is initial

    left outer to one join I_ACMLoadDataEventDet    as _LoadData     on  AppDoc.LoadDataObjectUUID          = _LoadData.LDCKey
                                                                     and _LoadData.LoadDataCaptureEventType = '01'
  ---LDC Event Details UnLoading Event Data
    left outer to one join I_ACMLoadDataEventDet    as _UnloadData   on  AppDoc.LoadDataObjectUUID            = _UnloadData.LDCKey
                                                                     and _UnloadData.LoadDataCaptureEventType = '02'
    left outer to one join I_ACMApplCounterparty    as _Counterparty on AppDoc.Counterparty = _Counterparty.Counterparty
                                                                     and AppDoc.ACMDocumentSide = _Counterparty.ACMDocumentSide
  ---Storage Statuts
  association [1]    to I_ACMStorageStatus             as _StorageStatus       on  AppDoc.ACMStorageStatusObject = _StorageStatus.ACMStorageStatusObject
  //                                                                               and _StorageStatus.ChangeDocumentStatusIsInactive is initial

  ---Document Type Description
  association [0..1] to I_ACMApplDocTypeDesc           as _DocTypeText         on  $projection.ApplicationDocType = _DocTypeText.ApplicationDocType
                                                                               and _DocTypeText.Language          = $session.system_language
  ---Application Instruction Description
  association [0..1] to I_ACMApplInstructionsValueHelp as _AppInstrText        on  $projection.LoadDataCaptureApplInstruction = _AppInstrText.LoadDataCaptureApplInstruction
  ---Commodity Description
  association [0..1] to I_ACMTrdgContrCmmdtyTxt        as _CommodityText       on  $projection.PhysicalCommodity = _CommodityText.Commodity
                                                                               and _CommodityText.Language       = $session.system_language
  ---Counterparty
  //  association [0..1] to I_ACMApplCounterparty     as _Counterparty        on  $projection.Counterparty = _Counterparty.Counterparty

  //                                                                               or  $projection.CustomerNum     = _Counterparty.Counterparty

  ---Contract Header
  //  association [0..1] to I_ACMTradingContractData       as _ContrHeader         on  $projection.TradingContractNumber = _ContrHeader.ContractNum

  ---Contract Business
  //  association [0..1] to I_ContSubItem                  as _ContrBusiness       on  $projection.TradingContractNumber = _ContrBusiness.TradingContractNumber

  ---AppDoc Business
  association [0..1] to I_ACMApplDocBusinessData       as _ApplDocBusiness     on  $projection.ApplicationDocument     = _ApplDocBusiness.ApplicationDocument
                                                                               and $projection.ApplicationDocumentItem = _ApplDocBusiness.ApplicationDocumentItem
  ---Spot Indicator Description
  association [0..1] to I_ACMApplicationSpotIndFlag    as _SpotIndicator       on  $projection.ACMApplOvwSpotFlag = _SpotIndicator.DomainValue

  ---Material Description
  association [0..1] to I_ACMMaterialDetailsText       as _MaterialText        on  $projection.Material   = _MaterialText.Product
                                                                               and _MaterialText.Language = $session.system_language
  ---Pre-payment Agreement Details
  //    association [0..1] to I_ACMPpaytAgrmtAssgdDoc        as _PrepayAgreeAssignDoc on  $projection.ApplicationDocument     = _PrepayAgreeAssignDoc.ACMFromDocumentNumber

  //                                                                                  and $projection.ApplicationDocumentItem = _PrepayAgreeAssignDoc.ACMFromDocumentItemNumber

  //                                                                                  and $projection.TradingContractNumber   = _PrepayAgreeAssignDoc.TradingContractNumber

  //                                                                                  and $projection.TradingContractItem     = _PrepayAgreeAssignDoc.TradingContractItem

  //                                                                                  and _PrepayAgreeAssignDoc.DocumentFrom  = 'ZA'

  ---Nomination Header
  association [1..1] to I_ACMMntnPrcgNominationHdrDet  as _NominationHeader    on  $projection.NominationKey = _NominationHeader.ConfirmedNominationNumber
  ---CreatedBy Name
  association [0..1] to I_ACMCreatedByUser             as _CreatedByName       on  $projection.ApplDocumentCreatedBy = _CreatedByName.UserName
  ---ChangedBy Name
  association [0..1] to I_ACMCreatedByUser             as _ChangedByName       on  $projection.ApplDocumentChangedBy = _ChangedByName.UserName
  ---LDC Event Details Loading Event Data
  //  association [0..1] to I_ACMLoadDataEventDet          as _LoadData            on  $projection.LoadDataObjectUUID     = _LoadData.LDCKey

  //                                                                               and _LoadData.LoadDataCaptureEventType = '01'

  ---LDC Event Details UnLoading Event Data
  //  association [0..1] to I_ACMLoadDataEventDet          as _UnloadData          on  $projection.LoadDataObjectUUID       = _UnloadData.LDCKey

  //                                                                               and _UnloadData.LoadDataCaptureEventType = '02'

  //  ---Application Log

  //  association [1..1] to I_ACMApplicationLog            as _AppLog               on  $projection.ACMApplicationDocumentLogID = _AppLog.ApplicationJobDescription

  ---Pricing Distribution Status
  association [0..1] to I_ACMApplicationPricingStatus  as _PrcDistStatus       on  $projection.ACMApplPrcgDistrStatus = _PrcDistStatus.DomainValue
  //                                                                               and _PrcDistStatus.SAPDataDictionaryDomain = '/ACCGO/D_PRC_STS'


  //  association [0..1] to I_CmmdtyDrvtvGenericDomainVH   as _StorageStatus       on  $projection.ACMAppDocStorageStatus     = _StorageStatus.DomainValue

  //                                                                               and _StorageStatus.SAPDataDictionaryDomain = 'J_OBJNR'

  ---Vendor split type description
  association [0..1] to I_ACMApplicationSuplrSplitType as _SupplierSplitType   on  $projection.ACMLoadDataCaptureSplitType = _SupplierSplitType.DomainValue
  //                                                                               and _SupplierSplitType.SAPDataDictionaryDomain = '/ACCGO/D_VSPLIT_TYPE'

  association [0..1] to I_ACMApplicationSuplrSplitSrce as _SupplierSplitSource on  $projection.ACMLoadDataCaptureSplitSource = _SupplierSplitSource.DomainValue

  ---Show History
  //  association [1..1] to I_ACMShowHistoryVH             as _ShowHistory         on  $projection.ACMApplDocIsActiveVersion != _ShowHistory.DomainValue ------ replace this with acmappldocisactiveversion once the GFN is approved

  ---Optionality type Text
  //  association [0..1] to I_CmmdtyDrvtvGenericDomainVH   as _OptionTypeText      on  $projection.ACMTradingContractOptionsType = _OptionTypeText.DomainValue

  //                                                                               and _OptionTypeText.SAPDataDictionaryDomain   = '/ACCGO/D_OPTN_TYPE'


  ---Optionality type Text
  //  association [0..1] to I_ACMApplContrOptionality     as _OptionType          on  $projection.TradingContractNumber = _OptionType.TradingContractNumber

  //                                                                               and $projection.TradingContractItem   = _OptionType.TradingContractItem

  ---Crop Season Text
  association [0..1] to I_ACMOptionalityCropSeasonTxt  as _CropYearText        on  $projection.ACMContractOptionsCropSeasonID = _CropYearText.ACMContractOptionsCropSeasonID
                                                                               and _CropYearText.Language                     = $session.system_language
  ---Mode of Transport Text
  association [0..1] to I_ModeOfTransportText          as _ModeText            on  $projection.ModeOfTransport = _ModeText.ModeOfTransport
                                                                               and _ModeText.Language          = $session.system_language

  association [0..1] to I_ACMApplicationActionType     as _ActionTypeText      on  $projection.ACMApplActionType = _ActionTypeText.DomainValue
  ---Exentesibility with AppDoc Items
  association [0..1] to E_ApplicationDocumentItem      as _ExtensionAppDocItem on  $projection.ApplicationDocument        = _ExtensionAppDocItem.ApplicationDocument
                                                                               and $projection.ApplicationDocumentItem    = _ExtensionAppDocItem.ApplicationDocumentItem
                                                                               and $projection.ApplicationDocumentSubItem = _ExtensionAppDocItem.ApplicationDocumentSubItem
                                                                               and $projection.ACMDocumentSide            = _ExtensionAppDocItem.ACMDocumentSide

  ---Exentesibility with AppData
  association [0..1] to E_ApplicationDocument          as _ExtensionAppData    on  $projection.ContractApplicationUUID    = _ExtensionAppData.ContractApplicationUUID
                                                                               and $projection.ContractApplicationVersion = _ExtensionAppData.ContractApplicationVersion
  ---Contract Tab
  composition [0..*] of I_ACMTradingContractTP         as _Contract
  ---Pricing Tab
  composition [0..*] of I_ACMContractPricingTP         as _Pricing
  ---Quantity Tab
  //  composition [0..*] of I_ACMApplDocQuantity           as _Quantity

  ---Tolerance Evaluation Tab
  composition [0..*] of I_ACMToleranceEvaluation       as _TolEval
  ---Optionality Evaluation Tab
  //  composition [0..*] of I_ACMApplDocContractOption     as _OptEval

  ---AppDoc Storage Events Tab
  composition [0..*] of I_ACMApplDocEvtDet             as _ApplDocEvent
  ---Settlement Unit Tab
  composition [0..*] of I_ACMApplDocSettlmtUnit        as _SettlmtUnit
  ---Grades Tab
  composition [0..*] of I_ACMApplDocAnalysis           as _Grades
  ---DPQS Evaluation Tab
  composition [0..*] of I_ACMApplDocDPQSVolEval        as _DPQSEval
  ---Weights Tab
  composition [0..*] of I_ACMApplDocWeights            as _Weights
  --Prepayment Tab
  composition [0..*] of I_ACMPpaytAgrmtAssgdDoc        as _PrepayAgrmt
  --Storage Tab
  composition [0..*] of I_ACMDocStorDet                as _Storage
  --Warehouse Tab
  composition [0..*] of I_ACMDocWrhsDet                as _Warehouse
  //  composition [0..*] of I_ACMSupplierSplit             as _VendSplit

{
  key AppDoc.ApplicationDocument,
  key AppDoc.ApplicationDocumentItem,
  key AppDoc.ACMDocumentSide,
  key AppDoc.ApplicationDocumentSubItem,
      concat( concat( ltrim( AppDoc.ApplicationDocument, '0' ), '/' ), ltrim( AppDoc.ApplicationDocumentItem, '0' ) ) as ACMApplicationDocNumberItem,
      //      cast('Application Document/Item' as abap.char( 30 ))                                                            as ACMSnapshotFieldNameDesc, //ACMApplDocNumberItemText,

      AppDoc.ApplicationStatusObject,
      AppDoc.SettlementStatusObject,
      AppDoc.PostingDate,
      AppDoc.Material,
      AppDoc.LoadDataCaptureObjectID,
      AppDoc.LoadDataObjectUUID,
      AppDoc.IsApplicationItemInTransit,
      AppDoc.ApplicationHasCallOff,
      AppDoc.NominationKey,
      AppDoc.NominationItem,
      AppDoc.ACMReferenceType2,
      AppDoc.ACMReferenceDocument2,
      AppDoc.ACMReferenceType3,
      AppDoc.ACMReferenceDocument3,
      case
      when AppDoc.ACMReferenceType2 = 'D'
      then cast( AppDoc.ACMReferenceDocument2   as outbound_delivery )
      end                                                                                                             as OutboundDelivery,
      case
      when AppDoc.ACMReferenceType2 = 'E'
      then cast( AppDoc.ACMReferenceDocument2   as vbeln_vl )
      end                                                                                                             as InboundDelivery,
      case
      when AppDoc.ACMReferenceType3 = 'C'
      then cast( AppDoc.ACMReferenceDocument3   as ebeln )
      end                                                                                                             as PurchaseOrder,
      case
      when AppDoc.ACMReferenceType3 = 'A'
      then cast( AppDoc.ACMReferenceDocument3   as vbeln )
      end                                                                                                             as SalesOrder,
      AppDoc.CustomerNum,
      AppDoc.ReferenceVendor,
      AppDoc.ACMDecimalGrossQuantity,
      AppDoc.ACMAppDocBaseUoM,
      @Semantics.quantity.unitOfMeasure: 'ACMAppDocDelivUoM'
      case
      when ( ( AppDoc.ApplicationDocType = 'CAD' and AppDoc.ApplicationItemCategory = 'O' ) or AppDoc.ACMAppDocStatus = 'I7A02' or AppDoc.ACMAppDocStatus = 'I7A05' )
      then
      cast( '0.000' as menge_d )
      else
      AppDoc.ACMAllocatedQuantity
      end                                                                                                             as ACMAllocatedQuantity,
      AppDoc.ACMAppDocDelivUoM,
      AppDoc.ToBeAppliedQuantity,
      AppDoc.ToBeAppliedQuantityUnit,
      AppDoc.AdjustedQuantity,
      AppDoc.AdjustedQuantityUoM,
      @Semantics.quantity.unitOfMeasure: 'ACMAppliedQuantityUoM'
      case
      when ( ( AppDoc.ApplicationDocType = 'CAD' and AppDoc.ApplicationItemCategory = 'O' and _UnloadData.LoadDataCaptureApplInstruction <> '06' and _UnloadData.LoadDataCaptureApplInstruction <> '05' ) or AppDoc.ACMAppDocStatus = 'I7A02' or AppDoc.ACMAppDocStatus = 'I7A05' )
      then
      cast( '0.000' as menge_d )
      else
      AppDoc.ACMAppliedQuantity
      end                                                                                                             as ACMAppliedQuantity,
      AppDoc.ACMAppliedQuantityUoM,
      //      /*cast(ACMPickedQuantity as abap.dec( 31, 6 ) )                                                                       as ACMPickedQuantity,

      //      PickedQuantityUoM, */

      case when _Counterparty.IsBusinessPurposeCompleted is not initial
      then 'XXXX'
      //else AppDoc.Counterparty

      else ltrim( AppDoc.Counterparty, '0' )
      end                                                                                                             as Counterparty,
      //      AppDoc.Counterparty,

      cast( AppDoc.ACMIsApplicationShowHistory as boole_d)                                                            as ACMIsApplicationShowHistory,
      AppDoc.ApplDocumentCreatedBy,
      AppDoc.ApplicationItemCreatedOnDate,
      AppDoc.ApplItemCreatedOnDateTime,
      AppDoc.ApplDocumentChangedBy,
      AppDoc.ApplicationItemChangedOnDate,
      AppDoc.ApplItemChangedOnDateTime, ---Field used for etag
      AppDoc.DeliveryDate,
      //      AppDoc.ApplicationIsVehicleContrRlvt,

      AppDoc.ACMApplOvwSpotFlag,
      AppDoc.ACMApplDocIsBackToBack,
      AppDoc.LDCIsMultipleBuySellRelevant,
      AppDoc.ACMSupplierSplitType,
      AppDoc.StorageAgreement,
      AppDoc.Plant,
      AppDoc.StorageLocation,
      AppDoc.ACMContractOptionsCropSeasonID,
      AppDoc.TSWLocationID,
      AppDoc.ACMApplItemHasBatchSplit,
      AppDoc.WarehouseReceiptType,
      AppDoc.ACMInternalWareHouseReceiptNo,
      AppDoc.WarehouseReceiptNo,
      AppDoc.ACMApplPrcgDistrStatus,
      AppDoc.ACMStorageStatusObject,
      AppDoc.ACMApplicationDocumentLogID,
      AppDoc.ContractApplicationUUID,
      AppDoc.ContractApplicationVersion,
      AppDoc.TradingContractNumber,
      AppDoc.TradingContractItem,
      AppDoc.OverfillID,
      AppDoc.ContrItmProvisionalOverFillQty,
      AppDoc.ACMContrItmPrvsnlUnderFillQty,
      AppDoc.TrdgContrItemOverFillQuantity,
      AppDoc.TrdgContrItemUnderFillQuantity,
      AppDoc.TrdgContractApplUnitOfMeasure,
      AppDoc.ACMApplDocIsActiveVersion, ---- replace this with acmappldocisactiveversion once the GFN is approved
      case
      when  AppDoc.ACMAppDocStatus = 'I7L03' or AppDoc.ACMAppDocStatus = 'I7C04'
      then 1
      when AppDoc.ACMAppDocStatus = 'I7A01' or AppDoc.ACMAppDocStatus = 'I7A02' or
           AppDoc.ACMAppDocStatus = 'I7A03' or
           AppDoc.ACMAppDocStatus = 'I7A12' or AppDoc.ACMAppDocStatus = 'I7A13' or
           AppDoc.ACMAppDocStatus = 'I7A14' or
           AppDoc.ACMAppDocStatus = 'I7C02' or AppDoc.ACMAppDocStatus = 'I7C03' or
           AppDoc.ACMAppDocStatus = 'I7C07' or AppDoc.ACMAppDocStatus = 'I7L01' or
           AppDoc.ACMAppDocStatus = 'I7L02'
      then 2
      when AppDoc.ACMAppDocStatus = 'I7A04' or AppDoc.ACMAppDocStatus = 'I7A15' or
           AppDoc.ACMAppDocStatus = 'I7C05'
      then 3
      else 2
      end                                                                                                             as ApplicationStatusCriticality,
      AppDoc.ACMAppDocStatus                                                                                          as ACMAppDocStatus,
      AppDoc.ACMApplicationStatusText                                                                                 as ACMApplicationStatusText,
      _SettleStatus.StatusProfileName,
      cast(_SettleStatus.StatusProfileName as abap.char( 40 ))                                                        as CaseStatusProfileName, //Added by ritu

      _SettleStatus.SystemStatusName                                                                                  as ACMSettlementStatusText,
      case
      when  _SettleStatus.StatusProfileName = 'I7S01' or _SettleStatus.StatusProfileName = 'I7S05' or
           _SettleStatus.StatusProfileName = 'I7S06' or
           _SettleStatus.StatusProfileName = 'I7S07' or _SettleStatus.StatusProfileName = 'I7S15'
      then 1
      when _SettleStatus.StatusProfileName = 'I7S02'
      then 2
      when _SettleStatus.StatusProfileName = 'I7S03' or _SettleStatus.StatusProfileName = 'I7S04' or
           _SettleStatus.StatusProfileName = 'I7S08'
      then 3
      end                                                                                                             as ACMApplSettlmtStsCriticality,
      case
      when AppDoc.ACMApplPrcgDistrStatus = '1'
      then 2
      when AppDoc.ACMApplPrcgDistrStatus = '2'
      then 3
      else 1
      end                                                                                                             as ACMPrcgDistrStatusCriticality,
      //AppDoc.ReferenceDocumentType

      AppDoc.ApplicationDocType,
      AppDoc.ApplicationItemCategory,
      AppDoc.DocumentDate,
      //      AppDoc.LDCKey,

      //      AppDoc.LoadDataCaptureType,

      case
      when _UnloadData.LoadDataCaptureType is not initial
      then _UnloadData.LoadDataCaptureType
      else _LoadData.LoadDataCaptureType end                                                                          as LoadDataCaptureType,

      case
      when _UnloadData.ACMLoadDataCaptureTypeText is not initial
      then _UnloadData.ACMLoadDataCaptureTypeText
      else _LoadData.ACMLoadDataCaptureTypeText end                                                                   as ACMLoadDataCaptureTypeText,
      //      AppDoc.ACMLoadDataCaptureTypeText,

      case
      when _UnloadData.LoadDataCaptureApplInstruction is not initial
      then _UnloadData.LoadDataCaptureApplInstruction
      else _LoadData.LoadDataCaptureApplInstruction end                                                               as LoadDataCaptureApplInstruction,
      //      AppDoc.LoadDataCaptureApplInstruction,

      case
      when _UnloadData.ACMScaleTicketNumber is not initial
      then _UnloadData.ACMScaleTicketNumber
      else _LoadData.ACMScaleTicketNumber end                                                                         as ACMScaleTicketNumber,

      //      AppDoc.ACMLoadDataCaptureTypeText,

      //      AppDoc.LoadDataCaptureApplInstruction,

      //      AppDoc.ACMScaleTicketNumber,

      case
      when _UnloadData.VehicleId is not initial
      then _UnloadData.VehicleId
      else _LoadData.VehicleId end                                                                                    as VehicleId,
      //      AppDoc.VehicleId,

      case
      when _UnloadData.TruckRailBargeId is not initial
      then _UnloadData.TruckRailBargeId
      else _LoadData.TruckRailBargeId end                                                                             as TruckRailBargeId,
      //      AppDoc.TruckRailBargeId,

      case
      when _UnloadData.CmmdtyTransptVesselID is not initial
      then _UnloadData.CmmdtyTransptVesselID
      else _LoadData.CmmdtyTransptVesselID end                                                                        as CmmdtyTransptVesselID,
      //      AppDoc.CmmdtyTransptVesselID,

      case
       when _UnloadData.LoadDataCaptureEventType = '02'
       then _UnloadData.BillOfLading
       else _LoadData.BillOfLading end                                                                                as BillOfLading,
      //      AppDoc.BillOfLading,

      case
       when _UnloadData.LoadDataCaptureEventType = '02'
       then _UnloadData.BillOfLadingDate
       else _LoadData.BillOfLadingDate end                                                                            as BillOfLadingDate,
      //      AppDoc.BillOfLadingDate,

      //      AppDoc.NominationTicketKey,

      case
       when _UnloadData.LoadDataCaptureEventType = '02'
       then _UnloadData.ACMLoadDataCaptureLeadCarNo
       else _LoadData.ACMLoadDataCaptureLeadCarNo end                                                                 as ACMLoadDataCaptureLeadCarNo,
      //      AppDoc.ACMLoadDataCaptureLeadCarNo,

      case
       when _UnloadData.LoadDataCaptureEventType = '02'
       then _UnloadData.ToPostingDate
       else _LoadData.ToPostingDate end                                                                               as ToPostingDate,
      case
      when _UnloadData.ApplicationIsVehicleContrRlvt is not initial
      then _UnloadData.ApplicationIsVehicleContrRlvt
      else _LoadData.ApplicationIsVehicleContrRlvt end                                                                as ApplicationIsVehicleContrRlvt,
      _LoadData.EventDate                                                                                             as LoadingDate,
      _UnloadData.EventDate                                                                                           as UnloadingDate,
      //      AppDoc.ToPostingDate,

      //      AppDoc.ACMLoadDataCaptureItmStatusObj,


      MaterialMstr.Commodity                                                                                          as PhysicalCommodity,
      cast( '/ACCGO/CAS' as balobj_d )                                                                                as ApplicationLogObject,
      cast( '/ACCGO/APP' as balsubobj )                                                                               as ApplicationLogSubobject,
      AppDoc._VendSplit.ACMLoadDataCaptureSplitType                                                                   as ACMLoadDataCaptureSplitType,
      AppDoc.ACMLoadDataCaptureSplitSource, ---remove this field once the GFN is approved replace with ACMLoadDataCaptureSplitSource
      AppDoc.ACMOptionsLoadRate,
      AppDoc.ACMOptionsDischargeRate,
      AppDoc.DeliveryStartDate,
      AppDoc.ACMContrOptionsSourceLocation,
      AppDoc.ACMOptionsLoadRateUnit,
      AppDoc.ACMOptionsLoadRateTimeUnit,
      AppDoc.ACMOptnDelivPeriodTimeUnit,
      AppDoc.ACMOptionsDischargeRateUnit,
      AppDoc.ACMOptnDschrgRateTimeUnit,
      AppDoc.ACMApplDocContrOptnLoadLoc,
      AppDoc.ACMApplDocContrOptnDschrgdLoc,
      AppDoc.ModeOfTransport,
      case
      when AppDoc.ACMContrOptionsMnsOfTransport is not initial
      then AppDoc.ACMContrOptionsMnsOfTransport
      else AppDoc.MeansOfTransport end                                                                                as ACMContrOptionsMnsOfTransport,
      //      AppDoc.ACMContrOptionsMnsOfTransport as MeansOfTransport,

      //  AppDoc.MeansOfTransport  ,

      AppDoc.Incoterms,
      AppDoc.ACMOptionsDeletionFlag,
      AppDoc.ACMOptnAlternateSupplierFlag,
      AppDoc.MaterialDocument                                                                                         as MaterialDocument,
      AppDoc.ACMApplItemQuantity,
      AppDoc.ACMApplItemQuantityUoM,
      //      _Counterparty.Counterparty,

      _Counterparty.CounterpartyFullName,
      _Counterparty.CustomerName,
      _Counterparty.ACMCounterpartyFirstName,
      _Counterparty.ACMCounterpartyLastName,
      _Counterparty.IsBusinessPurposeCompleted,


      //      AppDoc.ACMContractOptionsCropSeasonID                                                                           as RefRateRtgTskList,

      //      AppDoc.ACMTradingContractOptionsType,

      //      LDCEventStatus.StatusProfileName                                                                                as ACMLdcStatusProfileName,

      /* Associations */
      _DocTypeText,
      _AppInstrText,
      _CommodityText,
      //      _Counterparty,

      //      _ContrHeader,

      //      _ContrBusiness,

      _ApplDocBusiness,
      _SpotIndicator,
      _MaterialText,
      //      _PrepayAgreeAssignDoc,

      _NominationHeader,
      _CreatedByName,
      _ChangedByName,
      //      _LoadData,

      //      _UnloadData,

      //      _AppLog,

      _PrcDistStatus,
      //      _ShowHistory,

      _Contract,
      _Pricing,
      //      _Quantity,

      _TolEval,
      //      _OptEval,

      _ApplDocEvent,
      _SettlmtUnit,
      _Grades,
      _DPQSEval,
      _Weights,
      _PrepayAgrmt,
      _Storage,
      _Warehouse,
      AppDoc._VendSplit,
      AppDoc.QuantityHistoryParentItem,
      AppDoc.RootItem,
      AppDoc.ACMApplActionType,
      //      AppDoc.NominationTicketKey,


      //      AppDoc.ACMStorageStatusText,

      case
      when AppDoc.QuantityHistoryParentItem = AppDoc.RootItem
      then 'X'
      else ' '
      end                                                                                                             as SetNodeIsRoot,

      _SupplierSplitType,
      _SupplierSplitSource,
      //      _OptionType,

      _CropYearText,
      _ModeText,
      AppDoc._NominationTicketFlow,
      _StorageStatus,
      _ActionTypeText
      //      _AppStatus,

      //      _SettleStatus

}
//where

//

//      AppDoc.ACMAppDocStatus <> 'I7C05' //To eliminate Applied App Docs

//  and AppDoc.ACMAppDocStatus <> 'I7A01' //To eliminate Draft App Docs

//  and AppDoc.ACMAppDocStatus <> 'I7A12' //To eliminate Trigger in progress Docs

//  and LDCEventStatus.StatusProfileName =  'I7U07'