diff --git a/ui/ui-frontend/projects/archive-search/src/app/archive/archive-search/appraisal-rule-search/appraisal-rule-search.component.html b/ui/ui-frontend/projects/archive-search/src/app/archive/archive-search/appraisal-rule-search/appraisal-rule-search.component.html
index 5b027940a5acb2038e2e5850903d7a660beae7b0..16b2002b77df17c58515e7572885190cdecdbcf0 100644
--- a/ui/ui-frontend/projects/archive-search/src/app/archive/archive-search/appraisal-rule-search/appraisal-rule-search.component.html
+++ b/ui/ui-frontend/projects/archive-search/src/app/archive/archive-search/appraisal-rule-search/appraisal-rule-search.component.html
@@ -8,42 +8,25 @@
 
     <div class="row justify-content-start">
       <div class="col-5 form-control">
-        <vitamui-common-input
-          class="field-ruleId"
+        <vitamui-common-editable-input
           formControlName="appraisalRuleIdentifier"
-          minlength="2"
-          maxlength="100"
-          required
-          placeholder="{{ 'ARCHIVE_SEARCH.SEARCH_CRITERIA_FILTER.FIELDS.ID_DUA' | translate }}"
+          [validator]="appraisalRuleCriteriaForm?.get('appraisalRuleIdentifier')?.validator"
+          [asyncValidator]="appraisalRuleCriteriaForm?.get('appraisalRuleIdentifier')?.asyncValidator"
+          label="{{ 'ARCHIVE_SEARCH.SEARCH_CRITERIA_FILTER.FIELDS.ID_DUA' | translate }}"
+          minlength="1"
         >
-          <ng-container *ngIf="appraisalRuleCriteriaForm.get('appraisalRuleIdentifier')?.touched">
-            <vitamui-common-input-error *ngIf="!!appraisalRuleCriteriaForm?.get('appraisalRuleIdentifier')?.errors?.ruleIdExists"
-              >{{ 'ARCHIVE_SEARCH.RULE.CODE_NOT_EXIST' | translate }}
-            </vitamui-common-input-error>
-            <vitamui-common-input-error *ngIf="!!appraisalRuleCriteriaForm?.get('appraisalRuleIdentifier')?.errors?.ruleIdPattern"
-              >{{ 'ARCHIVE_SEARCH.RULE.WRONG_FORMAT' | translate }}
-            </vitamui-common-input-error>
-          </ng-container>
-        </vitamui-common-input>
-      </div>
+          <vitamui-common-field-error errorKey="required">{{ 'COMMON.REQUIRED' | translate }}</vitamui-common-field-error>
+          <vitamui-common-field-error errorKey="ruleIdPattern"
+            >{{ 'ARCHIVE_SEARCH.RULE.WRONG_FORMAT' | translate }}
+          </vitamui-common-field-error>
 
-      <div class="check-rule">
-        <button
-          [ngStyle]="{ 'background-color': 'green', width: '30', height: '30' }"
-          *ngIf="appraisalRuleCriteriaForm.get('appraisalRuleIdentifier').value"
-          type="button"
-          mat-mini-fab
-          [disabled]="
-            appraisalRuleCriteriaForm.get('appraisalRuleIdentifier')?.touched &&
-            !!appraisalRuleCriteriaForm?.get('appraisalRuleIdentifier')?.errors?.ruleIdExists
-          "
-          (click)="addCriteriaRulePostCheck()"
-        >
-          <i class="material-icons">check</i>
-        </button>
+          <vitamui-common-field-error errorKey="ruleIdExists"
+            >{{ 'ARCHIVE_SEARCH.RULE.CODE_NOT_EXIST' | translate }}
+          </vitamui-common-field-error>
+        </vitamui-common-editable-input>
       </div>
-
-      <div class="col-4 form-control">
+      <div class="col-1 form-control"></div>
+      <div class="col-5 form-control">
         <vitamui-common-editable-input
           formControlName="appraisalRuleTitle"
           [validator]="appraisalRuleCriteriaForm?.get('appraisalRuleTitle')?.validator"
diff --git a/ui/ui-frontend/projects/archive-search/src/app/archive/archive-search/appraisal-rule-search/appraisal-rule-search.component.ts b/ui/ui-frontend/projects/archive-search/src/app/archive/archive-search/appraisal-rule-search/appraisal-rule-search.component.ts
index 88016aa193d3f080b99322cce297472bef3ad8bf..e929c073f47405f8176e0c1c45b732ea6d83031f 100644
--- a/ui/ui-frontend/projects/archive-search/src/app/archive/archive-search/appraisal-rule-search/appraisal-rule-search.component.ts
+++ b/ui/ui-frontend/projects/archive-search/src/app/archive/archive-search/appraisal-rule-search/appraisal-rule-search.component.ts
@@ -97,7 +97,7 @@ export class AppraisalRuleSearchComponent implements OnInit, OnDestroy {
     merge(this.appraisalRuleCriteriaForm.statusChanges, this.appraisalRuleCriteriaForm.valueChanges)
       .pipe(
         debounceTime(UPDATE_DEBOUNCE_TIME),
-        filter(() => this.appraisalRuleCriteriaForm.valid),
+        //filter(() => this.appraisalRuleCriteriaForm.valid),
         map(() => this.appraisalRuleCriteriaForm.value),
         map(() => diff(this.appraisalRuleCriteriaForm.value, this.previousAppraisalCriteriaValue)),
         filter((formData) => this.isEmpty(formData))
@@ -106,6 +106,25 @@ export class AppraisalRuleSearchComponent implements OnInit, OnDestroy {
         this.resetAppraisalRuleCriteriaForm();
       });
 
+    this.appraisalRuleCriteriaForm.get('appraisalRuleTitle').valueChanges.subscribe((value) => {
+      if (
+        this.appraisalRuleCriteriaForm.get('appraisalRuleTitle').value != null &&
+        this.appraisalRuleCriteriaForm.get('appraisalRuleTitle').value != ''
+      ) {
+        this.addCriteria(
+          APPRAISAL_RULE_TITLE,
+          { id: value, value: value },
+          value,
+          true,
+          'EQ',
+          false,
+          'STRING',
+          SearchCriteriaTypeEnum.APPRAISAL_RULE
+        );
+        this.resetAppraisalRuleCriteriaForm();
+      }
+    });
+
     this.subscriptionAppraisalFromMainSearchCriteria = this.archiveExchangeDataService.appraisalFromMainSearchCriteriaObservable.subscribe(
       (criteria) => {
         if (criteria) {
@@ -374,7 +393,21 @@ export class AppraisalRuleSearchComponent implements OnInit, OnDestroy {
 
   isEmpty(formData: any): boolean {
     if (formData) {
-      if (formData.appraisalRuleTitle) {
+      if (formData.appraisalRuleIdentifier) {
+        this.addCriteria(
+          APPRAISAL_RULE_IDENTIFIER,
+          { id: formData.appraisalRuleIdentifier.trim(), value: formData.appraisalRuleIdentifier.trim() },
+
+          formData.appraisalRuleIdentifier.trim(),
+          true,
+          'EQ',
+          false,
+          'STRING',
+          SearchCriteriaTypeEnum.APPRAISAL_RULE
+        );
+        this.resetAppraisalRuleCriteriaForm();
+        return true;
+      } else if (formData.appraisalRuleTitle) {
         this.addCriteria(
           APPRAISAL_RULE_TITLE,
           { id: formData.appraisalRuleTitle.trim(), value: formData.appraisalRuleTitle.trim() },
diff --git a/ui/ui-frontend/projects/archive-search/src/app/archive/archive-search/appraisal-rule-search/rule.validator.ts b/ui/ui-frontend/projects/archive-search/src/app/archive/archive-search/appraisal-rule-search/rule.validator.ts
index 1984aa2b9e20b99ff6d23cacd8c5e58c24d8a77a..07d8c090087df9746ebd04d86a0d7f3b88d6e0de 100644
--- a/ui/ui-frontend/projects/archive-search/src/app/archive/archive-search/appraisal-rule-search/rule.validator.ts
+++ b/ui/ui-frontend/projects/archive-search/src/app/archive/archive-search/appraisal-rule-search/rule.validator.ts
@@ -60,15 +60,19 @@ export class RuleValidator {
   private uniqueFields(field: string, existTag: string, valueToIgnore?: string) {
     return (control: AbstractControl) => {
       const properties: any = {};
-      properties[field] = control.value;
-      const existField: any = {};
-      existField[existTag] = true;
+      if (control.value) {
+        properties[field] = control.value;
+        const existField: any = {};
+        existField[existTag] = true;
 
-      return timer(this.debounceTime).pipe(
-        switchMap(() => (control.value !== valueToIgnore ? this.ruleService.existsProperties(properties) : of(false))),
-        take(1),
-        map((exists: boolean) => (exists ? null : existField))
-      );
+        return timer(this.debounceTime).pipe(
+          switchMap(() => (control.value !== valueToIgnore ? this.ruleService.existsProperties(properties) : of(false))),
+          take(1),
+          map((exists: boolean) => (exists ? null : existField))
+        );
+      } else {
+        return of(false);
+      }
     };
   }
 }