Change-Anforderung-Status aktualisieren

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 1 Minute Lesedauer
  • Wenn Sie ein Upgrade von einem Release vor Geneva durchführen, müssen Sie alte Statusbezeichnungen auf neue Statusbezeichnungen aktualisieren, nachdem Sie das Change-Management-Statusmodell aktiviert haben.

    Vorbereitungen

    Erforderliche Rolle: Administrator

    Warum und wann dieser Vorgang ausgeführt wird

    Statuswerte für aktuelle Change-Datensätze werden nicht geändert, wenn Sie das Change-Management-Statusmodell aktivieren. In den aktuellen Change Records werden jedoch die neuen Statusbezeichnungen im Statusfeld angezeigt.

    Statuswert Neue Statusbezeichnung Altes Staatslabel
    -5 Neu Ausstehend
    -4 Bewerten (Nicht verwendet)
    -3 Autorisieren (Nicht verwendet)
    -2 Geplant (Nicht verwendet)
    -1 Implementieren (Nicht verwendet)
    0 Überprüfen (Nicht verwendet)
    1 (Nicht verwendet) Offen
    2 (Nicht verwendet) In Bearbeitung
    3 Geschlossen Geschlossen – vollständig
    4 Abgebrochen Geschlossen – unvollständig
    7 (Nicht verwendet) Geschlossen - übersprungen

    Datensätze mit einem Statuswert von -5 weisen beispielsweise die Statusbezeichnung Ausstehend auf, bevor das Change-Management-Statusmodell aktiviert wird. Nachdem das Statusmodell aktiviert wurde, behalten diese Datensätze den Statuswert -5, weisen aber die Bezeichnung Neu auf. Um den Change-Management-Prozess Ihrer Organisation mit dem Statusmodell zu verwenden, müssen Sie die Statuswerte in den vorhandenen Change-Datensätzen je nach Bedarf entweder manuell oder per Skript aktualisieren.

    Sie müssen auch alle Berichte aktualisieren, die Abfragen basierend auf alten Statusbezeichnungen ausführen, um die neuen Statusbezeichnungen widerzuspiegeln.

    Prozedur

    1. Um die Statusfeldwerte von alten Statusbezeichnungen automatisch in neue Statusbezeichnungen zu aktualisieren, passen Sie das folgende Beispielskript an und führen Sie es dann aus:
      updateStates();
      
      function updateStates() {
      
        function hasApprovers(changeGr) {
          var approverGr = new GlideRecord("sysapproval_approver");
          approverGr.addQuery('sysapproval', changeGr.getUniqueValue());
          approverGr.query();
          return approverGr.getRowCount() > 0;
        }
      
        function hasRunningWorkflows(changeGr) {
          var workflow = new Workflow();
          var workflowGr = workflow.getRunningFlows(changeGr);
          var hasRunningFlows = workflowGr.getRowCount() > 0;
          return hasRunningFlows;
        }
      
        // Old State Model
        var PENDING = '-5';
        var OPEN = '1';
        var CLOSED_COMPLETE = '3';
        var CLOSED_INCOMPLETE = '4';
        var CLOSED_SKIPPED = '7';
      
        // New State Model
        var NEW = '-5';
        var ASSESS = '-4';
        var AUTHORIZE = '-3';
        var SCHEDULED = '-2';
        var IMPLEMENT = '-1';
        var REVIEW = '0';
        var CLOSED = '3';
        var CANCELLED = '4';
      
        // Find all change requests
        var record = new GlideRecord('change_request');
        record.query();
      
        // Update state from old value to new value
        while (record.next()) {
          switch(record.getValue('state')) {
            case OPEN:
              if (!hasRunningWorkflows(record) && !hasApprovers(record))
                record.state = NEW;
              break;
            case CLOSED_COMPLETE:
              record.state = CLOSED;
              record.close_code = "successful";
              break;
            case CLOSED_SKIPPED:
              record.state = CANCELLED;
              record.close_code = "unsuccessful";
              break;
            case CLOSED_INCOMPLETE:
              record.state = CLOSED;
              record.close_code = "successful_issues";
              break;
          }
          record.autoSysFields(false);
          record.setWorkflow(false);
          record.update();
        }
      
      }
      
    2. Stellen Sie sicher, dass die Statusbezeichnungen in vorhandenen Change-Anforderungsdatensätzen geändert wurden.