C_REContractTermTP

DDL: C_RECONTRACTTERMTP Type: view_entity CONSUMPTION Package: ODATA_RE_CN_TERM_APP

Contract Term Management Root

C_REContractTermTP is a Consumption CDS View that provides data about "Contract Term Management Root" in SAP S/4HANA. It reads from 1 data source (R_REContractTP) and exposes 32 fields with key field InternalRealEstateNumber. It has 2 associations to related views. It is exposed through 1 OData service (UI_RECONTRACTTERM). It is used in 1 Fiori application: Manage Contract Term. Part of development package ODATA_RE_CN_TERM_APP.

Data Sources (1)

SourceAliasJoin Type
R_REContractTP R_REContractTP projection

Associations (2)

CardinalityTargetAliasCondition
[0..*] C_RERnwlApprovalSimulationTP _RERenewalSimulation $projection.InternalRealEstateNumber = _RERenewalSimulation.InternalRealEstateNumber
[0..*] C_RENoticeApprovalSimulationTP _RENoticeSimulation $projection.InternalRealEstateNumber = _RENoticeSimulation.InternalRealEstateNumber

Annotations (10)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Contract Term Management Root view
VDM.viewType #CONSUMPTION view
ObjectModel.representativeKey InternalRealEstateNumber view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.modelingPattern #TRANSACTIONAL_QUERY view
Metadata.allowExtensions true view
Search.searchable true view

OData Services (1)

ServiceBindingVersionContractRelease
UI_RECONTRACTTERM UI_RECONTRACTTERM V2 C1 NOT_RELEASED

Fiori Apps (1)

App IDApp NameTypeDescription
F6580 Manage Contract Term Transactional This App allows users to perform renewals or give notices to a contract according to the maintained renewal/notice rules within Contract Management.

Manage Contract Term

Business Role: Contract Specialist - Leasing

Display the worklist of contracts with renewal and/or notice rules and their notice and/or renewal status.

Fields (32)

KeyFieldSource TableSource FieldDescription
_RERenewalSimulation _RERenewalSimulation
_RENoticeSimulation _RENoticeSimulation
KEY InternalRealEstateNumber InternalRealEstateNumber
CompanyCode CompanyCode
CompanyCodeName _CompanyCode CompanyCodeName
RealEstateContract RealEstateContract
RealEstateContractOID RealEstateContractOID
REContractType REContractType
REContractName REContractName
ContractStartDate ContractStartDate
ContractEndDate ContractEndDate
Responsible Responsible
LastChangedByUser LastChangedByUser
LastChangeDate LastChangeDate
LastChangeTime LastChangeTime
LastChangeDateTime LastChangeDateTime
REStatusObject REStatusObject
CreatedByUser CreatedByUser
CreationDate CreationDate
CreationTime CreationTime
CreationDateTime CreationDateTime
REContractFirstEndDate REContractFirstEndDate
REContractActivateDate REContractActivateDate
REContractNoticeDate REContractNoticeDate
REAuthorizationGroup REAuthorizationGroup
int1
int1
virtualREContractPeriodStatusretmpestate
virtualREContractNextEndDateretmrnendnew
virtualIsDraftEntityrecabool
virtualREContractHasRenewalRulerecabool
virtualREContractHasNoticeRulerecabool
@AccessControl.authorizationCheck: #MANDATORY
@EndUserText.label: 'Contract Term Management Root'

// 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_QUERY,
    supportedCapabilities: [ #TRANSACTIONAL_PROVIDER ]
}

@Metadata.allowExtensions: true
@Search.searchable: true
define root view entity C_REContractTermTP
  provider contract transactional_query
  as projection on R_REContractTP as REContract
  association [0..*] to C_RERnwlApprovalSimulationTP   as _RERenewalSimulation on $projection.InternalRealEstateNumber = _RERenewalSimulation.InternalRealEstateNumber
  association [0..*] to C_RENoticeApprovalSimulationTP as _RENoticeSimulation  on $projection.InternalRealEstateNumber = _RENoticeSimulation.InternalRealEstateNumber
{
           //associations

           _RERenewalTP : redirected to composition child C_REContractRenewalTP,
           _RENoticeTP  : redirected to composition child C_REContractNoticeTP,
           @ObjectModel.filter.enabled: false
           _RERenewalSimulation,
           @ObjectModel.filter.enabled: false
           _RENoticeSimulation,

           @UI.hidden: true   
  key      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,
           @Search.defaultSearchElement: true
           @Search.ranking: #HIGH
           @Search.fuzzinessThreshold : 0.9
           @Consumption.filter.hidden: true
           _CompanyCode.CompanyCodeName             as CompanyCodeName,
           @ObjectModel.text.element: ['REContractName']
           @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,
           @UI.hidden: true
           RealEstateContractOID,    
           @ObjectModel.text.element: ['REContractTypeName']
           @Consumption.valueHelpDefinition: [{
             entity: {name: 'I_REContractTypeStdVH', element: 'REContractType' },
             additionalBinding: [{ element: '_Text', localElement: 'REContractTypeName', usage: #RESULT }]
           }]
           @Search.defaultSearchElement: true
           @Search.ranking: #HIGH
           @Search.fuzzinessThreshold : 0.9
           REContractType,
           @Search.defaultSearchElement: true
           @Search.ranking: #HIGH
           @Search.fuzzinessThreshold : 0.7
           @Consumption.filter.hidden: true
           _REContractType._Text.REContractTypeName as REContractTypeName : localized,
           @Search.defaultSearchElement: true
           @Search.ranking: #HIGH
           @Search.fuzzinessThreshold : 0.7
           REContractName,
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  REContractSystemStatusText     : recnvdmcnstatus,
           @Semantics.businessDate.from: true
           @Consumption.filter.selectionType: #INTERVAL
           ContractStartDate,
           @Semantics.businessDate.to: true
           @Consumption.filter.selectionType: #INTERVAL
           ContractEndDate,
           Responsible                              as Responsible,
           @Semantics.user.lastChangedBy: true
           LastChangedByUser,
           @UI.hidden: true
           LastChangeDate,
           @UI.hidden: true
           LastChangeTime,
           @Semantics.systemDateTime.lastChangedAt: true
           LastChangeDateTime,
           @UI.hidden: true
           REStatusObject,
           @Semantics.user.createdBy: true
           CreatedByUser,
           @UI.hidden: true
           CreationDate,
           @UI.hidden: true
           CreationTime,
           @Semantics.systemDateTime.createdAt: true
           @Consumption.filter.selectionType: #INTERVAL
           CreationDateTime,
           @Consumption.filter.selectionType: #INTERVAL
           REContractFirstEndDate,
           REContractActivateDate,
           REContractNoticeDate,

           @UI.hidden: true
           @Consumption.valueHelpDefinition: [{entity: {name: 'I_REAuthorizationGroup', element: 'REAuthorizationGroup' }}]
           REAuthorizationGroup,

           @EndUserText.label: 'Site Number'
//           @Consumption.valueHelpDefinition: [{ entity : {name: 'I_REIntegObjectLevel0VH', element: 'REIntegrationObjectNumber' },

//                         additionalBinding: [{ element: 'REIntegrationObjectType', localConstant: 'C4SI', usage: #FILTER }] }]

           @Consumption.valueHelpDefinition: [{ entity : {name: 'I_RESiteVH', element: 'REArchitectureObjectNumber' } }]
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_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' } }]

           @Consumption.valueHelpDefinition: [{ entity : {name: 'I_REBuildingLandVH', element: 'REArchitectureObjectNumber' } }]   
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
           @ObjectModel.filter.transformedBy: 'ABAP:CL_RECN_VDM_OBJECT_FILTER_EXIT'
  virtual  REIntegObjectNumberBldngLand : reipvdmionrbuildingland,
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
           @ObjectModel.text.element: ['REContractRenewalStatusDesc']
           @ObjectModel.filter.enabled: true
           @Consumption.valueHelpDefinition: [{
             entity: {name: 'I_REContractRenewalStatus', element: 'REContractRenewalStatus' },
             additionalBinding: [{ element: '_Text', usage: #RESULT }]
           }]
           @ObjectModel.filter.transformedBy: 'ABAP:CL_RECN_F6580_ROOT_FILTER_EXIT'
  virtual  REContractRenewalStatus        : recnvdmcnrenewalstatus,

           @UI.hidden: true
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  REContractRenewalStatusCritlty : abap.int1,

           @UI.hidden: true
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  REContractRenewalStatusDesc    : val_text,

           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
           @ObjectModel.filter.enabled: true
           @Consumption.filter.selectionType: #INTERVAL
           @ObjectModel.filter.transformedBy: 'ABAP:CL_RECN_F6580_ROOT_FILTER_EXIT'
  virtual  RERenewalNotificationDate      : retmrnnotdate,
  
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
           @ObjectModel.text.element: ['REContractNoticeStatusDesc']
           @ObjectModel.filter.enabled: true
           @Consumption.valueHelpDefinition: [{
             entity: {name: 'I_REContractNoticeStatus', element: 'REContractNoticeStatus' },
             additionalBinding: [{ element: '_Text', usage: #RESULT }]
           }]
           @ObjectModel.filter.transformedBy: 'ABAP:CL_RECN_F6580_ROOT_FILTER_EXIT'
  virtual  REContractNoticeStatus        : recnvdmcnnoticestatus,
  
           @UI.hidden: true
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  REContractNoticeStatusCritlty : abap.int1,

           @UI.hidden: true
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  REContractNoticeStatusDesc    : val_text,

           //--------------------------------------------------------

           //--------------- TERM INFORMATION SECTION ---------------

           //--------------------------------------------------------

           @ObjectModel.text.element: ['REContractPeriodStatusText']
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  REContractPeriodStatus         : retmpestate,
           @Consumption.filter.hidden: true
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  REContractPeriodStatusText     : retmxpestate,
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  REContrPossiblePartNoticeDate  : retmntallowedpar,
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  REContractInactvNoticePerDate  : retmntperinactive,
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  REContractNextEndDate          : retmrnendnew,
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  REContrPossibleOwnNoticeDate   : retmntallowedown,
           @UI.hidden: true
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  REContrPosPartNoticeIsHidden   : recabool,
           @UI.hidden: true
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  REContrPosOwnNoticeIsHidden    : recabool,
           @UI.hidden: true
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  REContractNoticePerIsHidden    : recabool,
           @UI.hidden: true
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  REContrInactvNoticePerIsHidden : recabool,
           @UI.hidden: true
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  REContractNextEndDateIsHidden  : recabool,

           @UI.hidden: true
           @ObjectModel.virtualElement: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
  virtual  IsDraftEntity                  : recabool,

           @UI.hidden: true
           @ObjectModel.virtualElement: true
           @ObjectModel.filter.enabled: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
           @ObjectModel.filter.transformedBy: 'ABAP:CL_RECN_F6580_ROOT_FILTER_EXIT'
  virtual  REContractHasRenewalRule           : recabool,
           @UI.hidden: true
           @ObjectModel.virtualElement: true
           @ObjectModel.filter.enabled: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
           @ObjectModel.filter.transformedBy: 'ABAP:CL_RECN_F6580_ROOT_FILTER_EXIT'
  virtual  REContractHasNoticeRule           : recabool,
           @UI.hidden: true
           @ObjectModel.virtualElement: true
           @ObjectModel.filter.enabled: true
           @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_RECN_F6580_ROOT_CALC_EXIT'
           @ObjectModel.filter.transformedBy: 'ABAP:CL_RECN_F6580_ROOT_FILTER_EXIT'
  virtual  REContrHasNoticeOrRenewalRule           : recabool
}