C_PurContrVersionHistory

DDL: C_PURCONTRVERSIONHISTORY SQL: CPURCTRVERSHIST Type: view CONSUMPTION

Purchase Contract Version History

C_PurContrVersionHistory is a Consumption CDS View that provides data about "Purchase Contract Version History" in SAP S/4HANA. It reads from 1 data source (I_PurContrVersionHistory) and exposes 68 fields with key field PurchaseContract. It has 15 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_PurContrVersionHistory VersionHistory from

Associations (15)

CardinalityTargetAliasCondition
[1..1] I_Purchasecontracttype_Vh _PurchaseContractTypeVH $projection.PurchaseContractType = _PurchaseContractTypeVH.PurchasingDocumentType
[1..*] I_PurchaseContractStatus _PurchaseContractStatus $projection.PurchasingProcessingStatus = _PurchaseContractStatus.PurchasingProcessingStatus
[0..1] I_PurchaseContractExtReference _PurchaseContractExtReference $projection.PurchaseContract = _PurchaseContractExtReference.PurchaseContract
[0..1] I_PurgTotProdCmplncSuplrStsT _PurgTotProdCmplncSuplrStsT $projection.PurgAggrgdProdCmplncSuplrSts = _PurgTotProdCmplncSuplrStsT.PurgAggrgdProdCmplncSuplrSts and _PurgTotProdCmplncSuplrStsT.Language = $session.system_language
[0..1] C_SupplierPurchOrgVH _SupplierValueHelp _SupplierValueHelp.Supplier = $projection.Supplier and _SupplierValueHelp.PurchasingOrganization = $projection.PurchasingOrganization
[0..1] C_MM_CompanyCodeValueHelp _CompanyCodeValueHelp _CompanyCodeValueHelp.CompanyCode = $projection.CompanyCode
[1..1] I_PurCtrIncoVersion _PurCtrTermVersion $projection.IncotermsVersion = _PurCtrTermVersion.IncotermsVersion
[1..*] C_PurContrHdrCndnValdtyTP _PurContrHdrCndnValdtyTP $projection.PurchaseContract = _PurContrHdrCndnValdtyTP.PurchaseContract
[1..*] C_ContractMaintainItem _PurchaseContractItemTP $projection.PurchaseContract = _PurchaseContractItemTP.PurchaseContract
[0..*] C_LegalTransactionIntegFacet _LegalTransaction _LegalTransaction.LglCntntMLinkdObj = $projection.PurchaseContract and _LegalTransaction.LglCntntMIntegrationLink = 'PC'
[0..1] C_PurgDocVersionReasonValHelp _VersionReasonVH $projection.PurchasingDocVersionReasonCode = _VersionReasonVH.PurchasingDocVersionReasonCode
[0..*] C_Contractnotes _PurCtrNotesWD $projection.PurchaseContract = _PurCtrNotesWD.PurchaseContract
[0..*] C_PurCtrPartners _PurCtrPartnersWithDraft $projection.PurchaseContract = _PurCtrPartnersWithDraft.PurchaseContract
[1..*] C_PurchaseContrItemHierarchyTP _PurchaseContrItemHierarchyTP $projection.PurchaseContract = _PurchaseContrItemHierarchyTP.PurchaseContract ---Extension
[1..1] E_PurchasingDocument _PurchaseContractExten $projection.PurchaseContract = _PurchaseContractExten.PurchasingDocument

Annotations (15)

NameValueLevelField
AbapCatalog.sqlViewName CPURCTRVERSHIST view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Purchase Contract Version History view
VDM.viewType #CONSUMPTION view
Search.searchable true view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MIXED view
AccessControl.personalData.blocking #REQUIRED view
ClientHandling.algorithm #SESSION_VARIABLE view
UI.headerInfo.typeName Purchase Contract view
UI.headerInfo.typeNamePlural Purchase Contracts view
UI.headerInfo.title.value PurchasingDocumentName view
UI.headerInfo.description.value ActivePurchasingDocument view

Fields (68)

KeyFieldSource TableSource FieldDescription
KEY PurchaseContract PurchaseContract
ActivePurchasingDocument ActivePurchasingDocument
PurchaseContractType PurchaseContractType
PurchasingDocumentVersion PurchasingDocumentVersion Version
PurchasingProcessingStatus PurchasingProcessingStatus Purchasing Document Status
ChangeRequestNote _VersionType ChangeRequestNote
CreatedByUser CreatedByUser User ID
CreatedByUserDescription _UserDetails UserDescription
CreationDate CreationDate
PurchasingDocVersionReasonText _VersionReasonVH PurchasingDocVersionReasonText
PurchasingDocVersionStatusText
PurchasingDocumentCategory PurchasingDocumentCategory
PurchasingDocumentTypeName _PurchaseContractTypeVH PurchasingDocumentTypeName
Supplier Supplier
CompanyCode CompanyCode
CompanyCodeName _CompanyCodeValueHelp CompanyCodeName
PurchasingOrganization PurchasingOrganization
PurchasingOrganizationName _PurchasingOrganization PurchasingOrganizationName
PurchasingGroup PurchasingGroup
PurchasingGroupName _PurchasingGroup PurchasingGroupName
DocumentCurrency DocumentCurrency
Currency DocumentCurrency
IncotermsClassification IncotermsClassification
IncotermsClassificationName _IncotermsClassificationText IncotermsClassificationName
IncotermsTransferLocation IncotermsTransferLocation
PaymentTerms PaymentTerms
CashDiscount1Days CashDiscount1Days
CashDiscount2Days CashDiscount2Days
NetPaymentDays NetPaymentDays
CashDiscount1Percent CashDiscount1Percent
CashDiscount2Percent CashDiscount2Percent
PurchaseContractTargetAmount PurchaseContractTargetAmount
ValidityStartDate ValidityStartDate
ValidityEndDate ValidityEndDate
ReleaseCode ReleaseCode Release Indicator
PurchasingDocVersionReasonCode PurchasingDocVersionReasonCode
PurchasingDocumentDeletionCode PurchasingDocumentDeletionCode
SupplierAddressID SupplierAddressID
SupplyingSupplier SupplyingSupplier
InvoicingParty InvoicingParty
ExchangeRate ExchangeRate
ExchangeRateIsFixed ExchangeRateIsFixed
QuotationSubmissionDate QuotationSubmissionDate
SupplierQuotation SupplierQuotation
CorrespncExternalReference CorrespncExternalReference
CorrespncInternalReference CorrespncInternalReference
SupplierRespSalesPersonName SupplierRespSalesPersonName
SupplierPhoneNumber SupplierPhoneNumber
IncotermsVersion IncotermsVersion
IncotermsVersionName _PurCtrTermVersion IncotermsVersionName
IncotermsLocation1 IncotermsLocation1
IncotermsLocation1Identifier
IncotermsSupChnLoc1AddlUUID IncotermsSupChnLoc1AddlUUID
IncotermsLocation2 IncotermsLocation2
IncotermsLocation2Identifier
IncotermsSupChnLoc2AddlUUID IncotermsSupChnLoc2AddlUUID
IncotermsDvtgLocDescription
IncotermsDvtgLocIdentifier
IncotermsSupChnDvtgLocAddlUUID IncotermsSupChnDvtgLocAddlUUID
PurchasingDocumentName PurchasingDocumentName
PurchasingDocumentOrigin PurchasingDocumentOrigin
ReleaseIsNotCompleted ReleaseIsNotCompleted
PurchasingProcessingStatusName _PurchaseContractStatus PurchasingProcessingStatusName
ApproverName
PurchaseContrNumberOfApprovers
CreatedByUserName CreatedByUserName
PurgDocExternalReference _PurchaseContractExtReference PurgDocExternalReference Source System ID
PurgOutlineAgrmtExtSystID _PurchaseContractExtReference PurgOutlineAgrmtExtSystID Source System
@AbapCatalog.sqlViewName: 'CPURCTRVERSHIST'
@AbapCatalog.compiler.compareFilter: true
//@AbapCatalog.preserveKey: true

@AccessControl.authorizationCheck: #MANDATORY
@EndUserText.label: 'Purchase Contract Version History'
@VDM.viewType: #CONSUMPTION
@Search.searchable: true
@ObjectModel:{
    usageType.serviceQuality: #C,
    usageType.sizeCategory: #L,
    usageType.dataClass: #MIXED
    }
@AccessControl.personalData.blocking: #REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE

@UI.headerInfo:{
  typeName:       'Purchase Contract',
  typeNamePlural: 'Purchase Contracts',
  title:          {value: 'PurchasingDocumentName' },
  description:    {value: 'ActivePurchasingDocument'}
  }
   
@UI.presentationVariant: [{
  sortOrder: [{ by: 'PurchasingDocumentVersion', direction: #DESC }]
}]

define view C_PurContrVersionHistory 

  as select from I_PurContrVersionHistory as VersionHistory
  association [1..1] to I_Purchasecontracttype_Vh       as _PurchaseContractTypeVH        on  $projection.PurchaseContractType            = _PurchaseContractTypeVH.PurchasingDocumentType
  association [1..*] to I_PurchaseContractStatus        as _PurchaseContractStatus        on  $projection.PurchasingProcessingStatus      = _PurchaseContractStatus.PurchasingProcessingStatus
  //association [1..*] to I_PurContrCriticalityStatus     as _PurContrCriticalityStatus     on  $projection.PurContrCriticalityStatus       = _PurContrCriticalityStatus.PurContrCriticalityStatus  

  association [0..1] to I_PurchaseContractExtReference  as _PurchaseContractExtReference  on  $projection.PurchaseContract                = _PurchaseContractExtReference.PurchaseContract    
  //association [1..*] to I_PurContrValidityStatusVH      as _PurContrValdtyStatusValueHelp on  $projection.PurContrValidityStatus_2        = _PurContrValdtyStatusValueHelp.PurContrValidityStatus_2 

  association [0..1] to I_PurgTotProdCmplncSuplrStsT    as _PurgTotProdCmplncSuplrStsT    on  $projection.PurgAggrgdProdCmplncSuplrSts    = _PurgTotProdCmplncSuplrStsT.PurgAggrgdProdCmplncSuplrSts
                                                                                          and _PurgTotProdCmplncSuplrStsT.Language        = $session.system_language
  association [0..1] to C_SupplierPurchOrgVH            as _SupplierValueHelp             on  _SupplierValueHelp.Supplier                 = $projection.Supplier
                                                                                          and _SupplierValueHelp.PurchasingOrganization   = $projection.PurchasingOrganization    
  association [0..1] to C_MM_CompanyCodeValueHelp       as _CompanyCodeValueHelp          on  _CompanyCodeValueHelp.CompanyCode           = $projection.CompanyCode              
  association [1..1] to I_PurCtrIncoVersion             as _PurCtrTermVersion             on  $projection.IncotermsVersion                = _PurCtrTermVersion.IncotermsVersion                                                                                                                                                                    
  association [1..*] to C_PurContrHdrCndnValdtyTP       as _PurContrHdrCndnValdtyTP       on  $projection.PurchaseContract                = _PurContrHdrCndnValdtyTP.PurchaseContract
  association [1..*] to C_ContractMaintainItem          as _PurchaseContractItemTP        on  $projection.PurchaseContract                = _PurchaseContractItemTP.PurchaseContract
  association [0..*] to C_LegalTransactionIntegFacet    as _LegalTransaction              on  _LegalTransaction.LglCntntMLinkdObj         = $projection.PurchaseContract
                                                                                          and _LegalTransaction.LglCntntMIntegrationLink  = 'PC'
  association [0..1] to C_PurgDocVersionReasonValHelp   as _VersionReasonVH               on  $projection.PurchasingDocVersionReasonCode  = _VersionReasonVH.PurchasingDocVersionReasonCode
  association [0..*] to C_Contractnotes                 as _PurCtrNotesWD                 on  $projection.PurchaseContract                = _PurCtrNotesWD.PurchaseContract
  association [0..*] to C_PurCtrPartners                as _PurCtrPartnersWithDraft       on  $projection.PurchaseContract                = _PurCtrPartnersWithDraft.PurchaseContract  
  association [1..*] to C_PurchaseContrItemHierarchyTP  as _PurchaseContrItemHierarchyTP  on  $projection.PurchaseContract                = _PurchaseContrItemHierarchyTP.PurchaseContract
  association [1..1] to I_PurContrCnsmpnInPercentage    as _PurContrCnsmpnInPercentage    on  $projection.ActivePurchasingDocument        = _PurContrCnsmpnInPercentage.PurchaseContract

  ---Extension Association
  association [1..1] to E_PurchasingDocument            as _PurchaseContractExten         on  $projection.PurchaseContract                = _PurchaseContractExten.PurchasingDocument

{
  @UI.hidden: true
  key   PurchaseContract,
  
        @ObjectModel.readOnly: true
        ActivePurchasingDocument,  

        @UI:{fieldGroup: [ {qualifier: 'Header', position: 20, label: 'Contract Type'} ],
            // dataPoint     : {title: 'Contract Type'},

             selectionField: [{position: 100 }],
             facet: [ {position: 10,targetQualifier: 'Headerstatus',label: 'Contract Type' } ] }
        @Search: { defaultSearchElement: true, ranking: #LOW, fuzzinessThreshold: 0.9}
        @ObjectModel: { foreignKey.association: '_PurchaseContractTypeVH' }
        @Consumption.valueHelpDefinition: [{entity: {name: 'I_Purchasecontracttype_Vh', element: 'PurchasingDocumentType'} } ]
        @UI.textArrangement: #TEXT_FIRST
        @ObjectModel.text.element: ['PurchasingDocumentTypeName']
        @ObjectModel.filter.enabled:true
        //@UI:{ selectionField: [ {position: 100 }]}

        PurchaseContractType,
        
        @ObjectModel.readOnly: true
        @EndUserText.label: 'Version'
        @UI: { dataPoint     : {title: 'Version'},
               lineItem: [ { position: 10, importance: #HIGH,type: #WITH_URL} ]
               }
        @ObjectModel.text.element: ['ChangeRequestNote']
        @UI.textArrangement: #TEXT_LAST        
        PurchasingDocumentVersion,  
        
        @UI: { 
        dataPoint: {title: 'Purchasing Document Status'},
        selectionField: [{position: 10}] }
        @EndUserText.label: 'Purchasing Document Status'
        @EndUserText.quickInfo: 'Status of Purchasing Document'
        @Consumption.valueHelpDefinition: [
            { entity:  { name:    'I_PurchaseContractStatus',
                         element: 'PurchasingProcessingStatusName' }
               ,
           additionalBinding: [{ localElement: 'PurchasingProcessingStatus',
                                element:      'PurchasingProcessingStatus'}]

            }]
        @ObjectModel.text.element: ['PurchasingProcessingStatusName']
        @UI.textArrangement: #TEXT_ONLY

        PurchasingProcessingStatus,        
  
        @UI:{lineItem: [{ position: 20, label: 'Type' }]}
      _VersionType.ChangeRequestNote as ChangeRequestNote,     
      
        @EndUserText.label: 'User ID'
        CreatedByUser,      
        @UI:{lineItem: [{ position: 30, label: 'Created By' }]}
      _UserDetails.UserDescription as CreatedByUserDescription,    
      
       @UI:{lineItem: [{ position: 40, label: 'Created On' }]}   
       @UI.fieldGroup: [{groupLabel:'Add On Field' ,qualifier: 'AddOnField', position: 20, importance: #HIGH,label: 'Created On'}]
       @ObjectModel.readOnly: true
       CreationDate,
       
        @UI:{lineItem: [{ position: 50, label: 'Reason'}]}
        @UI.fieldGroup: [{groupLabel:'Supplier' ,qualifier: 'Supplier', position: 40, importance: #HIGH,label: 'Reason for New Version'}]
        _VersionReasonVH.PurchasingDocVersionReasonText,  
       //  @UI:{lineItem: [{ position: 60, label: 'Status'}]}

       @UI.hidden: true
        @ObjectModel: {
        readOnly: true,
        virtualElement: true,
        virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'
        }
        @EndUserText.quickInfo: 'Change Request Status'
        cast( '' as abap.char( 20 ) ) as PurchasingDocVersionStatusText,       
              
 
        @UI.hidden: true
        PurchasingDocumentCategory,

        @ObjectModel.readOnly: true
        @Semantics.text: true
        _PurchaseContractTypeVH.PurchasingDocumentTypeName,


        @Consumption.valueHelpDefinition: [{entity: {name: 'C_SupplierPurchOrgVH', element: 'Supplier'}, additionalBinding: [{ element: 'PurchasingOrganization', localElement: 'PurchasingOrganization' }] }]
        @Consumption.semanticObject: 'Supplier'
        @Search: { defaultSearchElement: true, fuzzinessThreshold: 0.9, ranking: #LOW}
        @UI: {  dataPoint     : {title: 'Supplier'},
                fieldGroup: [ {qualifier: 'Header', position: 30, importance: #HIGH, label:'Supplier' } ],
                //lineItem: [ { position: 40, importance: #HIGH} ],

                facet: [ {position: 20,targetQualifier: 'Headerstatus',label: 'Supplier' } ],
                selectionField: [{position: 90}] }
        @ObjectModel.text.association: '_SupplierValueHelp'
        Supplier,

        @UI: {fieldGroup: [ {qualifier: 'PurchData', position: 20, importance: #HIGH} ] }
        @ObjectModel: { foreignKey.association: '_CompanyCodeValueHelp'}
        @Consumption.valueHelpDefinition: [{entity: {name: 'C_MM_CompanyCodeValueHelp', element: 'CompanyCode'} }]
        @UI.textArrangement: #TEXT_FIRST
        @ObjectModel.text.element: ['CompanyCodeName']
        CompanyCode,
        
        @UI.hidden: true
        @Semantics.text: true
        @ObjectModel.readOnly: true
        _CompanyCodeValueHelp.CompanyCodeName,        

        @ObjectModel.foreignKey.association: '_PurchasingOrganization'
        @Consumption.valueHelpDefinition: [{entity: {name: 'I_PurchasingOrganization', element: 'PurchasingOrganization'} }]
       // @UI.selectionField.position: 60

       // @Search: { defaultSearchElement: true, fuzzinessThreshold: 0.9, ranking: #LOW}

        @UI.dataPoint     : { title: 'Purchasing Organization'}
        @UI: {fieldGroup: [ {qualifier: 'Header', position: 40, importance: #HIGH,
        label:'Purchasing Organization' } ] }
        @UI.facet: [ {position: 30,targetQualifier: 'Headerstatus',label: 'Purchasing Organization' } ]
        @UI.textArrangement: #TEXT_FIRST
        @ObjectModel.text.element: ['PurchasingOrganizationName']
        PurchasingOrganization,

        @UI.hidden: true
        @Semantics.text: true
        @ObjectModel.readOnly: true
        _PurchasingOrganization.PurchasingOrganizationName, 
        
        @ObjectModel.text.association: '_PurchasingGroup'
        @Consumption.valueHelpDefinition: [{entity: {name: 'I_PurchasingGroup', element: 'PurchasingGroup'} }]
        //@UI.selectionField.position: 80

        //@Search: { defaultSearchElement: true, fuzzinessThreshold: 0.9, ranking: #LOW}

        @UI: {fieldGroup: [ {qualifier: 'PurchData', position: 10, importance: #HIGH} ] }
        @ObjectModel: { foreignKey.association: '_PurchasingGroup' }
        @UI.textArrangement: #TEXT_FIRST
        @ObjectModel.text.element: ['PurchasingGroupName']
        PurchasingGroup,
        
        @UI.hidden: true
        @Semantics.text: true
        @ObjectModel.readOnly: true
        _PurchasingGroup.PurchasingGroupName,        

        @ObjectModel: { foreignKey.association: '_DocumentCurrency' }
        @Consumption.valueHelpDefinition: [ {entity: {name: 'I_Currency', element: 'Currency'} } ]
        @UI: { identification: [{ label : 'Currency'}] }
        @ObjectModel.text.element: ['CurrencyName']
        DocumentCurrency,

        @ObjectModel.readOnly: true
        @UI.hidden: true
        DocumentCurrency                                       as Currency,

        @ObjectModel: { foreignKey.association: '_IncotermsClassification'}
        @Consumption.valueHelpDefinition: [{entity: {name: 'I_IncotermsClassification', element: 'IncotermsClassification'} }]
        @UI: {fieldGroup: [ { qualifier: 'IncoTerms', position: 10, importance: #HIGH,   label: 'Incoterms'} ] }
        @UI.textArrangement: #TEXT_FIRST
        @ObjectModel.text.element: ['IncotermsClassificationName']
        IncotermsClassification,

        @UI.hidden: true
        @Semantics.text: true
        @ObjectModel.readOnly: true
        _IncotermsClassificationText.IncotermsClassificationName,
                
        IncotermsTransferLocation,

        @UI: {fieldGroup: [ {groupLabel:'Payment Terms',qualifier: 'PaymentTerms', position: 10, importance: #HIGH} ] }
        @Consumption.valueHelpDefinition: [{entity: {name: 'C_MM_PaymentTermValueHelp', element: 'PaymentTerms'} }]
        @UI.textArrangement: #TEXT_FIRST
        @ObjectModel.text.element: ['PaymentTermsName']
        PaymentTerms,

        @UI: {fieldGroup: [ {qualifier: 'FirstPayment', position: 10, importance: #HIGH, label: 'First Payment'} ] }
        
        CashDiscount1Days,

        @UI: {fieldGroup: [ {groupLabel:'Second Payment', qualifier: 'SecondPayment', position: 10, importance: #HIGH, label: 'Second Payment'} ] }
        
        CashDiscount2Days,

        @UI.fieldGroup: [ { groupLabel:'Cash Discount', qualifier: 'CashDiscount', position: 10, importance: #HIGH,
        label: 'Cash Discount' } ]
        
        NetPaymentDays,

        @UI.fieldGroup: [ {groupLabel:'First Payment', qualifier: 'FirstPayment', position: 20, importance: #HIGH,
        label: 'Discount for First Payment '} ]
        
        CashDiscount1Percent,

        @UI: {fieldGroup: [ {qualifier: 'SecondPayment', position: 20, importance: #HIGH,
        label: 'Discount for Second Payment'} ] }
        
        CashDiscount2Percent,

        @Semantics.amount.currencyCode: 'DocumentCurrency'
        @UI: {
             // lineItem :  [{position: 30, label: 'Target Value'}],

              fieldGroup: [ {groupLabel:'Basic Data', qualifier: 'BasicData', position: 10, importance: #HIGH
             } ] }
        PurchaseContractTargetAmount,

        @UI: {
        //lineItem : [{position: 50, label: 'Valid From'}],

               fieldGroup: [ {qualifier: 'BasicData', position: 20, importance: #HIGH, label:'Valid From' }  ] }
        
        ValidityStartDate,

        @UI: {
        //lineItem : [{position: 60, label: 'Valid To'}],

              fieldGroup: [ {qualifier: 'BasicData', position: 30, importance: #HIGH, label:'Valid To'} ],
        //      dataPoint     : {title: 'Valid To'},

               facet: [ {position: 40,targetQualifier: 'Headerstatus',label: 'Valid to' } ]
               }
        
        ValidityEndDate,

        @EndUserText.label: 'Release Indicator'
        ReleaseCode,

        @UI.hidden: true
        PurchasingDocVersionReasonCode,
        
        @Consumption.filter.hidden: true // 3158608

        PurchasingDocumentDeletionCode,
        SupplierAddressID,

        @UI: {fieldGroup: [ {qualifier: 'RefDetails', position: 40, importance: #HIGH} ] }
        @Consumption.valueHelpDefinition: [
        { entity:  { name:    'C_SupplierPurchOrgVH',
                   element: 'Supplier' }
        }]
        
        SupplyingSupplier,

        @UI: {fieldGroup:[ {qualifier: 'RefDetails', position: 30, importance: #HIGH}]}
        @ObjectModel: { foreignKey.association: '_InvoicingParty' }
        @Consumption.valueHelpDefinition: [
        { entity:  { name:    'C_SupplierPurchOrgVH',
                    element: 'Supplier' }
        }]
        
        InvoicingParty,

        @UI.fieldGroup: [ {groupLabel:'Target Value', qualifier: 'TargetValue', position: 30, importance: #HIGH,
        label: 'Exchange Rate'} ]
        
        ExchangeRate,

        @UI: {fieldGroup: [ {qualifier: 'TargetValue', position: 40, importance: #HIGH,
        label: 'Fixed Exchange Rate'} ] }
        
        ExchangeRateIsFixed,

        @UI: {fieldGroup: [ {qualifier: 'Quotation', position: 10, importance: #HIGH} ]}
        
        QuotationSubmissionDate,

        @UI: {fieldGroup: [ {qualifier: 'Quotation', position: 20, importance: #HIGH} ]}
        
        @Consumption.semanticObject: 'SupplierQuotation'
        SupplierQuotation,

        @UI: {fieldGroup: [ {qualifier: 'Quotation' , position: 30, importance: #HIGH } ] }
        
        CorrespncExternalReference,

        @UI: {fieldGroup: [ {qualifier: 'Quotation', position: 40, importance: #HIGH} ]}
        
        CorrespncInternalReference,

        @UI: {fieldGroup: [ {qualifier: 'RefDetails', position: 10, importance: #HIGH,
        label: 'Salesperson'} ] }
        
        SupplierRespSalesPersonName,

        @UI: {fieldGroup: [ {qualifier: 'RefDetails', position: 20, importance: #HIGH } ]}
        
        SupplierPhoneNumber,

        
        @UI: {fieldGroup: [ {groupLabel:'Incoterms', qualifier: 'IncoTerms', position: 30, importance: #HIGH,
        label: 'Incoterms Version'} ]}
        @ObjectModel.foreignKey.association:'_PurCtrTermVersion'
        @Consumption.valueHelpDefinition: [{entity: {name: 'I_PurCtrIncoVersion', element: 'IncotermsVersion'} }]
        @UI.textArrangement: #TEXT_FIRST
        @ObjectModel.text.element: ['IncotermsVersionName']
        IncotermsVersion,
        
        @UI.hidden: true
        @Semantics.text: true
        @ObjectModel.readOnly: true
        _PurCtrTermVersion.IncotermsVersionName,        

        @UI: {fieldGroup:[ { qualifier: 'IncoTerms', position: 50, importance: #HIGH,
        label: 'Incoterms Location 1 Description'}]}
        
        IncotermsLocation1,

        @UI: {fieldGroup: [{ qualifier: 'IncoTerms', position: 40, importance: #HIGH,
        label: 'Incoterms Location 1'}]}
        
        @Consumption.valueHelpDefinition: [{entity: {name: 'I_TransportationLocationVH', element: 'Location'} }]
        @UI.textArrangement: #TEXT_FIRST
        cast( ' ' as tminco_loc_1_id )                                                                 as IncotermsLocation1Identifier,
        @UI.hidden: true
        IncotermsSupChnLoc1AddlUUID,

           
        @UI: {fieldGroup: [ { qualifier: 'IncoTerms', position: 90, importance: #HIGH,
        label: 'Incoterms Location 2 Description'}]}
        
        IncotermsLocation2,

        @UI: {fieldGroup: [ { qualifier: 'IncoTerms', position: 80, importance: #HIGH,
        label: 'Incoterms Location 2'}]}
        
        @Consumption.valueHelpDefinition: [{entity: {name: 'I_TransportationLocationVH', element: 'Location'} }]
        @UI.textArrangement: #TEXT_FIRST
        cast( ' ' as tminco_loc_2_id )                                                                 as IncotermsLocation2Identifier,

        @UI.hidden: true
        IncotermsSupChnLoc2AddlUUID,

        @UI.fieldGroup:[{qualifier: 'IncoTerms', position: 70, label: 'Deviating Place of Destination Desc'}]
        @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
        cast( ' ' as tminco_loc_d_descr )                                                              as IncotermsDvtgLocDescription,


        @UI: {fieldGroup: [{ qualifier: 'IncoTerms', position: 60, importance: #HIGH,
        label: 'Deviating Place of Destination'}]}
        
        @Consumption.valueHelpDefinition: [{entity: {name: 'I_TransportationLocationVH', element: 'Location'} }]
        @UI.textArrangement: #TEXT_FIRST
        cast( ' ' as tminco_loc_d_id )                                                                 as IncotermsDvtgLocIdentifier,

        @UI.hidden: true
        IncotermsSupChnDvtgLocAddlUUID,



        @Search: { defaultSearchElement: true, fuzzinessThreshold: 0.7, ranking: #LOW}
        @UI: { fieldGroup: [{qualifier: 'Header', position: 10, importance: #HIGH, label:'Purchase Contract Name' }]}        
               // identification: { position: 8, importance:#HIGH, label:'Purchase Contract Name'} }

        
        PurchasingDocumentName,

        @UI.hidden: true
        PurchasingDocumentOrigin,

        ReleaseIsNotCompleted,

        //@UI.hidden: true

        //PurchasingItemHasHierarchy, // Changes of purchase contract with hierarchy items


        //@ObjectModel.readOnly: true

        //@EndUserText.label: 'Consumed Value'

        //_ContractTransientField.PurchaseContractConsumedAmount as PurContrConsumedVal, //part of VDM changes


        //@ObjectModel.readOnly: true

        //@ObjectModel.sort.enabled: false

        //_PurContrValidityStatus.PurContrStatusCriticality,

        
        //@ObjectModel.readOnly: true

        //@UI.hidden: true

        //PurContrValidityStatus_2,       

        
        // @ObjectModel.readOnly: true

        // @ObjectModel.sort.enabled: true

        // @ObjectModel.filter.enabled: true

        // @EndUserText.label: 'Validity Status'

        // @EndUserText.quickInfo: 'Validity Status'

        // @Consumption.valueHelpDefinition: [

        //   { entity:  { name:    'I_PurContrValidityStatusVH',

        //                element: 'PurContrValidityStatusText' } }]

        // @UI: {

        //        selectionField: [{position:30}], 

        //        lineItem: [{position: 70, label: 'Validity Status', criticality: 'PurContrStatusCriticality', criticalityRepresentation: #WITHOUT_ICON }]

        //        }     

        // _PurContrValdtyStatusValueHelp.PurContrValidityStatusText,  

        

        @ObjectModel.readOnly: true
        @UI.hidden: true
        _PurchaseContractStatus.PurchasingProcessingStatusName,

        //@ObjectModel.readOnly: true

        //@EndUserText.label: 'Advncd Pur. Con. Ind.'

        //@EndUserText.quickInfo: 'Advanced Purchase Contract Indicator'

        //@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'

        //_ContractTransientField.PurContrHasAdvncdUsrInterface,


        //@ObjectModel.readOnly: true

        //_ContractTransientField.NumberOfDays,


        //@ObjectModel.readOnly: true

        //@ObjectModel.virtualElement : true

        //_ContractTransientField.IsExpired,


        //@UI.hidden: true  

        //@ObjectModel.readOnly: true

        //@ObjectModel.virtualElement : true

        //@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'

        //_ContractTransientField.PurContrOutputCtrlType,


        //@EndUserText.label: 'Output Control Status'

        //@ObjectModel.readOnly: true

        //@ObjectModel.virtualElement : true

        //@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'

        //_ContractTransientField.PurContrOutputCtrlStatus,


        //@EndUserText.label: 'Output Control Status Text'

        //@ObjectModel.readOnly: true

        //@ObjectModel.virtualElement : true

        //@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'

        //_ContractTransientField.PurContrOutputCtrlStatusTxt,


        //@ObjectModel.readOnly: true

        //@ObjectModel.virtualElement : true

        //@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'

        //_ContractTransientField.PurContrOutputCtrlDateTime     as PurContrOutputCtrlTime,


        //@ObjectModel.readOnly: true

        //@ObjectModel.virtualElement : true

        //@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'

        //_ContractTransientField.AccWorkflowApprover,


        //@UI.hidden: true //to remove duplicate from personalisation

        //@ObjectModel.readOnly: true

        //@ObjectModel.virtualElement : true

        //@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'

        //_ContractTransientField.AccWorkflowApproverFirstName,


        //@ObjectModel: {

        //  readOnly: true,

        //  virtualElement,

        //  virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'

        //  }

        //@UI: {

        //  lineItem: {position: 80, label: 'Approval Status'},

        //  dataPoint: { title: 'Approval Status' }}

        //@EndUserText.quickInfo: 'Status of Approval'

        //_ContractTransientField.ApprovalStatusName,


        //@ObjectModel.filter.enabled: false

        //_CTRApprover,


        @ObjectModel: {
        readOnly: true,
        virtualElement,
        virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'
        }
        cast( '' as mm_approver_name )                         as ApproverName,

        @ObjectModel: {
          readOnly: true,
          virtualElement,
          virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'
        }
        @UI.hidden: true
        cast( 0 as mmpur_approver_count )                      as PurchaseContrNumberOfApprovers,

        //To avoid additional call in object page

        //@UI: {fieldGroup: [ {qualifier: 'AddOnField', position: 10, importance: #HIGH , label:'Approver'} ]}

        //@ObjectModel.filter.enabled: false

        //@ObjectModel.readOnly: true

        //@UI.multiLineText: true

        //_ContractTransientField.WorkflowApproverNote,  


        //@ObjectModel: {

        //  readOnly: true,

        //  virtualElement,

        //  virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'

        //  }

        //@UI: {

        //  dataPoint: { title: 'Purchasing Document Status' }}

        //@EndUserText.quickInfo: 'Short Description of Purchasing Document'

        //_ContractTransientField.PurchasingDocumentStatus,


        //@ObjectModel.readOnly: true

        //@UI.hidden: true

        //_ContractTransientField.WeightedRelevance,


        //@ObjectModel.readOnly: true

        //@ObjectModel.virtualElement : true

        //@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'

        //@EndUserText.label: 'Consumption Criticality'

        //_ContractTransientField.PurContrCnsmpnCriticality,


        //@UI.hidden: true

        //@ObjectModel.readOnly: true

        //PurContrCriticalityStatus,


        //@UI.hidden: true

        //@ObjectModel.readOnly: true

        //_PurContrCriticalityStatus.StatusCriticality,

                       
        //@ObjectModel.readOnly: true

        //@ObjectModel.sort.enabled: false

        //@ObjectModel.filter.enabled: true

        //@EndUserText.label: 'Attention Required'

        // @EndUserText.quickInfo: 'Attention Required'

        //@Consumption.valueHelpDefinition: [

        //  { entity:  { name:    'I_PurContrCriticalityStatus',

        //               element: 'PurContrCriticalityStatusText' } }]

        //@UI: {

        //       selectionField: [{position:20}],

        //       dataPoint: { title: 'Attention Required' }  }

        //_PurContrCriticalityStatus.PurContrCriticalityStatusText,


        @ObjectModel.readOnly: true
        @ObjectModel.filter.enabled: true
        @UI.selectionField: [{position: 110}]
        CreatedByUserName, 
        
        //@ObjectModel.readOnly: true

        //@UI.lineItem :[

        // {

        //  position: 20,

        //  type:#AS_DATAPOINT ,

        //  criticality: 'PurContrCnsmpnCriticality',

        //  label: 'Consumption'

        //}]

        //@UI.dataPoint:

        // {

        //   visualization:#PROGRESS,

        //  title: 'Consumption'

        //}

        
        //@ObjectModel.virtualElement : true

        //@EndUserText.label: 'Consumption'

        //@ObjectModel.sort.enabled: false

        //ContractConsumptionInPct,

 
        //@ObjectModel.readOnly: true

        //@UI.hidden: true

        // IsPurContrTemplate,


        //@ObjectModel.readOnly: true

        //@EndUserText.quickInfo: 'Change Record Reference UUID'

        //@UI.hidden: true

        //ChangeRecordReferenceUUID,      

        
        @ObjectModel.readOnly: true
        @ObjectModel.filter.enabled:true
        @EndUserText.label: 'Source System ID'
        @UI: {fieldGroup: [ { qualifier: 'ExtRefDetails',position: 90, importance: #HIGH , label:'Source System ID'} ] }
        _PurchaseContractExtReference.PurgDocExternalReference,
        
        @ObjectModel.readOnly: true
        @ObjectModel.filter.enabled:false  
        @EndUserText.label: 'Source System'
        @UI: {fieldGroup: [ { qualifier: 'ExtRefDetails',position: 80, importance: #HIGH , label:'Source System'} ] }
        _PurchaseContractExtReference.PurgOutlineAgrmtExtSystID,
        
        // To check visiblity of legal transation

        @ObjectModel: { virtualElement,
                     virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT',
                     readOnly: true }
        @UI.hidden: true
        cast( '' as boolean)                                   as IsLglTransIntegEnabled,

        @UI.hidden: true
        @Semantics.text: true
        @ObjectModel.readOnly: true
        _PaymentTermsText[1: Language = $session.system_language].PaymentTermsName,

       // @UI: { fieldGroup: [ {qualifier: 'AddOnField', position: 30, importance: #HIGH , label:'Predicted Expiry Date'} ] }

       // @ObjectModel: { readOnly: true }

       // @EndUserText.label: 'Predicted Expiry Date'

       // _ContractTransientField.ContractExpiryPredictedDate,



       // @UI.hidden: true  

       // SupplierOperationalScore ,

        
       // @ObjectModel: { readOnly: true } 

       // @EndUserText.label: 'Supplier Evaluation Score'

       // @UI: {

       //   dataPoint: { title: 'Supplier Evaluation Score' }

       //    }

       // _ContractTransientField.SuplrEvalOplScrInDcmlVal ,        

        

        IsEndOfPurposeBlocked,

        //@UI.hidden: true

        //@Semantics.text: true

        //@ObjectModel.readOnly: true

        //_CompanyCodeValueHelp.CompanyCodeName,


        //@UI.hidden: true

        //@Semantics.text: true

        //@ObjectModel.readOnly: true

        //_PurchasingOrganization.PurchasingOrganizationName,


        //@UI.hidden: true

        //@Semantics.text: true

        //@ObjectModel.readOnly: true

        //_PurchasingGroup.PurchasingGroupName,


        //@UI.hidden: true

        //@Semantics.text: true

        //@ObjectModel.readOnly: true

        _DocumentCurrencyText.CurrencyName,

        //@UI.hidden: true

        //@Semantics.text: true

        //@ObjectModel.readOnly: true

        //_PurCtrIncotermVersion.IncotermsVersionName,


        //@UI.hidden: true

        //@Semantics.text: true

        //@ObjectModel.readOnly: true

        //_IncotermsClassificationText.IncotermsClassificationName,


        @ObjectModel: { readOnly: true }
        @UI.fieldGroup: [ { groupLabel: 'Product Compliance', position: 10, qualifier: 'ProductCompliance'
        ,criticality: 'UICT_PurgAggrgdCmplncSuplrSts',criticalityRepresentation: #WITHOUT_ICON
        } ]
        @Consumption.valueHelpDefinition: [
             { entity:  { name:    'I_PurContrProdCmplncSuplrVH',
                          element: 'PurgTotProdCmplncSuplrStsName' } }]
        @EndUserText.label: 'Product Compliance Supplier Check'
        _PurgTotProdCmplncSuplrStsT.PurgTotProdCmplncSuplrStsName,

        @UI.hidden: true
        PurgAggrgdProdCmplncSuplrSts,

        @UI.hidden: true
        @ObjectModel: {
          readOnly: true,
          virtualElement,
          virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'
        }
        cast ('' as abap.char( 1 ) )                           as UICT_PurgAggrgdCmplncSuplrSts,

        @ObjectModel: {
          readOnly: true,
          virtualElement,
          virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'
        }
        @UI.hidden: true
        cast ('' as ehfnd_boolean)                             as ProductComplianceIsActive,

        @ObjectModel: {
          readOnly: true,
          virtualElement,
          virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'
        }
        @UI.hidden: true
        cast ('' as ehfnd_bf_pcs_is_active)                    as BusFtreProdCmplncSuplrIsActive,

        //@UI.selectionField: {position: 120}

        @ObjectModel.virtualElement:true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'
        @ObjectModel.filter.transformedBy: 'CL_PURCHASECON_TRA_EXIT'
        @ObjectModel.readOnly: true
        @EndUserText.label: 'Material'
        @Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_MaterialValueHelp', element : 'Material' } }]
        cast( '' as matnr )                                    as Material,

        //@UI.selectionField: {position: 130}

        @ObjectModel.virtualElement:true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'
        @ObjectModel.filter.transformedBy: 'CL_PURCHASECON_TRA_EXIT'
        @ObjectModel.readOnly: true
        @EndUserText.label: 'Material Group'
        @Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_MaterialGroupValueHelp', element : 'MaterialGroup' } }]
        cast( '' as matkl )                                    as MaterialGroup,

        //@UI.selectionField: {position: 140}

        @ObjectModel.virtualElement:true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'
        @ObjectModel.filter.transformedBy: 'CL_PURCHASECON_TRA_EXIT'
        @ObjectModel.readOnly: true
        @EndUserText.label: 'Product Type'
        @Consumption.valueHelpDefinition: [{ entity: { name : 'C_ContractPrdTypeVH', element : 'ProductType' } }]
        cast( '' as producttype )                              as ProductType,

        @ObjectModel.readOnly: true
        @ObjectModel.virtualElement : true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'
        cast( '' as mmpur_ctr_d_rework_ind )                   as PurContrIsApplicableForRework,

        //@ObjectModel.readOnly: true

        //@ObjectModel.virtualElement : true

        //@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'

        //PurContrApproverCommentText,


        //@Consumption.filter.hidden:true

        //PurContrReworkCommentText,


        @ObjectModel: {
          readOnly: true,
          virtualElement,
          virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT'
        }
        @UI.hidden: true
        cast ('' as boolean)                                   as SrvcProcmtItmHierIsEnbld,
        
        @ObjectModel: { readOnly: true, virtualElement, virtualElementCalculatedBy: 'ABAP:CL_PURCHASECON_TRA_EXIT' }
        @UI.hidden: true
        cast ('' as boolean)                                   as PurContrCatalogItemIsEnbld,
        
        @UI: {fieldGroup: [ {qualifier: 'PurchData', position: 30, importance: #HIGH} ] }        
        
        @EndUserText.label: 'Catalog Relevant'
        PurgHasCatalogRelevantItems,
        
          
        PurgDocChangeRequestStatus,
        
        @ObjectModel.readOnly: true
        @UI.dataPoint:
        {
          visualization: #PROGRESS,
          title: 'Consumption'                    
        }
        @ObjectModel.virtualElement : true
       // @EndUserText.label: 'Consumption'

        @ObjectModel.sort.enabled: false
        _PurContrCnsmpnInPercentage.ContractConsumptionInPct as ContractConsumptionInPct, 
        
        PurgDocIsChgVers,        
        
      //Hierarchy

        cast( ' ' as boolean)                                                                          as PurchasingItemHasHierarchy,

      /* Associations */
      _PurContrHdrCndnValdtyTP,//FOr showign Header condition

      _PurchaseContractTypeVH,
      _PurchaseContractItemTP,
      _LegalTransaction,
      _PurchaseContractStatus,
      _PurCtrNotesWD ,
      _PurCtrPartnersWithDraft,
      //_PurContrStatusText,

      _VersionReasonVH,
      _SupplierValueHelp,
      _InvoicingParty,
      _PurchasingOrganization,      
      _PurchasingGroup,
      _CompanyCodeValueHelp,     
      _PurCtrTermVersion,
      _DocumentCurrency,
      _IncotermsClassification,
      @ObjectModel.filter.enabled:false
      _PurchaseContrItemHierarchyTP
      
}