@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Real Estate Contract'
// Need to check below annotationf contract type
@VDM: {
// lifecycle.contract.type: #PUBLIC_REMOTE_API,
usage.type: [ #TRANSACTIONAL_PROCESSING_SERVICE ],
viewType: #CONSUMPTION
}
@ObjectModel: {
semanticKey: ['RealEstateContract', 'CompanyCode' ],
representativeKey: 'InternalRealEstateNumber',
usageType.serviceQuality: #D,
usageType.sizeCategory: #XL,
usageType.dataClass: #MASTER,
modelingPattern: #TRANSACTIONAL_PROJECTED_ENTITY,
supportedCapabilities: [ #TRANSACTIONAL_PROVIDER ]
}
@Metadata.allowExtensions: true
@Search.searchable: true
define root view entity C_REContractTP
provider contract transactional_query
as projection on R_REContractTP as REContract
// association [0..*] to C_REContractResponsibility as _REContractResponsibility on $projection.InternalRealEstateNumber = _REContractResponsibility.InternalRealEstateNumber
{
@UI.hidden: true
key InternalRealEstateNumber as InternalRealEstateNumber,
@ObjectModel.text.element: ['CompanyCodeName']
@Consumption.valueHelpDefinition: [
{ entity: {name: 'I_CompanyCodeStdVH', element: 'CompanyCode' },
additionalBinding: [
{ element: 'CompanyCodeName', localElement: 'CompanyCodeName', usage: #RESULT }
]
}]
@Consumption.semanticObject: 'CompanyCode'
@Search.defaultSearchElement: true
@Search.fuzzinessThreshold : 0.7
CompanyCode as CompanyCode,
@Search.defaultSearchElement: true
@Search.ranking: #HIGH
@Search.fuzzinessThreshold : 0.9
@Consumption.semanticObject: 'REContract'
@Consumption.valueHelpDefinition: [{ entity: {name: 'I_REContractVH', element: 'RealEstateContract' },
additionalBinding: [ { element: 'CompanyCode', localElement: 'CompanyCode' } ] }]
RealEstateContract as RealEstateContract,
REContractAlternativeID,
@ObjectModel.text.element: ['StatusProfileName']
REStatusObject as REStatusObject,
REInternalFinNumber as REInternalFinNumber,
@UI.hidden: true
RealEstateContractOID,
@ObjectModel.text.element: ['RECreationTypeName']
RECreationType as RECreationType,
@Semantics.user.createdBy: true
CreatedByUser as CreatedByUser,
@UI.hidden: true
CreationDate as CreationDate,
@UI.hidden: true
CreationTime as CreationTime,
@Semantics.systemDateTime.createdAt: true
@Consumption.filter.selectionType: #INTERVAL
CreationDateTime,
RESourceOfCreation as RESourceOfCreation,
@Semantics.user.lastChangedBy: true
LastChangedByUser as LastChangedByUser,
@UI.hidden: true
LastChangeDate as LastChangeDate,
@UI.hidden: true
LastChangeTime as LastChangeTime,
@Semantics.systemDateTime.lastChangedAt: true
LastChangeDateTime,
RESourceOfChange as RESourceOfChange,
@Consumption.valueHelpDefinition: [{ entity: { name : 'I_BusinessUserVH', element : 'UserID' } }]
// @ObjectModel: { foreignKey.association: '_ResponsibleUser' , mandatory: true }
@ObjectModel.text.element: ['REResponsibleUserDescription']
// @ObjectModel.foreignKey.association: '_UserContactCard'
// @Consumption.semanticObject: 'User'
Responsible as Responsible,
REUserExclusive as REUserExclusive,
@Consumption.valueHelpDefinition: [{entity: {name: 'I_REAuthorizationGroup', element: 'REAuthorizationGroup' },
additionalBinding: [ { element: 'RealEstateObjectType', localConstant: 'IS', usage: #FILTER }]}]
@ObjectModel.text.element: ['REAuthorizationGroupName']
// @UI.hidden: true
REAuthorizationGroup,
@ObjectModel.text.element: ['REContractTypeName']
@Consumption.valueHelpDefinition: [{
entity: {name: 'I_REContractTypeStdVH', element: 'REContractType' },
additionalBinding: [{ element: 'REContractType_Text', localElement: 'REContractTypeName', usage: #RESULT }]
}]
@Search.defaultSearchElement: true
@Search.ranking: #HIGH
@Search.fuzzinessThreshold : 0.9
REContractType as REContractType,
@Semantics.businessDate.from: true
@Consumption.filter.selectionType: #INTERVAL
ContractStartDate as ContractStartDate,
@Semantics.businessDate.to: true
@Consumption.filter.selectionType: #INTERVAL
ContractEndDate as ContractEndDate,
@Search.defaultSearchElement: true
@Search.ranking: #HIGH
@Search.fuzzinessThreshold : 0.7
REContractName as REContractName,
@Consumption.filter.selectionType: #INTERVAL
REContractActivateDate as REContractActivateDate,
@Consumption.valueHelpDefinition: [{ entity: {name: 'I_RETenancyLaw', element: 'RETenancyLaw' },
additionalBinding: [{ element: 'RETenancyLaw_Text', localElement: 'RETenancyLawName', usage: #RESULT }] }]
@ObjectModel.text.element: ['RETenancyLawName']
RETenancyLaw as RETenancyLaw,
REContractNumberOld as REContractNumberOld,
@Consumption.valueHelpDefinition: [{ entity: {name: 'I_CompanyCodeStdVH', element: 'CompanyCode' } }]
REMainContractCompanyCode as REMainContractCompanyCode,
@Consumption.valueHelpDefinition: [{ entity: {name: 'I_REContractVH', element: 'RealEstateContract' },
additionalBinding: [
{ element: 'CompanyCode', localElement: 'REMainContractCompanyCode' }] }]
REMainContract as REMainContract,
@Semantics.currencyCode: true
@Consumption.valueHelpDefinition: [{
entity: {name: 'I_CurrencyStdVH', element: 'Currency' },
additionalBinding: [{ element: 'Currency_Text', localElement: 'CurrencyName', usage: #RESULT }]
}]
@ObjectModel.text.element: ['CurrencyName']
REContractCurrency as REContractCurrency,
@Consumption.valueHelpDefinition: [{ entity: {name: 'I_REIndustryVH', element: 'REIndustrySector' },
additionalBinding: [{ element: 'IndustryKeyDescription', localElement: 'IndustryKeyDescription', usage: #RESULT }] }]
@ObjectModel.text.element: ['IndustryKeyDescription']
REIndustrySector as REIndustrySector,
REIsSalesRelevant as REIsSalesRelevant,
@ObjectModel.text.element: ['REContractDepositTypeName']
REContractDepositType as REContractDepositType,
@Consumption.filter.selectionType: #INTERVAL
REContractSignDate as REContractSignDate,
@Consumption.filter.selectionType: #INTERVAL
REContract2SignDate as REContract2SignDate,
@Consumption.filter.selectionType: #INTERVAL
REContractCashFlowDate as REContractCashFlowDate,
@Consumption.filter.selectionType: #INTERVAL
REContractFirstEndDate as REContractFirstEndDate,
@Consumption.filter.selectionType: #INTERVAL
REContractNoticeDate as REContractNoticeDate,
@Consumption.filter.selectionType: #INTERVAL
REContractNoticeInDate as REContractNoticeInDate,
@ObjectModel.text.element: ['REContractNoticeReasonName']
REContractNoticeReason as REContractNoticeReason,
@Consumption.filter.selectionType: #INTERVAL
REContractNoticeActivationDate as REContractNoticeActivationDate,
@Consumption.filter.selectionType: #INTERVAL
RECashFlowArchivedToDate as RECashFlowArchivedToDate,
@Consumption.filter.selectionType: #INTERVAL
RECashFlowLockedToDate as RECashFlowLockedToDate,
@Consumption.filter.selectionType: #INTERVAL
RECashFlowPostingFromDate as RECashFlowPostingFromDate,
REBusinessEntity as REBusinessEntity,
@Consumption.filter.selectionType: #INTERVAL
REPossessionStartDate as REPossessionStartDate,
@Consumption.filter.selectionType: #INTERVAL
REPossessionEndDate as REPossessionEndDate,
REHasMultipleAssignments as REHasMultipleAssignments,
@Consumption.filter.selectionType: #INTERVAL
REObjectAvailableFromDate as REObjectAvailableFromDate,
@Consumption.filter.selectionType: #INTERVAL
REObjectAvailableToDate as REObjectAvailableToDate,
@Consumption.valueHelpDefinition: [{ entity: {name: 'I_REValuationRelevance_2', element: 'ValuationRelevance' },
additionalBinding: [{ element: 'ValuationRelevance_Text', localElement: 'ValuationRelevanceDesc', usage: #RESULT },
{ element: 'REIsExclForNewAssgmt', localConstant: ' ', usage: #FILTER } ] }]
@ObjectModel.text.element: ['ValuationRelevanceDesc']
ValuationRelevance as ValuationRelevance,
@Consumption.valueHelpDefinition: [{entity: {name: 'I_REStatusProfileVH', element: 'StatusProfile' },
additionalBinding: [{ element: 'StatusObjectCategory', localConstant: 'ISC', usage: #FILTER }]}]
StatusProfile,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContractSetDeltnFlagIsHidden : recabool,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContractRemvDelFlagIsHidden : recabool,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContrLockMasterDataIsHidden : recabool,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContrUnlockMstrDataIsHidden : recabool,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContrLockAcctAssgmtIsHidden : recabool,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContrUnlkAcctAssgmtIsHidden : recabool,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContrLockPlanningIsHidden : recabool,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContrUnlockPlanningIsHidden : recabool,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REStatusProfileIsHidden : recabool,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual SystemStatusText : recnvdmcnstatus,
// _REContractAddl.REContractSystemStatusText as REContractSystemStatusText,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContractSystemStatusText : recnvdmcnstatus,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REAuthorizationGroupIsHidden : recabool,
// _REContractAddl._REContractConditionChart.REUnitPrice as REUnitPrice,
// @ObjectModel.text.element: ['REConditionTypeName']
// _REContractAddl._REContractConditionChart.REConditionType as REConditionType,
// @UI.hidden: true
// _REContractAddl._REContractConditionChart._REConditionType._Text[1: Language = $session.system_language ].REConditionTypeName as REConditionTypeName,
@Consumption.valueHelpDefinition: [{entity: {name: 'I_BusinessPartnerVH', element: 'BusinessPartner' }}]
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
@ObjectModel.filter.transformedBy: 'ABAP:CL_RECN_ROOT_FILTER_EXIT'
virtual Partner : bu_partner,
@EndUserText.label: 'Site Number'
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_REIntegObjectLevel0VH', element: 'REIntegrationObjectNumber' },
additionalBinding: [{ element: 'REIntegrationObjectType', localConstant: 'C4SI', usage: #FILTER }] }]
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
@ObjectModel.filter.transformedBy: 'ABAP:CL_RECN_VDM_OBJECT_FILTER_EXIT'
virtual REIntegrationObjectNumberSite : reipvdmionrsite,
@EndUserText.label: 'Building/Land Number'
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_REIntegObjectLevel1VH', element: 'REIntegrationObjectNumberLvl1' } }]
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
@ObjectModel.filter.transformedBy: 'ABAP:CL_RECN_VDM_OBJECT_FILTER_EXIT'
virtual REIntegObjectNumberBldngLand : reipvdmionrbuildingland,
@Search.defaultSearchElement: true
@Search.ranking: #HIGH
@Search.fuzzinessThreshold : 0.9
@UI.hidden: true
_CompanyCode.CompanyCodeName as CompanyCodeName,
@UI.hidden: true
@Search.defaultSearchElement: true
@Search.ranking: #HIGH
@Search.fuzzinessThreshold : 0.7
_CreatedByUser.UserDescription,
@UI.hidden: true
_ResponsibleUser.UserDescription as REResponsibleUserDescription,
// @UI.hidden: true
// _REContractAddl.REContractCategory as REContractCategory,
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual RENumberOfOpenReminders : recavdmrsdatecountopen,
// _REContractAddl.RENumberOfOpenReminders as RENumberOfOpenReminders,
@UI.hidden: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REOpenRemindersCriticality : abap.int1,
// _REContractAddl.REOpenRemindersCriticality as REOpenRemindersCriticality,
// @Semantics.name.fullName: true
// _UserContactCard.FullName,
@Search.defaultSearchElement: true
@Search.ranking: #HIGH
@Search.fuzzinessThreshold : 0.7
@UI.hidden: true
_REContractType._Text.REContractTypeName as REContractTypeName : localized,
@UI.hidden: true
_StatusProfileText.StatusProfileName as StatusProfileName : localized,
@UI.hidden: true
_Currency._Text.CurrencyName as CurrencyName : localized,
@UI.hidden: true
_REIndustry._IndustryKeySystemText.IndustryKeyDescription as IndustryKeyDescription : localized,
@UI.hidden: true
_RECreationType._Text.RECreationTypeName as RECreationTypeName : localized,
@UI.hidden: true
_RETenancyLaw._Text.RETenancyLawName as RETenancyLawName : localized,
@UI.hidden: true
_REContractDepositType._Text.REContractDepositTypeName as REContractDepositTypeName : localized,
@UI.hidden: true
_REContractNoticeReason._Text.REContractNoticeReasonName as REContractNoticeReasonName : localized,
@UI.hidden: true
_REValuationRelevance._Text.ValuationRelevanceDesc as ValuationRelevanceDesc : localized,
@UI.hidden: true
_REAuthorizationGroup._Text.REAuthorizationGroupName as REAuthorizationGroupName : localized,
_StatusObject,
_CompanyCode,
_MainContractCompanyCode,
_CreatedByUser,
_ChangedByUser,
_ResponsibleUser,
_Currency,
_REIndustry,
_RECreationType,
_RETenancyLaw,
_REContractDepositType,
_REContractNoticeReason,
// _REContractStat,
// @Search.defaultSearchElement: true
_REPartnerAssgmtTP : redirected to composition child C_REContractPartAssgmtTP,
// @Search.defaultSearchElement: true
_REObjAssgmtTP : redirected to composition child C_REContractObjAssgmtTP,
_REPostingTermTP : redirected to composition child C_REContractPostingTermTP,
_REOrglAssgmtTermTP : redirected to composition child C_REContractOrglAssgmtTermTP,
_REConditionTP : redirected to composition child C_REContractConditionTP,
_RERhythmTermTP : redirected to composition child C_REContractRhythmTermTP,
// _RERenewalTermAndRulesTP : redirected to composition child C_REContractRenewalTermTP,
_RERenewalTermTP : redirected to composition child C_REContractRenewalTermTP, //"C_RERENEWALTERM2TP,
_RENoticeTermTP : redirected to composition child C_REContractNoticeTermTP,
_REReminderRuleTP : redirected to composition child C_REContractReminderRuleTP,
_REReminderRuleMainTP : redirected to composition child C_REContractReminderRuleMainTP,
_REReminderDateTP : redirected to composition child C_REContractReminderDateTP,
_RERegistryEntryTP : redirected to composition child C_REContractRegistryEntryTP,
_REStatusObjectTP : redirected to composition child C_REContractStatusObjectTP,
// _REContractResponsibility,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual IsDraftEntity : recabool,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual IsInitialVersion : recabool,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual NoteUUID : /bobf/conf_key,
//--------------------------------------------------------
//--------------- TERM INFORMATION SECTION ---------------
//--------------------------------------------------------
@ObjectModel.text.element: ['REContractPeriodStatusText']
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContractPeriodStatus : retmpestate,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContractPeriodStatusText : retmxpestate,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContrPossiblePartNoticeDate : retmntallowedpar,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContractInactvNoticePerDate : retmntperinactive,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContractNextEndDate : retmrnendnew,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContrPossibleOwnNoticeDate : retmntallowedown,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContrPosPartNoticeIsHidden : recabool,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContrPosOwnNoticeIsHidden : recabool,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContractNoticePerIsHidden : recabool,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContrInactvNoticePerIsHidden : recabool,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_ROOT_CALC_EXIT'
virtual REContractNextEndDateIsHidden : recabool
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_COMPANYCODE",
"I_CURRENCY",
"I_CURRENCYTEXT",
"I_INDUSTRYKEYSYSTEMTEXTS",
"I_REAUTHORIZATIONGROUP",
"I_REAUTHORIZATIONGROUPTEXT",
"I_RECONTRACTDEPOSITTYPE",
"I_RECONTRACTDEPOSITTYPETEXT",
"I_RECONTRACTNOTICEREASON",
"I_RECONTRACTNOTICEREASONTEXT",
"I_RECONTRACTTYPE",
"I_RECONTRACTTYPETEXT",
"I_RECREATIONTYPE",
"I_RECREATIONTYPETEXT",
"I_REINDUSTRY",
"I_RETENANCYLAW",
"I_RETENANCYLAWTEXT",
"I_REVALUATIONRELEVANCETEXT_2",
"I_REVALUATIONRELEVANCE_2",
"I_STATUSPROFILETEXT",
"I_USER",
"R_RECONTRACTTP"
],
"ASSOCIATED":
[
"C_RECONTRACTCONDITIONTP",
"C_RECONTRACTNOTICETERMTP",
"C_RECONTRACTOBJASSGMTTP",
"C_RECONTRACTORGLASSGMTTERMTP",
"C_RECONTRACTPARTASSGMTTP",
"C_RECONTRACTPOSTINGTERMTP",
"C_RECONTRACTREGISTRYENTRYTP",
"C_RECONTRACTREMINDERDATETP",
"C_RECONTRACTREMINDERRULEMAINTP",
"C_RECONTRACTREMINDERRULETP",
"C_RECONTRACTRENEWALTERMTP",
"C_RECONTRACTRHYTHMTERMTP",
"C_RECONTRACTSTATUSOBJECTTP",
"I_COMPANYCODE",
"I_CURRENCY",
"I_RECONTRACTDEPOSITTYPE",
"I_RECONTRACTNOTICEREASON",
"I_RECREATIONTYPE",
"I_REINDUSTRY",
"I_RETENANCYLAW",
"I_STATUSOBJECT",
"I_USER",
"R_RECONTRCONDITIONTP",
"R_RECONTRNOTICETERMTP",
"R_RECONTROBJASSGMTTP",
"R_RECONTRORGLASSGMTTERMTP",
"R_RECONTRPARTASSGMTTP",
"R_RECONTRPOSTINGTERMTP",
"R_RECONTRREGISTRYENTRYTP",
"R_RECONTRREMINDERDATETP",
"R_RECONTRREMINDERRULEMAINTP",
"R_RECONTRREMINDERRULETP",
"R_RECONTRRENEWALTERMTP",
"R_RECONTRRHYTHMTERMTP",
"R_RECONTRSTATUSOBJECTTP"
],
"BASE":
[
"R_RECONTRACTTP"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/