I_UTILSCONTRTOBEBLLDDATA

CDS View

Utilities Contract to Be Billed Data

I_UTILSCONTRTOBEBLLDDATA is a CDS View in S/4HANA. Utilities Contract to Be Billed Data. It contains 35 fields. 6 CDS views read from this table.

CDS Views using this table (6)

ViewTypeJoinVDMDescription
I_LockedUtilsContrToBeInvcd view from COMPOSITE Locked Contract to Be Invoiced
I_SchedldUtilsContrNotInvcd view from COMPOSITE Scheduled Contract Has not Been Invoiced
I_UtilsContrAcctSchedContrCntr view from COMPOSITE Number of Scheduled Contracts for Contract Account
I_UtilsContrToBeBlld view from COMPOSITE Utilities Contract to Be Billed
I_UtilsContrToBeBlldInvcdAnlys view from COMPOSITE Analysis of Contract to Be Billed and Invoiced
I_UtilsContrToBeInvcd view from COMPOSITE Contract to Be Invoiced

Fields (35)

KeyField CDS FieldsUsed in Views
KEY ContractAccount ContractAccount 5
KEY ScheduledMeterReadingDate ScheduledMeterReadingDate 5
KEY ScheduledUtilitiesBillingDate ScheduledUtilitiesBillingDate 6
KEY UtilitiesContract UtilitiesContract 5
KEY UtilitiesPortion UtilitiesPortion 6
_CompanyCode _CompanyCode 5
_Division _Division 5
_InvcUtilsContractsJointly _InvcUtilsContractsJointly 2
_MeterReadingReason _MeterReadingReason 1
_MeterReadingUnit _MeterReadingUnit 2
_UtilitiesBillingReason _UtilitiesBillingReason 1
_UtilitiesInstallation _UtilitiesInstallation 5
_UtilitiesPortion _UtilitiesPortion 6
_UtilitiesRateCategory _UtilitiesRateCategory 5
_UtilsAccountDetnCode _UtilsAccountDetnCode 5
_UtilsBillgBlockReason _UtilsBillgBlockReason 2
_UtilsBillgUnblockReason _UtilsBillgUnblockReason 2
_UtilsBillingClass _UtilsBillingClass 5
AuthorizationGroup AuthorizationGroup 5
CompanyCode CompanyCode 5
Division Division 5
MeterReadingReason MeterReadingReason 1
MeterReadingUnit MeterReadingUnit 2
SchedldUtilsInvcgPrintoutDate SchedldUtilsInvcgPrintoutDate 1
UtilitiesAccountDetnCode UtilitiesAccountDetnCode 5
UtilitiesBillingClass UtilitiesBillingClass 5
UtilitiesBillingReason UtilitiesBillingReason 1
UtilitiesInstallation UtilitiesInstallation 5
UtilitiesMoveInDate UtilitiesMoveInDate 2
UtilitiesMoveOutDate UtilitiesMoveOutDate 2
UtilitiesRateCategory UtilitiesRateCategory 5
UtilsBillgBlockReason UtilsBillgBlockReason 2
UtilsBillgUnblockReason UtilsBillgUnblockReason 2
UtilsContrJointInvcType UtilsContrJointInvcType 2
UtilsPortionScheduleRecordDate UtilsPortionScheduleRecordDate 1
@EndUserText.label: 'Utilities Contract to Be Billed Data'
@VDM.viewType: #COMPOSITE
@AbapCatalog.sqlViewName: 'IECONTRTBBILLEDD'
@AccessControl.authorizationCheck: #CHECK
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #MIXED
@ClientHandling.algorithm: #SESSION_VARIABLE
define view I_UtilsContrToBeBlldData
  /* For contracts with alternative portion */
  as select from I_UtilitiesContract            as UtilitiesContract
    inner join   I_UtilitiesPortionScheduleRecd as UtilitiesPortionScheduleRecd on UtilitiesPortionScheduleRecd.UtilitiesPortion = UtilitiesContract.AlternativeUtilitiesPortion
    inner join   I_UtilitiesInstallationHist    as UtilitiesInstallationHist    on UtilitiesInstallationHist.UtilitiesInstallation = UtilitiesContract.UtilitiesInstallation
    inner join   I_MtrRsnCorrespgToBillgRsn     as MtrRsnCorrespgToBillgRsn     on MtrRsnCorrespgToBillgRsn.UtilitiesBillingReason = UtilitiesPortionScheduleRecd.UtilitiesBillingReason
    inner join   I_MtrRdngUnitScheduleRecord    as MtrRdngUnitScheduleRecord    on  MtrRdngUnitScheduleRecord.MeterReadingUnit              = UtilitiesInstallationHist.MeterReadingUnit
                                                                                and MtrRdngUnitScheduleRecord.MeterReadingReason            = MtrRsnCorrespgToBillgRsn.MeterReadingReason
                                                                                and MtrRdngUnitScheduleRecord.MtrRdngUnitScheduleRecordDate = UtilitiesPortionScheduleRecd.UtilsPortionScheduleRecordDate
{
  UtilitiesContract.UtilitiesContract,

  @Consumption.filter.mandatory: true
  @Semantics.businessDate.at: true
  UtilitiesPortionScheduleRecd.ScheduledUtilitiesBillingDate,

  @Consumption.filter.mandatory: true
  @ObjectModel.foreignKey.association: '_UtilitiesPortion'
  UtilitiesPortionScheduleRecd.UtilitiesPortion,

  @Semantics.businessDate.at: true
  MtrRdngUnitScheduleRecord.ScheduledMeterReadingDate,

  @ObjectModel.foreignKey.association: '_UtilitiesBillingReason'
  UtilitiesPortionScheduleRecd.UtilitiesBillingReason,

  @ObjectModel.foreignKey.association: '_CompanyCode'
  UtilitiesContract.CompanyCode,

  @ObjectModel.foreignKey.association: '_Division'
  UtilitiesContract.UtilitiesDivision as Division,

  @ObjectModel.foreignKey.association: '_UtilitiesInstallation'
  UtilitiesContract.UtilitiesInstallation,

  UtilitiesContract.ContractAccount,

  @ObjectModel.foreignKey.association: '_UtilsBillgBlockReason'
  UtilitiesContract.UtilsBillgBlockReason,

  @ObjectModel.foreignKey.association: '_UtilsBillgUnblockReason'
  UtilitiesContract.UtilsBillgUnblockReason,

  @ObjectModel.foreignKey.association: '_MeterReadingUnit'
  UtilitiesInstallationHist.MeterReadingUnit,

  @ObjectModel.foreignKey.association: '_UtilitiesRateCategory'
  UtilitiesInstallationHist.UtilitiesRateCategory,

  @ObjectModel.foreignKey.association: '_UtilsBillingClass'
  UtilitiesInstallationHist.UtilitiesBillingClass,

  @ObjectModel.foreignKey.association: '_MeterReadingReason'
  MtrRsnCorrespgToBillgRsn.MeterReadingReason,

  @Semantics.businessDate.at: true
  UtilitiesContract.UtilitiesMoveInDate,

  @Semantics.businessDate.at: true
  UtilitiesContract.UtilitiesMoveOutDate,

  @ObjectModel.foreignKey.association: '_InvcUtilsContractsJointly'
  UtilitiesContract.UtilsContrJointInvcType,

  @ObjectModel.foreignKey.association: '_UtilsAccountDetnCode'
  UtilitiesContract.UtilitiesAccountDetnCode,

  @Semantics.businessDate.to: true
  UtilitiesPortionScheduleRecd.UtilsPortionScheduleRecordDate,

  @Semantics.businessDate.at: true
  UtilitiesPortionScheduleRecd.SchedldUtilsInvcgPrintoutDate,

  case
    when (UtilitiesPortionScheduleRecd.ScheduledUtilitiesBillingDate >= UtilitiesContract.UtilitiesMoveInDate
     and  UtilitiesPortionScheduleRecd.ScheduledUtilitiesBillingDate <= UtilitiesContract.UtilitiesMoveOutDate)
        then 'X'
  end                                 as UtilitiesContractIsActive,

  case
    when (UtilitiesPortionScheduleRecd.ScheduledUtilitiesBillingDate >= UtilitiesInstallationHist.UtilsInstHistValidityStartDate
     and  UtilitiesPortionScheduleRecd.ScheduledUtilitiesBillingDate <= UtilitiesInstallationHist.UtilsInstHistValidityEndDate)
        then 'X'
  end                                 as UtilsInstTimeSliceIsValid,

  UtilitiesContract.AuthorizationGroup,

  /* Associations */
  UtilitiesPortionScheduleRecd._UtilitiesPortion,
  UtilitiesPortionScheduleRecd._UtilitiesBillingReason,
  UtilitiesContract._CompanyCode,
  UtilitiesContract._Division,
  UtilitiesContract._UtilitiesInstallation,
  UtilitiesContract._UtilsBillgBlockReason,
  UtilitiesContract._UtilsBillgUnblockReason,
  UtilitiesInstallationHist._MeterReadingUnit,
  UtilitiesInstallationHist._UtilitiesRateCategory,
  UtilitiesInstallationHist._UtilsBillingClass,
  MtrRsnCorrespgToBillgRsn._MeterReadingReason,
  UtilitiesContract._InvcUtilsContractsJointly,
  UtilitiesContract._UtilsAccountDetnCode

}

union all

/* For all contracts without alternative portion */
select from  I_UtilitiesContract            as UtilitiesContract
  inner join I_UtilitiesInstallationHist    as UtilitiesInstallationHist    on UtilitiesInstallationHist.UtilitiesInstallation = UtilitiesContract.UtilitiesInstallation
  inner join I_MeterReadingUnit             as MeterReadingUnit             on MeterReadingUnit.MeterReadingUnit = UtilitiesInstallationHist.MeterReadingUnit
  inner join I_UtilitiesPortionScheduleRecd as UtilitiesPortionScheduleRecd on UtilitiesPortionScheduleRecd.UtilitiesPortion = MeterReadingUnit.UtilitiesPortion
  inner join I_MtrRsnCorrespgToBillgRsn     as MtrRsnCorrespgToBillgRsn     on MtrRsnCorrespgToBillgRsn.UtilitiesBillingReason = UtilitiesPortionScheduleRecd.UtilitiesBillingReason
  inner join I_MtrRdngUnitScheduleRecord    as MtrRdngUnitScheduleRecord    on  MtrRdngUnitScheduleRecord.MeterReadingUnit              = UtilitiesInstallationHist.MeterReadingUnit
                                                                            and MtrRdngUnitScheduleRecord.MeterReadingReason            = MtrRsnCorrespgToBillgRsn.MeterReadingReason
                                                                            and MtrRdngUnitScheduleRecord.MtrRdngUnitScheduleRecordDate = UtilitiesPortionScheduleRecd.UtilsPortionScheduleRecordDate
{
  key UtilitiesContract.UtilitiesContract,

      @Consumption.filter.mandatory: true
      @Semantics.businessDate.at: true
  key UtilitiesPortionScheduleRecd.ScheduledUtilitiesBillingDate,

      @Consumption.filter.mandatory: true
      @ObjectModel.foreignKey.association: '_UtilitiesPortion'
  key UtilitiesPortionScheduleRecd.UtilitiesPortion,

      @Semantics.businessDate.at: true
  key MtrRdngUnitScheduleRecord.ScheduledMeterReadingDate,

      @ObjectModel.foreignKey.association: '_UtilitiesBillingReason'
      UtilitiesPortionScheduleRecd.UtilitiesBillingReason,

      @ObjectModel.foreignKey.association: '_CompanyCode'
      UtilitiesContract.CompanyCode,

      @ObjectModel.foreignKey.association: '_Division'
      UtilitiesContract.UtilitiesDivision as Division,

      @ObjectModel.foreignKey.association: '_UtilitiesInstallation'
      UtilitiesContract.UtilitiesInstallation,

      UtilitiesContract.ContractAccount,

      @ObjectModel.foreignKey.association: '_UtilsBillgBlockReason'
      UtilitiesContract.UtilsBillgBlockReason,

      @ObjectModel.foreignKey.association: '_UtilsBillgUnblockReason'
      UtilitiesContract.UtilsBillgUnblockReason,

      @ObjectModel.foreignKey.association: '_MeterReadingUnit'
      UtilitiesInstallationHist.MeterReadingUnit,

      @ObjectModel.foreignKey.association: '_UtilitiesRateCategory'
      UtilitiesInstallationHist.UtilitiesRateCategory,

      @ObjectModel.foreignKey.association: '_UtilsBillingClass'
      UtilitiesInstallationHist.UtilitiesBillingClass,

      @ObjectModel.foreignKey.association: '_MeterReadingReason'
      MtrRsnCorrespgToBillgRsn.MeterReadingReason,

      @Semantics.businessDate.at: true
      UtilitiesContract.UtilitiesMoveInDate,

      @Semantics.businessDate.at: true
      UtilitiesContract.UtilitiesMoveOutDate,

      @ObjectModel.foreignKey.association: '_InvcUtilsContractsJointly'
      UtilitiesContract.UtilsContrJointInvcType,

      @ObjectModel.foreignKey.association: '_UtilsAccountDetnCode'
      UtilitiesContract.UtilitiesAccountDetnCode,

      @Semantics.businessDate.to: true
      UtilitiesPortionScheduleRecd.UtilsPortionScheduleRecordDate,

      @Semantics.businessDate.at: true
      UtilitiesPortionScheduleRecd.SchedldUtilsInvcgPrintoutDate,

      case
        when (UtilitiesPortionScheduleRecd.ScheduledUtilitiesBillingDate >= UtilitiesContract.UtilitiesMoveInDate
         and  UtilitiesPortionScheduleRecd.ScheduledUtilitiesBillingDate <= UtilitiesContract.UtilitiesMoveOutDate)
            then 'X'
      end                                 as UtilitiesContractIsActive,

      case
        when (UtilitiesInstallationHist.UtilsInstHistValidityStartDate <= MtrRdngUnitScheduleRecord.ScheduledMeterReadingDate
         and  UtilitiesInstallationHist.UtilsInstHistValidityEndDate   >= MtrRdngUnitScheduleRecord.ScheduledMeterReadingDate)
            then 'X'
      end                                 as UtilsInstTimeSliceIsValid,

      UtilitiesContract.AuthorizationGroup,

      /* Associations */
      UtilitiesPortionScheduleRecd._UtilitiesPortion,
      UtilitiesPortionScheduleRecd._UtilitiesBillingReason,
      UtilitiesContract._CompanyCode,
      UtilitiesContract._Division,
      UtilitiesContract._UtilitiesInstallation,
      UtilitiesContract._UtilsBillgBlockReason,
      UtilitiesContract._UtilsBillgUnblockReason,
      UtilitiesInstallationHist._MeterReadingUnit,
      UtilitiesInstallationHist._UtilitiesRateCategory,
      UtilitiesInstallationHist._UtilsBillingClass,
      MtrRsnCorrespgToBillgRsn._MeterReadingReason,
      UtilitiesContract._InvcUtilsContractsJointly,
      UtilitiesContract._UtilsAccountDetnCode

}
where
  UtilitiesContract.AlternativeUtilitiesPortion = ' '