Skip to content

[Quality Management] Feature uptake telemetry improvements#8419

Open
JakovljevicDusan wants to merge 10 commits into
mainfrom
bugs/QM-FeatureUptakeTrackingImprovements
Open

[Quality Management] Feature uptake telemetry improvements#8419
JakovljevicDusan wants to merge 10 commits into
mainfrom
bugs/QM-FeatureUptakeTrackingImprovements

Conversation

@JakovljevicDusan
Copy link
Copy Markdown
Contributor

@JakovljevicDusan JakovljevicDusan commented Jun 2, 2026

Fixes AB#637413

@JakovljevicDusan JakovljevicDusan requested a review from a team as a code owner June 2, 2026 11:00
@github-actions github-actions Bot added the AL: Apps (W1) Add-on apps for W1 label Jun 2, 2026
@github-actions github-actions Bot added this to the Version 29.0 milestone Jun 2, 2026
Comment thread src/Apps/W1/Quality Management/app/src/Reports/QltyReportMgmt.Codeunit.al Outdated
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

$\textbf{🟡\ Medium\ Severity\ —\ Upgrade} \quad \color{gray}{\texttt{\small Iteration\ 1}}$

Feature 'Set up' telemetry event removed

The FeatureTelemetry.LogUptake('0000QIE', ..., "Set up") call was removed from the if not Rec.Get() branch. When basic setup is auto-created via EnsureBasicSetupExists, the 'Set up' uptake status is no longer recorded, creating a gap in the feature adoption funnel telemetry.

Recommendation:

  • Restore the 'Set up' telemetry call in the branch where setup is newly auto-created, using Rec.GetFeatureTelemetryName() for consistency with the rest of the refactoring.
if not Rec.Get() then begin
    QltyAutoConfigure.EnsureBasicSetupExists(false);
    if Rec.Get() then
        FeatureTelemetry.LogUptake('0000QIE', Rec.GetFeatureTelemetryName(), Enum::"Feature Uptake Status"::"Set up");
end;

Line mapping was unavailable, so this was posted as an issue comment.

👍 useful · ❤️ especially valuable · 👎 wrong - reply with why

@JakovljevicDusan JakovljevicDusan enabled auto-merge (squash) June 2, 2026 11:15
Comment thread src/Apps/W1/Quality Management/app/src/Reports/QltyReportMgmt.Codeunit.al Outdated
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

$\textbf{🟡\ Medium\ Severity\ —\ Performance} \quad \color{gray}{\texttt{\small Iteration\ 1}}$

Missing 'Set up' telemetry on auto-configuration path

The PR removes the FeatureTelemetry.LogUptake('0000QIE', ..., "Set up") call that previously fired when setup did not exist and was auto-created via EnsureBasicSetupExists. This tracking gap means customers who set up Quality Management through automatic configuration will not emit a Set up feature uptake event, underreporting actual adoption.

Recommendation:

  • Re-add the Set up telemetry event after the auto-configuration succeeds (after the second Rec.Get()) using the new GetFeatureTelemetryName() helper.
        if not Rec.Get() then begin
            QltyAutoConfigure.EnsureBasicSetupExists(false);
            if Rec.Get() then
                FeatureTelemetry.LogUptake('0000QIE', Rec.GetFeatureTelemetryName(), Enum::"Feature Uptake Status"::"Set up");
        end;

Line mapping was unavailable, so this was posted as an issue comment.

👍 useful · ❤️ especially valuable · 👎 wrong - reply with why

Comment thread src/Apps/W1/Quality Management/app/src/Reports/QltyReportMgmt.Codeunit.al Outdated
attilatoury
attilatoury previously approved these changes Jun 2, 2026
Copy link
Copy Markdown
Contributor

@alexei-dobriansky alexei-dobriansky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

discussing options on Teams with the author

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 4, 2026

$\textbf{🟡\ Medium\ Severity\ —\ Style} \quad \color{gray}{\texttt{\small Iteration\ 1}}$

Inconsistent casing: LogFeatureUptakeSetUp vs SetUp

The call site uses LogFeatureUptakeSetUp (capital 'U' in 'Up') while the codeunit declares LogFeatureUptakeSetup (lowercase 'u'). AL identifiers are case-insensitive so this compiles, but the inconsistency will confuse readers and may cause issues if a future refactoring tool performs case-sensitive renames.

Recommendation:

  • Align the call site with the declared procedure name: use LogFeatureUptakeSetup (all lowercase after 'Set').
QltyMgmtFeatureTelemetry.LogFeatureUptakeSetup(ObjectType::Page, Page::"Qlty. Management Setup");

Line mapping was unavailable, so this was posted as an issue comment.

👍 useful · ❤️ especially valuable · 👎 wrong - reply with why

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 4, 2026

$\textbf{🔴\ Critical\ Severity\ —\ Performance} \quad \color{gray}{\texttt{\small Iteration\ 1}}$

OnInsertRecord implicitly returns false

The new OnInsertRecord trigger has return type Boolean but never calls exit(true). In AL, an unset Boolean return value defaults to false, and returning false from OnInsertRecord cancels the insert — meaning no new Inspection Template records can ever be saved.

Recommendation:

  • Add exit(true); at the end of the trigger body so the insert is not suppressed when telemetry logging is the only action taken.
    trigger OnInsertRecord(BelowxRec: Boolean): Boolean
    var
        QltyMgmtFeatureTelemetry: Codeunit "Qlty. Mgmt. Feature Telemetry";
    begin
        QltyMgmtFeatureTelemetry.LogFeatureUptakeSetup(ObjectType::Page, Page::"Qlty. Inspection Template");
        exit(true);
    end;

Line mapping was unavailable, so this was posted as an issue comment.

👍 useful · ❤️ especially valuable · 👎 wrong - reply with why

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AL: Apps (W1) Add-on apps for W1

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants