@AccessControl.authorizationCheck: #MANDATORY
@Search.searchable: true
@VDM: { viewType:#CONSUMPTION,
usage.type: [#TRANSACTIONAL_PROCESSING_SERVICE] }
@ObjectModel: { semanticKey: ['SourcingProject','SourcingProjectVersion'],
representativeKey: 'SourcingProjectUUID',
modelingPattern: #TRANSACTIONAL_QUERY,
supportedCapabilities: [#TRANSACTIONAL_PROVIDER],
usageType:{ dataClass: #MIXED,
serviceQuality: #C,
sizeCategory: #L }
}
@AccessControl.privilegedAssociations: [ '_CreatedByUser', '_ChangedByUser', '_LegalTransaction' ]
@Metadata.allowExtensions: true
@EndUserText.label: 'Sourcing Project - TP'
@AbapCatalog: {
extensibility: {
extensible: true,
dataSources: ['SourcingProjectTP'],
allowNewDatasources: false,
elementSuffix: 'SPH',
quota: { maximumFields: 404,
maximumBytes: 40400 },
allowNewCompositions: true }
}
@Consumption.dbHints: ['FILTER_THRU_AGGR','PRELIMIT_BEFORE_JOIN','LIMIT_THRU_JOIN']
define root view entity C_SourcingProjectTP
provider contract transactional_query
as projection on R_SourcingProjectTP as SourcingProjectTP
association [0..*] to C_SrcgProjImprtdSuplrListBP as _SrcgProjImprtdSuplrListBP on $projection.SourcingSupplierListUUID = _SrcgProjImprtdSuplrListBP.SourcingSupplierListUUID
association [0..*] to C_SrcgProjQuotationFacet as _SrcgProjQuotationFacet on $projection.SourcingProjectUUID = _SrcgProjQuotationFacet.SourcingProjectUUID
association [0..*] to C_SrcgProjNegotiationFacet as _SrcgProjNegotiationFacet on $projection.SourcingProjectUUID = _SrcgProjNegotiationFacet.SourcingProjectUUID
association [0..*] to C_SrcgProjAwardingScenFacet as _SrcgProjAwardingScenFacet on $projection.SourcingProjectUUID = _SrcgProjAwardingScenFacet.SourcingProjectUUID
// association [0..*] to C_LegalTransactionIntegFacet as _LegalTransaction on _LegalTransaction.LglCntntMLinkdObj = $projection.SourcingProjectUniqueID
// and _LegalTransaction.LglCntntMIntegrationLink = 'SP'
association [0..*] to C_SrcgProjLglTransactionFacet as _LegalTransaction on _LegalTransaction.LglCntntMLinkdObj = $projection.SourcingProjectUniqueID
and _LegalTransaction.LglCntntMIntegrationLink = 'SP'
{
key SourcingProjectUUID,
SourcingProject,
SourcingProjectVersion,
@ObjectModel.text.element: ['SourcingProjectTypeText']
SourcingProjectType,
@ObjectModel.text.element: ['SourcingProjectTypeText']
@ObjectModel.editableFieldFor: 'SourcingProjectType'
SourcingProjectTypeForEdit,
_SourcingProjectTypeText.SourcingProjectTypeText : localized,
SourcingProjectName,
@ObjectModel.text.element: ['SrcgProjApprovalStatusName']
SrcgProjApprovalStatus,
_SrcgProjApprovalStatusText.SrcgProjApprovalStatusName : localized,
@ObjectModel.text.element: ['SrcgProjLifecycleStatusName']
SrcgProjLifecycleStatus,
_SrcgProjLifecycleStatusText.SrcgProjLifecycleStatusName : localized,
@ObjectModel.text.element: ['SourcingProjectPhaseText']
SourcingProjectPhase,
_SourcingProjectPhaseText.SourcingProjectPhaseText : localized,
SourcingSupplierListUUID,
@ObjectModel.text.element: ['SSupListLifecycleStatusName']
SourcingProjectTP._SourcingSupplierList.SrcgSuplrListLifecycleStatus as SuplrListLifecycleStatus,
_SourcingSupplierList._SrcgSuplrListLfcycStatus._Text.SSupListLifecycleStatusName : localized,
SourcingProjectTP._SourcingSupplierList.SourcingSupplierListVersion as SourcingSupplierListVersion,
@ObjectModel.text.element: ['CompanyCodeName']
CompanyCode,
@ObjectModel.text.element: ['CompanyCodeName']
@ObjectModel.editableFieldFor: 'CompanyCode'
CompanyCodeForEdit,
_CompanyCode.CompanyCodeName,
@ObjectModel.text.element: ['PurchasingGroupName']
PurchasingGroup,
@ObjectModel.text.element: ['PurchasingGroupName']
@ObjectModel.editableFieldFor: 'PurchasingGroup'
PurchasingGroupForEdit,
_PurchasingGroup.PurchasingGroupName,
@ObjectModel.text.element: ['PurchasingOrganizationName']
PurchasingOrganization,
@ObjectModel.text.element: ['PurchasingOrganizationName']
@ObjectModel.editableFieldFor: 'PurchasingOrganization'
PurchasingOrganizationForEdit,
_PurchasingOrganization.PurchasingOrganizationName,
@ObjectModel.text.element: ['MaterialGroupName']
MaterialGroup,
@ObjectModel.text.element: ['MaterialGroupName']
@ObjectModel.editableFieldFor: 'MaterialGroup'
MaterialGroupForEdit,
_MaterialGroupText.MaterialGroupName : localized,
PurchasingCategory,
@ObjectModel.text.element: ['CurrencyName']
DocumentCurrency,
_CurrencyText.CurrencyName : localized,
SrcgProjTotalTargetAmount,
@ObjectModel.text.element: ['PersonFullName']
PurchaserRespWorkAgreement,
_PersonWorkAgreement.PersonFullName,
QtnLatestSubmissionDateTime,
LastChangedByUser,
CreatedByUser,
LastChangeDateTime,
CreationDateTime,
@ObjectModel.text.element: ['IncotermsVersionName']
IncotermsVersion,
_IncotermsVersionText.IncotermsVersionName : localized,
@ObjectModel.text.element: ['IncotermsClassificationName']
IncotermsClassification,
_IncotermsText.IncotermsClassificationName : localized,
IncotermsTransferLocation,
IncotermsLocation1,
IncotermsLocation2,
@ObjectModel.text.element: ['PaymentTermsName']
PaymentTerms,
_PaymentTermsText.PaymentTermsName : localized,
CashDiscount1Days,
CashDiscount2Days,
CashDiscount1Percent,
CashDiscount2Percent,
NetPaymentDays,
/*@UI.lineItem: [{ position: 60, importance: #HIGH }]
@Semantics.amount.currencyCode: 'DocumentCurrency'
@UI.fieldGroup:[{qualifier: 'Values', position: 10, groupLabel: 'Target Value/Currency'}],
[{qualifier: 'CoPilotQuickView', position: 120}]
@UI.dataPoint: [{ title: 'Target Value' }]*/
//TargetAmount,
SrcgProjPubgDteTme,
SrcgProjCancDteTme,
SrcgProjAttchsAreForbidden,
SrcgProjNotesAreForbidden,
@ObjectModel.text.element: ['SrcgProjSourcingOriginText']
SourcingOrigin,
_SrcgProjSourcingOriginText.SrcgProjSourcingOriginText : localized,
@ObjectModel.text.element: ['SrcgProjSourcingScenarioText']
SourcingScenario,
_SrcgProjSourcingScenarioText.SrcgProjSourcingScenarioText : localized,
_SourcingProjectBiddingRatio.NumberOfBiddersWithQuotation,
_SourcingProjectBiddingRatio.NumberOfBiddersWithRefusal,
_SourcingProjectBiddingRatio.NumberOfBiddersWithoutRsp,
_SourcingProjectReasonText.ProductSourcingReasonText as SourcingProjectReasonText : localized,
@ObjectModel.text.element: ['SourcingProjectReasonText']
@Feature: 'BF:SOURCINGPROJECTREASONCODES'
SourcingProjectVersioningRsn,
_SrcgProjCancellationRsnText.ProductSourcingReasonText as SrcgProjCancellationRsnText : localized,
@ObjectModel.text.element: ['SrcgProjCancellationRsnText']
@Feature: 'BF:SOURCINGPROJECTREASONCODES'
SrcgProjCancellationRsn,
ExternalSourcingProjectRef,
_PurgDocumentCategoryText.PurchasingDocumentCategoryName : localized,
@ObjectModel.text.element: ['PurchasingDocumentCategoryName']
SrcgProjFollowOnDocumentCat,
@ObjectModel.text.element: ['PurchasingDocumentTypeName']
SrcgProjFollowOnDocumentType,
_PurchasingDocumentTypeText.PurchasingDocumentTypeName : localized,
PurContrValidityStartDate,
PurContrValidityEndDate,
@ObjectModel.text.element: ['ShippingInstructionName']
ShippingInstruction,
_ShippingInstructionText.ShippingInstructionName : localized,
SourcingProjectUniqueID,
@ObjectModel: { text.element: ['SrcgProjVersionConcatenated'] }
_SourceSourcingProject.SourcingProject as SourceSourcingProject,
_SourceSourcingProject.SrcgProjVersionConcatenated,
SourceSourcingProjectUUID,
CentralPurchaseContract,
ProcurementPlanningBundleUUID,
SrcgProjPaymentTermIsManual,
SrcgProjEarliestCndnSelDate,
@Semantics.booleanIndicator: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual SourcingProjectItemIsService : abap.char( 1 ),
@Semantics.booleanIndicator: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual SourcingProjectIsPublished : abap.char( 1 ),
@Semantics.booleanIndicator: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual SourcingProjectIsNotPublished : abap.char( 1 ),
@Semantics.booleanIndicator: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual SourcingProjectIsNotCanceled : abap.char( 1 ),
@Semantics.booleanIndicator: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual IsChangeDocumentsEnabled : abap.char( 1 ),
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual NoteTypeListText : abap.char( 450 ),
@UI.hidden: true
@Semantics.booleanIndicator: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual UICT_SourcingProjectPhase : abap.char( 1 ),
@UI.hidden: true
@Semantics.booleanIndicator: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual IsLglTransIntegEnabled : abap.char( 1 ),
@UI.hidden: true
@Semantics.booleanIndicator: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual UICT_SourcingProjectIsInPrep : abap.char( 1 ),
@UI.hidden: true
@Semantics.booleanIndicator: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual UICT_VersioningIsHidden : abap.char( 1 ),
//workaround for function import labels
@UI.hidden: true
@Semantics.booleanIndicator: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual NoteIsCopyEnabled : vdm_noteiscopyenabled,
//workaround for function import labels
@UI.hidden: true
@Semantics.booleanIndicator: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual AttachmentIsCopyEnabled : vdm_attachmentiscopyenabled,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual UICT_ConfirmDmndIsDisabled : abap_boolean,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual UICT_ConfirmDmndRsnIsEnabled : abap_boolean,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual UICT_ConfirmDmndRsnIsDsbld : abap_boolean,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual UICT_VersioningRsnIsHidden : abap_boolean,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual UICT_SupplDclnRsnIsHidden : abap_boolean,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual UICT_UlckngRsnIsHidden : abap_boolean,
@Semantics.booleanIndicator: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual SrcgScenIsNotContractUpdate : abap.char( 1 ),
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
@ObjectModel.filter.transformedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual AggregatedPlant : vdm_aggregatedplant,
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
@ObjectModel.filter.transformedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
// @ObjectModel.sort.enabled: true
@ObjectModel.sort.transformedBy: 'ABAP:CL_MM_SRCGPROJ_SORT_TRANS_EXIT'
virtual ProcmtProjAggregatedName : vdm_procmtprojaggregatedname,
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
@ObjectModel.filter.transformedBy: 'ABAP:CL_MM_SRCGPROJ_HDR_TRANS_EXIT'
virtual SrcgProjItemAggrgdClassfctn : vdm_itemaggrgdclassfctn,
/* Associations */
@ObjectModel.filter.enabled: false
_SourcingProjectItem : redirected to composition child C_SourcingProjectItemTP,
_SrcgProjProcurementProject : redirected to composition child C_SrcgProjProcurementProjectTP,
_SrcgProjAllowedCurrency : redirected to composition child C_SrcgProjAllowedCurrencyTP,
_SourcingProjectMilestone : redirected to composition child C_SourcingProjectMilestoneTP,
_SourcingProjectContact : redirected to composition child C_SourcingProjectContactTP,
_SrcgProjAllwdSuplrContact : redirected to composition child C_SrcgProjAllwdSuplrContactTP,
_SrcgProjPubdSuplrListBP : redirected to composition child C_SrcgProjPubdSuplrListBPTP,
_SourcingProjectType,
_SrcgProjImprtdSuplrListBP,
_LegalTransaction,
_SourcingSupplierList,
_SrcgProjQuotationFacet,
_SrcgProjNegotiationFacet,
_SrcgProjAwardingScenFacet,
// _SourceSourcingProject,
@ObjectModel.filter.enabled: false
_CreatedByUser,
_ChangedByUser
}