I_UTILSCONTRTOBEBLLDDATA
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)
| View | Type | Join | VDM | Description |
|---|---|---|---|---|
| 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)
| Key | Field | CDS Fields | Used 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 = ' '