microsoft / microsoft/BCApps

[Extensibility Request] Missing extensibility for dimensions in Subscription Line

Open
#10,275 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Approved event-request Team: Finance
Dominant language
AL
Stars
683
Forks
459
Avg merge
3d 26m
Merged PRs (30d)
633

Description

Describe the issue

in table 8059 "Subscription Line", it would be helpful to make the creating of the dimensions extensible.

  1. New Publisher in AddDefaultDimensionSources with
    OnAfterAddDefaultDimensions(Rec, DefaultDimSource, UseSources)

  2. make the "SetDefaultDimensions" function usable from external code.

If the dimension creation will be refactored to be more like the standard dimension creation (like sales line), that would be helpful too.

We want to add a project relation to the subscription, with project dimensions. - and want to start the dimension creation validating the project no.

OnAfterGetCombinedDimensionSetID is there, but maybe a little bit to late, depending on the priorities for dimensions based on source code.

Expected behavior
  • Creation of dimensions is available from 3rd party code
  • new fields can be added as a source for dimension creation
  • seeing standard patterns for creating dimensions also in subscription line
Steps to reproduce

https://github.com/microsoft/BCApps/blob/main/src/Apps/W1/Subscription%20Billing/App/Service%20Commitments/Tables/SubscriptionLine.Table.al

internal procedure SetDefaultDimensions(UseSource: Boolean)

-> Is Internal

internal procedure ApplyContractDimensions and
local procedure AddDefaultDimensionSources

are not offering a publisher to add dimension sources to the defaultdimSource-list

Additional context

if a refactoring using standard pattern should be planned, maybe a product developer from Microsoft has the better overview of this module to implement the necessary logic

I will provide a fix for a bug
  • I will provide a fix for a bug

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/Apps/W1/Subscription Billing/App/Service Commitments/Tables/SubscriptionLine.Table.al and read SetDefaultDimensions, ApplyContractDimensions, and AddDefaultDimensionSources. Compare the dimension-creation pattern used by the sales line, then determine how the requested publisher and external procedure access should fit. Done means third-party code can add dimension sources and initiate creation early enough to validate the project number.

Written by the indexing model from the issue text.

Assessment

Domain
backend-api-design
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.