@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #NOT_REQUIRED
@ObjectModel: { representativeKey: 'SourcingProjectQuotationUUID',
semanticKey: ['SourcingProjectQuotation', 'SrcgProjQuotationVersion'],
usageType.dataClass: #TRANSACTIONAL,
usageType.serviceQuality: #C,
usageType.sizeCategory: #L
}
@VDM.viewType: #CONSUMPTION
@EndUserText.label: 'Sourcing Project Quotation'
@Search.searchable: true
define view entity C_SrcgProjQuotationCompare
with parameters
@UI.hidden:true
P_DisplayCurrency : displaycurrency
as select from R_SourcingProjectQuotation
association [0..1] to I_BusinessPartnerSupplier as _BusinessPartnerSupplier on $projection.Bidder = _BusinessPartnerSupplier.BusinessPartner
association [0..1] to P_SrcgProjQuotationDeviation as _SrcgProjQuotationDeviation on $projection.SourcingProjectQuotationUUID = _SrcgProjQuotationDeviation.SourcingProjectQuotationUUID
association [0..1] to I_UnitOfMeasure as _UnitOfMeasure on _UnitOfMeasure.UnitOfMeasure = '%'
association [0..*] to I_SrcgProjQtnSuitabilityTxt as _SrcgProjQtnSuitabilityTxt on $projection.SrcgProjQtnSuitability = _SrcgProjQtnSuitabilityTxt.SrcgProjQtnSuitability
//Extension
association [1..1] to E_SourcingProjectQuotation as _Extension on $projection.SourcingProjectQuotationUUID = _Extension.SourcingProjectQuotationUUID
association [0..*] to C_SPQtnItmCmmdtyQtyCompare as _SPQtnItmCmmdtyQtyCompare on $projection.SourcingProjectQuotationUUID = _SPQtnItmCmmdtyQtyCompare.SourcingProjectQuotationUUID
association [0..1] to R_SourcingProjectNegotiation as _SourcingProjectNegotiation on $projection.SourcingProjectNegotiationUUID = _SourcingProjectNegotiation.SourcingProjectNegotiationUUID
association [0..1] to I_Country as _Country on $projection.country = _Country.Country
{
@UI.hidden: true
key SourcingProjectQuotationUUID,
@Consumption.semanticObject: 'SourcingProjectQuotation'
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 1 }
@UI.selectionField: [{ position: 10 }]
@UI.lineItem: [{ position: 10 }]
@UI.identification: [{ position: 10, importance: #HIGH }]
SourcingProjectQuotation,
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 1 }
@UI.selectionField: [{ position: 20 }]
@UI.lineItem: [{ position: 20 }]
@UI.identification: [{ position: 20, importance: #HIGH }]
SrcgProjQuotationVersion,
@UI.lineItem: [{ position: 21, criticality: 'UICT_SrcgProjQtnIsSimulated', criticalityRepresentation: #WITHOUT_ICON }]
@UI.identification: [{ position: 21, importance: #HIGH, criticality: 'UICT_SrcgProjQtnIsSimulated', criticalityRepresentation: #WITHOUT_ICON }]
SrcgProjQuotationIsSimulated,
@UI.lineItem: [{ position: 22, importance: #HIGH }]
@UI.identification: [{ position: 22, importance: #HIGH }]
SourcingProjectQuotationName,
@UI.hidden: true
case
when SrcgProjQuotationIsSimulated = 'X'
then 2
else 0
end as UICT_SrcgProjQtnIsSimulated,
@UI.selectionField: [{ position: 30 }]
@UI.textArrangement: #TEXT_ONLY
@UI.lineItem: [{ position: 30 }]
@Consumption.valueHelpDefinition: [{entity.name: 'I_SrcgProjQtnLifecycleSts',entity.element:'SrcgProjQtnLifecycleStatus'}]
@ObjectModel.foreignKey.association: '_SrcgProjQtnLifecycleSts'
@UI.identification: [{ position: 30, importance: #HIGH }]
SrcgProjQtnLifecycleStatus,
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 1 }
@UI.selectionField: [{ position: 40 }]
@UI.lineItem: [{ position: 40 }]
@ObjectModel.foreignKey.association: '_BusinessPartner'
Bidder,
@UI.lineItem: [{ position: 50 }]
@ObjectModel.foreignKey.association: '_Country'
_BusinessPartner._CurrentDefaultAddress._AddressDefaultRepresentation.Country,
_BusinessPartner.BusinessPartnerName,
_BusinessPartnerSupplier.Supplier,
@UI.hidden: true
_SourcingProject.SourcingProject,
//@UI.hidden: true
@UI.selectionField: [{ position: 100 }]
//@UI.lineItem: { position: 100, importance: #HIGH }
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 1 }
@EndUserText.label: 'Sourcing Project Version'
_SourcingProject.SourcingProjectVersion,
@UI.hidden: true
_SourcingProject.SrcgProjLifecycleStatus,
@Consumption.filter.hidden: true
$parameters.P_DisplayCurrency as DisplayCurrency,
@UI.lineItem: [{ position: 60, importance: #HIGH }]
@Semantics.amount.currencyCode: 'DisplayCurrency'
cast(currency_conversion( amount => SrcgProjQtnTotNetAmt,
source_currency => SrcgProjQtnOfferCurrency,
round => 'X',
target_currency => $parameters.P_DisplayCurrency,
exchange_rate_date => cast($session.system_date as abap.dats),
exchange_rate_type => cast(_SourcingProject.ExchangeRateType as kurst),
error_handling => 'SET_TO_NULL' ) as vdm_srcgprojqtntotnetamt preserving type ) as SrcgProjQtnTotNetAmt,
@Semantics.amount.currencyCode: 'DisplayCurrency'
cast(currency_conversion( amount => _SourcingProject.SrcgProjTotalTargetAmount,
source_currency => _SourcingProject.DocumentCurrency,
round => 'X',
target_currency => $parameters.P_DisplayCurrency,
exchange_rate_date => cast($session.system_date as abap.dats),
exchange_rate_type => cast(_SourcingProject.ExchangeRateType as kurst),
error_handling => 'SET_TO_NULL' ) as vdm_srcgprojqtntottargetamount preserving type ) as SrcgProjQtnTotalTargetAmount,
SrcgProjQtnOfferCurrency,
@Semantics.amount.currencyCode: 'SrcgProjQtnOfferCurrency'
@EndUserText.label: 'Deviation (in Quotation Currency)'
_SrcgProjQuotationDeviation.SrcgProjQtnDeviationAmount,
@Semantics.quantity.unitOfMeasure: 'UnitOfMeasure'
_SrcgProjQuotationDeviation.SrcgProjQtnDeviationPercent,
_UnitOfMeasure.UnitOfMeasure,
@UI.hidden: true
SourcingProjectQuotationType,
@UI.hidden: true
SourcingProjectUUID,
@ObjectModel.foreignKey.association: '_CompanyCode'
CompanyCode,
@ObjectModel.foreignKey.association: '_PurchasingOrganization'
PurchasingOrganization,
@ObjectModel.foreignKey.association: '_PurchasingGroup'
PurchasingGroup,
@UI.hidden: true
SrcgProjQtnSuitability,
@EndUserText.label: 'Suitability'
@EndUserText.quickInfo: 'Suitability'
_SrcgProjQtnSuitabilityTxt[1:Language = $session.system_language ].SrcgProjQtnSuitabilityText,
@UI.hidden: true
IsEndOfPurposeBlocked,
@UI.hidden: true
MaterialGroup,
@UI.hidden: true
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_SPQTN_COM_HD_TRN_EXT'
cast ( '' as boole_d preserving type ) as UICT_InAwarding,
@UI.hidden: true
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_SPQTN_COM_HD_TRN_EXT'
cast ( '' as boole_d preserving type ) as UICT_InNegotiation,
@UI.hidden: true
SourcingProjectNegotiationUUID,
_SourcingProjectNegotiation.SourcingProjectNegotiationType,
//DCL
_SourcingProject,
//foreign key
@Consumption.filter.hidden: true
_SrcgProjQtnLifecycleSts,
@Consumption.filter.hidden: true
_BusinessPartner,
@Consumption.filter.hidden: true
_CompanyCode,
@Consumption.filter.hidden: true
_PurchasingOrganization,
_SrcgProjQtnSuitabilityTxt,
@Consumption.filter.hidden: true
_PurchasingGroup,
_SPQtnItmCmmdtyQtyCompare,
@Consumption.filter.hidden: true
_Country
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ADDRESS_2",
"I_BPCURRENTDEFAULTADDRESS",
"I_BUSINESSPARTNER",
"I_BUSINESSPARTNERSUPPLIER",
"I_SRCGPROJQTNSUITABILITYTXT",
"I_UNITOFMEASURE",
"P_SRCGPROJQUOTATIONDEVIATION",
"R_SOURCINGPROJECT",
"R_SOURCINGPROJECTNEGOTIATION",
"R_SOURCINGPROJECTQUOTATION"
],
"ASSOCIATED":
[
"C_SPQTNITMCMMDTYQTYCOMPARE",
"I_BUSINESSPARTNER",
"I_COMPANYCODE",
"I_COUNTRY",
"I_PURCHASINGGROUP",
"I_PURCHASINGORGANIZATION",
"I_SRCGPROJQTNLIFECYCLESTS",
"I_SRCGPROJQTNSUITABILITYTXT",
"R_SOURCINGPROJECT"
],
"BASE":
[
"R_SOURCINGPROJECTQUOTATION"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/