[Extensibility Request][Subscription Billing] Make procedures required by custom Usage Data Connectors accessible
@djukicmilica is already working on this.
Since Aug 10, 2026.
- Dominant language
- AL
- Stars
- 683
- Forks
- 459
- Avg merge
- 3d 26m
- Merged PRs (30d)
- 633
Description
Describe the issue
When one wants to implement a custom Usage Data Connector using the interface "Usage Data Processing", one needs to create an implementation of the procedure CreateBillingData(var UsageDataImport: Record "Usage Data Import"). However, all necessary procedures for creating billing data are internal and not accessible to a dependent app.
Proposed Change
Remove the internal keyword from the following procedures in UsageDataBilling.Table.al :
internal procedure SetReason(ReasonText: Text)internal procedure InitFrom(UsageDataImportEntryNo: Integer; SubscriptionHeaderNo: Code[20]; ProductID: Text[80]; ProductName: Text[100]; BillingPeriodStartDate: Date; BillingPeriodEndDate: Date; NewQuantity: Decimal)- internal procedure AlignContractCurrency(TempSubscriptionLine: Record "Subscription Line"; ImportCurrencyCode: Code[10])
internal procedure CalculateAmounts(UsageDataSupplier: Record "Usage Data Supplier"; ImportCurrencyCode: Code[10]; NewUnitCost: Decimal; NewCostAmount: Decimal; NewUnitPrice: Decimal; NewAmount: Decimal)internal procedure UpdateRebilling()internal procedure InsertMetadata()
As well as the following procedure in CreateUsageDataBilling.Codeunit.al
procedure CollectServiceCommitments(var TempServiceCommitment: Record "Subscription Line" temporary; ServiceObjectNo: Code[20]; SubscriptionEndDate: Date)
Expected behavior
Dependent Apps can access all procedures necessary for their own billing data creation which is necessary for custom Connectors.
Steps to reproduce
not applicable
Additional context
No response
I will provide a fix for a bug
- I will provide a fix for a bug
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.