Fügen Sie dem Status-Modell einen Status hinzu

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 4 Minuten Lesedauer
  • Sie können das vorhandene Status-Modell für verschiedene Change-Typen basierend auf den Anforderungen Ihrer Organisation um einen neuen Status ergänzen.

    Vorbereitungen

    Erforderliche Rolle: script_include_admin, ui_policy_admin, ui_action_admin oder admin

    Warum und wann dieser Vorgang ausgeführt wird

    Das Status-Modell Plugin ist standardmäßig aktiviert. Weitere Informationen zu Basissystem-Status für Change Requests finden Sie unter Status-Modell und Übergänge.

    Prozedur

    1. Navigieren zu Alle > Wechseln > Neu erstellen: und führen Sie die folgenden Schritte aus, um der Auswahlliste eine Auswahl hinzuzufügen.
      1. Klicken Sie mit der rechten Maustaste auf das Feld Status und klicken Sie auf Dictionary konfigurieren.
      2. In der zugehörigen Auswahlliste filtern Sie nach [Tabelle] [ist] [change_request].
      3. Klicken Sie auf Neu und fügen Sie den Status und die folgenden Informationen hinzu.
        • Tabelle: Change Request [change_request]
        • Bezeichnung: Neuer Status-Name
        • Wert: Numerischer Wert, der nicht bereits einer bestehenden Status-Auswahl zugewiesen ist
        • Sequenz: Nummer, die dem Platz entspricht, an dem dieser in der Status-Auflistung erscheinen soll. Wenn Sie ihm die gleiche Sequenznummer wie einer anderen Auswahl zuweisen, wird er unterhalb der anderen Auswahl angezeigt.
      4. Klicken Sie auf Absenden.
    2. Navigieren zu Systemdefinition > Skripteinbindungen.
      Die Skripteinbindungs-Datensätze mit SNC im Namen sind schreibgeschützt. Stellen Sie beim Ausführen der folgenden Schritte sicher, dass Sie die richtige Skripteinbindung für die Anpassung auswählen. Ändern Sie beispielsweise ChangeRequestStateHandler, und nicht ChangeRequestStateHandlerSNC.
      Hinweis:
      Erweiterte Skripteinbindungen (ohne SNC) beinhalten alle Funktionen ihrer SNC-Gegenstücke. Wenn Sie eine Basis-Skripteinbindung (mit angehängtem SNC) ändern, wird sie nicht länger bei System-Upgrades aktualisiert.
    3. Öffnen Sie das ChangeRequestStateHandler-Skript, um die folgenden Änderungen durchzuführen.
      • Aktualisieren Sie den Abschnitt StateHandler-Konstanten am Anfang dieser Skripteinbindung, um Werte für den neu hinzugefügten Status zu ergänzen. Beispiel:
        ChangeRequestStateHandler.MY_NEW_STATE = "mynewstate";
      • Aktualisieren Sie die Übersicht STATUS_NAMEN am Ende der Initialisierungsfunktion, um den numerischen Wert für den neu hinzugefügten Status hinzuzufügen. Beispiel:
        this.STATE_NAMES["-6"] = ChangeRequestStateHandler.MY_NEW_STATE;
        Hinweis:
        Die Übersicht STATUS_NAMEN bietet eine Zuordnung zwischen den numerischen Werten, die sich in dem Feld Status bei einem Change Request befinden und einen leicht zu merkenden Namen haben. Diese Zuordnung ermöglicht die Verwendung dieses einprägsamen Namens in den Skripteinbindungen des Status-Modells.
    4. Bearbeiten Sie die entsprechende Skripteinbindung, um die neuen Status für die relevanten Change Request-Typen in das Modell aufzunehmen.
      Jede Art von Change-Anforderung hat eine entsprechende Skripteinbindung namens ChangeRequestStateModel_<type>, bei der <type> den Wert des Change-Anforderungstyps angibt. Beispielsweise definiert ChangeRequestStateModel_normal das Statusmodell für Change-Anforderungen des Typs „Normal“.
      Jede Skripteinbindung eines Status-Modells definiert Objekte, welche die folgenden Informationen spezifizieren.
      • Welche Status verfügbar sind.
      • Der/die nächste/n Status für jeden verfügbaren Status.
      • Funktionen für jeden Statusübergang, um zu entscheiden, ob dieser Übergang verfügbar ist (canMove) zusammen mit einer Funktion, die als Teil der Änderung in diesen Status ausgeführt werden soll (moving).

      Das folgende Beispiel stammt aus der ChangeRequestStateModel_normal-Skripteinbindung.

      Ändern des Change Request-Statusskripts
    5. Erstellen Sie eine UI Action, um eine Schaltfläche zur Weiterleitung des Change Request in einen neuen Status bereitzustellen.
      1. Nutzen Sie Einfügen und bleiben, um eine Kopie einer der Standard-UI Actions wie z. B. Implementieren zu erstellen.
      2. Füllen Sie die nachfolgenden Felder im Formular aus.
        Feldname Aktualisieren
        Name Aktualisieren Sie den Namen des neuen Status.
        Aktionsname Ersetzen Sie den Status am Ende des Namens durch den neuen Status.
        Tipp Aktualisieren Sie den Text, um auf den neuen Status zu verweisen.
        Beim Klicken Benennen Sie die Funktion neu, damit sie dem neuen Status entspricht.
        Bedingung Ergänzen Sie den isNext Funktionsaufruf um den neuen Status.
        Skript
        • Aktualisieren Sie den Funktionsnamen so, dass er mit dem Feld Beim Klicken übereinstimmt.
        • Aktualisieren Sie die Zeile, die mit ga.addParam(“sysparm_state_name”,… beginnt, um den Namen des neuen Status als den zweiten Parameter der Funktion addParam anzugeben.
        • Aktualisieren Sie die Zeile, die mit gsftSubmit beginnt und passen Sie den dritten Parameter dieser Funktion an, um dem Wert zu entsprechen, der in das Feld Aktionsname eingetragen wurde.

        Das folgende Beispiel verwendet die UI Action Implementieren zum Anzeigen der zu aktualisierenden Werte.

        Geänderte UI-Aktion
        Die ChangeRequestStateHandler-Skripteinbindung enthält zwei Funktionen, mit denen bestimmt wird, ob eine UI-Aktion auf der Grundlage des aktuellen Change-Anforderungsstatus angezeigt wird.
        • isNext(stateName): Diese Funktion prüft nur, ob der stateName, der als Parameter übergeben wurde, als nächster aktueller Status der Change-Anforderung verfügbar ist.
        • canMoveTo(stateName): Diese Funktion führt dieselbe Prüfung durch wie die Funktion isNext. Sie prüft jedoch auch das Ergebnis des Aufrufs der entsprechenden Funktion canMoveTo für den Übergang vom aktuellen Status zu stateName (als Parameter übergeben). Diese Funktion wird verwendet, wenn es bei den canMove-Funktionen zusätzliche Prüfungen gibt, zum Beispiel, ob ein Feld einen bestimmten Wert enthält.
    6. Führen Sie die folgenden Schritte aus, um die Prozessschritte zur Konfiguration zu aktualisieren, um den neuen Change-Status zu übernehmen.
      Der Prozessablauf wird ganz oben auf dem Change Request-Formular angezeigt und in verschiedenen Prozessablauf-Datensätzen konfiguriert.
      Der neue Status wird im Prozessablauf angezeigt
      1. Navigieren zu System-UI > Prozess-Flow Modul und Filter für [Table] [is] [change_request].
      2. Öffnen Sie einen Datensatz, und nutzen Sie Einfügen und bleiben, um eine Kopie zu erstellen.
      3. Füllen Sie die nachfolgenden Felder im Formular aus.
        Feldname Aktualisieren
        Name Aktualisieren Sie den Namen des neuen Status.
        Bezeichnung Aktualisieren Sie den Namen des neuen Status. Dieser Wert ist im Prozessablauf am Anfang des Change Request-Formulars enthalten.
        Reihenfolge Aktualisieren Sie diese Nummer, damit der neue Status in der richtigen Reihenfolge mit den vorhandenen Prozessablauf-Datensätzen für andere Status angezeigt wird.
        Bedingung Aktualisieren Sie den Filter so, dass er dem neuen Status entspricht.
      4. Klicken Sie auf Aktualisieren.

    Nächste Maßnahme

    Um sicherzustellen, dass der neue Status wie erwartet funktioniert, überprüfen Sie die Standardworkflows. Fügen Sie dem Workflow den neuen Status bei Bedarf hinzu.

    Überprüfen Sie die Standardworkflows

    Änderungen am Status-Modell können sich auf die Standardworkflows für Change Requests auswirken.

    Vorbereitungen

    Erforderliche Rolle: admin

    Warum und wann dieser Vorgang ausgeführt wird

    Jeder Change Request-Typ hat einen Standardworkflow. Um sicherzustellen, dass Änderungen am Status-Modell die Workflows nicht beeinträchtigt haben, müssen Sie jeden der Standardworkflows überprüfen.

    Prozedur

    Überprüfen Sie den Workflow für jede ChangeRequestStateModel_<type>-Skripteinbindung, die geändert wurde.
    Tabelle : 1. Standardworkflows für Change Requests
    Change-Typ Name der Skripteinbindung Workflow
    Normal ChangeRequestStateModel_normal Change Request - Normal
    Standard ChangeRequestStateModel_standard Change Request - Standard
    Notfall ChangeRequestStateModel_emergency Change Request - Notfall

    Änderungen am Standardworkflow für jeden Change-Typ hängen davon ab, wo der neue Status in den Statussequenzen hinzugefügt wird.