diff --git a/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/JobQueue/QltyJobQueueManagement.Codeunit.al b/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/JobQueue/QltyJobQueueManagement.Codeunit.al
index a1efe05bf7..8bd2ce2718 100644
--- a/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/JobQueue/QltyJobQueueManagement.Codeunit.al
+++ b/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/JobQueue/QltyJobQueueManagement.Codeunit.al
@@ -263,7 +263,7 @@ codeunit 20455 "Qlty. Job Queue Management"
/// The inspection generation rule to validate for scheduling
procedure CheckIfGenerationRuleCanBeScheduled(var ThisQltyInspectionGenRule: Record "Qlty. Inspection Gen. Rule")
begin
- if (ThisQltyInspectionGenRule."Condition Filter" = '') and (ThisQltyInspectionGenRule."Item Filter" = '') and (ThisQltyInspectionGenRule."Item Attribute Filter" = '') then
+ if (not ThisQltyInspectionGenRule.HasConditionFilter()) and (not ThisQltyInspectionGenRule.HasItemFilter()) and (not ThisQltyInspectionGenRule.HasItemAttributeFilter()) then
Error(FilterMandatoryErr, ThisQltyInspectionGenRule."Schedule Group");
end;
diff --git a/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/JobQueue/QltyScheduleInspection.Report.al b/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/JobQueue/QltyScheduleInspection.Report.al
index d5f2518e3c..a3f7fd971f 100644
--- a/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/JobQueue/QltyScheduleInspection.Report.al
+++ b/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/JobQueue/QltyScheduleInspection.Report.al
@@ -116,8 +116,8 @@ report 20412 "Qlty. Schedule Inspection"
QltyJobQueueManagement.CheckIfGenerationRuleCanBeScheduled(QltyInspectionGenRule);
SourceRecordRef.Open(QltyInspectionGenRule."Source Table No.");
- if QltyInspectionGenRule."Condition Filter" <> '' then
- SourceRecordRef.SetView(QltyInspectionGenRule."Condition Filter");
+ if QltyInspectionGenRule.HasConditionFilter() then
+ SourceRecordRef.SetView(QltyInspectionGenRule.GetConditionFilter());
QltyInspectionGenRule.SetRecFilter();
QltyInspectionGenRule.SetRange("Schedule Group", QltyInspectionGenRule."Schedule Group");
diff --git a/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/QltyInspecGenRuleMgmt.Codeunit.al b/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/QltyInspecGenRuleMgmt.Codeunit.al
index 634798ed01..a6778fc4a5 100644
--- a/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/QltyInspecGenRuleMgmt.Codeunit.al
+++ b/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/QltyInspecGenRuleMgmt.Codeunit.al
@@ -209,14 +209,15 @@ codeunit 20405 "Qlty. Inspec. Gen. Rule Mgmt."
TemporaryInspectionMatchRecordRef.Copy(TargetRecordRef);
if TemporaryInspectionMatchRecordRef.Insert(false) then;
TemporaryInspectionMatchRecordRef.Reset();
- TemporaryInspectionMatchRecordRef.SetView(QltyInspectionGenRule."Condition Filter");
+ if QltyInspectionGenRule.HasConditionFilter() then
+ TemporaryInspectionMatchRecordRef.SetView(QltyInspectionGenRule.GetConditionFilter());
if TemporaryInspectionMatchRecordRef.FindFirst() then
- if (QltyInspectionGenRule."Item Filter" <> '') and (OptionalItem."No." <> '') then begin
+ if QltyInspectionGenRule.HasItemFilter() and (OptionalItem."No." <> '') then begin
Clear(SearchItem);
SearchItem := OptionalItem;
SearchItem.SetRecFilter();
SearchItem.FilterGroup(20);
- SearchItem.SetView(QltyInspectionGenRule."Item Filter");
+ SearchItem.SetView(QltyInspectionGenRule.GetItemFilter());
if SearchItem.Count() > 0 then
if DoesMatchItemAttributeFiltersOrNoFilter(QltyInspectionGenRule, OptionalItem) then begin
TempQltyInspectionGenRule := QltyInspectionGenRule;
@@ -226,7 +227,7 @@ codeunit 20405 "Qlty. Inspec. Gen. Rule Mgmt."
OptionalItem.FilterGroup(0);
SearchItem.FilterGroup(0);
end else
- if (OptionalItem."No." <> '') and (QltyInspectionGenRule."Item Attribute Filter" <> '') then begin
+ if (OptionalItem."No." <> '') and QltyInspectionGenRule.HasItemAttributeFilter() then begin
if DoesMatchItemAttributeFiltersOrNoFilter(QltyInspectionGenRule, OptionalItem) then begin
TempQltyInspectionGenRule := QltyInspectionGenRule;
Found := TempQltyInspectionGenRule.Insert();
@@ -271,10 +272,10 @@ codeunit 20405 "Qlty. Inspec. Gen. Rule Mgmt."
if Item."No." = '' then
exit(false);
- if QltyInspectionGenRule."Item Attribute Filter" = '' then
+ if not QltyInspectionGenRule.HasItemAttributeFilter() then
exit(true);
- QltyFilterHelpers.DeserializeFilterIntoItemAttributesBuffer(QltyInspectionGenRule."Item Attribute Filter", TempFilterItemAttributesBuffer);
+ QltyFilterHelpers.DeserializeFilterIntoItemAttributesBuffer(QltyInspectionGenRule.GetItemAttributeFilter(), TempFilterItemAttributesBuffer);
QltyFilterHelpers.SetItemFilterForItemAttributeFilterSearching(Item."No.");
BindSubscription(QltyFilterHelpers);
ItemAttributeManagement.FindItemsByAttributes(TempFilterItemAttributesBuffer, TempsItem);
diff --git a/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/QltyInspectionGenRule.Table.al b/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/QltyInspectionGenRule.Table.al
index bedb88468d..b9f0030baf 100644
--- a/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/QltyInspectionGenRule.Table.al
+++ b/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/QltyInspectionGenRule.Table.al
@@ -116,11 +116,9 @@ table 20404 "Qlty. Inspection Gen. Rule"
SetIntentAndDefaultTriggerValuesFromSetup();
end;
}
- field(13; "Condition Filter"; Text[400])
+ field(13; "Condition Filter"; Blob)
{
Caption = 'Condition Filter';
- Description = 'Specifies the criteria for defining when to use this template. For example, if you wanted to only use a template for a certain item then you would define that item here.';
- ToolTip = 'Specifies the criteria for defining when to use this template. For example, if you wanted to only use a template for a certain item then you would define that item here.';
}
field(14; Description; Text[100])
{
@@ -141,15 +139,13 @@ table 20404 "Qlty. Inspection Gen. Rule"
FieldClass = FlowFilter;
Caption = 'Table ID Filter';
}
- field(19; "Item Filter"; Text[400])
+ field(19; "Item Filter"; Blob)
{
Caption = 'Item Filter';
- ToolTip = 'Specifies the item specific criteria for defining when to use this template. ';
}
- field(20; "Item Attribute Filter"; Text[400])
+ field(20; "Item Attribute Filter"; Blob)
{
Caption = 'Attribute Filter';
- ToolTip = 'Specifies the item attribute specific criteria for defining when to use this template. ';
}
field(21; "Activation Trigger"; Enum "Qlty. Gen. Rule Act. Trigger")
{
@@ -288,7 +284,6 @@ table 20404 "Qlty. Inspection Gen. Rule"
RuleCurrentlyDisabledLbl: Label 'The generation rule Sort Order %1, Template Code %2 is currently disabled. It will need to have an activation trigger of "Automatic Only" or "Manual or Automatic" before it will be triggered by "%3"', Comment = '%1=generation rule sort order,%2=generation rule template code,%3=auto trigger';
DefaultScheduleGroupLbl: Label 'QM', Locked = true;
ChooseTemplateFirstErr: Label 'Please choose the template first.';
- FilterLengthErr: Label 'This filter is too long and must be less than %1 characters.', Comment = '%1=filter string maximum length';
trigger OnInsert()
begin
@@ -353,17 +348,137 @@ table 20404 "Qlty. Inspection Gen. Rule"
QltyFilterHelpers: Codeunit "Qlty. Filter Helpers";
Value: Text;
begin
- Value := Rec."Condition Filter";
+ Value := Rec.GetConditionFilter();
if QltyFilterHelpers.BuildFilter(Rec."Source Table No.", true, Value) then begin
- if (Value <> Rec."Condition Filter") and (Value <> '') then begin
- Rec."Condition Filter" := CopyStr(Value, 1, MaxStrLen(Rec."Condition Filter"));
- if StrLen(Value) > MaxStrLen(Rec."Condition Filter") then
- Error(FilterLengthErr, MaxStrLen(Rec."Condition Filter"));
- end;
+ if (Value <> Rec.GetConditionFilter()) and (Value <> '') then
+ Rec.SetConditionFilter(Value);
Result := true;
end;
end;
+ ///
+ /// Gets the item filter from the Blob field.
+ ///
+ /// The item filter text
+ procedure GetItemFilter(): Text
+ var
+ TypeHelper: Codeunit "Type Helper";
+ InStream: InStream;
+ begin
+ Rec.CalcFields("Item Filter");
+ if not Rec."Item Filter".HasValue() then
+ exit('');
+ Rec."Item Filter".CreateInStream(InStream, TextEncoding::UTF8);
+ exit(TypeHelper.ReadAsTextWithSeparator(InStream, TypeHelper.LFSeparator()));
+ end;
+
+ ///
+ /// Sets the item filter to the Blob field.
+ ///
+ /// The item filter text to set
+ procedure SetItemFilter(NewItemFilter: Text)
+ var
+ OutStream: OutStream;
+ begin
+ Clear(Rec."Item Filter");
+ if NewItemFilter = '' then
+ exit;
+ Rec."Item Filter".CreateOutStream(OutStream, TextEncoding::UTF8);
+ OutStream.WriteText(NewItemFilter);
+ end;
+
+ ///
+ /// Checks if the Item Filter has a value.
+ ///
+ /// True if the Item Filter has a value
+ procedure HasItemFilter(): Boolean
+ begin
+ Rec.CalcFields("Item Filter");
+ exit(Rec."Item Filter".HasValue());
+ end;
+
+ ///
+ /// Gets the condition filter from the Blob field.
+ ///
+ /// The condition filter text
+ procedure GetConditionFilter(): Text
+ var
+ TypeHelper: Codeunit "Type Helper";
+ InStream: InStream;
+ begin
+ Rec.CalcFields("Condition Filter");
+ if not Rec."Condition Filter".HasValue() then
+ exit('');
+ Rec."Condition Filter".CreateInStream(InStream, TextEncoding::UTF8);
+ exit(TypeHelper.ReadAsTextWithSeparator(InStream, TypeHelper.LFSeparator()));
+ end;
+
+ ///
+ /// Sets the condition filter to the Blob field.
+ ///
+ /// The condition filter text to set
+ procedure SetConditionFilter(NewConditionFilter: Text)
+ var
+ OutStream: OutStream;
+ begin
+ Clear(Rec."Condition Filter");
+ if NewConditionFilter = '' then
+ exit;
+ Rec."Condition Filter".CreateOutStream(OutStream, TextEncoding::UTF8);
+ OutStream.WriteText(NewConditionFilter);
+ end;
+
+ ///
+ /// Checks if the Condition Filter has a value.
+ ///
+ /// True if the Condition Filter has a value
+ procedure HasConditionFilter(): Boolean
+ begin
+ Rec.CalcFields("Condition Filter");
+ exit(Rec."Condition Filter".HasValue());
+ end;
+
+ ///
+ /// Gets the item attribute filter from the Blob field.
+ ///
+ /// The item attribute filter text
+ procedure GetItemAttributeFilter(): Text
+ var
+ TypeHelper: Codeunit "Type Helper";
+ InStream: InStream;
+ begin
+ Rec.CalcFields("Item Attribute Filter");
+ if not Rec."Item Attribute Filter".HasValue() then
+ exit('');
+ Rec."Item Attribute Filter".CreateInStream(InStream, TextEncoding::UTF8);
+ exit(TypeHelper.ReadAsTextWithSeparator(InStream, TypeHelper.LFSeparator()));
+ end;
+
+ ///
+ /// Sets the item attribute filter to the Blob field.
+ ///
+ /// The item attribute filter text to set
+ procedure SetItemAttributeFilter(NewItemAttributeFilter: Text)
+ var
+ OutStream: OutStream;
+ begin
+ Clear(Rec."Item Attribute Filter");
+ if NewItemAttributeFilter = '' then
+ exit;
+ Rec."Item Attribute Filter".CreateOutStream(OutStream, TextEncoding::UTF8);
+ OutStream.WriteText(NewItemAttributeFilter);
+ end;
+
+ ///
+ /// Checks if the Item Attribute Filter has a value.
+ ///
+ /// True if the Item Attribute Filter has a value
+ procedure HasItemAttributeFilter(): Boolean
+ begin
+ Rec.CalcFields("Item Attribute Filter");
+ exit(Rec."Item Attribute Filter".HasValue());
+ end;
+
///
/// Provides the ability to assist edit an item filter.
///
@@ -373,13 +488,10 @@ table 20404 "Qlty. Inspection Gen. Rule"
QltyFilterHelpers: Codeunit "Qlty. Filter Helpers";
Value: Text;
begin
- Value := Rec."Item Filter";
+ Value := Rec.GetItemFilter();
if QltyFilterHelpers.BuildFilter(Database::Item, true, Value) then begin
- if (Value <> Rec."Item Filter") and (Value <> '') then begin
- Rec."Item Filter" := CopyStr(Value, 1, MaxStrLen(Rec."Item Filter"));
- if StrLen(Value) > MaxStrLen(Rec."Item Filter") then
- Error(FilterLengthErr, MaxStrLen(Rec."Item Filter"));
- end;
+ if (Value <> Rec.GetItemFilter()) and (Value <> '') then
+ Rec.SetItemFilter(Value);
Result := true;
end;
end;
@@ -390,8 +502,11 @@ table 20404 "Qlty. Inspection Gen. Rule"
procedure AssistEditConditionAttributeFilter()
var
QltyFilterHelpers: Codeunit "Qlty. Filter Helpers";
+ Value: Text;
begin
- QltyFilterHelpers.BuildItemAttributeFilter400(Rec."Item Attribute Filter");
+ Value := Rec.GetItemAttributeFilter();
+ QltyFilterHelpers.BuildItemAttributeFilter(Value);
+ Rec.SetItemAttributeFilter(Value);
end;
///
@@ -591,29 +706,31 @@ table 20404 "Qlty. Inspection Gen. Rule"
TempItemLedgerEntry: Record "Item Ledger Entry" temporary;
TempItemJournalLine: Record "Item Journal Line" temporary;
QltyFilterHelpers: Codeunit "Qlty. Filter Helpers";
+ ConditionFilterValue: Text;
begin
if Rec."Source Table No." = 0 then
exit(false);
- if Rec."Condition Filter" = '' then
+ if not Rec.HasConditionFilter() then
exit(false);
+ ConditionFilterValue := Rec.GetConditionFilter();
case Rec."Source Table No." of
Database::"Prod. Order Routing Line",
Database::"Prod. Order Line",
Database::"Production Order":
exit(true);
Database::"Item Ledger Entry":
- if QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", Rec."Condition Filter", TempItemLedgerEntry.FieldNo("Entry Type"), TempItemLedgerEntry."Entry Type"::Output) then
+ if QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", ConditionFilterValue, TempItemLedgerEntry.FieldNo("Entry Type"), TempItemLedgerEntry."Entry Type"::Output) then
exit(true)
else
- if QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", Rec."Condition Filter", TempItemLedgerEntry.FieldNo("Order Type"), TempItemLedgerEntry."Order Type"::Production) then
+ if QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", ConditionFilterValue, TempItemLedgerEntry.FieldNo("Order Type"), TempItemLedgerEntry."Order Type"::Production) then
exit(true);
Database::"Item Journal Line":
- if QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", Rec."Condition Filter", TempItemJournalLine.FieldNo("Entry Type"), TempItemJournalLine."Entry Type"::Output) then
+ if QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", ConditionFilterValue, TempItemJournalLine.FieldNo("Entry Type"), TempItemJournalLine."Entry Type"::Output) then
exit(true)
else
- if QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", Rec."Condition Filter", TempItemJournalLine.FieldNo("Order Type"), TempItemJournalLine."Order Type"::Production) then
+ if QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", ConditionFilterValue, TempItemJournalLine.FieldNo("Order Type"), TempItemJournalLine."Order Type"::Production) then
exit(true);
end;
end;
@@ -622,24 +739,29 @@ table 20404 "Qlty. Inspection Gen. Rule"
var
TempWarehouseJournalLine: Record "Warehouse Journal Line" temporary;
QltyFilterHelpers: Codeunit "Qlty. Filter Helpers";
+ ConditionFilterValue: Text;
begin
- if (Rec."Source Table No." = Database::"Warehouse Journal Line") and (Rec."Condition Filter" <> '') then
- if QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", Rec."Condition Filter", TempWarehouseJournalLine.FieldNo("Whse. Document Type"), TempWarehouseJournalLine."Whse. Document Type"::Receipt) then
+ if (Rec."Source Table No." = Database::"Warehouse Journal Line") and Rec.HasConditionFilter() then begin
+ ConditionFilterValue := Rec.GetConditionFilter();
+ if QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", ConditionFilterValue, TempWarehouseJournalLine.FieldNo("Whse. Document Type"), TempWarehouseJournalLine."Whse. Document Type"::Receipt) then
exit(true)
else
- if QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", Rec."Condition Filter", TempWarehouseJournalLine.FieldNo("Reference Document"), TempWarehouseJournalLine."Reference Document"::"Posted Rcpt.") then
+ if QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", ConditionFilterValue, TempWarehouseJournalLine.FieldNo("Reference Document"), TempWarehouseJournalLine."Reference Document"::"Posted Rcpt.") then
exit(true);
+ end;
end;
local procedure InferIsWarehouseMoveIntentFromCondition(): Boolean
var
TempWarehouseJournalLine: Record "Warehouse Journal Line" temporary;
QltyFilterHelpers: Codeunit "Qlty. Filter Helpers";
+ ConditionFilterValue: Text;
begin
- if (Rec."Source Table No." = Database::"Warehouse Journal Line") and (Rec."Condition Filter" <> '') then begin
- if QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", Rec."Condition Filter", TempWarehouseJournalLine.FieldNo("Whse. Document Type"), TempWarehouseJournalLine."Whse. Document Type"::"Internal Put-away") then
+ if (Rec."Source Table No." = Database::"Warehouse Journal Line") and Rec.HasConditionFilter() then begin
+ ConditionFilterValue := Rec.GetConditionFilter();
+ if QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", ConditionFilterValue, TempWarehouseJournalLine.FieldNo("Whse. Document Type"), TempWarehouseJournalLine."Whse. Document Type"::"Internal Put-away") then
exit(true);
- if QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", Rec."Condition Filter", TempWarehouseJournalLine.FieldNo("Entry Type"), Format(TempWarehouseJournalLine."Entry Type"::Movement)) then
+ if QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", ConditionFilterValue, TempWarehouseJournalLine.FieldNo("Entry Type"), Format(TempWarehouseJournalLine."Entry Type"::Movement)) then
exit(true);
end;
end;
@@ -648,25 +770,27 @@ table 20404 "Qlty. Inspection Gen. Rule"
var
TempItemJournalLine: Record "Item Journal Line" temporary;
QltyFilterHelpers: Codeunit "Qlty. Filter Helpers";
+ ConditionFilterValue: Text;
begin
- if (Rec."Source Table No." = Database::"Item Journal Line") and (Rec."Condition Filter" <> '') then
+ if (Rec."Source Table No." = Database::"Item Journal Line") and Rec.HasConditionFilter() then begin
+ ConditionFilterValue := Rec.GetConditionFilter();
case true of
- QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", Rec."Condition Filter", TempItemJournalLine.FieldNo("Document Type"), TempItemJournalLine."Document Type"::"Purchase Receipt"):
+ QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", ConditionFilterValue, TempItemJournalLine.FieldNo("Document Type"), TempItemJournalLine."Document Type"::"Purchase Receipt"):
begin
QltyGenRuleIntent := QltyGenRuleIntent::Purchase;
exit(true);
end;
- QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", Rec."Condition Filter", TempItemJournalLine.FieldNo("Document Type"), TempItemJournalLine."Document Type"::"Sales Return Receipt"):
+ QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", ConditionFilterValue, TempItemJournalLine.FieldNo("Document Type"), TempItemJournalLine."Document Type"::"Sales Return Receipt"):
begin
QltyGenRuleIntent := QltyGenRuleIntent::"Sales Return";
exit(true);
end;
- QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", Rec."Condition Filter", TempItemJournalLine.FieldNo("Document Type"), TempItemJournalLine."Document Type"::"Transfer Receipt"):
+ QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", ConditionFilterValue, TempItemJournalLine.FieldNo("Document Type"), TempItemJournalLine."Document Type"::"Transfer Receipt"):
begin
QltyGenRuleIntent := QltyGenRuleIntent::Transfer;
exit(true);
end;
- QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", Rec."Condition Filter", TempItemJournalLine.FieldNo("Document Type"), TempItemJournalLine."Document Type"::"Direct Transfer"):
+ QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", ConditionFilterValue, TempItemJournalLine.FieldNo("Document Type"), TempItemJournalLine."Document Type"::"Direct Transfer"):
begin
QltyGenRuleIntent := QltyGenRuleIntent::Transfer;
exit(true);
@@ -674,31 +798,34 @@ table 20404 "Qlty. Inspection Gen. Rule"
else
exit(false);
end;
+ end;
end;
local procedure InferItemLedgerIntentFromConditionFilter(var QltyGenRuleIntent: Enum "Qlty. Gen. Rule Intent"): Boolean
var
TempItemLedgerEntry: Record "Item Ledger Entry" temporary;
QltyFilterHelpers: Codeunit "Qlty. Filter Helpers";
+ ConditionFilterValue: Text;
begin
- if (Rec."Source Table No." = Database::"Item Ledger Entry") and (Rec."Condition Filter" <> '') then
+ if (Rec."Source Table No." = Database::"Item Ledger Entry") and Rec.HasConditionFilter() then begin
+ ConditionFilterValue := Rec.GetConditionFilter();
case true of
- QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", Rec."Condition Filter", TempItemLedgerEntry.FieldNo("Entry Type"), TempItemLedgerEntry."Entry Type"::Purchase):
+ QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", ConditionFilterValue, TempItemLedgerEntry.FieldNo("Entry Type"), TempItemLedgerEntry."Entry Type"::Purchase):
begin
QltyGenRuleIntent := QltyGenRuleIntent::Purchase;
exit(true);
end;
- QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", Rec."Condition Filter", TempItemLedgerEntry.FieldNo("Entry Type"), TempItemLedgerEntry."Entry Type"::Sale):
+ QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", ConditionFilterValue, TempItemLedgerEntry.FieldNo("Entry Type"), TempItemLedgerEntry."Entry Type"::Sale):
begin
QltyGenRuleIntent := QltyGenRuleIntent::"Sales Return";
exit(true);
end;
- QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", Rec."Condition Filter", TempItemLedgerEntry.FieldNo("Entry Type"), TempItemLedgerEntry."Entry Type"::Transfer):
+ QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", ConditionFilterValue, TempItemLedgerEntry.FieldNo("Entry Type"), TempItemLedgerEntry."Entry Type"::Transfer):
begin
QltyGenRuleIntent := QltyGenRuleIntent::Transfer;
exit(true);
end;
- QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", Rec."Condition Filter", TempItemLedgerEntry.FieldNo("Entry Type"), TempItemLedgerEntry."Entry Type"::"Assembly Output"):
+ QltyFilterHelpers.GetIsFilterSetToValue(Rec."Source Table No.", ConditionFilterValue, TempItemLedgerEntry.FieldNo("Entry Type"), TempItemLedgerEntry."Entry Type"::"Assembly Output"):
begin
QltyGenRuleIntent := QltyGenRuleIntent::Assembly;
exit(true);
@@ -706,6 +833,7 @@ table 20404 "Qlty. Inspection Gen. Rule"
else
exit(false);
end;
+ end;
end;
local procedure GetIsOnlyAutoTriggerInSetup(IntentToCheck: Enum "Qlty. Gen. Rule Intent"): Boolean
diff --git a/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/QltyInspectionGenRules.Page.al b/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/QltyInspectionGenRules.Page.al
index c6f6c12312..22a686d114 100644
--- a/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/QltyInspectionGenRules.Page.al
+++ b/src/Apps/W1/Quality Management/app/src/Configuration/GenerationRule/QltyInspectionGenRules.Page.al
@@ -77,28 +77,58 @@ page 20405 "Qlty. Inspection Gen. Rules"
CurrPage.Update(true);
end;
}
- field("Condition Filter"; Rec."Condition Filter")
+ field("Condition Filter"; ConditionFilterText)
{
+ Caption = 'Condition Filter';
+ ToolTip = 'Specifies the criteria for defining when to use this template. For example, if you wanted to only use a template for a certain item then you would define that item here.';
+
+ trigger OnValidate()
+ begin
+ Rec.SetConditionFilter(ConditionFilterText);
+ Rec.Modify();
+ end;
+
trigger OnAssistEdit()
begin
Rec.AssistEditConditionTableFilter();
+ ConditionFilterText := Rec.GetConditionFilter();
Rec.SetIntentAndDefaultTriggerValuesFromSetup();
if xRec."Entry No." = Rec."Entry No." then
CurrPage.Update(true);
end;
}
- field("Item Filter"; Rec."Item Filter")
+ field("Item Filter"; ItemFilterText)
{
+ Caption = 'Item Filter';
+ ToolTip = 'Specifies the item specific criteria for defining when to use this template.';
+
+ trigger OnValidate()
+ begin
+ Rec.SetItemFilter(ItemFilterText);
+ Rec.Modify();
+ end;
+
trigger OnAssistEdit()
begin
Rec.AssistEditConditionItemFilter();
+ ItemFilterText := Rec.GetItemFilter();
end;
}
- field("Item Attribute Filter"; Rec."Item Attribute Filter")
+ field("Item Attribute Filter"; ItemAttributeFilterText)
{
+ Caption = 'Attribute Filter';
+ ToolTip = 'Specifies the item attribute specific criteria for defining when to use this template.';
+
+ trigger OnValidate()
+ begin
+ Rec.SetItemAttributeFilter(ItemAttributeFilterText);
+ Rec.Modify();
+ end;
+
trigger OnAssistEdit()
begin
Rec.AssistEditConditionAttributeFilter();
+ ItemAttributeFilterText := Rec.GetItemAttributeFilter();
end;
}
field("Activation Trigger"; Rec."Activation Trigger")
@@ -376,6 +406,9 @@ page 20405 "Qlty. Inspection Gen. Rules"
WhseReceiveStyle: Text;
WhseMovementStyle: Text;
TransferStyle: Text;
+ ItemFilterText: Text;
+ ConditionFilterText: Text;
+ ItemAttributeFilterText: Text;
RowStyle: Option None,Standard,StandardAccent,Strong,StrongAccent,Attention,AttentionAccent,Favorable,Unfavorable,Ambiguous,Subordinate;
GenerationRulesCaptionLbl: Label 'Quality Inspection Generation Rules';
GenerationRulesCaptionForTemplateLbl: Label 'Quality Inspection Generation Rules for %1', Comment = '%1=the template';
@@ -426,6 +459,9 @@ page 20405 "Qlty. Inspection Gen. Rules"
trigger OnAfterGetRecord()
begin
+ ConditionFilterText := Rec.GetConditionFilter();
+ ItemFilterText := Rec.GetItemFilter();
+ ItemAttributeFilterText := Rec.GetItemAttributeFilter();
UpdateControls();
end;
diff --git a/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionCreate.Codeunit.al b/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionCreate.Codeunit.al
index 76f2f474e5..c57f588d3c 100644
--- a/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionCreate.Codeunit.al
+++ b/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionCreate.Codeunit.al
@@ -305,8 +305,8 @@ codeunit 20404 "Qlty. Inspection - Create"
if Handled then
exit(QltyInspectionCreateStatus::"Unable to Create");
- if TempFiltersQltyInspectionGenRule."Item Filter" <> '' then
- RelatedItem.SetView(TempFiltersQltyInspectionGenRule."Item Filter");
+ if TempFiltersQltyInspectionGenRule.HasItemFilter() then
+ RelatedItem.SetView(TempFiltersQltyInspectionGenRule.GetItemFilter());
QltyTraversal.FindRelatedItem(RelatedItem, TargetRecordRef, OptionalRec2Variant, OptionalRec3Variant, OptionalRec4Variant);
@@ -943,14 +943,14 @@ codeunit 20404 "Qlty. Inspection - Create"
Clear(VariantEmptyOrTrackingSpecification);
RelatedReservFilterReservationEntry.SetRange("Entry No.", -1);
- if TempFiltersQltyInspectionGenRule."Item Filter" <> '' then begin
+ if TempFiltersQltyInspectionGenRule.HasItemFilter() then begin
Item.FilterGroup(20);
- Item.SetView(TempFiltersQltyInspectionGenRule."Item Filter");
+ Item.SetView(TempFiltersQltyInspectionGenRule.GetItemFilter());
Item.FilterGroup(0);
end;
if QltyTraversal.FindRelatedItem(Item, ParentRecordRef, TempSelfRecordRef, VariantEmptyOrTrackingSpecification, Dummy4Variant) then begin
- if (Item."No." <> '') and (TempFiltersQltyInspectionGenRule."Item Attribute Filter" <> '') then
+ if (Item."No." <> '') and TempFiltersQltyInspectionGenRule.HasItemAttributeFilter() then
if not QltyInspecGenRuleMgmt.DoesMatchItemAttributeFiltersOrNoFilter(TempFiltersQltyInspectionGenRule, Item) then
exit;
@@ -1000,7 +1000,7 @@ codeunit 20404 "Qlty. Inspection - Create"
end;
until RelatedReservFilterReservationEntry.Next() = 0;
end else begin
- if TempFiltersQltyInspectionGenRule."Item Filter" <> '' then begin
+ if TempFiltersQltyInspectionGenRule.HasItemFilter() then begin
Clear(Item);
if QltyTraversal.FindRelatedItem(Item, ParentRecordRef, TempSelfRecordRef, VariantEmptyOrTrackingSpecification, Dummy4Variant) then
exit;
diff --git a/src/Apps/W1/Quality Management/app/src/Integration/Manufacturing/QltyProdGenRuleWizard.Page.al b/src/Apps/W1/Quality Management/app/src/Integration/Manufacturing/QltyProdGenRuleWizard.Page.al
index 534eae1efe..cd361c74bc 100644
--- a/src/Apps/W1/Quality Management/app/src/Integration/Manufacturing/QltyProdGenRuleWizard.Page.al
+++ b/src/Apps/W1/Quality Management/app/src/Integration/Manufacturing/QltyProdGenRuleWizard.Page.al
@@ -552,9 +552,9 @@ page 20462 "Qlty. Prod. Gen. Rule Wizard"
InventoryPostingGroupCode: Code[20];
QltyProductionTrigger: Enum "Qlty. Production Trigger";
QltyAssemblyTrigger: Enum "Qlty. Assembly Trigger";
- ProdOrderRoutingLineRuleFilter: Text[400];
- PostedAssemblyOrderRuleFilter: Text[400];
- ItemRuleFilter: Text[400];
+ ProdOrderRoutingLineRuleFilter: Text;
+ PostedAssemblyOrderRuleFilter: Text;
+ ItemRuleFilter: Text;
IsBackEnabledd: Boolean;
IsNextEnabledd: Boolean;
IsFinishEnabledd: Boolean;
@@ -581,7 +581,6 @@ page 20462 "Qlty. Prod. Gen. Rule Wizard"
YouMustChooseATemplateFirstMsg: Label 'Please choose a template before proceeding.';
WorkCenterNoErr: Label 'This Work Center No. filter needs an adjustment. %1', Comment = '%1 = Text of the original error message';
RuleAlreadyThereQst: Label 'You already have at least one rule with these same conditions. Are you sure you want to proceed?';
- FilterLengthErr: Label 'This filter is too long and must be less than %1 characters.', Comment = '%1=filter string maximum length';
trigger OnInit();
begin
@@ -725,10 +724,10 @@ page 20462 "Qlty. Prod. Gen. Rule Wizard"
local procedure AssistEditFullProdOrderRoutingLineFilter()
begin
TempQltyInspectionGenRule."Source Table No." := Database::"Prod. Order Routing Line";
- TempQltyInspectionGenRule."Condition Filter" := ProdOrderRoutingLineRuleFilter;
+ TempQltyInspectionGenRule.SetConditionFilter(ProdOrderRoutingLineRuleFilter);
if TempQltyInspectionGenRule.AssistEditConditionTableFilter() then begin
- ProdOrderRoutingLineRuleFilter := TempQltyInspectionGenRule."Condition Filter";
+ ProdOrderRoutingLineRuleFilter := TempQltyInspectionGenRule.GetConditionFilter();
TempProdOrderRoutingLine.SetView(ProdOrderRoutingLineRuleFilter);
UpdateTableVariablesFromRecordFilters();
@@ -738,9 +737,9 @@ page 20462 "Qlty. Prod. Gen. Rule Wizard"
local procedure AssistEditFullItemFilter()
begin
- TempQltyInspectionGenRule."Item Filter" := ItemRuleFilter;
+ TempQltyInspectionGenRule.SetItemFilter(ItemRuleFilter);
if TempQltyInspectionGenRule.AssistEditConditionItemFilter() then begin
- ItemRuleFilter := TempQltyInspectionGenRule."Item Filter";
+ ItemRuleFilter := TempQltyInspectionGenRule.GetItemFilter();
TempItem.SetView(ItemRuleFilter);
UpdateTableVariablesFromRecordFilters();
@@ -751,10 +750,10 @@ page 20462 "Qlty. Prod. Gen. Rule Wizard"
local procedure AssistEditFullPostedAssemblyHeaderFilter()
begin
TempQltyInspectionGenRule."Source Table No." := Database::"Posted Assembly Header";
- TempQltyInspectionGenRule."Condition Filter" := PostedAssemblyOrderRuleFilter;
+ TempQltyInspectionGenRule.SetConditionFilter(PostedAssemblyOrderRuleFilter);
if TempQltyInspectionGenRule.AssistEditConditionTableFilter() then begin
- PostedAssemblyOrderRuleFilter := TempQltyInspectionGenRule."Condition Filter";
+ PostedAssemblyOrderRuleFilter := TempQltyInspectionGenRule.GetConditionFilter();
TempPostedAssemblyHeader.SetView(PostedAssemblyOrderRuleFilter);
UpdateTableVariablesFromRecordFilters();
@@ -765,10 +764,10 @@ page 20462 "Qlty. Prod. Gen. Rule Wizard"
local procedure CleanUpWhereClause()
begin
if IsProductionOrder then
- ProdOrderRoutingLineRuleFilter := QltyFilterHelpers.CleanUpWhereClause400(ProdOrderRoutingLineRuleFilter);
+ ProdOrderRoutingLineRuleFilter := QltyFilterHelpers.CleanUpWhereClause(ProdOrderRoutingLineRuleFilter);
if IsAssemblyOrder then
- PostedAssemblyOrderRuleFilter := QltyFilterHelpers.CleanUpWhereClause400(PostedAssemblyOrderRuleFilter);
- ItemRuleFilter := QltyFilterHelpers.CleanUpWhereClause400(ItemRuleFilter);
+ PostedAssemblyOrderRuleFilter := QltyFilterHelpers.CleanUpWhereClause(PostedAssemblyOrderRuleFilter);
+ ItemRuleFilter := QltyFilterHelpers.CleanUpWhereClause(ItemRuleFilter);
end;
local procedure BackAction();
@@ -800,7 +799,7 @@ page 20462 "Qlty. Prod. Gen. Rule Wizard"
if IsProductionOrder then begin
QltyInspectionGenRule."Source Table No." := Database::"Prod. Order Routing Line";
QltyInspectionGenRule.Intent := QltyInspectionGenRule.Intent::Production;
- QltyInspectionGenRule."Condition Filter" := ProdOrderRoutingLineRuleFilter;
+ QltyInspectionGenRule.SetConditionFilter(ProdOrderRoutingLineRuleFilter);
QltyInspectionGenRule.SetIntentAndDefaultTriggerValuesFromSetup();
QltyInspectionGenRule."Production Trigger" := QltyProductionTrigger;
@@ -808,22 +807,25 @@ page 20462 "Qlty. Prod. Gen. Rule Wizard"
end else begin
QltyInspectionGenRule."Source Table No." := Database::"Posted Assembly Header";
QltyInspectionGenRule.Intent := QltyInspectionGenRule.Intent::Assembly;
- QltyInspectionGenRule."Condition Filter" := PostedAssemblyOrderRuleFilter;
+ QltyInspectionGenRule.SetConditionFilter(PostedAssemblyOrderRuleFilter);
QltyInspectionGenRule.SetIntentAndDefaultTriggerValuesFromSetup();
QltyInspectionGenRule."Assembly Trigger" := QltyAssemblyTrigger;
QltyManagementSetup."Assembly Trigger" := QltyAssemblyTrigger;
end;
if QltyManagementSetup.Modify(false) then;
- QltyInspectionGenRule."Item Filter" := ItemRuleFilter;
+ QltyInspectionGenRule.SetItemFilter(ItemRuleFilter);
QltyInspectionGenRule.Modify();
ExistingQltyInspectionGenRule.SetRange("Template Code", QltyInspectionGenRule."Template Code");
ExistingQltyInspectionGenRule.SetRange("Source Table No.", QltyInspectionGenRule."Source Table No.");
- ExistingQltyInspectionGenRule.SetRange("Condition Filter", QltyInspectionGenRule."Condition Filter");
- ExistingQltyInspectionGenRule.SetRange("Item Filter", QltyInspectionGenRule."Item Filter");
- if ExistingQltyInspectionGenRule.Count() > 1 then
- if not Confirm(RuleAlreadyThereQst) then
- Error('');
+ ExistingQltyInspectionGenRule.SetFilter("Entry No.", '<>%1', QltyInspectionGenRule."Entry No.");
+ if ExistingQltyInspectionGenRule.FindSet() then
+ repeat
+ if (ExistingQltyInspectionGenRule.GetConditionFilter() = QltyInspectionGenRule.GetConditionFilter()) and
+ (ExistingQltyInspectionGenRule.GetItemFilter() = QltyInspectionGenRule.GetItemFilter()) then
+ if not Confirm(RuleAlreadyThereQst) then
+ Error('');
+ until ExistingQltyInspectionGenRule.Next() = 0;
CurrPage.Close();
end;
@@ -843,17 +845,20 @@ page 20462 "Qlty. Prod. Gen. Rule Wizard"
Clear(TempItem);
if QltyInspectionGenRule."Source Table No." = Database::"Prod. Order Routing Line" then begin
- TempProdOrderRoutingLine.SetView(TempQltyInspectionGenRule."Condition Filter");
+ if TempQltyInspectionGenRule.HasConditionFilter() then
+ TempProdOrderRoutingLine.SetView(TempQltyInspectionGenRule.GetConditionFilter());
IsProductionOrder := true;
IsAssemblyOrder := false;
end;
if QltyInspectionGenRule."Source Table No." = Database::"Posted Assembly Header" then begin
- TempPostedAssemblyHeader.SetView(TempQltyInspectionGenRule."Condition Filter");
+ if TempQltyInspectionGenRule.HasConditionFilter() then
+ TempPostedAssemblyHeader.SetView(TempQltyInspectionGenRule.GetConditionFilter());
IsAssemblyOrder := true;
IsProductionOrder := false;
end;
- TempItem.SetView(TempQltyInspectionGenRule."Item Filter");
+ if TempQltyInspectionGenRule.HasItemFilter() then
+ TempItem.SetView(TempQltyInspectionGenRule.GetItemFilter());
UpdateTableVariablesFromRecordFilters();
TemplateCode := QltyInspectionGenRule.GetTemplateCodeFromRecordOrFilter(false);
@@ -874,28 +879,19 @@ page 20462 "Qlty. Prod. Gen. Rule Wizard"
TempProdOrderRoutingLine.SetFilter("To-Production Bin Code", ToBinCodeFilter);
TempProdOrderRoutingLine.SetFilter("Operation No.", OperationNo);
TempProdOrderRoutingLine.SetFilter("Description", DescriptionPattern);
- ProdOrderRoutingLineRuleFilter := CopyStr(QltyFilterHelpers.CleanUpWhereClause400(TempProdOrderRoutingLine.GetView(true)), 1, MaxStrLen(TempQltyInspectionGenRule."Condition Filter"));
+ ProdOrderRoutingLineRuleFilter := QltyFilterHelpers.CleanUpWhereClause(TempProdOrderRoutingLine.GetView(true));
end else begin
TempPostedAssemblyHeader.SetFilter("Location Code", LocationCodeFilter);
TempPostedAssemblyHeader.SetFilter(Description, DescriptionPattern);
- PostedAssemblyOrderRuleFilter := CopyStr(QltyFilterHelpers.CleanUpWhereClause400(TempPostedAssemblyHeader.GetView(true)), 1, MaxStrLen(TempQltyInspectionGenRule."Condition Filter"));
+ PostedAssemblyOrderRuleFilter := QltyFilterHelpers.CleanUpWhereClause(TempPostedAssemblyHeader.GetView(true));
end;
TempItem.SetFilter("No.", ItemNoFilter);
TempItem.SetFilter("Item Category Code", CategoryCodeFilter);
TempItem.SetFilter("Inventory Posting Group", InventoryPostingGroupCode);
- ItemRuleFilter := CopyStr(QltyFilterHelpers.CleanUpWhereClause400(TempItem.GetView(true)), 1, MaxStrLen(TempQltyInspectionGenRule."Item Filter"));
+ ItemRuleFilter := QltyFilterHelpers.CleanUpWhereClause(TempItem.GetView(true));
CleanUpWhereClause();
-
- if StrLen(QltyFilterHelpers.CleanUpWhereClause400(TempProdOrderRoutingLine.GetView(true))) > MaxStrLen(TempQltyInspectionGenRule."Condition Filter") then
- Error(FilterLengthErr, MaxStrLen(TempQltyInspectionGenRule."Condition Filter"));
-
- if StrLen(QltyFilterHelpers.CleanUpWhereClause400(TempPostedAssemblyHeader.GetView(true))) > MaxStrLen(TempQltyInspectionGenRule."Condition Filter") then
- Error(FilterLengthErr, MaxStrLen(TempQltyInspectionGenRule."Condition Filter"));
-
- if StrLen(QltyFilterHelpers.CleanUpWhereClause400(TempItem.GetView(true))) > MaxStrLen(TempQltyInspectionGenRule."Item Filter") then
- Error(FilterLengthErr, MaxStrLen(TempQltyInspectionGenRule."Item Filter"));
end;
local procedure UpdateTableVariablesFromRecordFilters()
diff --git a/src/Apps/W1/Quality Management/app/src/Integration/Receiving/QltyRecGenRuleWizard.Page.al b/src/Apps/W1/Quality Management/app/src/Integration/Receiving/QltyRecGenRuleWizard.Page.al
index 1b969b49ce..927408c852 100644
--- a/src/Apps/W1/Quality Management/app/src/Integration/Receiving/QltyRecGenRuleWizard.Page.al
+++ b/src/Apps/W1/Quality Management/app/src/Integration/Receiving/QltyRecGenRuleWizard.Page.al
@@ -634,11 +634,11 @@ page 20461 "Qlty. Rec. Gen. Rule Wizard"
QltyTransferTrigger: Enum "Qlty. Transfer Trigger";
QltyWhseReceiveTrigger: Enum "Qlty. Whse. Receive Trigger";
QltySalesReturnTrigger: Enum "Qlty. Sales Return Trigger";
- PurchaseLineRule: Text[400];
- SalesReturnLineRule: Text[400];
- ItemRule: Text[400];
- TransferLineRule: Text[400];
- WarehouseJournalLineRule: Text[400];
+ PurchaseLineRule: Text;
+ SalesReturnLineRule: Text;
+ ItemRule: Text;
+ TransferLineRule: Text;
+ WarehouseJournalLineRule: Text;
IsReturnReceipt: Boolean;
IsPurchaseLine: Boolean;
IsIsBackEnabledd: Boolean;
@@ -666,7 +666,6 @@ page 20461 "Qlty. Rec. Gen. Rule Wizard"
InventoryPostingGroupErr: Label 'This Inventory Posting Group filter needs an adjustment. %1', Comment = '%1 = Text of the original error message';
AlreadyThereQst: Label 'You already have at least one rule with these same conditions. Are you sure you want to proceed?';
YouMustChooseATemplateFirstMsg: Label 'Please choose a template before proceeding.';
- FilterLengthErr: Label 'This filter is too long and must be less than %1 characters.', Comment = '%1=filter string maximum length';
trigger OnInit();
begin
@@ -775,10 +774,10 @@ page 20461 "Qlty. Rec. Gen. Rule Wizard"
local procedure AssistEditFullPurchaseLineFilter()
begin
TempQltyInspectionGenRule."Source Table No." := Database::"Purchase Line";
- TempQltyInspectionGenRule."Condition Filter" := PurchaseLineRule;
+ TempQltyInspectionGenRule.SetConditionFilter(PurchaseLineRule);
if TempQltyInspectionGenRule.AssistEditConditionTableFilter() then begin
- PurchaseLineRule := TempQltyInspectionGenRule."Condition Filter";
+ PurchaseLineRule := TempQltyInspectionGenRule.GetConditionFilter();
TempPurchaseLine.SetView(PurchaseLineRule);
UpdateTableVariablesFromRecordFilters();
@@ -789,10 +788,10 @@ page 20461 "Qlty. Rec. Gen. Rule Wizard"
local procedure AssistEditFullSalesReturnLineFilter()
begin
TempQltyInspectionGenRule."Source Table No." := Database::"Sales Line";
- TempQltyInspectionGenRule."Condition Filter" := SalesReturnLineRule;
+ TempQltyInspectionGenRule.SetConditionFilter(SalesReturnLineRule);
if TempQltyInspectionGenRule.AssistEditConditionTableFilter() then begin
- SalesReturnLineRule := TempQltyInspectionGenRule."Condition Filter";
+ SalesReturnLineRule := TempQltyInspectionGenRule.GetConditionFilter();
TempReturnSalesLine.SetView(SalesReturnLineRule);
UpdateTableVariablesFromRecordFilters();
@@ -803,10 +802,10 @@ page 20461 "Qlty. Rec. Gen. Rule Wizard"
local procedure AssistEditFullTransferLineFilter()
begin
TempQltyInspectionGenRule."Source Table No." := Database::"Transfer Line";
- TempQltyInspectionGenRule."Condition Filter" := TransferLineRule;
+ TempQltyInspectionGenRule.SetConditionFilter(TransferLineRule);
if TempQltyInspectionGenRule.AssistEditConditionTableFilter() then begin
- TransferLineRule := TempQltyInspectionGenRule."Condition Filter";
+ TransferLineRule := TempQltyInspectionGenRule.GetConditionFilter();
TempTransferLine.SetView(TransferLineRule);
UpdateTableVariablesFromRecordFilters();
@@ -817,10 +816,10 @@ page 20461 "Qlty. Rec. Gen. Rule Wizard"
local procedure AssistEditFullWarehouseJournalLineFilter()
begin
TempQltyInspectionGenRule."Source Table No." := Database::"Warehouse Journal Line";
- TempQltyInspectionGenRule."Condition Filter" := WarehouseJournalLineRule;
+ TempQltyInspectionGenRule.SetConditionFilter(WarehouseJournalLineRule);
if TempQltyInspectionGenRule.AssistEditConditionTableFilter() then begin
- WarehouseJournalLineRule := TempQltyInspectionGenRule."Condition Filter";
+ WarehouseJournalLineRule := TempQltyInspectionGenRule.GetConditionFilter();
TempWarehouseJournalLine.SetView(WarehouseJournalLineRule);
UpdateTableVariablesFromRecordFilters();
@@ -830,9 +829,9 @@ page 20461 "Qlty. Rec. Gen. Rule Wizard"
local procedure AssistEditFullItemFilter()
begin
- TempQltyInspectionGenRule."Item Filter" := ItemRule;
+ TempQltyInspectionGenRule.SetItemFilter(ItemRule);
if TempQltyInspectionGenRule.AssistEditConditionItemFilter() then begin
- ItemRule := TempQltyInspectionGenRule."Item Filter";
+ ItemRule := TempQltyInspectionGenRule.GetItemFilter();
TempItem.SetView(ItemRule);
UpdateTableVariablesFromRecordFilters();
@@ -843,18 +842,18 @@ page 20461 "Qlty. Rec. Gen. Rule Wizard"
local procedure CleanUpWhereClause()
begin
if IsPurchaseLine then
- PurchaseLineRule := QltyFilterHelpers.CleanUpWhereClause400(PurchaseLineRule);
+ PurchaseLineRule := QltyFilterHelpers.CleanUpWhereClause(PurchaseLineRule);
if IsReturnReceipt then
- SalesReturnLineRule := QltyFilterHelpers.CleanUpWhereClause400(SalesReturnLineRule);
+ SalesReturnLineRule := QltyFilterHelpers.CleanUpWhereClause(SalesReturnLineRule);
if IsTransferLine then
- TransferLineRule := QltyFilterHelpers.CleanUpWhereClause400(TransferLineRule);
+ TransferLineRule := QltyFilterHelpers.CleanUpWhereClause(TransferLineRule);
if IsWarehouseReceipt then
- WarehouseJournalLineRule := QltyFilterHelpers.CleanUpWhereClause400(WarehouseJournalLineRule);
+ WarehouseJournalLineRule := QltyFilterHelpers.CleanUpWhereClause(WarehouseJournalLineRule);
- ItemRule := QltyFilterHelpers.CleanUpWhereClause400(ItemRule);
+ ItemRule := QltyFilterHelpers.CleanUpWhereClause(ItemRule);
end;
local procedure BackAction();
@@ -890,7 +889,7 @@ page 20461 "Qlty. Rec. Gen. Rule Wizard"
begin
QltyInspectionGenRule."Source Table No." := Database::"Purchase Line";
QltyInspectionGenRule.Intent := QltyInspectionGenRule.Intent::Purchase;
- QltyInspectionGenRule."Condition Filter" := PurchaseLineRule;
+ QltyInspectionGenRule.SetConditionFilter(PurchaseLineRule);
QltyInspectionGenRule.SetIntentAndDefaultTriggerValuesFromSetup();
QltyInspectionGenRule."Purchase Trigger" := QltyPurchaseTrigger;
QltyManagementSetup."Purchase Trigger" := QltyPurchaseTrigger;
@@ -899,7 +898,7 @@ page 20461 "Qlty. Rec. Gen. Rule Wizard"
begin
QltyInspectionGenRule."Source Table No." := Database::"Sales Line";
QltyInspectionGenRule.Intent := QltyInspectionGenRule.Intent::"Sales Return";
- QltyInspectionGenRule."Condition Filter" := SalesReturnLineRule;
+ QltyInspectionGenRule.SetConditionFilter(SalesReturnLineRule);
QltyInspectionGenRule.SetIntentAndDefaultTriggerValuesFromSetup();
QltyInspectionGenRule."Sales Return Trigger" := QltySalesReturnTrigger;
QltyManagementSetup."Sales Return Trigger" := QltySalesReturnTrigger;
@@ -908,7 +907,7 @@ page 20461 "Qlty. Rec. Gen. Rule Wizard"
begin
QltyInspectionGenRule."Source Table No." := Database::"Transfer Line";
QltyInspectionGenRule.Intent := QltyInspectionGenRule.Intent::Transfer;
- QltyInspectionGenRule."Condition Filter" := TransferLineRule;
+ QltyInspectionGenRule.SetConditionFilter(TransferLineRule);
QltyInspectionGenRule.SetIntentAndDefaultTriggerValuesFromSetup();
QltyInspectionGenRule."Transfer Trigger" := QltyTransferTrigger;
QltyManagementSetup."Transfer Trigger" := QltyTransferTrigger;
@@ -917,7 +916,7 @@ page 20461 "Qlty. Rec. Gen. Rule Wizard"
begin
QltyInspectionGenRule."Source Table No." := Database::"Warehouse Journal Line";
QltyInspectionGenRule.Intent := QltyInspectionGenRule.Intent::"Warehouse Receipt";
- QltyInspectionGenRule."Condition Filter" := WarehouseJournalLineRule;
+ QltyInspectionGenRule.SetConditionFilter(WarehouseJournalLineRule);
QltyInspectionGenRule.SetIntentAndDefaultTriggerValuesFromSetup();
QltyInspectionGenRule."Warehouse Receive Trigger" := QltyWhseReceiveTrigger;
QltyManagementSetup."Warehouse Receive Trigger" := QltyWhseReceiveTrigger;
@@ -925,13 +924,11 @@ page 20461 "Qlty. Rec. Gen. Rule Wizard"
end;
if QltyManagementSetup.Modify(false) then;
- QltyInspectionGenRule."Item Filter" := ItemRule;
+ QltyInspectionGenRule.SetItemFilter(ItemRule);
QltyInspectionGenRule.Modify();
ExistingQltyInspectionGenRule.SetRange("Template Code", QltyInspectionGenRule."Template Code");
ExistingQltyInspectionGenRule.SetRange("Source Table No.", QltyInspectionGenRule."Source Table No.");
- ExistingQltyInspectionGenRule.SetRange("Condition Filter", QltyInspectionGenRule."Condition Filter");
- ExistingQltyInspectionGenRule.SetRange("Item Filter", QltyInspectionGenRule."Item Filter");
if ExistingQltyInspectionGenRule.Count() > 1 then
if not Confirm(AlreadyThereQst) then
Error('');
@@ -953,34 +950,39 @@ page 20461 "Qlty. Rec. Gen. Rule Wizard"
Clear(TempItem);
if QltyInspectionGenRule."Source Table No." = Database::"Purchase Line" then begin
- TempPurchaseLine.SetView(TempQltyInspectionGenRule."Condition Filter");
+ if TempQltyInspectionGenRule.HasConditionFilter() then
+ TempPurchaseLine.SetView(TempQltyInspectionGenRule.GetConditionFilter());
IsPurchaseLine := true;
IsReturnReceipt := false;
IsTransferLine := false;
IsWarehouseReceipt := false;
end;
if QltyInspectionGenRule."Source Table No." = Database::"Sales Line" then begin
- TempReturnSalesLine.SetView(TempQltyInspectionGenRule."Condition Filter");
+ if TempQltyInspectionGenRule.HasConditionFilter() then
+ TempReturnSalesLine.SetView(TempQltyInspectionGenRule.GetConditionFilter());
IsPurchaseLine := false;
IsReturnReceipt := true;
IsTransferLine := false;
IsWarehouseReceipt := false;
end;
if QltyInspectionGenRule."Source Table No." = Database::"Transfer Line" then begin
- TempTransferLine.SetView(TempQltyInspectionGenRule."Condition Filter");
+ if TempQltyInspectionGenRule.HasConditionFilter() then
+ TempTransferLine.SetView(TempQltyInspectionGenRule.GetConditionFilter());
IsTransferLine := true;
IsPurchaseLine := false;
IsReturnReceipt := false;
IsWarehouseReceipt := false;
end;
if QltyInspectionGenRule."Source Table No." = Database::"Warehouse Journal Line" then begin
- TempWarehouseJournalLine.SetView(TempQltyInspectionGenRule."Condition Filter");
+ if TempQltyInspectionGenRule.HasConditionFilter() then
+ TempWarehouseJournalLine.SetView(TempQltyInspectionGenRule.GetConditionFilter());
IsWarehouseReceipt := true;
IsPurchaseLine := false;
IsReturnReceipt := false;
IsTransferLine := false;
end;
- TempItem.SetView(TempQltyInspectionGenRule."Item Filter");
+ if TempQltyInspectionGenRule.HasItemFilter() then
+ TempItem.SetView(TempQltyInspectionGenRule.GetItemFilter());
UpdateTableVariablesFromRecordFilters();
TemplateCode := QltyInspectionGenRule.GetTemplateCodeFromRecordOrFilter(false);
@@ -996,20 +998,20 @@ page 20461 "Qlty. Rec. Gen. Rule Wizard"
TempPurchaseLine.SetFilter("Location Code", LocationCodeFilter);
TempPurchaseLine.SetFilter("Buy-from Vendor No.", VendorNoFilter);
TempPurchaseLine.SetFilter("Purchasing Code", PurchasingCode);
- PurchaseLineRule := CopyStr(QltyFilterHelpers.CleanUpWhereClause400(TempPurchaseLine.GetView(true)), 1, MaxStrLen(TempQltyInspectionGenRule."Condition Filter"));
+ PurchaseLineRule := QltyFilterHelpers.CleanUpWhereClause(TempPurchaseLine.GetView(true));
end;
if IsReturnReceipt then begin
TempReturnSalesLine.SetFilter("Location Code", LocationCodeFilter);
TempReturnSalesLine.SetFilter("Return Reason Code", ReturnReasonCode);
TempReturnSalesLine.SetFilter("Sell-to Customer No.", CustomerNoFilter);
- SalesReturnLineRule := CopyStr(QltyFilterHelpers.CleanUpWhereClause400(TempReturnSalesLine.GetView(true)), 1, MaxStrLen(TempQltyInspectionGenRule."Condition Filter"));
+ SalesReturnLineRule := QltyFilterHelpers.CleanUpWhereClause(TempReturnSalesLine.GetView(true));
end;
if IsTransferLine then begin
TempTransferLine.SetFilter("Transfer-to Code", TransferToCode);
TempTransferLine.SetFilter("Transfer-from Code", TransferFromCode);
- TransferLineRule := CopyStr(QltyFilterHelpers.CleanUpWhereClause400(TempTransferLine.GetView(true)), 1, MaxStrLen(TempQltyInspectionGenRule."Condition Filter"));
+ TransferLineRule := QltyFilterHelpers.CleanUpWhereClause(TempTransferLine.GetView(true));
end;
if IsWarehouseReceipt then begin
@@ -1017,28 +1019,16 @@ page 20461 "Qlty. Rec. Gen. Rule Wizard"
TempWarehouseJournalLine.SetFilter("Location Code", LocationCodeFilter);
TempWarehouseJournalLine.SetFilter("To Zone Code", ToZoneCodeFilter);
TempWarehouseJournalLine.SetFilter("To Bin Code", ToBinCodeFilter);
- WarehouseJournalLineRule := CopyStr(QltyFilterHelpers.CleanUpWhereClause400(TempWarehouseJournalLine.GetView(true)), 1, MaxStrLen(TempQltyInspectionGenRule."Condition Filter"));
+ WarehouseJournalLineRule := QltyFilterHelpers.CleanUpWhereClause(TempWarehouseJournalLine.GetView(true));
end;
TempItem.SetFilter("No.", ItemNoFilter);
TempItem.SetFilter("Item Category Code", CategoryCodeFilter);
TempItem.SetFilter("Inventory Posting Group", InventoryPostingGroupCode);
- ItemRule := CopyStr(QltyFilterHelpers.CleanUpWhereClause400(TempItem.GetView(true)), 1, MaxStrLen(TempQltyInspectionGenRule."Item Filter"));
+ ItemRule := QltyFilterHelpers.CleanUpWhereClause(TempItem.GetView(true));
CleanUpWhereClause();
-
- if StrLen(QltyFilterHelpers.CleanUpWhereClause400(TempReturnSalesLine.GetView(true))) > MaxStrLen(TempQltyInspectionGenRule."Condition Filter") then
- Error(FilterLengthErr, MaxStrLen(TempQltyInspectionGenRule."Condition Filter"));
-
- if StrLen(QltyFilterHelpers.CleanUpWhereClause400(TempTransferLine.GetView(true))) > MaxStrLen(TempQltyInspectionGenRule."Condition Filter") then
- Error(FilterLengthErr, MaxStrLen(TempQltyInspectionGenRule."Condition Filter"));
-
- if StrLen(QltyFilterHelpers.CleanUpWhereClause400(TempWarehouseJournalLine.GetView(true))) > MaxStrLen(TempQltyInspectionGenRule."Condition Filter") then
- Error(FilterLengthErr, MaxStrLen(TempQltyInspectionGenRule."Condition Filter"));
-
- if StrLen(QltyFilterHelpers.CleanUpWhereClause400(TempItem.GetView(true))) > MaxStrLen(TempQltyInspectionGenRule."Item Filter") then
- Error(FilterLengthErr, MaxStrLen(TempQltyInspectionGenRule."Item Filter"));
end;
local procedure UpdateTableVariablesFromRecordFilters()
diff --git a/src/Apps/W1/Quality Management/app/src/Integration/Warehouse/QltyWhseGenRuleWizard.Page.al b/src/Apps/W1/Quality Management/app/src/Integration/Warehouse/QltyWhseGenRuleWizard.Page.al
index e7097b8a2d..f2c1ef5034 100644
--- a/src/Apps/W1/Quality Management/app/src/Integration/Warehouse/QltyWhseGenRuleWizard.Page.al
+++ b/src/Apps/W1/Quality Management/app/src/Integration/Warehouse/QltyWhseGenRuleWizard.Page.al
@@ -345,8 +345,8 @@ page 20460 "Qlty. Whse. Gen. Rule Wizard"
InventoryPostingGroupCode: Code[20];
VendorNoFilter: Code[20];
QltyWarehouseTrigger: Enum "Qlty. Warehouse Trigger";
- WhseRule: Text[400];
- ItemRule: Text[400];
+ WhseRule: Text;
+ ItemRule: Text;
IsIsBackEnabledd: Boolean;
IsIsNextEnabledd: Boolean;
IsIsFinishEnabledd: Boolean;
@@ -367,7 +367,6 @@ page 20460 "Qlty. Whse. Gen. Rule Wizard"
YourUserDoesNotAppearToBeConfiguredAsAWarehouseEmployeeMsg: Label 'Your user id of %1 does not appear to be configured as a warehouse employee. Navigate to Warehouse Employees and create appropriate warehouse employee configuration before using this screen.', Comment = '%1=the user id.';
YouMustChooseATemplateFirstMsg: Label 'Please choose a template before proceeding.';
AlreadyThereQst: Label 'You already have at least one rule with these same conditions. Are you sure you want to proceed?';
- FilterLengthErr: Label 'This filter is too long and must be less than %1 characters.', Comment = '%1=filter string maximum length';
trigger OnInit();
begin
@@ -580,10 +579,10 @@ page 20460 "Qlty. Whse. Gen. Rule Wizard"
begin
TempQltyInspectionGenRule."Source Table No." := Database::"Warehouse Journal Line";
- TempQltyInspectionGenRule."Condition Filter" := WhseRule;
+ TempQltyInspectionGenRule.SetConditionFilter(WhseRule);
if TempQltyInspectionGenRule.AssistEditConditionTableFilter() then begin
- WhseRule := TempQltyInspectionGenRule."Condition Filter";
+ WhseRule := TempQltyInspectionGenRule.GetConditionFilter();
TempWarehouseJournalLine.SetView(WhseRule);
UpdateTableVariablesFromRecordFilters();
@@ -593,9 +592,9 @@ page 20460 "Qlty. Whse. Gen. Rule Wizard"
local procedure AssistEditFullItemFilter()
begin
- TempQltyInspectionGenRule."Item Filter" := ItemRule;
+ TempQltyInspectionGenRule.SetItemFilter(ItemRule);
if TempQltyInspectionGenRule.AssistEditConditionItemFilter() then begin
- ItemRule := TempQltyInspectionGenRule."Item Filter";
+ ItemRule := TempQltyInspectionGenRule.GetItemFilter();
TempItem.SetView(ItemRule);
UpdateTableVariablesFromRecordFilters();
@@ -616,27 +615,21 @@ page 20460 "Qlty. Whse. Gen. Rule Wizard"
TempWarehouseJournalLine.SetFilter("Location Code", LocationCodeFilter);
TempWarehouseJournalLine.SetFilter("To Zone Code", ToZoneCodeFilter);
TempWarehouseJournalLine.SetFilter("To Bin Code", ToBinCodeFilter);
- WhseRule := CopyStr(QltyFilterHelpers.CleanUpWhereClause400(TempWarehouseJournalLine.GetView(true)), 1, MaxStrLen(TempQltyInspectionGenRule."Condition Filter"));
+ WhseRule := QltyFilterHelpers.CleanUpWhereClause(TempWarehouseJournalLine.GetView(true));
TempItem.SetFilter("No.", ItemNoFilter);
TempItem.SetFilter("Item Category Code", CategoryCodeFilter);
TempItem.SetFilter("Inventory Posting Group", InventoryPostingGroupCode);
TempItem.SetFilter("Vendor No.", VendorNoFilter);
- ItemRule := CopyStr(QltyFilterHelpers.CleanUpWhereClause400(TempItem.GetView(true)), 1, MaxStrLen(TempQltyInspectionGenRule."Item Filter"));
+ ItemRule := QltyFilterHelpers.CleanUpWhereClause(TempItem.GetView(true));
CleanUpWhereClause();
-
- if StrLen(QltyFilterHelpers.CleanUpWhereClause400(TempWarehouseJournalLine.GetView(true))) > MaxStrLen(TempQltyInspectionGenRule."Condition Filter") then
- Error(FilterLengthErr, MaxStrLen(TempQltyInspectionGenRule."Condition Filter"));
-
- if StrLen(QltyFilterHelpers.CleanUpWhereClause400(TempItem.GetView(true))) > MaxStrLen(TempQltyInspectionGenRule."Item Filter") then
- Error(FilterLengthErr, MaxStrLen(TempQltyInspectionGenRule."Item Filter"));
end;
local procedure CleanUpWhereClause()
begin
- WhseRule := QltyFilterHelpers.CleanUpWhereClause400(WhseRule);
- ItemRule := QltyFilterHelpers.CleanUpWhereClause400(ItemRule);
+ WhseRule := QltyFilterHelpers.CleanUpWhereClause(WhseRule);
+ ItemRule := QltyFilterHelpers.CleanUpWhereClause(ItemRule);
end;
local procedure BackAction();
@@ -666,8 +659,8 @@ page 20460 "Qlty. Whse. Gen. Rule Wizard"
QltyInspectionGenRule."Source Table No." := Database::"Warehouse Journal Line";
QltyInspectionGenRule.Intent := QltyInspectionGenRule.Intent::"Warehouse Movement";
QltyInspectionGenRule.Validate("Template Code", TemplateCode);
- QltyInspectionGenRule."Condition Filter" := WhseRule;
- QltyInspectionGenRule."Item Filter" := ItemRule;
+ QltyInspectionGenRule.SetConditionFilter(WhseRule);
+ QltyInspectionGenRule.SetItemFilter(ItemRule);
QltyInspectionGenRule.SetIntentAndDefaultTriggerValuesFromSetup();
QltyInspectionGenRule."Warehouse Movement Trigger" := QltyWarehouseTrigger;
QltyInspectionGenRule.Modify();
@@ -677,8 +670,6 @@ page 20460 "Qlty. Whse. Gen. Rule Wizard"
ExistingQltyInspectionGenRule.SetRange("Template Code", QltyInspectionGenRule."Template Code");
ExistingQltyInspectionGenRule.SetRange("Source Table No.", QltyInspectionGenRule."Source Table No.");
- ExistingQltyInspectionGenRule.SetRange("Condition Filter", QltyInspectionGenRule."Condition Filter");
- ExistingQltyInspectionGenRule.SetRange("Item Filter", QltyInspectionGenRule."Item Filter");
if ExistingQltyInspectionGenRule.Count() > 1 then
if not Confirm(AlreadyThereQst) then
Error('');
@@ -698,8 +689,10 @@ page 20460 "Qlty. Whse. Gen. Rule Wizard"
TempQltyInspectionGenRule := QltyInspectionGenRule;
Clear(TempWarehouseJournalLine);
Clear(TempItem);
- TempWarehouseJournalLine.SetView(TempQltyInspectionGenRule."Condition Filter");
- TempItem.SetView(TempQltyInspectionGenRule."Item Filter");
+ if TempQltyInspectionGenRule.HasConditionFilter() then
+ TempWarehouseJournalLine.SetView(TempQltyInspectionGenRule.GetConditionFilter());
+ if TempQltyInspectionGenRule.HasItemFilter() then
+ TempItem.SetView(TempQltyInspectionGenRule.GetItemFilter());
UpdateTableVariablesFromRecordFilters();
TemplateCode := QltyInspectionGenRule.GetTemplateCodeFromRecordOrFilter(false);
diff --git a/src/Apps/W1/Quality Management/app/src/Utilities/QltyFilterHelpers.Codeunit.al b/src/Apps/W1/Quality Management/app/src/Utilities/QltyFilterHelpers.Codeunit.al
index f89157290d..319a587877 100644
--- a/src/Apps/W1/Quality Management/app/src/Utilities/QltyFilterHelpers.Codeunit.al
+++ b/src/Apps/W1/Quality Management/app/src/Utilities/QltyFilterHelpers.Codeunit.al
@@ -749,11 +749,6 @@ codeunit 20403 "Qlty. Filter Helpers"
ResultText := CopyStr(CleanUpWhereClause(Input), 1, MaxStrLen(ResultText));
end;
- procedure CleanUpWhereClause400(Input: Text) ResultText: Text[400]
- begin
- ResultText := CopyStr(CleanUpWhereClause(Input), 1, MaxStrLen(ResultText));
- end;
-
procedure CleanUpWhereClause(Input: Text) ResultText: Text
var
FindWhere: Integer;
@@ -815,15 +810,6 @@ codeunit 20403 "Qlty. Filter Helpers"
until TempFilterItemAttributesBuffer.Next() = 0;
end;
- internal procedure BuildItemAttributeFilter400(var ItemAttributeFilter: Text[400])
- var
- FullItemAttributeFilter: Text;
- begin
- FullItemAttributeFilter := ItemAttributeFilter;
- BuildItemAttributeFilter(FullItemAttributeFilter);
- ItemAttributeFilter := CopyStr(FullItemAttributeFilter, 1, MaxStrLen(ItemAttributeFilter));
- end;
-
internal procedure BuildItemAttributeFilter(var ItemAttributeFilter: Text)
var
TempFilterItemAttributesBuffer: Record "Filter Item Attributes Buffer" temporary;
diff --git a/src/Apps/W1/Quality Management/test/src/QltyTestsFilterHelpers.Codeunit.al b/src/Apps/W1/Quality Management/test/src/QltyTestsFilterHelpers.Codeunit.al
index 3f537694bf..be238d88db 100644
--- a/src/Apps/W1/Quality Management/test/src/QltyTestsFilterHelpers.Codeunit.al
+++ b/src/Apps/W1/Quality Management/test/src/QltyTestsFilterHelpers.Codeunit.al
@@ -2048,7 +2048,7 @@ codeunit 139962 "Qlty. Tests - Filter Helpers"
// [SCENARIO] Validate where clause cleanup reducing length to 400 characters or less
// [WHEN] CleanUpWhereClause400 is called with input where clause
- Output := QltyFilterHelpers.CleanUpWhereClause400(InputWhereClause400Tok);
+ Output := QltyFilterHelpers.CleanUpWhereClause(InputWhereClause400Tok);
// [THEN] The output length is 400 characters or less
LibraryAssert.IsTrue(StrLen(Output) <= 400, 'Should reduce length to 250 characters or less');
diff --git a/src/Apps/W1/Quality Management/test/src/QltyTestsGenerationRule.Codeunit.al b/src/Apps/W1/Quality Management/test/src/QltyTestsGenerationRule.Codeunit.al
index 52a3afc301..99835cd9ab 100644
--- a/src/Apps/W1/Quality Management/test/src/QltyTestsGenerationRule.Codeunit.al
+++ b/src/Apps/W1/Quality Management/test/src/QltyTestsGenerationRule.Codeunit.al
@@ -238,8 +238,10 @@ codeunit 139955 "Qlty. Tests - Generation Rule"
// [GIVEN] The generation rule is updated with an item filter
QltyInspectionGenRule.FindFirst();
- QltyInspectionGenRule."Item Filter" := StrSubstNo(ItemFilterTok, Item."No.");
+ QltyInspectionGenRule.SetItemFilter(StrSubstNo(ItemFilterTok, Item."No."));
+#pragma warning disable AA0214
QltyInspectionGenRule.Modify();
+#pragma warning restore AA0214
// [WHEN] A manual rule search is performed for Purchase Line with the item
RecordRef.Open(Database::"Purchase Line");
@@ -275,8 +277,10 @@ codeunit 139955 "Qlty. Tests - Generation Rule"
// [GIVEN] The generation rule is updated with an item attribute filter
QltyInspectionGenRule.FindFirst();
- QltyInspectionGenRule."Item Attribute Filter" := (StrSubstNo(ItemAttributeFilterTok, ItemAttribute.Name));
+ QltyInspectionGenRule.SetItemAttributeFilter(StrSubstNo(ItemAttributeFilterTok, ItemAttribute.Name));
+#pragma warning disable AA0214
QltyInspectionGenRule.Modify();
+#pragma warning restore AA0214
// [WHEN] A manual rule search is performed for Purchase Line with the item
RecordRef.Open(Database::"Purchase Line");
diff --git a/src/Apps/W1/Quality Management/test/src/QltyTestsMoreTests.Codeunit.al b/src/Apps/W1/Quality Management/test/src/QltyTestsMoreTests.Codeunit.al
index fa452d0d0a..e41669317a 100644
--- a/src/Apps/W1/Quality Management/test/src/QltyTestsMoreTests.Codeunit.al
+++ b/src/Apps/W1/Quality Management/test/src/QltyTestsMoreTests.Codeunit.al
@@ -832,7 +832,7 @@ codeunit 139965 "Qlty. Tests - More Tests"
QltyInspectionGenRule.Init();
QltyInspectionGenRule."Template Code" := ConfigurationToLoadQltyInspectionTemplateHdr.Code;
QltyInspectionGenRule."Source Table No." := Database::"Item Ledger Entry";
- QltyInspectionGenRule."Condition Filter" := ConditionProductionFilterTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionProductionFilterTok);
QltyInspectionGenRule."Schedule Group" := DefaultScheduleGroupTok;
QltyInspectionGenRule.Insert(true);
@@ -880,7 +880,7 @@ codeunit 139965 "Qlty. Tests - More Tests"
QltyInspectionGenRule.Init();
QltyInspectionGenRule."Template Code" := QltyInspectionTemplateHdr.Code;
QltyInspectionGenRule."Source Table No." := Database::"Item Ledger Entry";
- QltyInspectionGenRule."Condition Filter" := OrderTypeProductionConditionFilterTok;
+ QltyInspectionGenRule.SetConditionFilter(OrderTypeProductionConditionFilterTok);
QltyInspectionGenRule."Schedule Group" := CopyStr(ScheduleGroupCode, 1, MaxStrLen(QltyInspectionGenRule."Schedule Group"));
QltyInspectionGenRule.Insert(true);
@@ -935,7 +935,7 @@ codeunit 139965 "Qlty. Tests - More Tests"
QltyInspectionGenRule.Init();
QltyInspectionGenRule."Template Code" := QltyInspectionTemplateHdr.Code;
QltyInspectionGenRule."Source Table No." := Database::"Item Ledger Entry";
- QltyInspectionGenRule."Condition Filter" := OrderTypeProductionConditionFilterTok;
+ QltyInspectionGenRule.SetConditionFilter(OrderTypeProductionConditionFilterTok);
QltyInspectionGenRule.Insert(true);
JobQueueEntries.Trap();
QltyInspectionGenRule.Validate("Schedule Group", ScheduleGroupCode);
@@ -986,7 +986,7 @@ codeunit 139965 "Qlty. Tests - More Tests"
QltyInspectionGenRule.Init();
QltyInspectionGenRule."Template Code" := QltyInspectionTemplateHdr.Code;
QltyInspectionGenRule."Source Table No." := Database::"Item Ledger Entry";
- QltyInspectionGenRule."Condition Filter" := EntryTypeOutputConditionFilterTok;
+ QltyInspectionGenRule.SetConditionFilter(EntryTypeOutputConditionFilterTok);
QltyInspectionGenRule.Insert(true);
JobQueueEntries.Trap();
QltyInspectionGenRule.Validate("Schedule Group", ScheduleGroupCode);
@@ -995,7 +995,7 @@ codeunit 139965 "Qlty. Tests - More Tests"
SecondQltyInspectionGenRule.Init();
SecondQltyInspectionGenRule."Template Code" := QltyInspectionTemplateHdr.Code;
SecondQltyInspectionGenRule."Source Table No." := Database::"Item Ledger Entry";
- SecondQltyInspectionGenRule."Condition Filter" := OrderTypeProductionConditionFilterTok;
+ SecondQltyInspectionGenRule.SetConditionFilter(OrderTypeProductionConditionFilterTok);
SecondQltyInspectionGenRule.Insert(true);
JobQueueEntries.Trap();
SecondQltyInspectionGenRule.Validate("Schedule Group", ScheduleGroupCode);
@@ -1045,7 +1045,7 @@ codeunit 139965 "Qlty. Tests - More Tests"
QltyInspectionGenRule.Init();
QltyInspectionGenRule."Template Code" := ConfigurationToLoadQltyInspectionTemplateHdr.Code;
QltyInspectionGenRule."Source Table No." := Database::"Item Ledger Entry";
- QltyInspectionGenRule."Condition Filter" := ConditionProductionFilterTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionProductionFilterTok);
QltyInspectionGenRule.Insert(true);
// [GIVEN] All existing job queue entries for schedule inspection are deleted
@@ -1336,7 +1336,7 @@ codeunit 139965 "Qlty. Tests - More Tests"
// [THEN] The Item Filter is updated with the item number filter expression
QltyInspectionGenRule.Get(QltyInspectionGenRule."Entry No.");
- LibraryAssert.AreEqual(StrSubstNo(ConditionFilterItemNoTok, Item."No."), QltyInspectionGenRule."Item Filter", 'Item filter should be set to the item no.');
+ LibraryAssert.AreEqual(StrSubstNo(ConditionFilterItemNoTok, Item."No."), QltyInspectionGenRule.GetItemFilter(), 'Item filter should be set to the item no.');
end;
[Test]
diff --git a/src/Apps/W1/Quality Management/test/src/QltyTestsTestTable.Codeunit.al b/src/Apps/W1/Quality Management/test/src/QltyTestsTestTable.Codeunit.al
index 3bddd8288f..249cdc5ab0 100644
--- a/src/Apps/W1/Quality Management/test/src/QltyTestsTestTable.Codeunit.al
+++ b/src/Apps/W1/Quality Management/test/src/QltyTestsTestTable.Codeunit.al
@@ -3809,7 +3809,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Item Journal Line with Entry Type filter for Output
QltyInspectionGenRule."Source Table No." := Database::"Item Journal Line";
- QltyInspectionGenRule."Condition Filter" := ConditionFilterOutputTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionFilterOutputTok);
// [WHEN] Inferring the generation rule intent
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -3831,7 +3831,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Item Journal Line with Order Type filter for Production
QltyInspectionGenRule."Source Table No." := Database::"Item Journal Line";
- QltyInspectionGenRule."Condition Filter" := ConditionFilterProductionTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionFilterProductionTok);
// [WHEN] Inferring the generation rule intent
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -3853,7 +3853,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Item Journal Line with Document Type filter for Purchase Receipt
QltyInspectionGenRule."Source Table No." := Database::"Item Journal Line";
- QltyInspectionGenRule."Condition Filter" := ConditionFilterPurchaseReceiptTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionFilterPurchaseReceiptTok);
// [WHEN] Inferring the generation rule intent
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -3875,7 +3875,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Item Journal Line with Document Type filter for Sales Return Receipt
QltyInspectionGenRule."Source Table No." := Database::"Item Journal Line";
- QltyInspectionGenRule."Condition Filter" := ConditionFilterSalesReturnReceiptTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionFilterSalesReturnReceiptTok);
// [WHEN] Inferring the generation rule intent
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -3897,7 +3897,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Item Journal Line with Document Type filter for Transfer Receipt
QltyInspectionGenRule."Source Table No." := Database::"Item Journal Line";
- QltyInspectionGenRule."Condition Filter" := ConditionFilterTransferReceiptTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionFilterTransferReceiptTok);
// [WHEN] Inferring the generation rule intent
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -3919,7 +3919,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Item Journal Line with Document Type filter for Direct Transfer
QltyInspectionGenRule."Source Table No." := Database::"Item Journal Line";
- QltyInspectionGenRule."Condition Filter" := ConditionFilterDirectTransferTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionFilterDirectTransferTok);
// [WHEN] Inferring the generation rule intent
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -3940,7 +3940,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Item Ledger Entry with Entry Type filter for Output
QltyInspectionGenRule."Source Table No." := Database::"Item Ledger Entry";
- QltyInspectionGenRule."Condition Filter" := ConditionFilterOutputTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionFilterOutputTok);
// [WHEN] Inferring the generation rule intent
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -3961,7 +3961,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Item Ledger Entry with Order Type filter for Production
QltyInspectionGenRule."Source Table No." := Database::"Item Ledger Entry";
- QltyInspectionGenRule."Condition Filter" := ConditionFilterProductionTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionFilterProductionTok);
// [WHEN] Inferring the generation rule intent
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -3982,7 +3982,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Item Ledger Entry with Entry Type filter for Purchase
QltyInspectionGenRule."Source Table No." := Database::"Item Ledger Entry";
- QltyInspectionGenRule."Condition Filter" := ConditionFilterPurchaseTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionFilterPurchaseTok);
// [WHEN] Inferring the generation rule intent
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -4003,7 +4003,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Item Ledger Entry with Entry Type filter for Sale
QltyInspectionGenRule."Source Table No." := Database::"Item Ledger Entry";
- QltyInspectionGenRule."Condition Filter" := ConditionFilterSaleTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionFilterSaleTok);
// [WHEN] Inferring the generation rule intent
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -4024,7 +4024,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Item Ledger Entry with Entry Type filter for Transfer
QltyInspectionGenRule."Source Table No." := Database::"Item Ledger Entry";
- QltyInspectionGenRule."Condition Filter" := ConditionFilterTransferTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionFilterTransferTok);
// [WHEN] Inferring the generation rule intent
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -4045,7 +4045,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Item Ledger Entry with Entry Type filter for Assembly Output
QltyInspectionGenRule."Source Table No." := Database::"Item Ledger Entry";
- QltyInspectionGenRule."Condition Filter" := ConditionFilterAssemblyOutputTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionFilterAssemblyOutputTok);
// [WHEN] Inferring the generation rule intent
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -4066,7 +4066,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Warehouse Journal Line with Warehouse Document Type filter for Receipt
QltyInspectionGenRule."Source Table No." := Database::"Warehouse Journal Line";
- QltyInspectionGenRule."Condition Filter" := ConditionFilterWhseReceiptTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionFilterWhseReceiptTok);
// [WHEN] Inferring the generation rule intent
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -4087,7 +4087,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Warehouse Journal Line with Reference Document filter for Posted Receipt
QltyInspectionGenRule."Source Table No." := Database::"Warehouse Journal Line";
- QltyInspectionGenRule."Condition Filter" := ConditionFilterPostedRcptTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionFilterPostedRcptTok);
// [WHEN] Inferring the generation rule intent
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -4108,7 +4108,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Warehouse Journal Line with Warehouse Document Type filter for Internal Put-away
QltyInspectionGenRule."Source Table No." := Database::"Warehouse Journal Line";
- QltyInspectionGenRule."Condition Filter" := ConditionFilterInternalPutAwayTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionFilterInternalPutAwayTok);
// [WHEN] Inferring the generation rule intent
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -4129,7 +4129,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Warehouse Journal Line with Entry Type filter for Movement
QltyInspectionGenRule."Source Table No." := Database::"Warehouse Journal Line";
- QltyInspectionGenRule."Condition Filter" := ConditionFilterMovementTok;
+ QltyInspectionGenRule.SetConditionFilter(ConditionFilterMovementTok);
// [WHEN] Inferring the generation rule intent
QltyInspectionGenRule.InferGenerationRuleIntent(QltyGenRuleIntent, Certainty);
@@ -4223,7 +4223,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [GIVEN] A generation rule for Item Ledger Entry
QltyInspectionGenRule."Source Table No." := Database::"Item Ledger Entry";
- QltyInspectionGenRule."Condition Filter" := 'WHERE(Entry Type=FILTER(Output|Positive Adjmt.))';
+ QltyInspectionGenRule.SetConditionFilter('WHERE(Entry Type=FILTER(Output|Positive Adjmt.))');
// [GIVEN] Setup with Production trigger enabled
QltyManagementSetup.Get();
@@ -4239,7 +4239,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [WHEN] Inferring intent with Output last in filter
QltyInspectionGenRule."Source Table No." := Database::"Item Ledger Entry";
- QltyInspectionGenRule."Condition Filter" := 'WHERE(Entry Type=FILTER(Positive Adjmt.|Output))';
+ QltyInspectionGenRule.SetConditionFilter('WHERE(Entry Type=FILTER(Positive Adjmt.|Output))');
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -4248,7 +4248,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [WHEN] Inferring intent without Output in filter
QltyInspectionGenRule."Source Table No." := Database::"Item Ledger Entry";
- QltyInspectionGenRule."Condition Filter" := 'WHERE(Entry Type=FILTER(Positive Adjmt.|Purchase|Sale))';
+ QltyInspectionGenRule.SetConditionFilter('WHERE(Entry Type=FILTER(Positive Adjmt.|Purchase|Sale))');
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
@@ -4257,7 +4257,7 @@ codeunit 139967 "Qlty. Tests - Test Table"
// [WHEN] Inferring intent with Output in middle of filter
QltyInspectionGenRule."Source Table No." := Database::"Item Ledger Entry";
- QltyInspectionGenRule."Condition Filter" := 'WHERE(Entry Type=FILTER(Positive Adjmt.|Output|Purchase|Sale))';
+ QltyInspectionGenRule.SetConditionFilter('WHERE(Entry Type=FILTER(Positive Adjmt.|Output|Purchase|Sale))');
QltyInspectionGenRule.InferGenerationRuleIntent(GenRuleIntent, Certainty);
diff --git a/src/Apps/W1/Quality Management/test/src/TestLibraries/QltyInspectionUtility.Codeunit.al b/src/Apps/W1/Quality Management/test/src/TestLibraries/QltyInspectionUtility.Codeunit.al
index ee911688e1..733308095a 100644
--- a/src/Apps/W1/Quality Management/test/src/TestLibraries/QltyInspectionUtility.Codeunit.al
+++ b/src/Apps/W1/Quality Management/test/src/TestLibraries/QltyInspectionUtility.Codeunit.al
@@ -757,7 +757,7 @@ codeunit 139950 "Qlty. Inspection Utility"
CreateLotTrackedItem(Item);
Item.SetRecFilter();
- CreatedQltyInspectionGenRule."Item Filter" := CopyStr(Item.GetView(), 1, MaxStrLen(CreatedQltyInspectionGenRule."Item Filter"));
+ CreatedQltyInspectionGenRule.SetItemFilter(Item.GetView());
CreatedQltyInspectionGenRule."Activation Trigger" := CreatedQltyInspectionGenRule."Activation Trigger"::"Manual or Automatic";
CreatedQltyInspectionGenRule."Purchase Trigger" := CreatedQltyInspectionGenRule."Purchase Trigger"::OnPurchaseOrderPostReceive;
CreatedQltyInspectionGenRule.Modify();