> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Schritt 9. Geschäftsregeln konfigurieren

> Fügen Sie Geschäftsregeln hinzu, um extrahierte Feldwerte zu validieren und zu normalisieren — passen Sie Doctor IDs mit regulären Ausdrücken an und prüfen Sie die Gültigkeit der Krankschreibung mit Skriptregeln.

Nachdem die Aktivitäten für Extraktionsregeln konfiguriert wurden, fügen Sie Geschäftsregeln hinzu, um die Feldwerte zu validieren und zu normalisieren.

<div id="adjust-the-doctors-id">
  ## Doctor ID anpassen
</div>

Passen Sie die Eigenschaften des Felds **Doctor ID** an, um OCR-Fehler und unerwünschte Zeichen aus den Ergebnissen der Voraberkennung zu entfernen. Nachdem die Feldregion gefunden wurde, extrahiert ein regulärer Ausdruck in den Feldeigenschaften die Daten erneut und entfernt OCR-Artefakte.

<Steps>
  <Step title="Öffnen Sie die Feldeinstellungen für Doctor ID">
    1. Klicken Sie auf den Skill-Namen und wechseln Sie zur Registerkarte **fields**.
    2. Erweitern Sie die Gruppe „Doctor“ und öffnen Sie die Feldeinstellungen für „Doctor ID“, indem Sie auf das Einstellungssymbol daneben klicken.
  </Step>

  <Step title="Fügen Sie einen regulären Ausdruck hinzu">
    1. Klicken Sie im Abschnitt **Value** der Feldeigenschaften auf das Symbol zum Hinzufügen neben der Option **Regulärer Ausdruck**.
    2. Fügen Sie den folgenden Ausdruck in den **Editor für reguläre Ausdrücke** ein:

       ```
       [0-9]{1}[\/.-]{1}[0-9]{5}[\/.-]{1}[0-9]{2}[\/.-]{1}[0-9]{3}
       ```

    <Note>
      Dieser Editor verwendet eine gebräuchliche Notation, die sich von der im Activity Editor für Extraction Rules verwendeten Notation unterscheidet. Weitere Informationen erhalten Sie, wenn Sie im **Editor für reguläre Ausdrücke** auf **Syntaxhilfe** klicken.
    </Note>
  </Step>

  <Step title="Speichern Sie die Änderungen">
    Klicken Sie auf **Speichern**, um den **Editor für reguläre Ausdrücke** zu schließen, und klicken Sie dann erneut auf **Speichern**, um die Feldeigenschaften zu schließen.
  </Step>
</Steps>

<div id="check-whether-the-sick-note-is-valid">
  ## Überprüfen, ob die Krankschreibung gültig ist
</div>

Ein Patient muss die Krankschreibung innerhalb von 3 Tagen ab Beginn der Krankschreibung erhalten. Das bedeutet in Bezug auf die Felder: Das Ausstellungsdatum darf nicht mehr als 3 Tage nach dem Startdatum liegen. Verwenden Sie eine Skriptregel, um diese Einschränkung durchzusetzen.

<Steps>
  <Step title="Dialogfeld „Neue Regel“ öffnen">
    Klicken Sie auf das Add icon unter dem Datenformular. Das Dialogfeld **Neue Regel** wird geöffnet.

    <Note>
      Wenn Sie das Add icon nicht sehen, wechseln Sie zum Abschnitt **Reference** oberhalb des Dokumentbilds.
    </Note>
  </Step>

  <Step title="Regeltyp und Felder konfigurieren">
    1. Wählen Sie **Erweiterte Skriptregel** und klicken Sie auf **Weiter**.
    2. Benennen Sie die Regel in „Gültigkeit prüfen“ um.
    3. Wählen Sie die Felder „Start Date“ und „Date“ in der Liste der fields aus.
    4. Klicken Sie auf **Weiter**.
  </Step>

  <Step title="Das Gültigkeitsskript hinzufügen">
    Fügen Sie das folgende Skript in den Skripteditor ein:

    ```javascript theme={null}
    // Erstellen Sie Variablen für alle Felder, auf die Sie zugreifen
    var startField = Context.GetField("Start Date") ;
    var dateField = Context.GetField("Date");

    if (dateField && dateField.Value && startField && startField.Value)
    {
       var date = dateField.Value;
       var startDate = startField.Value;

       //Berechnen Sie das frühestmögliche Startdatum
       date.setDate(date.getDate() - 3);

       if (startDate < date)
       {
           Context.CheckSucceeded = false;
           Context.ErrorMessage = "Die Krankschreibung wurde zu spät ausgestellt";
       }
    }
    ```

    Klicken Sie auf **Speichern** und prüfen Sie, wie die Regel bei verschiedenen Dokumenten im Set funktioniert. Um zu testen, wie die Regel mit Fehlern umgeht, geben Sie Testwerte manuell in die Felder des Datenformulars ein — die Regel wird jedes Mal erneut angewendet, wenn Sie den Feldwert ändern.
  </Step>
</Steps>

<div id="check-the-sick-leave-duration">
  ## Überprüfen Sie die Krankheitsdauer
</div>

Berechnen Sie die Krankheitsdauer anhand des Start- und Enddatums. Wenn das Dokument bereits eine Dauer angibt, prüft die Regel, ob sie der berechneten Dauer entspricht. Wenn nicht, schreibt die Regel den berechneten Wert in das Feld „Duration“.

<Steps>
  <Step title="Öffnen Sie das Dialogfeld „Neue Regel“">
    Klicken Sie unter dem Datenformular auf das Symbol „Hinzufügen“, um eine Regel zu erstellen.
  </Step>

  <Step title="Konfigurieren Sie den Regeltyp und die Felder">
    1. Wählen Sie **erweiterte Skriptregel** und klicken Sie auf **Next**.
    2. Benennen Sie die Regel in „Check duration“ um.
    3. Wählen Sie die Felder „Start Date“, „End Date“ und „Duration“ in der Feldliste aus. Es ist wichtig, die Felder in beiden Spalten auszuwählen, da wir die Feldwerte nicht nur lesen, sondern bei Bedarf auch korrigieren.
    4. Klicken Sie auf **Next**.
  </Step>

  <Step title="Fügen Sie das Skript für die Dauer hinzu">
    Fügen Sie das folgende Skript in den Skripteditor ein:

    ```javascript theme={null}
    // Variablen für alle Felder erstellen, auf die zugegriffen werden soll
    var startField = Context.GetField("Start Date") ;
    var endField = Context.GetField("End Date");
    var durationField = Context.GetField("Duration");

    var startDate = startField.Value;
    var endDate = endField.Value;

    //Prüfen, ob die Felder „Start Date" und „End Date" im Dokument gefunden wurden
    if (endField && endDate && startField && startDate)
    {
       //Krankheitsdauer berechnen
       var length = (1 + (endDate.getTime() - startDate.getTime()) / 3600000 / 24);

       //Wenn das Feld „Duration" nicht gefunden wurde oder nicht als Zahl interpretiert werden konnte, den berechneten Wert in das Feld schreiben
       if (!durationField.Value)
           durationField.Value = length; 

       //Wenn das Feld „Duration" gefunden wurde, seinen Wert mit der berechneten Dauer vergleichen
       else if (durationField.Value != length)
       {
           Context.CheckSucceeded = false;
           Context.ErrorMessage = "Der Wert des Felds \"Duration\" stimmt nicht mit der tatsächlichen Krankheitsdauer überein";
           durationField.AddSuggestion(length.toString());
       }
    }
    ```

    Klicken Sie auf **Save** und prüfen Sie, wie die Regel bei verschiedenen Dokumenten im Dokumentensatz funktioniert. Um zu überprüfen, wie die Regel mit Fehlern umgeht, geben Sie Testwerte manuell in die Felder des Datenformulars ein — die Regel wird jedes Mal erneut angewendet, wenn Sie den Feldwert ändern.
  </Step>
</Steps>

<div id="whats-next">
  ## Wie geht es weiter?
</div>

<CardGroup cols={2}>
  <Card title="Schritt 10. Skill testen und veröffentlichen" icon="arrow-right" href="/de/vantage/documentation/advanced-designer/tutorial/tutorial-step-10">
    Testen Sie den konfigurierten Skill und veröffentlichen Sie ihn auf dem Vantage-Server.
  </Card>

  <Card title="Tutorial-Übersicht" icon="circle-info" href="/de/vantage/documentation/advanced-designer/tutorial/tutorial">
    Zurück zur Tutorial-Einführung.
  </Card>
</CardGroup>
