C_ContractMaintain

DDL: C_CONTRACTMAINTAIN SQL: CCTRMAINTAIN Type: view CONSUMPTION

Purchase Contract Maintain

C_ContractMaintain is a Consumption CDS View that provides data about "Purchase Contract Maintain" in SAP S/4HANA. It reads from 1 data source (I_PurchaseContractWD) and exposes 88 fields with key field PurchaseContract. It has 17 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_PurchaseContractWD I_PurchaseContractWD from

Associations (17)

CardinalityTargetAliasCondition
[1..*] C_ContractMaintainItem _PurchaseContractItemWD $projection.PurchaseContract = _PurchaseContractItemWD.PurchaseContract
[0..*] C_Contractnotes _PurCtrNotesWD $projection.PurchaseContract = _PurCtrNotesWD.PurchaseContract
[0..*] C_PurCtrPartners _PurctrpartnersWithDraft $projection.PurchaseContract = _PurctrpartnersWithDraft.PurchaseContract
[1..1] I_Purchasecontracttype_Vh _Purchasecontracttype_Vh $projection.PurchaseContractType = _Purchasecontracttype_Vh.PurchasingDocumentType
[1..1] I_PurCtrIncoVersion _PurCtrIncoVersion $projection.IncotermsVersion = _PurCtrIncoVersion.IncotermsVersion
[0..1] C_SupplierPurchOrgVH _SupplierValueHelp _SupplierValueHelp.Supplier = $projection.Supplier and _SupplierValueHelp.PurchasingOrganization = $projection.PurchasingOrganization
[0..*] C_LegalTransactionIntegFacet _LegalTransaction _LegalTransaction.LglCntntMLinkdObj = $projection.ActivePurchasingDocument and _LegalTransaction.LglCntntMIntegrationLink = 'PC'
[0..1] C_MM_CompanyCodeValueHelp _CompanyCodeValueHelp _CompanyCodeValueHelp.CompanyCode = $projection.CompanyCode
[1..*] C_PurchaseContrItemHierarchyTP _PurchaseContrItemHierarchyTP $projection.PurchaseContract = _PurchaseContrItemHierarchyTP.PurchaseContract
[0..*] C_PurchaseContractApprover _CTRApprover $projection.PurchaseContract = _CTRApprover.PurchaseContract
[0..1] I_PurgTotProdCmplncSuplrStsT _PurgTotProdCmplncSuplrStsT $projection.PurgAggrgdProdCmplncSuplrSts = _PurgTotProdCmplncSuplrStsT.PurgAggrgdProdCmplncSuplrSts and _PurgTotProdCmplncSuplrStsT.Language = $session.system_language
[1..*] C_PurContrHdrCndnValdtyTP _PurContrHdrCndnValdtyTP $projection.PurchaseContract = _PurContrHdrCndnValdtyTP.PurchaseContract
[1..*] I_PurchaseContractStatus _PurchaseContractStatus $projection.PurchasingProcessingStatus = _PurchaseContractStatus.PurchasingProcessingStatus
[1..*] I_PurContrCriticalityStatus _PurContrCriticalityStatus $projection.PurContrCriticalityStatus = _PurContrCriticalityStatus.PurContrCriticalityStatus
[0..1] I_PurchaseContractExtReference _PurchaseContractExtReference $projection.PurchaseContract = _PurchaseContractExtReference.PurchaseContract
[1..*] I_PurContrValidityStatusVH _PurContrValdtyStatusValueHelp $projection.PurContrValidityStatus_2 = _PurContrValdtyStatusValueHelp.PurContrValidityStatus_2
[1..*] C_PurContrVersionHistory _PurContrVersionHistory $projection.ActivePurchasingDocument = _PurContrVersionHistory.ActivePurchasingDocument

Annotations (20)

NameValueLevelField
AbapCatalog.sqlViewName CCTRMAINTAIN view
VDM.viewType #CONSUMPTION view
EndUserText.label Purchase Contract Maintain view
AccessControl.authorizationCheck #CHECK view
ClientHandling.algorithm #SESSION_VARIABLE view
Search.searchable true view
ObjectModel.compositionRoot true view
ObjectModel.createEnabled true view
ObjectModel.deleteEnabled true view
ObjectModel.updateEnabled true view
ObjectModel.draftEnabled true view
ObjectModel.transactionalProcessingDelegated true 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
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MIXED view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view

Fields (88)

KeyFieldSource TableSource FieldDescription
KEY PurchaseContract I_PurchaseContractWD PurchaseContract
ActivePurchasingDocument ActivePurchasingDocument Contract
PurchasingDocumentVersion PurchasingDocumentVersion Version
PurgDocIsChgVers PurgDocIsChgVers Change Request
PurchaseContractForEdit I_PurchaseContractWD PurchaseContractForEdit
PurgContractIsInPreparation PurgContractIsInPreparation Contract In Preparation
PurchaseContractType I_PurchaseContractWD PurchaseContractType
PurchasingDocumentType I_PurchaseContractWD PurchaseContractType
PurchasingDocumentCategory PurchasingDocumentCategory
PurchasingDocumentTypeName _Purchasecontracttype_Vh PurchasingDocumentTypeName
CreationDate CreationDate
Supplier Supplier
CompanyCode CompanyCode
PurchasingOrganization PurchasingOrganization
PurchasingGroup PurchasingGroup
DocumentCurrency DocumentCurrency
Currency DocumentCurrency
IncotermsClassification IncotermsClassification
IncotermsTransferLocation IncotermsTransferLocation
PaymentTerms PaymentTerms
CashDiscount1Days CashDiscount1Days
CashDiscount2Days CashDiscount2Days
NetPaymentDays NetPaymentDays
CashDiscount1Percent CashDiscount1Percent
CashDiscount2Percent CashDiscount2Percent
PurchaseContractTargetAmount PurchaseContractTargetAmount
ValidityStartDate ValidityStartDate
ValidityEndDate ValidityEndDate
ReleaseCode ReleaseCode Release Indicator
CreatedByUser CreatedByUser
PurchasingDocumentDeletionCode PurchasingDocumentDeletionCode
SupplierAddressID SupplierAddressID
SupplyingSupplier SupplyingSupplier
InvoicingParty InvoicingParty
ExchangeRate ExchangeRate
ExchangeRateIsFixed ExchangeRateIsFixed
PurgDocChangeRequestStatus PurgDocChangeRequestStatus
PurchasingDocVersionReasonCode PurchasingDocVersionReasonCode
QuotationSubmissionDate QuotationSubmissionDate
SupplierQuotation SupplierQuotation
CorrespncExternalReference CorrespncExternalReference
CorrespncInternalReference CorrespncInternalReference
SupplierRespSalesPersonName SupplierRespSalesPersonName
SupplierPhoneNumber SupplierPhoneNumber
IncotermsVersion IncotermsVersion
IncotermsLocation1 IncotermsLocation1
IncotermsLocation1Identifier IncotermsLocation1Identifier
IncotermsSupChnLoc1AddlUUID IncotermsSupChnLoc1AddlUUID
IncotermsLocation2 IncotermsLocation2
IncotermsLocation2Identifier IncotermsLocation2Identifier
IncotermsSupChnLoc2AddlUUID IncotermsSupChnLoc2AddlUUID
IncotermsDvtgLocDescription IncotermsDvtgLocDescription
IncotermsDvtgLocIdentifier IncotermsDvtgLocIdentifier
IncotermsSupChnDvtgLocAddlUUID IncotermsSupChnDvtgLocAddlUUID
PurchasingDocumentName PurchasingDocumentName
PurchasingDocumentOrigin PurchasingDocumentOrigin
ReleaseIsNotCompleted ReleaseIsNotCompleted
PurchasingProcessingStatus PurchasingProcessingStatus Status
PurchasingItemHasHierarchy PurchasingItemHasHierarchy
PurContrConsumedVal _ContractTransientField PurchaseContractConsumedAmount Consumed Value
PurContrStatusCriticality _PurContrValidityStatus PurContrStatusCriticality
PurContrValidityStatus_2 PurContrValidityStatus_2
PurContrValidityStatusText _PurContrValdtyStatusValueHelp PurContrValidityStatusText Validity Status
PurchasingProcessingStatusName _PurchaseContractStatus PurchasingProcessingStatusName
PurContrHasAdvncdUsrInterface _ContractTransientField PurContrHasAdvncdUsrInterface Advncd Pur. Con. Ind.
NumberOfDays _ContractTransientField NumberOfDays
IsExpired _ContractTransientField IsExpired
PurContrOutputCtrlType _ContractTransientField PurContrOutputCtrlType
PurContrOutputCtrlStatus _ContractTransientField PurContrOutputCtrlStatus Output Control Status
PurContrOutputCtrlStatusTxt _ContractTransientField PurContrOutputCtrlStatusTxt Output Control Status Text
PurContrOutputCtrlTime _ContractTransientField PurContrOutputCtrlDateTime
AccWorkflowApprover _ContractTransientField AccWorkflowApprover
AccWorkflowApproverFirstName _ContractTransientField AccWorkflowApproverFirstName
ApprovalStatusName _ContractTransientField ApprovalStatusName
_CTRApprover _CTRApprover
ApproverName
PurchaseContrNumberOfApprovers
WorkflowApproverNote _ContractTransientField WorkflowApproverNote
PurchasingDocumentStatus _ContractTransientField PurchasingDocumentStatus
WeightedRelevance _ContractTransientField WeightedRelevance
PurContrCnsmpnCriticality _ContractTransientField PurContrCnsmpnCriticality Consumption Criticality
PurContrCriticalityStatus PurContrCriticalityStatus
StatusCriticality _PurContrCriticalityStatus StatusCriticality
PurContrCriticalityStatusText _PurContrCriticalityStatus PurContrCriticalityStatusText Attention Required
CreatedByUserName CreatedByUserName
ContractConsumptionInPct ContractConsumptionInPct Consumption
IsPurContrTemplate IsPurContrTemplate
ChangeRecordReferenceUUID ChangeRecordReferenceUUID
@AbapCatalog.sqlViewName: 'CCTRMAINTAIN'
@VDM.viewType: #CONSUMPTION
@EndUserText.label: 'Purchase Contract Maintain'
@AccessControl.authorizationCheck: #CHECK
@ClientHandling.algorithm: #SESSION_VARIABLE
@Search.searchable: true

@ObjectModel: {
   semanticKey:  [ 'ActivePurchasingDocument' ],
   compositionRoot: true,
   createEnabled: true,
   deleteEnabled: true,
   updateEnabled: true,
   draftEnabled:true,
   transactionalProcessingDelegated: true
}

@UI.headerInfo:{
  typeName:       'Purchase Contract',
  typeNamePlural: 'Purchase Contracts',
  title:          {value: 'PurchasingDocumentName' },
  description:    {value: 'ActivePurchasingDocument'}
}
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #MIXED
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED

define view C_ContractMaintain
  as select from I_PurchaseContractWD
  association [1..*] to C_ContractMaintainItem         as _PurchaseContractItemWD        on  $projection.PurchaseContract               = _PurchaseContractItemWD.PurchaseContract
  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..1] to I_Purchasecontracttype_Vh      as _Purchasecontracttype_Vh       on  $projection.PurchaseContractType           = _Purchasecontracttype_Vh.PurchasingDocumentType
  association [1..1] to I_PurCtrIncoVersion            as _PurCtrIncoVersion             on  $projection.IncotermsVersion               = _PurCtrIncoVersion.IncotermsVersion
  association [0..1] to C_SupplierPurchOrgVH           as _SupplierValueHelp             on  _SupplierValueHelp.Supplier                = $projection.Supplier
                                                                                         and _SupplierValueHelp.PurchasingOrganization  = $projection.PurchasingOrganization
  association [0..*] to C_LegalTransactionIntegFacet   as _LegalTransaction              on  _LegalTransaction.LglCntntMLinkdObj        = $projection.ActivePurchasingDocument
                                                                                         and _LegalTransaction.LglCntntMIntegrationLink = 'PC'
  association [0..1] to C_MM_CompanyCodeValueHelp      as _CompanyCodeValueHelp          on  _CompanyCodeValueHelp.CompanyCode          = $projection.CompanyCode
  association [1..*] to C_PurchaseContrItemHierarchyTP as _PurchaseContrItemHierarchyTP  on  $projection.PurchaseContract               = _PurchaseContrItemHierarchyTP.PurchaseContract
  association [0..*] to C_PurchaseContractApprover     as _CTRApprover                   on  $projection.PurchaseContract               = _CTRApprover.PurchaseContract
  association [0..1] to I_PurgTotProdCmplncSuplrStsT   as _PurgTotProdCmplncSuplrStsT    on  $projection.PurgAggrgdProdCmplncSuplrSts   = _PurgTotProdCmplncSuplrStsT.PurgAggrgdProdCmplncSuplrSts
                                                                                         and _PurgTotProdCmplncSuplrStsT.Language       = $session.system_language
  association [1..*] to C_PurContrHdrCndnValdtyTP      as _PurContrHdrCndnValdtyTP       on  $projection.PurchaseContract               = _PurContrHdrCndnValdtyTP.PurchaseContract
  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 [1..*] to C_PurContrVersionHistory       as _PurContrVersionHistory        on  $projection.ActivePurchasingDocument       = _PurContrVersionHistory.ActivePurchasingDocument

{
        @ObjectModel.readOnly: true
        @ObjectModel.text.element: ['PurchasingDocumentName']
        @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 1.0 }
        @UI: {  lineItem      : [
                  //{position: 10, label: 'Contract', importance: #HIGH  },

                  {dataAction: 'BOPF:COPY_CONTRACT', type: #FOR_ACTION, label:'Copy'},
                  {dataAction: 'BOPF:WITHDRAW_FROM_APPROVAL', type: #FOR_ACTION, label:'Withdraw from Approval'}
                  ],
                  identification : [ {position: 10, type: #FOR_ACTION, dataAction: 'BOPF:COPY_CONTRACT', label: 'Copy', importance: #HIGH, exclude: true},
                  {position: 10, type: #FOR_ACTION, dataAction: 'BOPF:WITHDRAW_FROM_APPROVAL', label: 'Withdraw from Approval', importance: #HIGH, exclude: true}]
                  }
        @Consumption.semanticObject: 'PurchaseContract'
        @UI.hidden: true
  key   I_PurchaseContractWD.PurchaseContract,

        @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 1.0 }
        @ObjectModel.text.element: ['PurchasingDocumentName']
        @ObjectModel.readOnly: true
        @UI: {  lineItem      : [{position: 10, label: 'Contract', importance: #HIGH  }]
                  }
        @Consumption.semanticObject: 'PurchaseContract'
        @UI.fieldGroup:[{type: #WITH_INTENT_BASED_NAVIGATION, semanticObjectAction: 'manage', label: 'Purchasing Document ID'}]
        @EndUserText.label: 'Contract'
        @EndUserText.quickInfo: 'Purchase Contract'
        ActivePurchasingDocument,

        @EndUserText.label: 'Version'
        @UI: { dataPoint     : {title: 'Version'} }
        @ObjectModel.text.element: ['ChangeRequestNote']
        @UI.textArrangement: #TEXT_FIRST
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        @UI.hidden: true
        PurchasingDocumentVersion,

        @ObjectModel.readOnly: true
        @UI: { lineItem: {position: 100, importance: #HIGH} ,
               selectionField.position: 60 }
        @EndUserText.label: 'Change Request'
        @EndUserText.quickInfo: 'Purchasing Document Is Change Version'
        @UI.hidden: true
        PurgDocIsChgVers,

        @UI.hidden: true
        @ObjectModel.readOnly: true
        I_PurchaseContractWD.PurchaseContractForEdit,

        @UI: {fieldGroup: [ {qualifier: 'PurchData', position: 40,
        label: 'Contract In Preparation'} ] }
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        @EndUserText.label: 'Contract In Preparation'
        @EndUserText.quickInfo: 'Contract In Preparation'
        @UI.hidden: true
        PurgContractIsInPreparation,

        @UI:{fieldGroup: [ {qualifier: 'Header', position: 20, label: 'Contract Type'} ],
             dataPoint     : {title: 'Contract Type'},
             facet: [ {position: 10,targetQualifier: 'Headerstatus',label: 'Contract Type' } ] }
        @Search: { defaultSearchElement: true, ranking: #LOW, fuzzinessThreshold: 0.9}
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        @ObjectModel: [{ foreignKey.association: '_Purchasecontracttype_Vh' }]
        @Consumption.valueHelpDefinition: [{entity: {name: 'I_Purchasecontracttype_Vh', element: 'PurchasingDocumentType'},
                                            useForValidation: true } ]
        @UI.textArrangement: #TEXT_FIRST
        @ObjectModel.text.element: ['PurchasingDocumentTypeName']
        @ObjectModel.filter.enabled:true
        @UI.selectionField: {position: 100}
        I_PurchaseContractWD.PurchaseContractType,

        @UI.hidden: true
        I_PurchaseContractWD.PurchaseContractType as PurchasingDocumentType,

        @UI.hidden: true
        PurchasingDocumentCategory,

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

        @UI.fieldGroup: [{groupLabel:'Add On Field' ,qualifier: 'AddOnField', position: 20, importance: #HIGH,label: 'Created On'}]
        @ObjectModel.readOnly: true
        CreationDate,

        @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.readOnly:'EXTERNAL_CALCULATION'
        @ObjectModel: { foreignKey.association: '_CompanyCodeValueHelp'}
        @Consumption.valueHelpDefinition: [{entity: {name: 'C_MM_CompanyCodeValueHelp', element: 'CompanyCode'} }]
        @UI.textArrangement: #TEXT_FIRST
        @ObjectModel.text.element: ['CompanyCodeName']
        CompanyCode,

        @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' } ]
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        @UI.textArrangement: #TEXT_FIRST
        @ObjectModel.text.element: ['PurchasingOrganizationName']
        PurchasingOrganization,

        @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' }]
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        @UI.textArrangement: #TEXT_FIRST
        @ObjectModel.text.element: ['PurchasingGroupName']
        PurchasingGroup,


        @ObjectModel: [{ foreignKey.association: '_DocumentCurrency' }]
        @Consumption.valueHelpDefinition: [{entity: {name: 'I_Currency', element: 'Currency'} }]
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        @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'} ] }
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        @UI.textArrangement: #TEXT_FIRST
        @ObjectModel.text.element: ['IncotermsClassificationName']
        IncotermsClassification,
        IncotermsTransferLocation,

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

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

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

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

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

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

        @Semantics.amount.currencyCode: 'DocumentCurrency'
        @UI: { lineItem :  [{position: 30, label: 'Target Value'}],
              fieldGroup: [ {groupLabel:'Basic Data', qualifier: 'BasicData', position: 10, importance: #HIGH
             } ] }
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        PurchaseContractTargetAmount,

        @UI: {
        lineItem : [{position: 50, label: 'Valid From'}],
               fieldGroup: [ {qualifier: 'BasicData', position: 20, importance: #HIGH, label:'Valid From' }  ] }
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        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' } ]
               }
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        ValidityEndDate,

        @EndUserText.label: 'Release Indicator'
        ReleaseCode,

        @ObjectModel.readOnly: true
        @ObjectModel.filter.enabled: false
        CreatedByUser,

        @Consumption.filter.hidden: true // 3158608

        @UI.hidden:true //3320120        

        PurchasingDocumentDeletionCode,
        SupplierAddressID,

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

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

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

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

        @ObjectModel.readOnly: true
        @UI.hidden: true
        PurgDocChangeRequestStatus,

        @UI: {fieldGroup: {qualifier: 'TargetValue', position: 50, importance: #HIGH,
                         label: 'Reason for New Version'}}
        @UI.textArrangement: #TEXT_ONLY
        @Consumption.valueHelpDefinition: [
              { entity:  { name:    'C_PurgDocVersionReasonValHelp',
                           element: 'PurchasingDocVersionReasonCode' }
              }]
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        //@ObjectModel.text.association: '_VersionReasonValHelp'

        @UI.hidden: true
        PurchasingDocVersionReasonCode,

        @UI: {fieldGroup: {qualifier: 'Quotation', position: 10, importance: #HIGH}}
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        QuotationSubmissionDate,

        @UI: {fieldGroup: {qualifier: 'Quotation', position: 20, importance: #HIGH}}
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        @Consumption.semanticObject: 'SupplierQuotation'
        SupplierQuotation,

        @UI: {fieldGroup: {qualifier: 'Quotation', position: 30, importance: #HIGH}}
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        CorrespncExternalReference,

        @UI: {fieldGroup: {qualifier: 'Quotation', position: 40, importance: #HIGH}}
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        CorrespncInternalReference,

        @UI: {fieldGroup: {qualifier: 'RefDetails', position: 10, importance: #HIGH,
        label: 'Salesperson'}}
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        SupplierRespSalesPersonName,

        @UI: {fieldGroup: {qualifier: 'RefDetails', position: 20, importance: #HIGH }}
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        SupplierPhoneNumber,

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

        @UI: {fieldGroup: { qualifier: 'IncoTerms', position: 50, importance: #HIGH,
        label: 'Incoterms Location 1 Description'}}
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        IncotermsLocation1,

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

        @UI: {fieldGroup: { qualifier: 'IncoTerms', position: 90, importance: #HIGH,
        label: 'Incoterms Location 2 Description'}}
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        IncotermsLocation2,

        @UI: {fieldGroup: { qualifier: 'IncoTerms', position: 80, importance: #HIGH,
        label: 'Incoterms Location 2'}}
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        @Consumption.valueHelpDefinition: [{entity: {name: 'I_TransportationLocationVH', element: 'Location'} }]
        @UI.textArrangement: #TEXT_FIRST
        IncotermsLocation2Identifier,

        @UI.hidden: true
        IncotermsSupChnLoc2AddlUUID,

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


        @UI: {fieldGroup: { qualifier: 'IncoTerms', position: 60, importance: #HIGH,
        label: 'Deviating Place of Destination'}}
        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        @Consumption.valueHelpDefinition: [{entity: {name: 'I_TransportationLocationVH', element: 'Location'} }]
        @UI.textArrangement: #TEXT_FIRST
        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'} }

        @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
        PurchasingDocumentName,

        @UI.hidden: true
        PurchasingDocumentOrigin,

        ReleaseIsNotCompleted,

        @UI: {
            selectionField.position: 10 }
        @EndUserText.label: '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.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,