From b570c7d4b8a336631cabf9c6071ad190f55fac54 Mon Sep 17 00:00:00 2001 From: attilatoury Date: Thu, 8 Jan 2026 14:12:22 +0100 Subject: [PATCH 01/14] removed obsolete install files --- .../ConfigurationPackageExcelData.xlsx | Bin 59430 -> 0 bytes .../PackageQM-EXPRESSDEMO.rapidstart | Bin 15302 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/Apps/W1/Quality Management/app/Resources/InstallFiles/ConfigurationPackageExcelData.xlsx delete mode 100644 src/Apps/W1/Quality Management/app/Resources/InstallFiles/PackageQM-EXPRESSDEMO.rapidstart diff --git a/src/Apps/W1/Quality Management/app/Resources/InstallFiles/ConfigurationPackageExcelData.xlsx b/src/Apps/W1/Quality Management/app/Resources/InstallFiles/ConfigurationPackageExcelData.xlsx deleted file mode 100644 index 8d1ff4d10fe3718ff5bc72fa5438948be70d1fac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59430 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 diff --git a/src/Apps/W1/Quality Management/app/Resources/InstallFiles/PackageQM-EXPRESSDEMO.rapidstart b/src/Apps/W1/Quality Management/app/Resources/InstallFiles/PackageQM-EXPRESSDEMO.rapidstart deleted file mode 100644 index 6d401f9d1f818a0a6f9fc190b68576c23a1401b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15302 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 Cqvizw From 65d2d90219713d999833e458a2273aa154726878 Mon Sep 17 00:00:00 2001 From: attilatoury Date: Thu, 8 Jan 2026 14:17:14 +0100 Subject: [PATCH 02/14] added a new contoso coffee demo dataset app for quality management and removed the use of the rapid start package from the wizard --- .../QltyAutoConfigure.Codeunit.al | 102 ------ .../QltyManagementSetupWizard.Page.al | 44 +-- .../CreateQualityInspResult.Codeunit.al | 47 +++ .../CreateQualityLookupCode.Codeunit.al | 270 +++++++++++++++ .../CreateQualityTest.Codeunit.al | 322 ++++++++++++++++++ .../CreateQMGenerationRule.Codeunit.al | 23 ++ .../CreateQMGenerationRuleManu.Codeunit.al | 23 ++ .../CreateQMInspTemplateHdr.Codeunit.al | 96 ++++++ .../CreateQMInspTemplateLine.Codeunit.al | 62 ++++ .../CreateQMResultConditConf.Codeunit.al | 271 +++++++++++++++ .../QualityManagementModule.Codeunit.al | 54 +++ .../DemoTool/ContosoDemoDataModule.EnumExt.al | 8 + .../ContosoQualityManagement.Codeunit.al | 234 +++++++++++++ .../ExtensionLogo.png | Bin 0 -> 5446 bytes .../app.json | 47 +++ 15 files changed, 1471 insertions(+), 132 deletions(-) create mode 100644 src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/1.Setup Data/CreateQualityInspResult.Codeunit.al create mode 100644 src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/1.Setup Data/CreateQualityLookupCode.Codeunit.al create mode 100644 src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/1.Setup Data/CreateQualityTest.Codeunit.al create mode 100644 src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMGenerationRule.Codeunit.al create mode 100644 src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMGenerationRuleManu.Codeunit.al create mode 100644 src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMInspTemplateHdr.Codeunit.al create mode 100644 src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMInspTemplateLine.Codeunit.al create mode 100644 src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMResultConditConf.Codeunit.al create mode 100644 src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/QualityManagementModule.Codeunit.al create mode 100644 src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoDemoDataModule.EnumExt.al create mode 100644 src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoHelpers/ContosoQualityManagement.Codeunit.al create mode 100644 src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/ExtensionLogo.png create mode 100644 src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/app.json diff --git a/src/Apps/W1/Quality Management/app/src/Configuration/QltyAutoConfigure.Codeunit.al b/src/Apps/W1/Quality Management/app/src/Configuration/QltyAutoConfigure.Codeunit.al index c47ae19780..57c4875ba6 100644 --- a/src/Apps/W1/Quality Management/app/src/Configuration/QltyAutoConfigure.Codeunit.al +++ b/src/Apps/W1/Quality Management/app/src/Configuration/QltyAutoConfigure.Codeunit.al @@ -100,11 +100,6 @@ codeunit 20402 "Qlty. Auto Configure" AssemblyOutputToInspectDescriptionTok: Label 'Posted Assembly Header to Inspect', Locked = true; ResourceBasedInstallFileTok: Label 'InstallFiles/PackageQM-EXPRESSDEMO.rapidstart', Locked = true; - internal procedure GetDefaultPassResult(): Text - begin - exit(DefaultResult2PassCodeTok); - end; - internal procedure EnsureBasicSetupExists(ShowMessage: Boolean) begin EnsureSetupRecordExists(); @@ -1784,101 +1779,4 @@ codeunit 20402 "Qlty. Auto Configure" QltyInspectSrcFldConf.Insert(); end; end; - - /// - /// GuessDoesAppearToBeSetup will guess if the system appears to be setup. - /// Use this if you need to not just make sure that Quality Management is installed but some basic setup has been done. - /// - /// Return value of type Boolean. - procedure GuessDoesAppearToBeSetup(): Boolean - var - QltyInspectionGenRule: Record "Qlty. Inspection Gen. Rule"; - QltyInspectionTemplateHdr: Record "Qlty. Inspection Template Hdr."; - QltyTest: Record "Qlty. Test"; - QltyInspectionResult: Record "Qlty. Inspection Result"; - begin - case true of - QltyInspectionGenRule.IsEmpty(), - QltyInspectionTemplateHdr.IsEmpty(), - QltyTest.IsEmpty(), - QltyInspectionResult.IsEmpty(): - exit(false); - end; - - exit(true); - end; - - /// - /// GuessDoesAppearToBeUsed will guess if it's used. - /// Use this if you need to guess if the system is not just probably setup enough, but also appears to have actual usage. - /// - /// Return value of type Boolean. - procedure GuessDoesAppearToBeUsed(): Boolean - var - QltyInspectionLine: Record "Qlty. Inspection Line"; - begin - exit(QltyInspectionLine.Count() > 2); - end; - - /// - /// Apply any settings files from the public endpoint - /// - /// Boolean. - procedure ApplyGettingStartedData(CurrentCommit: Boolean) - begin - if CurrentCommit then - Commit(); - ApplyConfigurationPackage(); - if CurrentCommit then - Commit(); - end; - - /// - /// Apply the configuration package. - /// - procedure ApplyConfigurationPackage() - begin - ApplyConfigurationPackageFromResource(ResourceBasedInstallFileTok); - UpdateResultCategoryOnResultsInSystem(); - end; - - local procedure UpdateResultCategoryOnResultsInSystem() - var - QltyInspectionResult: Record "Qlty. Inspection Result"; - begin - QltyInspectionResult.SetRange("Result Category", QltyInspectionResult."Result Category"::Uncategorized); - if QltyInspectionResult.FindSet(true) then - repeat - case QltyInspectionResult.Code of - 'PASS', 'GOOD', 'ACCEPTABLE': - begin - QltyInspectionResult."Result Category" := QltyInspectionResult."Result Category"::Acceptable; - QltyInspectionResult.Modify(false); - end; - 'FAIL', 'BAD', 'UNACCEPTABLE', 'ERROR', 'REJECT': - begin - QltyInspectionResult."Result Category" := QltyInspectionResult."Result Category"::"Not acceptable"; - QltyInspectionResult.Modify(false); - end; - end; - until QltyInspectionResult.Next() = 0; - end; - - /// - /// Apply the supplied configuration package. - /// - /// reference to the internal resource location - procedure ApplyConfigurationPackageFromResource(ResourcePath: Text) - var - TempBlob: Codeunit "Temp Blob"; - ConfigPackageImport: Codeunit "Config. Package - Import"; - InStreamFromResource: InStream; - OutStreamToConfigPackage: OutStream; - begin - TempBlob.CreateInStream(InStreamFromResource); - TempBlob.CreateOutStream(OutStreamToConfigPackage); - NavApp.GetResource(ResourcePath, InStreamFromResource); - CopyStream(OutStreamToConfigPackage, InStreamFromResource); - ConfigPackageImport.ImportAndApplyRapidStartPackageStream(TempBlob); - end; } diff --git a/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al b/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al index 0153713e77..0943915ad1 100644 --- a/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al +++ b/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al @@ -42,25 +42,21 @@ page 20438 "Qlty. Management Setup Wizard" InstructionalText = 'This wizard will guide you through the initial setup required to perform quality inspections.'; } } - group(SettingsFor_StepGettingStarted) + group(DemoData) { - Caption = 'Apply Getting Started Data?'; - Visible = (StepGettingStarted = CurrentStepCounter); - InstructionalText = 'Would you like to apply getting started data?'; + Caption = 'Demo data for Quality Management'; + Visible = (StepDemoData = CurrentStepCounter); - group(SettingsFor_ApplyConfigurationPackage) + group(DemoDataIntroduction) { - Caption = 'What Is Getting Started Data?'; - InstructionalText = 'Getting started data for Quality Management will include basic setup data and also some useful examples or other demonstration data. Getting Started data can help you get running quickly, or help you with evaluating if the application is a fit more quickly. Very basic setup data for common integration scenarios will still be applied if you choose not to apply the getting started data. If you do not want this data, or if you have been previously set up then do not apply this configuration.'; + Caption = 'Demo data for Quality Management'; + InstructionalText = 'The Quality Management application includes demo data available as a Contoso Demo Tool module. Here is how to get started with it.'; + } - field(ChooseApplyConfigurationPackage; ApplyConfigurationPackage) - { - ApplicationArea = Basic, Suite; - OptionCaption = 'Apply Getting Started Data,Do Not Apply Configuration'; - Caption = 'Getting Started Data?'; - ShowCaption = false; - ToolTip = 'Specifies a configuration package of getting-started data is available to automatically apply.'; - } + group(DemoDataInstructions) + { + Caption = 'How to?'; + InstructionalText = 'Navigate to the Contoso Demo Tool page. Then, select the Quality Management module, and click on the Generate action. This will install demo data including sample inspection templates, inspection generation rules, and quality inspections.'; } } group(SettingsFor_StepWhatAreYouMakingQltyInspectionsFor) @@ -435,14 +431,13 @@ page 20438 "Qlty. Management Setup Wizard" ShowHTMLHeader: Boolean; IsPremiumExperienceEnabled: Boolean; StepWelcome: Integer; - StepGettingStarted: Integer; + StepDemoData: Integer; StepReceivingConfig: Integer; StepWhatAreYouMakingQltyInspectionsFor: Integer; StepProductionConfig: Integer; StepShowInspections: Integer; StepDone: Integer; MaxStep: Integer; - ApplyConfigurationPackage: Option "Apply Getting Started Data","Do Not Apply Configuration."; ReRunThisWizardWithMorePermissionErr: Label 'It looks like you need more permissions to run this wizard successfully. Please ask your Business Central administrator to grant more permission.'; FinishWizardLbl: Label 'Finish wizard.', Locked = true; QualityManagementTok: Label 'Quality Management', Locked = true; @@ -453,7 +448,7 @@ page 20438 "Qlty. Management Setup Wizard" CopyPreviousSetup(); StepWelcome := 1; - StepGettingStarted := 2; + StepDemoData := 2; StepWhatAreYouMakingQltyInspectionsFor := 3; StepProductionConfig := 4; StepReceivingConfig := 5; @@ -513,13 +508,6 @@ page 20438 "Qlty. Management Setup Wizard" Commit(); QltyAutoConfigure.EnsureBasicSetupExists(false); - if GuidedExperience.IsAssistedSetupComplete(ObjectType::Page, Page::"Qlty. Management Setup Wizard") or - QltyAutoConfigure.GuessDoesAppearToBeSetup() or - QltyAutoConfigure.GuessDoesAppearToBeUsed() - then - ApplyConfigurationPackage := ApplyConfigurationPackage::"Do Not Apply Configuration." - else - ApplyConfigurationPackage := ApplyConfigurationPackage::"Apply Getting Started Data"; end; StepWhatAreYouMakingQltyInspectionsFor: begin @@ -563,13 +551,9 @@ page 20438 "Qlty. Management Setup Wizard" case LeavingThisStep of StepWelcome: Commit(); - StepGettingStarted: + StepDemoData: begin GetLatestSetupRecord(true, true); - if ApplyConfigurationPackage = ApplyConfigurationPackage::"Apply Getting Started Data" then begin - QltyAutoConfigure.ApplyGettingStartedData(true); - Commit(); - end; Commit(); GetLatestSetupRecord(false, true); end; diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/1.Setup Data/CreateQualityInspResult.Codeunit.al b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/1.Setup Data/CreateQualityInspResult.Codeunit.al new file mode 100644 index 0000000000..22f0750677 --- /dev/null +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/1.Setup Data/CreateQualityInspResult.Codeunit.al @@ -0,0 +1,47 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.QualityManagement; + +using Microsoft.DemoTool.Helpers; +using Microsoft.QualityManagement.Configuration.Result; + +codeunit 5216 "Create Quality Insp. Result" +{ + InherentEntitlements = X; + InherentPermissions = X; + + trigger OnRun() + var + ContosoQualityManagement: Codeunit "Contoso Quality Management"; + begin + ContosoQualityManagement.InsertQualityInspectionResult(Fail(), FailDescLbl, 1, Enum::"Qlty. Result Copy Behavior"::"Automatically copy the result", Enum::"Qlty. Result Visibility"::"Configuration only", '<>0', '<>""', 'No', Enum::"Qlty. Result Category"::"Not acceptable", Enum::"Qlty. Result Finish Allowed"::"Allow Finish"); + ContosoQualityManagement.InsertQualityInspectionResult(InProgress(), InProgressDescLbl, 0, Enum::"Qlty. Result Copy Behavior"::"Automatically copy the result", Enum::"Qlty. Result Visibility"::"Configuration only", '', '', '', Enum::"Qlty. Result Category"::Uncategorized, Enum::"Qlty. Result Finish Allowed"::"Allow Finish"); + ContosoQualityManagement.InsertQualityInspectionResult(Pass(), PassDescLbl, 2, Enum::"Qlty. Result Copy Behavior"::"Automatically copy the result", Enum::"Qlty. Result Visibility"::Promoted, '<>0', '<>""', 'Yes', Enum::"Qlty. Result Category"::Acceptable, Enum::"Qlty. Result Finish Allowed"::"Allow Finish"); + end; + + procedure Fail(): Code[20] + begin + exit(FailTok); + end; + + procedure InProgress(): Code[20] + begin + exit(InProgressTok); + end; + + procedure Pass(): Code[20] + begin + exit(PassTok); + end; + + var + FailTok: Label 'FAIL', MaxLength = 20; + InProgressTok: Label 'INPROGRESS', MaxLength = 20; + PassTok: Label 'PASS', MaxLength = 20; + + FailDescLbl: Label 'Fail', MaxLength = 100; + InProgressDescLbl: Label 'In Progress', MaxLength = 100; + PassDescLbl: Label 'Pass', MaxLength = 100; +} diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/1.Setup Data/CreateQualityLookupCode.Codeunit.al b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/1.Setup Data/CreateQualityLookupCode.Codeunit.al new file mode 100644 index 0000000000..463447ef1c --- /dev/null +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/1.Setup Data/CreateQualityLookupCode.Codeunit.al @@ -0,0 +1,270 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.QualityManagement; + +using Microsoft.DemoTool.Helpers; + +codeunit 5215 "Create Quality Lookup Code" +{ + InherentEntitlements = X; + InherentPermissions = X; + + trigger OnRun() + var + ContosoQualityManagement: Codeunit "Contoso Quality Management"; + begin + ContosoQualityManagement.InsertQualityLookupCode(EcoliPresent(), Absent(), NoEColiDetectedLbl); + ContosoQualityManagement.InsertQualityLookupCode(EcoliPresent(), Present(), AnyEColiDetectedLbl); + + ContosoQualityManagement.InsertQualityLookupCode(NcrClassification(), Major(), MajorLbl); + ContosoQualityManagement.InsertQualityLookupCode(NcrClassification(), Minor(), MinorLbl); + + ContosoQualityManagement.InsertQualityLookupCode(Odor(), BadOdor(), BadOdorDescLbl); + ContosoQualityManagement.InsertQualityLookupCode(Odor(), MildOdor(), MildOdorDescLbl); + ContosoQualityManagement.InsertQualityLookupCode(Odor(), NoOdor(), NoOdorDescLbl); + + ContosoQualityManagement.InsertQualityLookupCode(PackagingVisual(), Heavy(), HeavyDamageDescLbl); + ContosoQualityManagement.InsertQualityLookupCode(PackagingVisual(), Light(), LightDamageDescLbl); + ContosoQualityManagement.InsertQualityLookupCode(PackagingVisual(), Undamaged(), UndamagedPackagingDescLbl); + + ContosoQualityManagement.InsertQualityLookupCode(ShippingLabel(), BadPosition(), IncorrectPositionOfLabelLbl); + ContosoQualityManagement.InsertQualityLookupCode(ShippingLabel(), Blurred(), LabelIsBlurredLbl); + ContosoQualityManagement.InsertQualityLookupCode(ShippingLabel(), Damage(), LabelIsDamagedLbl); + ContosoQualityManagement.InsertQualityLookupCode(ShippingLabel(), Good(), LabelIsGoodLbl); + + ContosoQualityManagement.InsertQualityLookupCode(TypeOfCar(), ACar(), AuditLbl); + ContosoQualityManagement.InsertQualityLookupCode(TypeOfCar(), ICar(), InternalOrVendorLbl); + ContosoQualityManagement.InsertQualityLookupCode(TypeOfCar(), SCar(), CustomerLbl); + + ContosoQualityManagement.InsertQualityLookupCode(CoffeeDefect(), CoffeeDefectColor(), CoffeeDefectColorDescLbl); + ContosoQualityManagement.InsertQualityLookupCode(CoffeeDefect(), CoffeeDefectForeign(), CoffeeDefectForeignDescLbl); + ContosoQualityManagement.InsertQualityLookupCode(CoffeeDefect(), CoffeeDefectInsect(), CoffeeDefectInsectDescLbl); + ContosoQualityManagement.InsertQualityLookupCode(CoffeeDefect(), CoffeeDefectOdor(), CoffeeDefectOdorDescLbl); + + ContosoQualityManagement.InsertQualityLookupCode(CoffeeUniformity(), CoffeeUniformityIrregular(), CoffeeUniformityIrregularDescLbl); + ContosoQualityManagement.InsertQualityLookupCode(CoffeeUniformity(), CoffeeUniformityMixed(), CoffeeUniformityMixedDescLbl); + ContosoQualityManagement.InsertQualityLookupCode(CoffeeUniformity(), CoffeeUniformityUniform(), CoffeeUniformityUniformDescLbl); + end; + + procedure EcoliPresent(): Code[20] + begin + exit(EcoliPresentTok); + end; + + procedure NcrClassification(): Code[20] + begin + exit(NcrClassificationTok); + end; + + procedure Odor(): Code[20] + begin + exit(OdorTok); + end; + + procedure PackagingVisual(): Code[20] + begin + exit(PackagingVisualTok); + end; + + procedure ShippingLabel(): Code[20] + begin + exit(ShippingLabelTok); + end; + + procedure TypeOfCar(): Code[20] + begin + exit(TypeOfCarTok); + end; + + procedure CoffeeDefect(): Code[20] + begin + exit(CoffeeDefectTok); + end; + + procedure CoffeeUniformity(): Code[20] + begin + exit(CoffeeUniformityTok); + end; + + procedure Absent(): Code[100] + begin + exit(AbsentTok); + end; + + procedure Present(): Code[100] + begin + exit(PresentTok); + end; + + procedure Major(): Code[100] + begin + exit(MajorTok); + end; + + procedure Minor(): Code[100] + begin + exit(MinorTok); + end; + + procedure BadOdor(): Code[100] + begin + exit(BadOdorTok); + end; + + procedure MildOdor(): Code[100] + begin + exit(MildOdorTok); + end; + + procedure NoOdor(): Code[100] + begin + exit(NoOdorTok); + end; + + procedure Heavy(): Code[100] + begin + exit(HeavyTok); + end; + + procedure Light(): Code[100] + begin + exit(LightTok); + end; + + procedure Undamaged(): Code[100] + begin + exit(UndamagedTok); + end; + + procedure BadPosition(): Code[100] + begin + exit(BadPositionTok); + end; + + procedure Blurred(): Code[100] + begin + exit(BlurredTok); + end; + + procedure Damage(): Code[100] + begin + exit(DamageTok); + end; + + procedure Good(): Code[100] + begin + exit(GoodTok); + end; + + procedure ACar(): Code[100] + begin + exit(ACarTok); + end; + + procedure ICar(): Code[100] + begin + exit(ICarTok); + end; + + procedure SCar(): Code[100] + begin + exit(SCarTok); + end; + + procedure CoffeeDefectColor(): Code[100] + begin + exit(CoffeeDefectColorTok); + end; + + procedure CoffeeDefectForeign(): Code[100] + begin + exit(CoffeeDefectForeignTok); + end; + + procedure CoffeeDefectInsect(): Code[100] + begin + exit(CoffeeDefectInsectTok); + end; + + procedure CoffeeDefectOdor(): Code[100] + begin + exit(CoffeeDefectOdorTok); + end; + + procedure CoffeeUniformityIrregular(): Code[100] + begin + exit(CoffeeUniformityIrregularTok); + end; + + procedure CoffeeUniformityMixed(): Code[100] + begin + exit(CoffeeUniformityMixedTok); + end; + + procedure CoffeeUniformityUniform(): Code[100] + begin + exit(CoffeeUniformityUniformTok); + end; + + var + EcoliPresentTok: Label 'ECOLIPRESENT', MaxLength = 20; + NcrClassificationTok: Label 'NCRCLASSIFICATION', MaxLength = 20; + OdorTok: Label 'ODOR', MaxLength = 20; + PackagingVisualTok: Label 'PACKAGINGVISUAL', MaxLength = 20; + ShippingLabelTok: Label 'SHIPPINGLABEL', MaxLength = 20; + TypeOfCarTok: Label 'TYPEOFCAR', MaxLength = 20; + CoffeeDefectTok: Label 'COFFEE_DEFECT', MaxLength = 20; + CoffeeUniformityTok: Label 'COFFEE_UNIFORMITY', MaxLength = 20; + + AbsentTok: Label 'ABSENT', MaxLength = 100; + PresentTok: Label 'PRESENT', MaxLength = 100; + MajorTok: Label 'MAJOR', MaxLength = 100; + MinorTok: Label 'MINOR', MaxLength = 100; + BadOdorTok: Label 'BADODOR', MaxLength = 100; + MildOdorTok: Label 'MILDODOR', MaxLength = 100; + NoOdorTok: Label 'NOODOR', MaxLength = 100; + HeavyTok: Label 'HEAVY', MaxLength = 100; + LightTok: Label 'LIGHT', MaxLength = 100; + UndamagedTok: Label 'UNDAMAGED', MaxLength = 100; + BadPositionTok: Label 'BADPOSITION', MaxLength = 100; + BlurredTok: Label 'BLURRED', MaxLength = 100; + DamageTok: Label 'DAMAGE', MaxLength = 100; + GoodTok: Label 'GOOD', MaxLength = 100; + ACarTok: Label 'ACAR', MaxLength = 100; + ICarTok: Label 'ICAR', MaxLength = 100; + SCarTok: Label 'SCAR', MaxLength = 100; + CoffeeDefectColorTok: Label 'COLOR', MaxLength = 100; + CoffeeDefectForeignTok: Label 'FOREIGN', MaxLength = 100; + CoffeeDefectInsectTok: Label 'INSECT', MaxLength = 100; + CoffeeDefectOdorTok: Label 'ODOR', MaxLength = 100; + CoffeeUniformityIrregularTok: Label 'IRREGULAR', MaxLength = 100; + CoffeeUniformityMixedTok: Label 'MIXED', MaxLength = 100; + CoffeeUniformityUniformTok: Label 'UNIFORM', MaxLength = 100; + + NoEColiDetectedLbl: Label 'No E-Coli detected', MaxLength = 250; + AnyEColiDetectedLbl: Label 'Any E-Coli detected', MaxLength = 250; + MajorLbl: Label 'Major', MaxLength = 250; + MinorLbl: Label 'Minor', MaxLength = 250; + BadOdorDescLbl: Label 'Bad odor', MaxLength = 250; + MildOdorDescLbl: Label 'Mild Odor', MaxLength = 250; + NoOdorDescLbl: Label 'No Odor', MaxLength = 250; + HeavyDamageDescLbl: Label 'Heavy Damage', MaxLength = 250; + LightDamageDescLbl: Label 'Light Damage', MaxLength = 250; + UndamagedPackagingDescLbl: Label 'Undamaged packaging', MaxLength = 250; + IncorrectPositionOfLabelLbl: Label 'Incorrect position of label', MaxLength = 250; + LabelIsBlurredLbl: Label 'Label is blurred', MaxLength = 250; + LabelIsDamagedLbl: Label 'Label is damaged', MaxLength = 250; + LabelIsGoodLbl: Label 'Label is in good position and placement', MaxLength = 250; + AuditLbl: Label 'Audit', MaxLength = 250; + InternalOrVendorLbl: Label 'Internal or Vendor', MaxLength = 250; + CustomerLbl: Label 'Customer', MaxLength = 250; + CoffeeDefectColorDescLbl: Label 'Black or discolored beans', MaxLength = 250; + CoffeeDefectForeignDescLbl: Label 'Stones, sticks, or other non-coffee debris', MaxLength = 250; + CoffeeDefectInsectDescLbl: Label 'Insect-Damaged Beans: visible holes or eaten portions', MaxLength = 250; + CoffeeDefectOdorDescLbl: Label 'Unpleasant or abnormal smell', MaxLength = 250; + CoffeeUniformityIrregularDescLbl: Label 'Beans have significant inconsistencies; likely to affect roasting and flavor', MaxLength = 250; + CoffeeUniformityMixedDescLbl: Label 'Beans show moderate variation in size or shape; acceptable but not ideal', MaxLength = 250; + CoffeeUniformityUniformDescLbl: Label 'Beans are consistent in size, shape, and color; minimal variation', MaxLength = 250; +} diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/1.Setup Data/CreateQualityTest.Codeunit.al b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/1.Setup Data/CreateQualityTest.Codeunit.al new file mode 100644 index 0000000000..030d23d0e7 --- /dev/null +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/1.Setup Data/CreateQualityTest.Codeunit.al @@ -0,0 +1,322 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.QualityManagement; + +using Microsoft.DemoTool.Helpers; +using Microsoft.QualityManagement.Configuration.Template.Test; + +codeunit 5214 "Create Quality Test" +{ + InherentEntitlements = X; + InherentPermissions = X; + + trigger OnRun() + var + ContosoQualityManagement: Codeunit "Contoso Quality Management"; + CreateQualityLookupCode: Codeunit "Create Quality Lookup Code"; + QltyLookupCodeTableNo: Integer; + LookupFilterLbl: Label 'where(Group code=const(%1))', Locked = true, Comment = '%1 is the group code to filter with'; + begin + QltyLookupCodeTableNo := Database::"Qlty. Lookup Code"; + + ContosoQualityManagement.InsertQualityTest(ApcPerGram(), ApcPerGramDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Decimal", '1..999000000', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(ColiformCount(), ColiformCountDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Decimal", '', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(PackageHeight(), PackageHeightDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Decimal", '10..200', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(PackageLength(), PackageLengthDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Decimal", '1..100', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(PackageWidth(), PackageWidthDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Decimal", '1..100', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(Temperature(), TemperatureDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Decimal", '-100..100', 0, 0, '', '', ''); + + ContosoQualityManagement.InsertQualityTest(BrakesCheck(), BrakesCheckDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Boolean", '', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(GearShiftCheck(), GearShiftCheckDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Boolean", '', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(HandlebarAligned(), HandlebarAlignedDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Boolean", '', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(VisualWeldCheck(), VisualWeldCheckDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Boolean", '', 0, 0, '', '', ''); + + ContosoQualityManagement.InsertQualityTest(CarContainment(), CarContainmentDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Text", '', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(CorrectiveAction(), CorrectiveActionDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Text", '', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(DescriptionOfNonConf(), DescriptionOfNonConfDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Text", '', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(Explanation(), ExplanationDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Text", '', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(NcrObjectiveEvidence(), NcrObjectiveEvidenceDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Text", '', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(NcrRequirement(), NcrRequirementDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Text", '', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(RootCauseFindings(), RootCauseFindingsDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Text", '', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(VerificationOfEffecti(), VerificationOfEffectiDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Text", '', 0, 0, '', '', ''); + + ContosoQualityManagement.InsertQualityTest(CarRequestedDate(), CarRequestedDateDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Date", '', 0, 0, '', '', ''); + + ContosoQualityManagement.InsertQualityTest(LblNcrDetail(), LblNcrDetailDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Label", '', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(LblNcrPlannedAction(), LblNcrPlannedActionDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Label", '', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(LblVerification(), LblVerificationDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Label", '', 0, 0, '', '', ''); + + ContosoQualityManagement.InsertQualityTest(CarType(), CarTypeDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Table Lookup", '', QltyLookupCodeTableNo, 2, StrSubstNo(LookupFilterLbl, CreateQualityLookupCode.TypeOfCar()), '', ''); + ContosoQualityManagement.InsertQualityTest(CustomerServiceRepre(), CustomerServiceRepreDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Table Lookup", '', 5200, 1, '', '', ''); + ContosoQualityManagement.InsertQualityTest(EcoliPresent(), EcoliPresentDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Table Lookup", '', QltyLookupCodeTableNo, 2, StrSubstNo(LookupFilterLbl, CreateQualityLookupCode.EcoliPresent()), '', ''); + ContosoQualityManagement.InsertQualityTest(NcrClassification(), NcrClassificationDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Table Lookup", '', QltyLookupCodeTableNo, 2, StrSubstNo(LookupFilterLbl, CreateQualityLookupCode.NcrClassification()), '', ''); + ContosoQualityManagement.InsertQualityTest(Odor(), OdorDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Table Lookup", '', QltyLookupCodeTableNo, 2, StrSubstNo(LookupFilterLbl, CreateQualityLookupCode.Odor()), '', ''); + ContosoQualityManagement.InsertQualityTest(PackagingVisual(), PackagingVisualDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Table Lookup", '', QltyLookupCodeTableNo, 2, StrSubstNo(LookupFilterLbl, CreateQualityLookupCode.PackagingVisual()), '', ''); + ContosoQualityManagement.InsertQualityTest(ReasonCode(), ReasonCodeDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Table Lookup", '', QltyLookupCodeTableNo, 2, StrSubstNo(LookupFilterLbl, ReasonCode()), '', ''); + ContosoQualityManagement.InsertQualityTest(ShippingLabel(), ShippingLabelDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Table Lookup", '', QltyLookupCodeTableNo, 2, StrSubstNo(LookupFilterLbl, CreateQualityLookupCode.ShippingLabel()), '', ''); + + ContosoQualityManagement.InsertQualityTest(CoffeeUniformity(), CoffeeUniformityDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Table Lookup", '', QltyLookupCodeTableNo, 2, StrSubstNo(LookupFilterLbl, CreateQualityLookupCode.CoffeeUniformity()), '', ''); + ContosoQualityManagement.InsertQualityTest(CoffeeDefect(), CoffeeDefectDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Table Lookup", '', QltyLookupCodeTableNo, 2, StrSubstNo(LookupFilterLbl, CreateQualityLookupCode.CoffeeDefect()), '', ''); + ContosoQualityManagement.InsertQualityTest(Comment(), CommentDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Text", '', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(Moisture(), MoistureDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Integer", '0..100', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(Labeling(), LabelingDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Boolean", '', 0, 0, '', '', ''); + ContosoQualityManagement.InsertQualityTest(BagWeight(), BagWeightDescLbl, Enum::"Qlty. Test Value Type"::"Value Type Decimal", '1..100', 0, 0, '', '', 'KG'); + end; + + procedure ApcPerGram(): Code[20] + begin + exit(ApcPerGramTok); + end; + + procedure BrakesCheck(): Code[20] + begin + exit(BrakesCheckTok); + end; + + procedure CarContainment(): Code[20] + begin + exit(CarContainmentTok); + end; + + procedure CarRequestedDate(): Code[20] + begin + exit(CarRequestedDateTok); + end; + + procedure CarType(): Code[20] + begin + exit(CarTypeTok); + end; + + procedure ColiformCount(): Code[20] + begin + exit(ColiformCountTok); + end; + + procedure CorrectiveAction(): Code[20] + begin + exit(CorrectiveActionTok); + end; + + procedure CustomerServiceRepre(): Code[20] + begin + exit(CustomerServiceRepreTok); + end; + + procedure DescriptionOfNonConf(): Code[20] + begin + exit(DescriptionOfNonConfTok); + end; + + procedure EcoliPresent(): Code[20] + begin + exit(EcoliPresentTok); + end; + + procedure Explanation(): Code[20] + begin + exit(ExplanationTok); + end; + + procedure GearShiftCheck(): Code[20] + begin + exit(GearShiftCheckTok); + end; + + procedure HandlebarAligned(): Code[20] + begin + exit(HandlebarAlignedTok); + end; + + procedure LblNcrDetail(): Code[20] + begin + exit(LblNcrDetailTok); + end; + + procedure LblNcrPlannedAction(): Code[20] + begin + exit(LblNcrPlannedActionTok); + end; + + procedure LblVerification(): Code[20] + begin + exit(LblVerificationTok); + end; + + procedure NcrClassification(): Code[20] + begin + exit(NcrClassificationTok); + end; + + procedure NcrObjectiveEvidence(): Code[20] + begin + exit(NcrObjectiveEvidenceTok); + end; + + procedure NcrRequirement(): Code[20] + begin + exit(NcrRequirementTok); + end; + + procedure Odor(): Code[20] + begin + exit(OdorTok); + end; + + procedure PackageHeight(): Code[20] + begin + exit(PackageHeightTok); + end; + + procedure PackageLength(): Code[20] + begin + exit(PackageLengthTok); + end; + + procedure PackageWidth(): Code[20] + begin + exit(PackageWidthTok); + end; + + procedure PackagingVisual(): Code[20] + begin + exit(PackagingVisualTok); + end; + + procedure ReasonCode(): Code[20] + begin + exit(ReasonCodeTok); + end; + + procedure RootCauseFindings(): Code[20] + begin + exit(RootCauseFindingsTok); + end; + + procedure ShippingLabel(): Code[20] + begin + exit(ShippingLabelTok); + end; + + procedure Temperature(): Code[20] + begin + exit(TemperatureTok); + end; + + procedure VerificationOfEffecti(): Code[20] + begin + exit(VerificationOfEffectiTok); + end; + + procedure VisualWeldCheck(): Code[20] + begin + exit(VisualWeldCheckTok); + end; + + procedure CoffeeUniformity(): Code[20] + begin + exit(CoffeeUniformityTok); + end; + + procedure CoffeeDefect(): Code[20] + begin + exit(CoffeeDefectTok); + end; + + procedure Comment(): Code[20] + begin + exit(CommentTok); + end; + + procedure Moisture(): Code[20] + begin + exit(MoistureTok); + end; + + procedure Labeling(): Code[20] + begin + exit(LabelingTok); + end; + + procedure BagWeight(): Code[20] + begin + exit(BagWeightTok); + end; + + var + ApcPerGramTok: Label 'APCPERGRAM', MaxLength = 20; + BrakesCheckTok: Label 'BRAKESCHECK', MaxLength = 20; + CarContainmentTok: Label 'CARCONTAINMENT', MaxLength = 20; + CarRequestedDateTok: Label 'CARREQUESTEDDATE', MaxLength = 20; + CarTypeTok: Label 'CARTYPE', MaxLength = 20; + ColiformCountTok: Label 'COLIFORMCOUNT', MaxLength = 20; + CorrectiveActionTok: Label 'CORRECTIVEACTION', MaxLength = 20; + CustomerServiceRepreTok: Label 'CUSTOMERSERVICEREPRE', MaxLength = 20; + DescriptionOfNonConfTok: Label 'DESCRIPTIONOFNONCONF', MaxLength = 20; + EcoliPresentTok: Label 'ECOLIPRESENT', MaxLength = 20; + ExplanationTok: Label 'EXPLANATION', MaxLength = 20; + GearShiftCheckTok: Label 'GEARSHIFTCHECK', MaxLength = 20; + HandlebarAlignedTok: Label 'HANDLEBARALIGNED', MaxLength = 20; + LblNcrDetailTok: Label 'LBLNCRDETAIL', MaxLength = 20; + LblNcrPlannedActionTok: Label 'LBLNCRPLANNEDACTION', MaxLength = 20; + LblVerificationTok: Label 'LBLVERIFICATION', MaxLength = 20; + NcrClassificationTok: Label 'NCRCLASSIFICATION', MaxLength = 20; + NcrObjectiveEvidenceTok: Label 'NCROBJECTIVEEVIDENCE', MaxLength = 20; + NcrRequirementTok: Label 'NCRREQUIREMENT', MaxLength = 20; + OdorTok: Label 'ODOR', MaxLength = 20; + PackageHeightTok: Label 'PACKAGEHEIGHT', MaxLength = 20; + PackageLengthTok: Label 'PACKAGELENGTH', MaxLength = 20; + PackageWidthTok: Label 'PACKAGEWIDTH', MaxLength = 20; + PackagingVisualTok: Label 'PACKAGINGVISUAL', MaxLength = 20; + ReasonCodeTok: Label 'REASONCODE', MaxLength = 20; + RootCauseFindingsTok: Label 'ROOTCAUSEFINDINGS', MaxLength = 20; + ShippingLabelTok: Label 'SHIPPINGLABEL', MaxLength = 20; + TemperatureTok: Label 'TEMPERATURE', MaxLength = 20; + VerificationOfEffectiTok: Label 'VERIFICATIONOFFFECTI', MaxLength = 20; + VisualWeldCheckTok: Label 'VISUALWELDCHECK', MaxLength = 20; + CoffeeUniformityTok: Label 'COFFEE_UNIFORMITY', MaxLength = 20; + CoffeeDefectTok: Label 'COFFEE_DEFECT', MaxLength = 20; + CommentTok: Label 'COMMENT', MaxLength = 20; + MoistureTok: Label 'MOISTURE', MaxLength = 20; + LabelingTok: Label 'LABELING', MaxLength = 20; + BagWeightTok: Label 'BAG_WEIGHT', MaxLength = 20; + + ApcPerGramDescLbl: Label 'Aerobic Plate Count per Gram', MaxLength = 100; + BrakesCheckDescLbl: Label 'Brakes Check', MaxLength = 100; + CarContainmentDescLbl: Label 'Containment Action(s) including correction', MaxLength = 100; + CarRequestedDateDescLbl: Label 'Requested Date', MaxLength = 100; + CarTypeDescLbl: Label 'Type of CAR', MaxLength = 100; + ColiformCountDescLbl: Label 'Coliform Count', MaxLength = 100; + CorrectiveActionDescLbl: Label 'Corrective Action', MaxLength = 100; + CustomerServiceRepreDescLbl: Label 'Customer Service Representative', MaxLength = 100; + DescriptionOfNonConfDescLbl: Label 'Description of Non Conformance', MaxLength = 100; + EcoliPresentDescLbl: Label 'ECOLIPRESENT', MaxLength = 100; + ExplanationDescLbl: Label 'Explanation', MaxLength = 100; + GearShiftCheckDescLbl: Label 'Gear Shift Check', MaxLength = 100; + HandlebarAlignedDescLbl: Label 'Handlebar Aligned', MaxLength = 100; + LblNcrDetailDescLbl: Label 'Details of Nonconformity', MaxLength = 100; + LblNcrPlannedActionDescLbl: Label 'Planned Actions', MaxLength = 100; + LblVerificationDescLbl: Label 'Verification', MaxLength = 100; + NcrClassificationDescLbl: Label 'Classification', MaxLength = 100; + NcrObjectiveEvidenceDescLbl: Label 'Objective Evidence', MaxLength = 100; + NcrRequirementDescLbl: Label 'Requirement / Clause No.(s)', MaxLength = 100; + OdorDescLbl: Label 'Odor', MaxLength = 100; + PackageHeightDescLbl: Label 'Package Height', MaxLength = 100; + PackageLengthDescLbl: Label 'package length', MaxLength = 100; + PackageWidthDescLbl: Label 'Package Width', MaxLength = 100; + PackagingVisualDescLbl: Label 'Packaging Visual', MaxLength = 100; + ReasonCodeDescLbl: Label 'Reason Code', MaxLength = 100; + RootCauseFindingsDescLbl: Label 'Root Cause Findings', MaxLength = 100; + ShippingLabelDescLbl: Label 'Shipping Label', MaxLength = 100; + TemperatureDescLbl: Label 'Temperature', MaxLength = 100; + VerificationOfEffectiDescLbl: Label 'Verification of Effectiveness', MaxLength = 100; + VisualWeldCheckDescLbl: Label 'Visual Weld Check', MaxLength = 100; + CoffeeUniformityDescLbl: Label 'Coffee bean uniformity', MaxLength = 100; + CoffeeDefectDescLbl: Label 'Coffee bean defect type', MaxLength = 100; + CommentDescLbl: Label 'Additional comments', MaxLength = 100; + MoistureDescLbl: Label 'Moisture content (%)', MaxLength = 100; + LabelingDescLbl: Label 'Labeling correct and readable', MaxLength = 100; + BagWeightDescLbl: Label 'Bag weight (kg)', MaxLength = 100; +} diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMGenerationRule.Codeunit.al b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMGenerationRule.Codeunit.al new file mode 100644 index 0000000000..8b0cceae44 --- /dev/null +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMGenerationRule.Codeunit.al @@ -0,0 +1,23 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.QualityManagement; + +using Microsoft.DemoTool.Helpers; +using Microsoft.Purchases.Document; +using Microsoft.QualityManagement.Configuration.GenerationRule; + +codeunit 5220 "Create QM Generation Rule" +{ + InherentEntitlements = X; + InherentPermissions = X; + + trigger OnRun() + var + ContosoQualityManagement: Codeunit "Contoso Quality Management"; + CreateQMInspTemplateHdr: Codeunit "Create QM Insp. Template Hdr"; + begin + ContosoQualityManagement.InsertQualityInspectionGenRule(4, 40, Enum::"Qlty. Gen. Rule Intent"::Purchase, CreateQMInspTemplateHdr.Receive(), Database::"Purchase Line", '', CreateQMInspTemplateHdr.ReceiveDesc(), Enum::"Qlty. Gen. Rule Act. Trigger"::"Manual or Automatic"); + end; +} diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMGenerationRuleManu.Codeunit.al b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMGenerationRuleManu.Codeunit.al new file mode 100644 index 0000000000..87843993ab --- /dev/null +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMGenerationRuleManu.Codeunit.al @@ -0,0 +1,23 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.QualityManagement; + +using Microsoft.DemoTool.Helpers; +using Microsoft.Manufacturing.Document; +using Microsoft.QualityManagement.Configuration.GenerationRule; + +codeunit 5799 "Create QM Generation Rule Manu" +{ + InherentEntitlements = X; + InherentPermissions = X; + + trigger OnRun() + var + ContosoQualityManagement: Codeunit "Contoso Quality Management"; + CreateQMInspTemplateHdr: Codeunit "Create QM Insp. Template Hdr"; + begin + ContosoQualityManagement.InsertQualityInspectionGenRule(5, 50, Enum::"Qlty. Gen. Rule Intent"::Production, CreateQMInspTemplateHdr.Production(), Database::"Prod. Order Routing Line", '', CreateQMInspTemplateHdr.BicycleChecklistDesc(), Enum::"Qlty. Gen. Rule Act. Trigger"::"Manual or Automatic"); + end; +} diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMInspTemplateHdr.Codeunit.al b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMInspTemplateHdr.Codeunit.al new file mode 100644 index 0000000000..6678bec5e8 --- /dev/null +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMInspTemplateHdr.Codeunit.al @@ -0,0 +1,96 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.QualityManagement; + +using Microsoft.DemoTool.Helpers; + +codeunit 5217 "Create QM Insp. Template Hdr" +{ + InherentEntitlements = X; + InherentPermissions = X; + + trigger OnRun() + var + ContosoQualityManagement: Codeunit "Contoso Quality Management"; + begin + ContosoQualityManagement.InsertQualityInspectionTemplateHdr(BicycleChecklist(), BicycleChecklistDescLbl); + ContosoQualityManagement.InsertQualityInspectionTemplateHdr(Car(), CorrectiveActionDescLbl); + ContosoQualityManagement.InsertQualityInspectionTemplateHdr(Packaging(), PackagingDescLbl); + ContosoQualityManagement.InsertQualityInspectionTemplateHdr(Pathogen(), PathogenDescLbl); + ContosoQualityManagement.InsertQualityInspectionTemplateHdr(Production(), ProductionDescLbl); + ContosoQualityManagement.InsertQualityInspectionTemplateHdr(ProductionFood(), ProductionFoodDescLbl); + ContosoQualityManagement.InsertQualityInspectionTemplateHdr(Receive(), ReceiveDescLbl); + ContosoQualityManagement.InsertQualityInspectionTemplateHdr(ScheduleChange(), ScheduleChangeDescLbl); + end; + + procedure BicycleChecklist(): Code[20] + begin + exit(BicycleChecklistTok); + end; + + procedure BicycleChecklistDesc(): Text[100] + begin + exit(BicycleChecklistDescLbl); + end; + + procedure Car(): Code[20] + begin + exit(CarTok); + end; + + procedure Packaging(): Code[20] + begin + exit(PackagingTok); + end; + + procedure Pathogen(): Code[20] + begin + exit(PathogenTok); + end; + + procedure Production(): Code[20] + begin + exit(ProductionTok); + end; + + procedure ProductionFood(): Code[20] + begin + exit(ProductionFoodTok); + end; + + procedure Receive(): Code[20] + begin + exit(ReceiveTok); + end; + + procedure ReceiveDesc(): Text[100] + begin + exit(ReceiveDescLbl); + end; + + procedure ScheduleChange(): Code[20] + begin + exit(ScheduleChangeTok); + end; + + var + BicycleChecklistTok: Label 'BICYCLECHECKLIST', MaxLength = 20; + CarTok: Label 'CAR', MaxLength = 20; + PackagingTok: Label 'PACKAGING', MaxLength = 20; + PathogenTok: Label 'PATHOGEN', MaxLength = 20; + ProductionTok: Label 'PRODUCTION', MaxLength = 20; + ProductionFoodTok: Label 'PRODUCTIONFOOD', MaxLength = 20; + ReceiveTok: Label 'RECEIVE', MaxLength = 20; + ScheduleChangeTok: Label 'SCHEDULECHANGE', MaxLength = 20; + + BicycleChecklistDescLbl: Label 'Bicycle Checklist', MaxLength = 100; + CorrectiveActionDescLbl: Label 'Corrective Action', MaxLength = 100; + PackagingDescLbl: Label 'Packaging', MaxLength = 100; + PathogenDescLbl: Label 'Pathogen Test', MaxLength = 100; + ProductionDescLbl: Label 'Production', MaxLength = 100; + ProductionFoodDescLbl: Label 'Food Production Example', MaxLength = 100; + ReceiveDescLbl: Label 'Receiving Example', MaxLength = 100; + ScheduleChangeDescLbl: Label 'Scheduler Change', MaxLength = 100; +} diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMInspTemplateLine.Codeunit.al b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMInspTemplateLine.Codeunit.al new file mode 100644 index 0000000000..374828c709 --- /dev/null +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMInspTemplateLine.Codeunit.al @@ -0,0 +1,62 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.QualityManagement; + +using Microsoft.DemoTool.Helpers; + +codeunit 5218 "Create QM Insp. Template Line" +{ + InherentEntitlements = X; + InherentPermissions = X; + + trigger OnRun() + var + ContosoQualityManagement: Codeunit "Contoso Quality Management"; + CreateQualityTest: Codeunit "Create Quality Test"; + CreateQMInspTemplateHdr: Codeunit "Create QM Insp. Template Hdr"; + begin + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.BicycleChecklist(), 10000, CreateQualityTest.GearShiftCheck(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.BicycleChecklist(), 20000, CreateQualityTest.BrakesCheck(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.BicycleChecklist(), 30000, CreateQualityTest.VisualWeldCheck(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.BicycleChecklist(), 40000, CreateQualityTest.HandlebarAligned(), ''); + + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Car(), 10000, CreateQualityTest.CarType(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Car(), 20000, CreateQualityTest.CarRequestedDate(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Car(), 25000, CreateQualityTest.LblNcrDetail(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Car(), 30000, CreateQualityTest.NcrRequirement(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Car(), 40000, CreateQualityTest.NcrClassification(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Car(), 50000, CreateQualityTest.DescriptionOfNonConf(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Car(), 60000, CreateQualityTest.NcrObjectiveEvidence(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Car(), 65000, CreateQualityTest.LblNcrPlannedAction(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Car(), 70000, CreateQualityTest.CarContainment(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Car(), 80000, CreateQualityTest.RootCauseFindings(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Car(), 90000, CreateQualityTest.CorrectiveAction(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Car(), 95000, CreateQualityTest.LblVerification(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Car(), 100000, CreateQualityTest.VerificationOfEffecti(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Car(), 110000, CreateQualityTest.CustomerServiceRepre(), ''); + + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Packaging(), 10000, CreateQualityTest.PackagingVisual(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Packaging(), 20000, CreateQualityTest.PackageWidth(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Packaging(), 30000, CreateQualityTest.PackageLength(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Packaging(), 40000, CreateQualityTest.PackageHeight(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Packaging(), 50000, CreateQualityTest.ShippingLabel(), ''); + + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Pathogen(), 10000, CreateQualityTest.ApcPerGram(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Pathogen(), 20000, CreateQualityTest.ColiformCount(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Pathogen(), 30000, CreateQualityTest.EcoliPresent(), ''); + + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.ProductionFood(), 10000, CreateQualityTest.Odor(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.ProductionFood(), 20000, CreateQualityTest.PackagingVisual(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.ProductionFood(), 30000, CreateQualityTest.Temperature(), ''); + + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Receive(), 10000, CreateQualityTest.PackageHeight(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Receive(), 20000, CreateQualityTest.PackageLength(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Receive(), 30000, CreateQualityTest.PackageWidth(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.Receive(), 40000, CreateQualityTest.PackagingVisual(), ''); + + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.ScheduleChange(), 10000, CreateQualityTest.ReasonCode(), ''); + ContosoQualityManagement.InsertQualityInspectionTemplateLine(CreateQMInspTemplateHdr.ScheduleChange(), 20000, CreateQualityTest.Explanation(), ''); + end; +} diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMResultConditConf.Codeunit.al b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMResultConditConf.Codeunit.al new file mode 100644 index 0000000000..89619ccf04 --- /dev/null +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/2.Master Data/CreateQMResultConditConf.Codeunit.al @@ -0,0 +1,271 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.QualityManagement; + +using Microsoft.DemoTool.Helpers; +using Microsoft.QualityManagement.Configuration.Result; + +codeunit 5221 "Create QM Result Condit. Conf." +{ + InherentEntitlements = X; + InherentPermissions = X; + + trigger OnRun() + var + ContosoQualityManagement: Codeunit "Contoso Quality Management"; + CreateQualityTest: Codeunit "Create Quality Test"; + CreateQualityInspResult: Codeunit "Create Quality Insp. Result"; + CreateQualityLookupCode: Codeunit "Create Quality Lookup Code"; + CreateQMInspTemplateHdr: Codeunit "Create QM Insp. Template Hdr"; + begin + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.ApcPerGram(), 0, 0, CreateQualityTest.ApcPerGram(), CreateQualityInspResult.Fail(), '>10000000', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.ApcPerGram(), 0, 0, CreateQualityTest.ApcPerGram(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.ApcPerGram(), 0, 0, CreateQualityTest.ApcPerGram(), CreateQualityInspResult.Pass(), '0..10000000', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.BrakesCheck(), 0, 0, CreateQualityTest.BrakesCheck(), CreateQualityInspResult.Fail(), 'No', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.BrakesCheck(), 0, 0, CreateQualityTest.BrakesCheck(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.BrakesCheck(), 0, 0, CreateQualityTest.BrakesCheck(), CreateQualityInspResult.Pass(), 'Yes', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.CarContainment(), 0, 0, CreateQualityTest.CarContainment(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.CarContainment(), 0, 0, CreateQualityTest.CarContainment(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.CarContainment(), 0, 0, CreateQualityTest.CarContainment(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.CarRequestedDate(), 0, 0, CreateQualityTest.CarRequestedDate(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.CarRequestedDate(), 0, 0, CreateQualityTest.CarRequestedDate(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.CarRequestedDate(), 0, 0, CreateQualityTest.CarRequestedDate(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.CarType(), 0, 0, CreateQualityTest.CarType(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.CarType(), 0, 0, CreateQualityTest.CarType(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.CarType(), 0, 0, CreateQualityTest.CarType(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.ColiformCount(), 0, 0, CreateQualityTest.ColiformCount(), CreateQualityInspResult.Fail(), '>0.01', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.ColiformCount(), 0, 0, CreateQualityTest.ColiformCount(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.ColiformCount(), 0, 0, CreateQualityTest.ColiformCount(), CreateQualityInspResult.Pass(), '0..0.01', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.CorrectiveAction(), 0, 0, CreateQualityTest.CorrectiveAction(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.CorrectiveAction(), 0, 0, CreateQualityTest.CorrectiveAction(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.CorrectiveAction(), 0, 0, CreateQualityTest.CorrectiveAction(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.CustomerServiceRepre(), 0, 0, CreateQualityTest.CustomerServiceRepre(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.CustomerServiceRepre(), 0, 0, CreateQualityTest.CustomerServiceRepre(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.CustomerServiceRepre(), 0, 0, CreateQualityTest.CustomerServiceRepre(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.DescriptionOfNonConf(), 0, 0, CreateQualityTest.DescriptionOfNonConf(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.DescriptionOfNonConf(), 0, 0, CreateQualityTest.DescriptionOfNonConf(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.DescriptionOfNonConf(), 0, 0, CreateQualityTest.DescriptionOfNonConf(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.EcoliPresent(), 0, 0, CreateQualityTest.EcoliPresent(), CreateQualityInspResult.Fail(), CreateQualityLookupCode.Present(), 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.EcoliPresent(), 0, 0, CreateQualityTest.EcoliPresent(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.EcoliPresent(), 0, 0, CreateQualityTest.EcoliPresent(), CreateQualityInspResult.Pass(), CreateQualityLookupCode.Absent(), 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.Explanation(), 0, 0, CreateQualityTest.Explanation(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.Explanation(), 0, 0, CreateQualityTest.Explanation(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.Explanation(), 0, 0, CreateQualityTest.Explanation(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.GearShiftCheck(), 0, 0, CreateQualityTest.GearShiftCheck(), CreateQualityInspResult.Fail(), 'No', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.GearShiftCheck(), 0, 0, CreateQualityTest.GearShiftCheck(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.GearShiftCheck(), 0, 0, CreateQualityTest.GearShiftCheck(), CreateQualityInspResult.Pass(), 'Yes', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.HandlebarAligned(), 0, 0, CreateQualityTest.HandlebarAligned(), CreateQualityInspResult.Fail(), 'No', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.HandlebarAligned(), 0, 0, CreateQualityTest.HandlebarAligned(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.HandlebarAligned(), 0, 0, CreateQualityTest.HandlebarAligned(), CreateQualityInspResult.Pass(), 'Yes', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.LblNcrDetail(), 0, 0, CreateQualityTest.LblNcrDetail(), CreateQualityInspResult.Fail(), '<>0', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.LblNcrDetail(), 0, 0, CreateQualityTest.LblNcrDetail(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.LblNcrDetail(), 0, 0, CreateQualityTest.LblNcrDetail(), CreateQualityInspResult.Pass(), '<>0', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.LblNcrPlannedAction(), 0, 0, CreateQualityTest.LblNcrPlannedAction(), CreateQualityInspResult.Fail(), '<>0', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.LblNcrPlannedAction(), 0, 0, CreateQualityTest.LblNcrPlannedAction(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.LblNcrPlannedAction(), 0, 0, CreateQualityTest.LblNcrPlannedAction(), CreateQualityInspResult.Pass(), '<>0', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.LblVerification(), 0, 0, CreateQualityTest.LblVerification(), CreateQualityInspResult.Fail(), '<>0', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.LblVerification(), 0, 0, CreateQualityTest.LblVerification(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.LblVerification(), 0, 0, CreateQualityTest.LblVerification(), CreateQualityInspResult.Pass(), '<>0', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.NcrClassification(), 0, 0, CreateQualityTest.NcrClassification(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.NcrClassification(), 0, 0, CreateQualityTest.NcrClassification(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.NcrClassification(), 0, 0, CreateQualityTest.NcrClassification(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.NcrObjectiveEvidence(), 0, 0, CreateQualityTest.NcrObjectiveEvidence(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.NcrObjectiveEvidence(), 0, 0, CreateQualityTest.NcrObjectiveEvidence(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.NcrObjectiveEvidence(), 0, 0, CreateQualityTest.NcrObjectiveEvidence(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.NcrRequirement(), 0, 0, CreateQualityTest.NcrRequirement(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.NcrRequirement(), 0, 0, CreateQualityTest.NcrRequirement(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.NcrRequirement(), 0, 0, CreateQualityTest.NcrRequirement(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.Odor(), 0, 0, CreateQualityTest.Odor(), CreateQualityInspResult.Fail(), StrSubstNo('<>%1', CreateQualityLookupCode.NoOdor()), 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.Odor(), 0, 0, CreateQualityTest.Odor(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.Odor(), 0, 0, CreateQualityTest.Odor(), CreateQualityInspResult.Pass(), CreateQualityLookupCode.NoOdor(), 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.PackageHeight(), 0, 0, CreateQualityTest.PackageHeight(), CreateQualityInspResult.Fail(), '<15|>30', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.PackageHeight(), 0, 0, CreateQualityTest.PackageHeight(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.PackageHeight(), 0, 0, CreateQualityTest.PackageHeight(), CreateQualityInspResult.Pass(), '15..30', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.PackageLength(), 0, 0, CreateQualityTest.PackageLength(), CreateQualityInspResult.Fail(), '<15|>60', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.PackageLength(), 0, 0, CreateQualityTest.PackageLength(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.PackageLength(), 0, 0, CreateQualityTest.PackageLength(), CreateQualityInspResult.Pass(), '30..60', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.PackageWidth(), 0, 0, CreateQualityTest.PackageWidth(), CreateQualityInspResult.Fail(), '<10|>25', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.PackageWidth(), 0, 0, CreateQualityTest.PackageWidth(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.PackageWidth(), 0, 0, CreateQualityTest.PackageWidth(), CreateQualityInspResult.Pass(), '10..25', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.PackagingVisual(), 0, 0, CreateQualityTest.PackagingVisual(), CreateQualityInspResult.Fail(), StrSubstNo('<>%1', CreateQualityLookupCode.Undamaged()), 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.PackagingVisual(), 0, 0, CreateQualityTest.PackagingVisual(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.PackagingVisual(), 0, 0, CreateQualityTest.PackagingVisual(), CreateQualityInspResult.Pass(), CreateQualityLookupCode.Undamaged(), 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.ReasonCode(), 0, 0, CreateQualityTest.ReasonCode(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.ReasonCode(), 0, 0, CreateQualityTest.ReasonCode(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.ReasonCode(), 0, 0, CreateQualityTest.ReasonCode(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.RootCauseFindings(), 0, 0, CreateQualityTest.RootCauseFindings(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.RootCauseFindings(), 0, 0, CreateQualityTest.RootCauseFindings(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.RootCauseFindings(), 0, 0, CreateQualityTest.RootCauseFindings(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.ShippingLabel(), 0, 0, CreateQualityTest.ShippingLabel(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.ShippingLabel(), 0, 0, CreateQualityTest.ShippingLabel(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.ShippingLabel(), 0, 0, CreateQualityTest.ShippingLabel(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.Temperature(), 0, 0, CreateQualityTest.Temperature(), CreateQualityInspResult.Fail(), '<-20|>5', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.Temperature(), 0, 0, CreateQualityTest.Temperature(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.Temperature(), 0, 0, CreateQualityTest.Temperature(), CreateQualityInspResult.Pass(), '-20..5', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.VerificationOfEffecti(), 0, 0, CreateQualityTest.VerificationOfEffecti(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.VerificationOfEffecti(), 0, 0, CreateQualityTest.VerificationOfEffecti(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.VerificationOfEffecti(), 0, 0, CreateQualityTest.VerificationOfEffecti(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.VisualWeldCheck(), 0, 0, CreateQualityTest.VisualWeldCheck(), CreateQualityInspResult.Fail(), 'No', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.VisualWeldCheck(), 0, 0, CreateQualityTest.VisualWeldCheck(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Test, CreateQualityTest.VisualWeldCheck(), 0, 0, CreateQualityTest.VisualWeldCheck(), CreateQualityInspResult.Pass(), 'Yes', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.BicycleChecklist(), 0, 10000, CreateQualityTest.GearShiftCheck(), CreateQualityInspResult.Fail(), 'No', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.BicycleChecklist(), 0, 10000, CreateQualityTest.GearShiftCheck(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.BicycleChecklist(), 0, 10000, CreateQualityTest.GearShiftCheck(), CreateQualityInspResult.Pass(), 'Yes', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.BicycleChecklist(), 0, 20000, CreateQualityTest.BrakesCheck(), CreateQualityInspResult.Fail(), 'No', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.BicycleChecklist(), 0, 20000, CreateQualityTest.BrakesCheck(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.BicycleChecklist(), 0, 20000, CreateQualityTest.BrakesCheck(), CreateQualityInspResult.Pass(), 'Yes', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.BicycleChecklist(), 0, 30000, CreateQualityTest.VisualWeldCheck(), CreateQualityInspResult.Fail(), 'No', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.BicycleChecklist(), 0, 30000, CreateQualityTest.VisualWeldCheck(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.BicycleChecklist(), 0, 30000, CreateQualityTest.VisualWeldCheck(), CreateQualityInspResult.Pass(), 'Yes', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.BicycleChecklist(), 0, 40000, CreateQualityTest.HandlebarAligned(), CreateQualityInspResult.Fail(), 'No', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.BicycleChecklist(), 0, 40000, CreateQualityTest.HandlebarAligned(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.BicycleChecklist(), 0, 40000, CreateQualityTest.HandlebarAligned(), CreateQualityInspResult.Pass(), 'Yes', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 10000, CreateQualityTest.CarType(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 10000, CreateQualityTest.CarType(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 10000, CreateQualityTest.CarType(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 20000, CreateQualityTest.CarRequestedDate(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 20000, CreateQualityTest.CarRequestedDate(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 20000, CreateQualityTest.CarRequestedDate(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 30000, CreateQualityTest.NcrRequirement(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 30000, CreateQualityTest.NcrRequirement(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 30000, CreateQualityTest.NcrRequirement(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 40000, CreateQualityTest.NcrClassification(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 40000, CreateQualityTest.NcrClassification(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 40000, CreateQualityTest.NcrClassification(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 50000, CreateQualityTest.DescriptionOfNonConf(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 50000, CreateQualityTest.DescriptionOfNonConf(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 50000, CreateQualityTest.DescriptionOfNonConf(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 60000, CreateQualityTest.NcrObjectiveEvidence(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 60000, CreateQualityTest.NcrObjectiveEvidence(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 60000, CreateQualityTest.NcrObjectiveEvidence(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 70000, CreateQualityTest.CarContainment(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 70000, CreateQualityTest.CarContainment(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 70000, CreateQualityTest.CarContainment(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 80000, CreateQualityTest.RootCauseFindings(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 80000, CreateQualityTest.RootCauseFindings(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 80000, CreateQualityTest.RootCauseFindings(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 90000, CreateQualityTest.CorrectiveAction(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 90000, CreateQualityTest.CorrectiveAction(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 90000, CreateQualityTest.CorrectiveAction(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 100000, CreateQualityTest.VerificationOfEffecti(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 100000, CreateQualityTest.VerificationOfEffecti(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 100000, CreateQualityTest.VerificationOfEffecti(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 110000, CreateQualityTest.CustomerServiceRepre(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 110000, CreateQualityTest.CustomerServiceRepre(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Car(), 0, 110000, CreateQualityTest.CustomerServiceRepre(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Packaging(), 0, 10000, CreateQualityTest.PackagingVisual(), CreateQualityInspResult.Fail(), StrSubstNo('<>%1', CreateQualityLookupCode.Undamaged()), 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Packaging(), 0, 10000, CreateQualityTest.PackagingVisual(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Packaging(), 0, 10000, CreateQualityTest.PackagingVisual(), CreateQualityInspResult.Pass(), CreateQualityLookupCode.Undamaged(), 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Packaging(), 0, 20000, CreateQualityTest.PackageWidth(), CreateQualityInspResult.Fail(), '<10|>25', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Packaging(), 0, 20000, CreateQualityTest.PackageWidth(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Packaging(), 0, 20000, CreateQualityTest.PackageWidth(), CreateQualityInspResult.Pass(), '10..25', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Packaging(), 0, 30000, CreateQualityTest.PackageLength(), CreateQualityInspResult.Fail(), '<30|>60', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Packaging(), 0, 30000, CreateQualityTest.PackageLength(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Packaging(), 0, 30000, CreateQualityTest.PackageLength(), CreateQualityInspResult.Pass(), '30..60', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Packaging(), 0, 40000, CreateQualityTest.PackageHeight(), CreateQualityInspResult.Fail(), '<15|>60', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Packaging(), 0, 40000, CreateQualityTest.PackageHeight(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Packaging(), 0, 40000, CreateQualityTest.PackageHeight(), CreateQualityInspResult.Pass(), '15..30', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Packaging(), 0, 50000, CreateQualityTest.ShippingLabel(), CreateQualityInspResult.Fail(), StrSubstNo('<>%1', CreateQualityLookupCode.Good()), 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Packaging(), 0, 50000, CreateQualityTest.ShippingLabel(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Packaging(), 0, 50000, CreateQualityTest.ShippingLabel(), CreateQualityInspResult.Pass(), CreateQualityLookupCode.Good(), 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Pathogen(), 0, 10000, CreateQualityTest.ApcPerGram(), CreateQualityInspResult.Fail(), '>10000000', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Pathogen(), 0, 10000, CreateQualityTest.ApcPerGram(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Pathogen(), 0, 10000, CreateQualityTest.ApcPerGram(), CreateQualityInspResult.Pass(), '0..10000000', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Pathogen(), 0, 20000, CreateQualityTest.ColiformCount(), CreateQualityInspResult.Fail(), '>0.01', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Pathogen(), 0, 20000, CreateQualityTest.ColiformCount(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Pathogen(), 0, 20000, CreateQualityTest.ColiformCount(), CreateQualityInspResult.Pass(), '0..0.01', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Pathogen(), 0, 30000, CreateQualityTest.EcoliPresent(), CreateQualityInspResult.Fail(), CreateQualityLookupCode.Present(), 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Pathogen(), 0, 30000, CreateQualityTest.EcoliPresent(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Pathogen(), 0, 30000, CreateQualityTest.EcoliPresent(), CreateQualityInspResult.Pass(), CreateQualityLookupCode.Absent(), 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.ProductionFood(), 0, 10000, CreateQualityTest.Odor(), CreateQualityInspResult.Fail(), StrSubstNo('<>%1', CreateQualityLookupCode.NoOdor()), 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.ProductionFood(), 0, 10000, CreateQualityTest.Odor(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.ProductionFood(), 0, 10000, CreateQualityTest.Odor(), CreateQualityInspResult.Pass(), CreateQualityLookupCode.NoOdor(), 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.ProductionFood(), 0, 20000, CreateQualityTest.PackagingVisual(), CreateQualityInspResult.Fail(), StrSubstNo('<>%1', CreateQualityLookupCode.Undamaged()), 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.ProductionFood(), 0, 20000, CreateQualityTest.PackagingVisual(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.ProductionFood(), 0, 20000, CreateQualityTest.PackagingVisual(), CreateQualityInspResult.Pass(), CreateQualityLookupCode.Undamaged(), 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.ProductionFood(), 0, 30000, CreateQualityTest.Temperature(), CreateQualityInspResult.Fail(), '<-20|>5', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.ProductionFood(), 0, 30000, CreateQualityTest.Temperature(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.ProductionFood(), 0, 30000, CreateQualityTest.Temperature(), CreateQualityInspResult.Pass(), '-20..5', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Receive(), 0, 10000, CreateQualityTest.PackageHeight(), CreateQualityInspResult.Fail(), '<15|>30', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Receive(), 0, 10000, CreateQualityTest.PackageHeight(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Receive(), 0, 10000, CreateQualityTest.PackageHeight(), CreateQualityInspResult.Pass(), '15..30', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Receive(), 0, 20000, CreateQualityTest.PackageLength(), CreateQualityInspResult.Fail(), '<30|>60', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Receive(), 0, 20000, CreateQualityTest.PackageLength(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Receive(), 0, 20000, CreateQualityTest.PackageLength(), CreateQualityInspResult.Pass(), '30..60', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Receive(), 0, 30000, CreateQualityTest.PackageWidth(), CreateQualityInspResult.Fail(), '<10|>25', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Receive(), 0, 30000, CreateQualityTest.PackageWidth(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Receive(), 0, 30000, CreateQualityTest.PackageWidth(), CreateQualityInspResult.Pass(), '10..25', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Receive(), 0, 40000, CreateQualityTest.PackagingVisual(), CreateQualityInspResult.Fail(), StrSubstNo('<>%1', CreateQualityLookupCode.Undamaged()), 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Receive(), 0, 40000, CreateQualityTest.PackagingVisual(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.Receive(), 0, 40000, CreateQualityTest.PackagingVisual(), CreateQualityInspResult.Pass(), CreateQualityLookupCode.Undamaged(), 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.ScheduleChange(), 0, 10000, CreateQualityTest.ReasonCode(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.ScheduleChange(), 0, 10000, CreateQualityTest.ReasonCode(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.ScheduleChange(), 0, 10000, CreateQualityTest.ReasonCode(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.ScheduleChange(), 0, 20000, CreateQualityTest.Explanation(), CreateQualityInspResult.Fail(), '<>''''', 1, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.ScheduleChange(), 0, 20000, CreateQualityTest.Explanation(), CreateQualityInspResult.InProgress(), '', 0, Enum::"Qlty. Result Visibility"::"Configuration only"); + ContosoQualityManagement.InsertQltyIResultConditConf(Enum::"Qlty. Result Condition Type"::Template, CreateQMInspTemplateHdr.ScheduleChange(), 0, 20000, CreateQualityTest.Explanation(), CreateQualityInspResult.Pass(), '<>''''', 2, Enum::"Qlty. Result Visibility"::Promoted); + end; +} diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/QualityManagementModule.Codeunit.al b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/QualityManagementModule.Codeunit.al new file mode 100644 index 0000000000..7050f5a729 --- /dev/null +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoData/QualityManagementModule.Codeunit.al @@ -0,0 +1,54 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft.DemoData.QualityManagement; + +using Microsoft.DemoTool; + +codeunit 5213 "Quality Management Module" implements "Contoso Demo Data Module" +{ + InherentEntitlements = X; + InherentPermissions = X; + + procedure RunConfigurationPage() + var + ContosoDemoTool: Codeunit "Contoso Demo Tool"; + begin + Message(ContosoDemoTool.GetNoConfiguirationMsg()); + end; + + procedure GetDependencies() Dependencies: List of [Enum "Contoso Demo Data Module"] + begin + Dependencies.Add(Enum::"Contoso Demo Data Module"::Foundation); + Dependencies.Add(Enum::"Contoso Demo Data Module"::Finance); + Dependencies.Add(Enum::"Contoso Demo Data Module"::Inventory); + Dependencies.Add(Enum::"Contoso Demo Data Module"::Purchase); + end; + + procedure CreateSetupData() + begin + Codeunit.Run(Codeunit::"Create Quality Lookup Code"); + Codeunit.Run(Codeunit::"Create Quality Test"); + Codeunit.Run(Codeunit::"Create Quality Insp. Result"); + end; + + procedure CreateMasterData() + begin + Codeunit.Run(Codeunit::"Create QM Insp. Template Hdr"); + Codeunit.Run(Codeunit::"Create QM Insp. Template Line"); + Codeunit.Run(Codeunit::"Create QM Result Condit. Conf."); + Codeunit.Run(Codeunit::"Create QM Generation Rule"); + Codeunit.Run(Codeunit::"Create QM Generation Rule Manu"); + end; + + procedure CreateTransactionalData() + begin + exit; + end; + + procedure CreateHistoricalData() + begin + exit; + end; +} diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoDemoDataModule.EnumExt.al b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoDemoDataModule.EnumExt.al new file mode 100644 index 0000000000..b4bb3e329e --- /dev/null +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoDemoDataModule.EnumExt.al @@ -0,0 +1,8 @@ +enumextension 5213 "Sust. Contoso Demo Data Module" extends "Contoso Demo Data Module" +{ + value(5213; "Quality Management") + { + Implementation = "Contoso Demo Data Module" = "Quality Management Module"; + Caption = 'Quality Management'; + } +} \ No newline at end of file diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoHelpers/ContosoQualityManagement.Codeunit.al b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoHelpers/ContosoQualityManagement.Codeunit.al new file mode 100644 index 0000000000..5448a944bb --- /dev/null +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoHelpers/ContosoQualityManagement.Codeunit.al @@ -0,0 +1,234 @@ +namespace Microsoft.DemoTool.Helpers; + +using Microsoft.QualityManagement.Configuration.GenerationRule; +using Microsoft.QualityManagement.Configuration.Result; +using Microsoft.QualityManagement.Configuration.Template; +using Microsoft.QualityManagement.Configuration.Template.Test; + +codeunit 5222 "Contoso Quality Management" +{ + InherentEntitlements = X; + InherentPermissions = X; + + Permissions = tabledata "Qlty. Test" = rim, + tabledata "Qlty. Lookup Code" = rim, + tabledata "Qlty. Inspection Result" = rim, + tabledata "Qlty. Inspection Template Hdr." = rim, + tabledata "Qlty. Inspection Template Line" = rim, + tabledata "Qlty. Inspection Gen. Rule" = rim, + tabledata "Qlty. I. Result Condit. Conf." = rim; + + var + OverwriteData: Boolean; + + procedure SetOverwriteData(Overwrite: Boolean) + begin + OverwriteData := Overwrite; + end; + + procedure InsertQualityTest(Code: Code[20]; Description: Text[100]; TestValueType: Enum "Qlty. Test Value Type"; AllowableValues: Text[500]; LookupTableNo: Integer; LookupFieldNo: Integer; LookupTableFilter: Text[500]; DefaultValue: Text[250]; UnitOfMeasureCode: Code[10]) + var + QltyTest: Record "Qlty. Test"; + Exists: Boolean; + begin + if QltyTest.Get(Code) then begin + Exists := true; + + if not OverwriteData then + exit; + end; + + QltyTest.Validate(Code, Code); + QltyTest.Validate(Description, Description); + QltyTest.Validate("Test Value Type", TestValueType); + + if AllowableValues <> '' then + QltyTest.Validate("Allowable Values", AllowableValues); + + if LookupTableNo <> 0 then + QltyTest.Validate("Lookup Table No.", LookupTableNo); + + if LookupFieldNo <> 0 then + QltyTest.Validate("Lookup Field No.", LookupFieldNo); + + if LookupTableFilter <> '' then + QltyTest.Validate("Lookup Table Filter", LookupTableFilter); + + if DefaultValue <> '' then + QltyTest.Validate("Default Value", DefaultValue); + + if UnitOfMeasureCode <> '' then + QltyTest.Validate("Unit of Measure Code", UnitOfMeasureCode); + + if Exists then + QltyTest.Modify(true) + else + QltyTest.Insert(true); + end; + + procedure InsertQualityLookupCode(GroupCode: Code[20]; Code: Code[100]; Description: Text[250]) + var + QltyLookupCode: Record "Qlty. Lookup Code"; + Exists: Boolean; + begin + if QltyLookupCode.Get(GroupCode, Code) then begin + Exists := true; + + if not OverwriteData then + exit; + end; + + QltyLookupCode.Validate("Group Code", GroupCode); + QltyLookupCode.Validate(Code, Code); + QltyLookupCode.Validate(Description, Description); + + if Exists then + QltyLookupCode.Modify(true) + else + QltyLookupCode.Insert(true); + end; + + procedure InsertQualityInspectionResult(Code: Code[20]; Description: Text[100]; EvaluationSequence: Integer; CopyBehavior: Enum "Qlty. Result Copy Behavior"; ResultVisibility: Enum "Qlty. Result Visibility"; DefaultNumberCondition: Text[500]; DefaultTextCondition: Text[500]; DefaultBooleanCondition: Text[500]; ResultCategory: Enum "Qlty. Result Category"; FinishAllowed: Enum "Qlty. Result Finish Allowed") + var + QltyInspectionResult: Record "Qlty. Inspection Result"; + Exists: Boolean; + begin + if QltyInspectionResult.Get(Code) then begin + Exists := true; + + if not OverwriteData then + exit; + end; + + QltyInspectionResult.Validate(Code, Code); + QltyInspectionResult.Validate(Description, Description); + QltyInspectionResult.Validate("Evaluation Sequence", EvaluationSequence); + QltyInspectionResult.Validate("Copy Behavior", CopyBehavior); + QltyInspectionResult.Validate("Result Visibility", ResultVisibility); + QltyInspectionResult.Validate("Default Number Condition", DefaultNumberCondition); + + if DefaultTextCondition <> '' then + QltyInspectionResult.Validate("Default Text Condition", DefaultTextCondition); + + if DefaultBooleanCondition <> '' then + QltyInspectionResult.Validate("Default Boolean Condition", DefaultBooleanCondition); + + QltyInspectionResult.Validate("Result Category", ResultCategory); + QltyInspectionResult.Validate("Finish Allowed", FinishAllowed); + + if Exists then + QltyInspectionResult.Modify(true) + else + QltyInspectionResult.Insert(true); + end; + + procedure InsertQualityInspectionTemplateHdr(Code: Code[20]; Description: Text[100]) + var + QltyInspectionTemplateHdr: Record "Qlty. Inspection Template Hdr."; + Exists: Boolean; + begin + if QltyInspectionTemplateHdr.Get(Code) then begin + Exists := true; + + if not OverwriteData then + exit; + end; + + QltyInspectionTemplateHdr.Validate(Code, Code); + QltyInspectionTemplateHdr.Validate(Description, Description); + + if Exists then + QltyInspectionTemplateHdr.Modify(true) + else + QltyInspectionTemplateHdr.Insert(true); + end; + + procedure InsertQualityInspectionTemplateLine(TemplateCode: Code[20]; LineNo: Integer; TestCode: Code[20]; Description: Text[100]) + var + QltyInspectionTemplateLine: Record "Qlty. Inspection Template Line"; + Exists: Boolean; + begin + if QltyInspectionTemplateLine.Get(TemplateCode, LineNo) then begin + Exists := true; + + if not OverwriteData then + exit; + end; + + QltyInspectionTemplateLine.Validate("Template Code", TemplateCode); + QltyInspectionTemplateLine.Validate("Line No.", LineNo); + QltyInspectionTemplateLine.Validate("Test Code", TestCode); + + if Description <> '' then + QltyInspectionTemplateLine.Validate(Description, Description); + + if Exists then + QltyInspectionTemplateLine.Modify(true) + else + QltyInspectionTemplateLine.Insert(true); + end; + + procedure InsertQualityInspectionGenRule(EntryNo: Integer; SortOrder: Integer; Intent: Enum "Qlty. Gen. Rule Intent"; TemplateCode: Code[20]; SourceTableNo: Integer; ConditionFilter: Text[400]; Description: Text[100]; ActivationTrigger: Enum "Qlty. Gen. Rule Act. Trigger") + var + QltyInspectionGenRule: Record "Qlty. Inspection Gen. Rule"; + Exists: Boolean; + begin + if QltyInspectionGenRule.Get(EntryNo) then begin + Exists := true; + + if not OverwriteData then + exit; + end; + + QltyInspectionGenRule.Validate("Entry No.", EntryNo); + QltyInspectionGenRule.Validate("Sort Order", SortOrder); + QltyInspectionGenRule.Validate(Intent, Intent); + QltyInspectionGenRule.Validate("Template Code", TemplateCode); + QltyInspectionGenRule.Validate("Source Table No.", SourceTableNo); + + if ConditionFilter <> '' then + QltyInspectionGenRule.Validate("Condition Filter", ConditionFilter); + + if Description <> '' then + QltyInspectionGenRule.Validate(Description, Description); + + QltyInspectionGenRule.Validate("Activation Trigger", ActivationTrigger); + // QltyInspectionGenRule.Validate("Purchase Trigger", PurchaseTrigger); + + if Exists then + QltyInspectionGenRule.Modify(true) + else + QltyInspectionGenRule.Insert(true); + end; + + procedure InsertQltyIResultConditConf(ConditionType: Enum "Qlty. Result Condition Type"; TargetCode: Code[20]; TargetReinspectionNo: Integer; TargetLineNo: Integer; TestCode: Code[20]; ResultCode: Code[20]; Condition: Text[500]; Priority: Integer; ResultVisibility: Enum "Qlty. Result Visibility") + var + QltyIResultConditConf: Record "Qlty. I. Result Condit. Conf."; + Exists: Boolean; + begin + if QltyIResultConditConf.Get(ConditionType, TargetCode, TargetReinspectionNo, TargetLineNo, TestCode, ResultCode) then begin + Exists := true; + + if not OverwriteData then + exit; + end; + + QltyIResultConditConf.Validate("Condition Type", ConditionType); + QltyIResultConditConf.Validate("Target Code", TargetCode); + QltyIResultConditConf.Validate("Target Re-inspection No.", TargetReinspectionNo); + QltyIResultConditConf.Validate("Target Line No.", TargetLineNo); + QltyIResultConditConf.Validate("Test Code", TestCode); + QltyIResultConditConf.Validate("Result Code", ResultCode); + + if Condition <> '' then + QltyIResultConditConf.Validate(Condition, Condition); + + QltyIResultConditConf.Validate(Priority, Priority); + QltyIResultConditConf.Validate("Result Visibility", ResultVisibility); + + if Exists then + QltyIResultConditConf.Modify(true) + else + QltyIResultConditConf.Insert(true); + end; +} diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/ExtensionLogo.png b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/ExtensionLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..4d2c9a626cb9617350617c40cd73904129d4c108 GIT binary patch literal 5446 zcma)=S5VVywD$iAMIcgC2u+$uktV%J6$Dhev_NQrfC^Fsq!|cJ=^|Z`P&U*^N-uuwi#_w5i!*aB*89x5SkKKnv*ua91anhEW+omc005Zp+`e`1 zOsW4C1O3^nWxbYuCX9Z!?E(M*a`E2+jm<_J0|5K}om)4pLZ&wJ&3t(K(|ffcq#?ky z#^aeQO#|lO9vyUeb0ezqQtpipl3Sj#-xy!eh7lu@5+BnW zNhL-~3Zpw&1u=bMN*Q(sgYksq4dM>Iw7p&Qk_Su~b*PgEs#LK~^K}aDaTG_6Q?_tM<8wOS}`Z+?~Et8GB>T%(k7$9`DL!d5)f!ZoXco-vj+s_QLEs2cf zKM&F>#c9w|TmM9MFtl8L*cYQgl9khf5CYMR)DJOUf;M~a9|+ys@RYR zCusNC(CSlUk|r`qdS&ZKh$O=@#&e0>;W~S#|KjHdfLx!-J9r1JtP4RGIhS|Rm0eZ6 z7eOE~Zfo4Li~K^|&)d^-r?8Rh2Q}#ZjL=?VJZ7~hlp4(!U!0K%679I`OR&x54*0&4 znho|hKu)WR)4PUVA1}N;jXHg}AG+gSKQ6O_fEP^Y51!LwBERH09|t!GNx2KH4co>r zA%cgSHxh2Sezx-w!S5DTG#0zVCbnLM6BP}2P-G{8 zh**wJHj<652FS05bSQNx-0fS7^(wREYvZwpt;$!!k4H0U*iyhS8(syBDMv>L<)~LI zPl!Y^-cM{_J@{hY1=XJ#T=Ef(FD!I^r1^lca3c0ftVuvo-(%!Zn)C1bK{}-i*Jc); zIIc+o&iMgvboj&4`@5sF23MV!*zIVmA0>{1;*H*faMAG6EZ7XydTfaGyABAGx>)yl z@Y+|)SVxCx@!GWqspay7GBetK*s2@CJ?s{8v!(b|ShLb|O;3T1rAMB?DJ?Z`@013q zoyIvV84eYiS+?kRJOz`3AFcR~ZQ1Uq7wCnbSJ%-HZwhAnJ^4zDp2W8I)~WI7ush5> z&f3O)rj~2ZGr!c@=p3!n>jG-O#9`$7&WyF7bB}(rq4ldokUp5TY?E62r+YJbJp8Jf znDW3fYZ^nBQ9O}3?zH_*mZ9+G#HHnwop1Vfm!Df~{Z%D?5KzMN&RA>&#q8iCzTfAt zV#TyMeyyh8=M$8tyA|KeUwo_Q6Si)P)%n(W-*QE~08BG|>J!sQPq?IF;;%1ypP?Z` zK_0Un>p;9=9d675ELHboC0+fNMY&(;k(|=0TS>ka)BKI3q#)zx!Jp@zv0QfeEAjU< z=vI5@-d^A^-*#|P+b2QFiGxk4z<8Tp4p6{aOp88x>SQEa0M`VxX%IUb$bya!5EgRf6$fFw zp}jNTKUXjNe0x(;)Nu)Ij5K?QD0u6~mRHQ-!;6m#VP>)}=irAqy;f$e{W-EWnR75~ zm2b0u@r7ASk4x0oTqs9{f&F|eAmD*Gf^A;te7f}J{dXqLaH_4%D_(mnp0VmWhq>^E z&7>5*-mh>FX{w5SJf^#th&GrpOQk58U-+4 zq3$q~C4ySH7@lr>W+|c0`UF*ieC+3vC1$4m}F(ic|G7}QDt(t z7`#>$c4U-4LU_;nWHhdN9Fcv~L8h6M_}nW&EGTjgW(=c}uD9>eU^rDOrkNg_effOV z^8z_y=vNIt{`wOfgG2o^3ey`R!aP1=t7Mz@&MKK3>_BH_QkgNO@4IoQ-2d8EqsDg) zTMb-5lqlubRot-7!RD@+udO?O9_Da3XV5bvjW zXTb2psHUdeiIaI(lknQE_<+YlY31}R!VfoM_BuILQ{>Q89=LB5j;V|-yAW2gY82+~ zYlu~#*R(cHw2NO1h5xaiAD2oiIEQ-aQyA-D^y^z2ZHNfM{o(3M#SbqOP3>k9FOdDO z(t%c9hk)NCPe_8>=Y^U-_-6IwS-D0cE=pwdyLp!;r-fWiXtbUS$<dl!~WV$TR8 zP$KU?K>m?*O)mSGccn&kn|nj7NXFeo<0D=ue8s^~BK#P?J~gB}v5<0nK9GPipjT#9 zkm6yXFyLlgoUIDEVxw*0Z-WDqp8swCs(bcjAqdDLl1oUqYf#a`NjT6IO3?=P`FvUZ zlWC&lWb9_dexSz%N~-oscM`oC%b#KS|KS7AptwRX5h&1VDCKWzP{&??TFdF3h53&c zU(v)WhOr)#!V6Y6d7CzOO-@KF%@67>kh34@Exj7Rh}p5_0?yUeyC7@c7DHf+mW=~wpLeLYDA9#W-Ri*S|M@g zjPHH@qHrPuzq(+5y$V*UoFEg(g$$mRNUEF!C{IN3Rig{tU54W|OD_`M0G3u)B{WhC z*D?hTF7J+YdF8-Z-Uuw{3jBx`_!aus`uDDBecwuu&tsVpj2~DZJb2-!a2l??m{}er}lR6Lqu)-2+Vm)jr(g{nfQPx9-<^1d;k-d zkU{E^g7qwp+D`b+QtU5@+swaVKp9<`>sT~U)O!EEMBo!*)~s_<`6Yl z7fX2;ki>kVDfdietW1k;TYvaY({>?5X)&(d&_y<-J7Qa@b z(zwGCI=`P#^b>1>2#Y!9T5|AdtaU|zXxw9^KpIu6CAmQf$GzaeOJmYVsc3eh5%6lb z)t~(Ak2J`;KW_L6psME-h?xF6ryr4d{q;>-b`Q$L43T{r`{N?U6cqP(Q3f%kA8`c@ z<82KXjte|7u_Lo~MV!d%y$tYi(hzU$6t+*ml~Z&Mg{eK?@}^XEBK+-&j`Uv95x)=_ zZLs=Mpg_IuZenjm(~}b8Aggaaje8NX$A_7^G%-)!xtu)C{N|S<3hVOmU;{|i+q6zn zfr(1Ua*jF!%-dU3L}O2fvWAe%-4kxtXo_vJHF(AxSx)4AI8-$^uBQO_86Z_y%RZX4 zJpu5`pOAztxv?jXv9yx|r>#9!0|`71C-fli@v${6r+V$hgvcr|W_I`{=7*0s(PKQH zzn8r2+tSeD15stz|DIJ3%X%8EkyN?bsHhuq4(5D0Oewn_)-o)Nx$eNs{0V*ZTSVt4 z3ifXGGw5fBv+9b6d~Nl+08L4VbbZqf3DL^e?l@!uZVdWkdOpJPaE?{zF!ZI?c(vF3 zvX~OK4vktvm&R$MgNpiKA~&zT!1#H7!q1h7AQiuSNG9<=$64)Zym(UQ``(j#^hDzt}{aur0pS?mmBi&z4I0Jfieqh%Pa_A%N?_1OZHm-S{ zQ*)4(N_J;y7tRh0o>xs25-s9!M-)i;@I68#SGXB2XgS}N zx_r3%V)z1jLA_M&?)E^DT$kzdHMJF%e2w6BH@iI5tKWM+zcuhCsz@N0a_1RBvrdZx zjzD>V%;c4*$RkEv{zHuVyaB+ANl(iT8w{pJdziC7YcO2&(ciqGLhs@q-dNh! zkV_V_(_~$*>ND}j1yozMedYnu-_GKMh?IpP<@D+edeB4M%3@xr3oj{@mdFKoBVpm^)1_}Y^}rOWBSB|Uv)*-pTdiU ztW9~{qq5@iB+$QpbeJVKH^n^9vV})i>Z@2CHoY2$PC888c;#Yz-pHRK@EVheWhE!> zZzjPmy?0Ni8#=o_k6_s3DY7nS^&Bm}BW&ZfAuF7bQbDgAGM$dE)RM6RvdobKb&MhsYD4exRm9*jcHPjbz#rI?vj$u zPLF5Gjv|8}?ta9`&^H}Va3H;llghU-BC7pxo6?-eTP`7CUZHJrw{5 zhkDYeIYlhL%brQJ1X#<#fz#E}Z87Kj=Hde*f{l|A`9E my8jz0{9hgZgN;Rh%;ug!HJ{lE_@04L;EulOt!iDD=>G@$cU!Ii literal 0 HcmV?d00001 diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/app.json b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/app.json new file mode 100644 index 0000000000..21a7f5b2af --- /dev/null +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/app.json @@ -0,0 +1,47 @@ +{ + "id": "a0673989-48a4-48a0-9517-499c9f4037d3", + "name": "Quality Management Contoso Coffee Demo Dataset", + "publisher": "Microsoft", + "version": "28.0.0.0", + "brief": "To help partners demonstrate the capabilities of the Quality Management extension, we are making demo data available for various quality management scenarios.", + "description": "Quality management specialists can run the tool on top of Cronus or My Company and get the setup and demo data they'll need when they demonstrate various quality management scenarios.", + "privacyStatement": "https://go.microsoft.com/fwlink/?linkid=724009", + "EULA": "https://go.microsoft.com/fwlink/?linkid=2009120", + "help": "https://go.microsoft.com/fwlink/?linkid=2187180", + "url": "https://go.microsoft.com/fwlink/?linkid=724011", + "logo": "./ExtensionLogo.png", + "dependencies": [ + { + "id": "bc7b3891-f61b-4883-bbb3-384cdef88bec", + "name": "Quality Management", + "publisher": "Microsoft", + "version": "28.0.0.0" + }, + { + "id": "5a0b41e9-7a42-4123-d521-2265186cfb31", + "name": "Contoso Coffee Demo Dataset", + "publisher": "Microsoft", + "version": "28.0.0.0" + } + ], + "internalsVisibleTo": [], + "screenshots": [], + "platform": "28.0.0.0", + "application": "28.0.0.0", + "idRanges": [ + { + "from": 5212, + "to": 5800 + } + ], + "resourceExposurePolicy": { + "allowDebugging": true, + "allowDownloadingSource": false, + "includeSourceInSymbolFile": false + }, + "features": [ + "TranslationFile" + ], + "contextSensitiveHelpUrl": "https://learn.microsoft.com/en-us/dynamics365/business-central/contoso-coffee/contoso-coffee-intro", + "target": "Cloud" +} From f4a41ebda5d59296d6fb284e19a2763c618d54e8 Mon Sep 17 00:00:00 2001 From: attilatoury Date: Thu, 8 Jan 2026 14:43:45 +0100 Subject: [PATCH 03/14] revert delete internal procedure which is used in the test app --- .../app/src/Configuration/QltyAutoConfigure.Codeunit.al | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Apps/W1/Quality Management/app/src/Configuration/QltyAutoConfigure.Codeunit.al b/src/Apps/W1/Quality Management/app/src/Configuration/QltyAutoConfigure.Codeunit.al index 57c4875ba6..642032c361 100644 --- a/src/Apps/W1/Quality Management/app/src/Configuration/QltyAutoConfigure.Codeunit.al +++ b/src/Apps/W1/Quality Management/app/src/Configuration/QltyAutoConfigure.Codeunit.al @@ -100,6 +100,11 @@ codeunit 20402 "Qlty. Auto Configure" AssemblyOutputToInspectDescriptionTok: Label 'Posted Assembly Header to Inspect', Locked = true; ResourceBasedInstallFileTok: Label 'InstallFiles/PackageQM-EXPRESSDEMO.rapidstart', Locked = true; + internal procedure GetDefaultPassResult(): Text + begin + exit(DefaultResult2PassCodeTok); + end; + internal procedure EnsureBasicSetupExists(ShowMessage: Boolean) begin EnsureSetupRecordExists(); From 33bf678c504c6894ac2c54728d378859dc504c9d Mon Sep 17 00:00:00 2001 From: attilatoury Date: Wed, 14 Jan 2026 10:00:53 +0100 Subject: [PATCH 04/14] to be discussed with UX team --- src/Apps/W1/Quality Management/app/app.json | 9 ++++++++- .../SetupWizard/QltyManagementSetupWizard.Page.al | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/Apps/W1/Quality Management/app/app.json b/src/Apps/W1/Quality Management/app/app.json index 8e5209c35b..5af97803ef 100644 --- a/src/Apps/W1/Quality Management/app/app.json +++ b/src/Apps/W1/Quality Management/app/app.json @@ -11,7 +11,14 @@ "help": "https://go.microsoft.com/fwlink/?linkid=2338953", "url": "https://go.microsoft.com/fwlink/?LinkId=724011", "logo": "ExtensionLogo.png", - "dependencies": [], + "dependencies": [ + { + "id": "5a0b41e9-7a42-4123-d521-2265186cfb31", + "name": "Contoso Coffee Demo Dataset", + "publisher": "Microsoft", + "version": "28.0.0.0" + } + ], "screenshots": [], "platform": "28.0.0.0", "application": "28.0.0.0", diff --git a/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al b/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al index 0943915ad1..6d53eae75e 100644 --- a/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al +++ b/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al @@ -4,6 +4,7 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.QualityManagement.Setup.SetupWizard; +using Microsoft.DemoTool; using Microsoft.QualityManagement.Configuration; using Microsoft.QualityManagement.Setup; using Microsoft.QualityManagement.Setup.ApplicationAreas; @@ -58,6 +59,18 @@ page 20438 "Qlty. Management Setup Wizard" Caption = 'How to?'; InstructionalText = 'Navigate to the Contoso Demo Tool page. Then, select the Quality Management module, and click on the Generate action. This will install demo data including sample inspection templates, inspection generation rules, and quality inspections.'; } + field(LinkToContosoDemoToolPage; LinkToContosoDemoToolPageLbl) + { + Caption = 'Navigate to Contoso Demo Tool'; + ShowCaption = false; + Editable = false; + ApplicationArea = All; + + trigger OnDrillDown() + begin + Page.RunModal(Page::"Contoso Demo Tool"); + end; + } } group(SettingsFor_StepWhatAreYouMakingQltyInspectionsFor) { @@ -441,6 +454,7 @@ page 20438 "Qlty. Management Setup Wizard" ReRunThisWizardWithMorePermissionErr: Label 'It looks like you need more permissions to run this wizard successfully. Please ask your Business Central administrator to grant more permission.'; FinishWizardLbl: Label 'Finish wizard.', Locked = true; QualityManagementTok: Label 'Quality Management', Locked = true; + LinkToContosoDemoToolPageLbl: Label 'Open Contoso Demo Tool', Locked = true; trigger OnInit(); begin From c629a7748920d1b3552df946dc5044a0dbdac758 Mon Sep 17 00:00:00 2001 From: attilatoury Date: Mon, 19 Jan 2026 10:50:51 +0100 Subject: [PATCH 05/14] update extension logo --- .../ExtensionLogo.png | Bin 5446 -> 8448 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/ExtensionLogo.png b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/ExtensionLogo.png index 4d2c9a626cb9617350617c40cd73904129d4c108..ac39e6b4fc71ef41ec3626eda3bdfc94c2455b2e 100644 GIT binary patch literal 8448 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 literal 5446 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 From a2a4a7cc424cf5f5c58726e03c402890ec302c9d Mon Sep 17 00:00:00 2001 From: attilatoury Date: Mon, 19 Jan 2026 10:52:01 +0100 Subject: [PATCH 06/14] added missing copyright section --- .../DemoTool/ContosoDemoDataModule.EnumExt.al | 4 ++++ .../ContosoHelpers/ContosoQualityManagement.Codeunit.al | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoDemoDataModule.EnumExt.al b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoDemoDataModule.EnumExt.al index b4bb3e329e..e73895e6dc 100644 --- a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoDemoDataModule.EnumExt.al +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoDemoDataModule.EnumExt.al @@ -1,3 +1,7 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ enumextension 5213 "Sust. Contoso Demo Data Module" extends "Contoso Demo Data Module" { value(5213; "Quality Management") diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoHelpers/ContosoQualityManagement.Codeunit.al b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoHelpers/ContosoQualityManagement.Codeunit.al index 5448a944bb..3f3b9548b8 100644 --- a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoHelpers/ContosoQualityManagement.Codeunit.al +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoHelpers/ContosoQualityManagement.Codeunit.al @@ -1,3 +1,7 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ namespace Microsoft.DemoTool.Helpers; using Microsoft.QualityManagement.Configuration.GenerationRule; From 3dea82530ef58219a7df2602028f686b9c149844 Mon Sep 17 00:00:00 2001 From: attilatoury Date: Mon, 19 Jan 2026 10:52:49 +0100 Subject: [PATCH 07/14] removed comment --- .../DemoTool/ContosoHelpers/ContosoQualityManagement.Codeunit.al | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoHelpers/ContosoQualityManagement.Codeunit.al b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoHelpers/ContosoQualityManagement.Codeunit.al index 3f3b9548b8..bf1639d9dc 100644 --- a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoHelpers/ContosoQualityManagement.Codeunit.al +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoHelpers/ContosoQualityManagement.Codeunit.al @@ -197,7 +197,6 @@ codeunit 5222 "Contoso Quality Management" QltyInspectionGenRule.Validate(Description, Description); QltyInspectionGenRule.Validate("Activation Trigger", ActivationTrigger); - // QltyInspectionGenRule.Validate("Purchase Trigger", PurchaseTrigger); if Exists then QltyInspectionGenRule.Modify(true) From 67a04bf168ebac5a74f9f67243d3acd902c2f845 Mon Sep 17 00:00:00 2001 From: attilatoury Date: Mon, 19 Jan 2026 10:56:20 +0100 Subject: [PATCH 08/14] action application area --- .../app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al b/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al index 6d53eae75e..b1eda413f6 100644 --- a/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al +++ b/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al @@ -64,7 +64,7 @@ page 20438 "Qlty. Management Setup Wizard" Caption = 'Navigate to Contoso Demo Tool'; ShowCaption = false; Editable = false; - ApplicationArea = All; + ApplicationArea = QualityManagement; trigger OnDrillDown() begin From d23e8e1117699f7f72af43c7604da90fcea9df94 Mon Sep 17 00:00:00 2001 From: attilatoury Date: Mon, 19 Jan 2026 13:13:17 +0100 Subject: [PATCH 09/14] removed obsolete reference to resources folder in app json --- src/Apps/W1/Quality Management/app/app.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Apps/W1/Quality Management/app/app.json b/src/Apps/W1/Quality Management/app/app.json index 5af97803ef..ea831110ed 100644 --- a/src/Apps/W1/Quality Management/app/app.json +++ b/src/Apps/W1/Quality Management/app/app.json @@ -33,9 +33,6 @@ "includeSourceInSymbolFile": true, "allowDownloadingSource": true }, - "resourceFolders": [ - "Resources" - ], "features": [ "NoImplicitWith", "TranslationFile" From 6e515f239f01a262293446f4d248da2e56258a09 Mon Sep 17 00:00:00 2001 From: attilatoury Date: Mon, 19 Jan 2026 15:13:33 +0100 Subject: [PATCH 10/14] removed unused imports --- .../app/src/Configuration/QltyAutoConfigure.Codeunit.al | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/Apps/W1/Quality Management/app/src/Configuration/QltyAutoConfigure.Codeunit.al b/src/Apps/W1/Quality Management/app/src/Configuration/QltyAutoConfigure.Codeunit.al index 642032c361..6669fab7ac 100644 --- a/src/Apps/W1/Quality Management/app/src/Configuration/QltyAutoConfigure.Codeunit.al +++ b/src/Apps/W1/Quality Management/app/src/Configuration/QltyAutoConfigure.Codeunit.al @@ -12,19 +12,14 @@ using Microsoft.Inventory.Tracking; using Microsoft.Inventory.Transfer; using Microsoft.Manufacturing.Document; using Microsoft.Purchases.Document; -using Microsoft.QualityManagement.Configuration.GenerationRule; using Microsoft.QualityManagement.Configuration.Result; using Microsoft.QualityManagement.Configuration.SourceConfiguration; -using Microsoft.QualityManagement.Configuration.Template; -using Microsoft.QualityManagement.Configuration.Template.Test; using Microsoft.QualityManagement.Document; using Microsoft.QualityManagement.Setup; using Microsoft.Sales.Document; using Microsoft.Warehouse.Document; using Microsoft.Warehouse.Journal; using Microsoft.Warehouse.Ledger; -using System.IO; -using System.Utilities; /// /// Contains helper functions to use for automatic configuration. From 032c5fbc4c3a8643805901caa9cd08d8827ba229 Mon Sep 17 00:00:00 2001 From: attilatoury Date: Mon, 19 Jan 2026 16:15:13 +0100 Subject: [PATCH 11/14] merge conflict --- .../app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al b/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al index 4e3d9580ee..35d411ced5 100644 --- a/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al +++ b/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al @@ -518,6 +518,8 @@ page 20438 "Qlty. Management Setup Wizard" ReRunThisWizardWithMorePermissionErr: Label 'It looks like you need more permissions to run this wizard successfully. Please ask your Business Central administrator to grant more permission.'; FinishWizardLbl: Label 'Finish wizard.', Locked = true; QualityManagementTok: Label 'Quality Management', Locked = true; + QualityInspectionsLbl: Label 'Quality Inspections', Locked = true; + QualityInspectionGenerationRulesLbl: Label 'Quality Inspection Generation Rules', Locked = true; LinkToContosoDemoToolPageLbl: Label 'Open Contoso Demo Tool', Locked = true; trigger OnInit(); From cd1e9fc1157ce03a568f64c821988a031b800aba Mon Sep 17 00:00:00 2001 From: attilatoury Date: Tue, 20 Jan 2026 10:09:37 +0100 Subject: [PATCH 12/14] unused variable --- .../app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al b/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al index 35d411ced5..e6643f21ab 100644 --- a/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al +++ b/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al @@ -564,8 +564,6 @@ page 20438 "Qlty. Management Setup Wizard" end; local procedure ChangeToStep(Step: Integer); - var - GuidedExperience: Codeunit "Guided Experience"; begin if Step < 1 then Step := 1; From 4bff877cd9d3de4e7df18bb28fee9d152eeaab8a Mon Sep 17 00:00:00 2001 From: attilatoury Date: Tue, 20 Jan 2026 14:41:13 +0100 Subject: [PATCH 13/14] code cop rules errors were not showing --- .../app/src/Configuration/QltyAutoConfigure.Codeunit.al | 1 - ...dule.EnumExt.al => QltyContosoDemoDataModule.EnumExt.al} | 6 +++++- 2 files changed, 5 insertions(+), 2 deletions(-) rename src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/{ContosoDemoDataModule.EnumExt.al => QltyContosoDemoDataModule.EnumExt.al} (79%) diff --git a/src/Apps/W1/Quality Management/app/src/Configuration/QltyAutoConfigure.Codeunit.al b/src/Apps/W1/Quality Management/app/src/Configuration/QltyAutoConfigure.Codeunit.al index 6669fab7ac..e5386edbd8 100644 --- a/src/Apps/W1/Quality Management/app/src/Configuration/QltyAutoConfigure.Codeunit.al +++ b/src/Apps/W1/Quality Management/app/src/Configuration/QltyAutoConfigure.Codeunit.al @@ -93,7 +93,6 @@ codeunit 20402 "Qlty. Auto Configure" ProdRoutingToInspectDescriptionTok: Label 'Prod. Order Routing Line to Inspect', Locked = true; AssemblyOutputToInspectTok: Label 'ASSEMBLYOUTPUTTOINSPECT', Locked = true; AssemblyOutputToInspectDescriptionTok: Label 'Posted Assembly Header to Inspect', Locked = true; - ResourceBasedInstallFileTok: Label 'InstallFiles/PackageQM-EXPRESSDEMO.rapidstart', Locked = true; internal procedure GetDefaultPassResult(): Text begin diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoDemoDataModule.EnumExt.al b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/QltyContosoDemoDataModule.EnumExt.al similarity index 79% rename from src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoDemoDataModule.EnumExt.al rename to src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/QltyContosoDemoDataModule.EnumExt.al index e73895e6dc..4dc309b9f3 100644 --- a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/ContosoDemoDataModule.EnumExt.al +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/DemoTool/QltyContosoDemoDataModule.EnumExt.al @@ -2,7 +2,11 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. // ------------------------------------------------------------------------------------------------ -enumextension 5213 "Sust. Contoso Demo Data Module" extends "Contoso Demo Data Module" +namespace Microsoft.DemoTool; + +using Microsoft.DemoData.QualityManagement; + +enumextension 5213 "Qlty. Contoso Demo Data Module" extends "Contoso Demo Data Module" { value(5213; "Quality Management") { From 9a085d98a8d24242fa927531bc7d461c8112bf2b Mon Sep 17 00:00:00 2001 From: attilatoury Date: Wed, 21 Jan 2026 16:04:03 +0100 Subject: [PATCH 14/14] code review comments --- src/Apps/W1/Quality Management/app/app.json | 9 +---- .../QltyManagementSetupWizard.Page.al | 21 ++---------- .../QltyManagementSetupWizardExt.PageExt.al | 33 +++++++++++++++++++ 3 files changed, 37 insertions(+), 26 deletions(-) create mode 100644 src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/QltyManagementSetupWizardExt.PageExt.al diff --git a/src/Apps/W1/Quality Management/app/app.json b/src/Apps/W1/Quality Management/app/app.json index ea831110ed..1ff0fc0408 100644 --- a/src/Apps/W1/Quality Management/app/app.json +++ b/src/Apps/W1/Quality Management/app/app.json @@ -11,14 +11,7 @@ "help": "https://go.microsoft.com/fwlink/?linkid=2338953", "url": "https://go.microsoft.com/fwlink/?LinkId=724011", "logo": "ExtensionLogo.png", - "dependencies": [ - { - "id": "5a0b41e9-7a42-4123-d521-2265186cfb31", - "name": "Contoso Coffee Demo Dataset", - "publisher": "Microsoft", - "version": "28.0.0.0" - } - ], + "dependencies": [], "screenshots": [], "platform": "28.0.0.0", "application": "28.0.0.0", diff --git a/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al b/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al index e6643f21ab..d539290874 100644 --- a/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al +++ b/src/Apps/W1/Quality Management/app/src/Setup/SetupWizard/QltyManagementSetupWizard.Page.al @@ -4,7 +4,6 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.QualityManagement.Setup.SetupWizard; -using Microsoft.DemoTool; using Microsoft.QualityManagement.Configuration; using Microsoft.QualityManagement.Configuration.GenerationRule; using Microsoft.QualityManagement.Document; @@ -78,25 +77,12 @@ page 20438 "Qlty. Management Setup Wizard" group(DemoDataIntroduction) { Caption = 'Demo data for Quality Management'; - InstructionalText = 'The Quality Management application includes demo data available as a Contoso Demo Tool module. Here is how to get started with it.'; + InstructionalText = 'The Quality Management application includes demo data available through the Contoso Coffee Demo Dataset application.'; } - group(DemoDataInstructions) { - Caption = 'How to?'; - InstructionalText = 'Navigate to the Contoso Demo Tool page. Then, select the Quality Management module, and click on the Generate action. This will install demo data including sample inspection templates, inspection generation rules, and quality inspections.'; - } - field(LinkToContosoDemoToolPage; LinkToContosoDemoToolPageLbl) - { - Caption = 'Navigate to Contoso Demo Tool'; - ShowCaption = false; - Editable = false; - ApplicationArea = QualityManagement; - - trigger OnDrillDown() - begin - Page.RunModal(Page::"Contoso Demo Tool"); - end; + Caption = 'Install demo data'; + InstructionalText = 'To install demo data, go to the Contoso Demo Tool page and select the Quality Management module.'; } } group(SettingsFor_StepWhatAreYouMakingQltyInspectionsFor) @@ -520,7 +506,6 @@ page 20438 "Qlty. Management Setup Wizard" QualityManagementTok: Label 'Quality Management', Locked = true; QualityInspectionsLbl: Label 'Quality Inspections', Locked = true; QualityInspectionGenerationRulesLbl: Label 'Quality Inspection Generation Rules', Locked = true; - LinkToContosoDemoToolPageLbl: Label 'Open Contoso Demo Tool', Locked = true; trigger OnInit(); begin diff --git a/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/QltyManagementSetupWizardExt.PageExt.al b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/QltyManagementSetupWizardExt.PageExt.al new file mode 100644 index 0000000000..1a7efc6feb --- /dev/null +++ b/src/Apps/W1/QualityManagementContosoCoffeeDemoDataset/QltyManagementSetupWizardExt.PageExt.al @@ -0,0 +1,33 @@ +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ +namespace Microsoft; + +using Microsoft.DemoTool; +using Microsoft.QualityManagement.Setup.SetupWizard; + +pageextension 5800 QltyManagementSetupWizardExt extends "Qlty. Management Setup Wizard" +{ + layout + { + addafter(DemoDataInstructions) + { + field(LinkToContosoDemoToolPage; LinkToContosoDemoToolPageLbl) + { + Caption = 'Open the Contoso Demo Tool page'; + ShowCaption = false; + Editable = false; + ApplicationArea = QualityManagement; + + trigger OnDrillDown() + begin + Page.RunModal(Page::"Contoso Demo Tool"); + end; + } + } + } + + var + LinkToContosoDemoToolPageLbl: Label 'Contoso Demo Tool'; +} \ No newline at end of file