Ereignisbenachrichtigungsmanagement – Entwicklerleitfaden für offene API

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 3 Minuten Lesedauer
  • Verwenden Sie Ereignisbenachrichtigungsmanagement Offen API zum Erstellen, Aktualisieren und Löschen von Ereignisdatensätzen in der Tabelle „Ereignisse“ [em_event].

    Dieser Entwicklerleitfaden enthält Informationen zum erweitern von Ereignisbenachrichtigungsmanagement Offen API zum Vornehmen verschiedener Anpassungen.

    Erweiterung der API „Ereignisbenachrichtigungsmanagement öffnen“

    Sie können die Funktionalität von erweitern und ändern Ereignisbenachrichtigungsmanagement Offen API durch Bearbeiten der zugehörigen Skripteinbindungsdateien.

    Im Folgenden finden Sie die Skripteinbindungen, die die enthalten Ereignisbenachrichtigungsmanagement Offen API verwendet, um Ereignisbenachrichtigungsanforderungen zu verarbeiten, die an die API übergeben werden:
    • AlarmAPIProcessorOOB : Enthält Hilfsfunktionen, die Funktionen in unterstützen TMFTopicEventAPIUtil Skripteinbindung. Für zusätzliche Informationen zu AlarmAPIProcessorOOB Skripteinbindung, siehe Alarmmanagement – Entwicklerleitfaden für offene API.
    • AlarmAPIProcessor : Eine leere Skripteinbindungsdatei. Aktualisieren Sie diese Datei, um alle Funktionen zu definieren, die Sie in überschreiben möchten AlarmAPIProcessorOOB Skripteinbindung.
    • JSONSchemaValidierung : Enthält Funktionen zur Verarbeitung der Validierung von Schemas für die in definierte Nutzlast TMFAlarmAPIKonstanten Skripteinbindung. Diese Skripteinbindung befindet sich unter dem Plugin „tmt_Core“.
    • TMFAlarmAPIKonstanten : Enthält Konstanten und erforderliche Parameterinformationen. Enthält auch die Schemas für die in übergebenen Nutzlasten Ereignisbenachrichtigungsmanagement Offen Endpunkt.
    • TMFTopicEventAPIUtilOOB : Enthält Funktionen zur Verarbeitung von API-Anforderungen, die durch ausgelöst werden Externe Auslöserdefinitions-Flows Die Aktionen haben AlarmCreateNotification , AlarmChangeNotification , AlarmDeleteNotification Die Ereignisse erstellen, aktualisieren und löschen.
    • TMFTopicEventAPIUtil : Eine leere Skripteinbindungsdatei. Aktualisieren Sie diese Datei, um alle Funktionen zu definieren, die Sie in überschreiben möchten TMFTopicEventAPIUtilOOB Skripteinbindung.

    Die folgenden Abschnitte enthalten Beispiele für einige der Anpassungen, die Sie an vornehmen können Ereignisbenachrichtigungsmanagement Offen API-Verarbeitung durch Erweiterung/Änderung dieser Skripteinbindungsdateien.

    Erforderliche Parameter

    Die Verwaltung Von Ereignisbenachrichtigungen Die API verwendet JSON-Schemas, um erforderliche Parameter zu definieren. Diese JSON-Schemas sind in definiert TMFAlarmAPIKonstanten Skripteinbindung. Diese Schemas werden verwendet, um zu validieren, ob Anforderungsnutzlasten gültig sind. Diese Schemas werden in den Skripteinbindungen nicht direkt referenziert, sondern von den folgenden Funktionen in zurückgegeben TMFTopicEventAPIUtilOOB Skripteinbindung:

    • GetAlarmCreateEventSchema() : Gibt das Validierungsschema zum Erstellen eines Ereignisses zurück.
    • GetAlarmDeleteEventSchema() : Gibt das Validierungsschema zum Löschen eines Ereignisalarms zurück.
    • GetAlarmChangeEventSchema() : Gibt das Validierungsschema für das Ändern von Feldern in einem Ereignis zurück.

    Um die vorhandenen Schemas zu überschreiben, definieren Sie neue Schemas in TMFTopicEventAPIUtilOOB Skripteinbindung und überschreiben TMFTopicEventAPIUtil Skripteinbindungsfunktionen.

    Zum Beispiel:

    var TMFTopicEventAPIUtil = Class.create();
    TMFTopicEventAPIUtil.prototype = Object.extendsObject(TMFTopicEventAPIUtilOOB, {
    	// Define overriding functions here	
    	// Define getAlarmCreateEventSchema here to override OOTB function in TMFTopicEventAPIUtilOOB
    	getAlarmCreateEventSchema: function() {
    		return JSON.parse(TMFTopicEventAPIUtil.CUSTOMIZED_SCHEMA);
    	},
        type: ‘TMFTopicEventAPIUtil’
    });
    
    // New schema
    TMFTopicEventAPIUtil.CUSTOMIZED_SCHEMA = "{
      \"title\":\"AlarmCreateEvent\",
      \"type\":\"object\",
      \"properties\":{
        \"event\":{
          \"type\":\"object\",
          \"properties\":{
            \"alarm\":{
              \"type\":\"object\",
              \"properties\":{
                \"id\":{
                  \"type\":\"string\"
                },
                \"href\":{
                  \"type\":\"string\"
                },
                \"externalAlarmId\":{
                  \"type\":\"string\"
                },
                \"alarmType\":{
                  \"type\":\"string\"
                },
                \"perceivedSeverity\":{
                  \"type\":\"string\"
                },
                \"probableCause\":{
                  \"type\":\"string\"
                },
                \"alarmedObject\":{
                  \"type\":\"object\",
                  \"properties\":{
                    \"id\":{
                      \"type\":\"string\"
                    },
                    \"href\":{
                      \"type\":\"string\"
                    }
                  },
                  \"required\":[
                    \"id\"
                  ]
                },
                \"crossedThresholdInformation\":{
                  \"type\":\"object\",
                  \"properties\":{
                    \"thresholdId\":{
                      \"type\":\"string\"
                    }
                  },
                  \"required\":[
                    \"thresholdId\"
                  ]
                },
                \"affectedService\":{
                  \"type\":\"array\",
                  \"properties\":{
                    \"id\":{
                      \"type\":\"string\"
                    },
                    \"href\":{
                      \"type\":\"string\"
                    }
                  },
                  \"items\":{
                    \"type\":\"object\",
                    \"required\":[
                      \"id\"
                    ]
                  }
                },
                \"sourceSystemId\":{
                  \"type\":\"string\"
                },
                \"specificProblem\":{
                  \"type\":\"string\"
                }
              },
              \"required\":[
                \"externalAlarmId\",\"alarmType\",\"perceivedSeverity\",\"probableCause\",\"sourceSystemId\",\"alarmedObject\"
              ]
            }
          },
          \"required\":[
            \"alarm\"
          ]
        }
      },
      \"required\":[
        \"event\"
      ]
    }";

    Validierung des Anforderungstexts

    Um eine zusätzliche Validierung für den Anforderungstext durchzuführen, überschreiben Sie die folgenden Funktionen in TMFTopicEventAPIUtilOOB Skripteinbindung. Diese Funktionen werden von den angegebenen Funktionen in derselben Skripteinbindung aufgerufen.

    • VerifyAlarmCreateEventPayload() : Aufgerufen von ProcessAlarmCreateEvent() .
    • VerifyAlarmDeleteEventPayload() : Aufgerufen von ProcessAlarmDeleteEvent() .
    • VerifyAlarmChangeEventPayload() : Aufgerufen von ProcessAlarmChangeEvent() .

    Alle diese Funktionen geben standardmäßig Erfolg zurück. Wenn eine Hilfsfunktion einen Fehler zurückgibt, wird der API-Vorgang gestoppt.

    Um anwenderdefinierte Validierungen anzuwenden, überschreiben Sie die Hilfsfunktionen in TMFTopicEventAPIUtilOOB Skripteinbindung mit identischen Funktionsnamen und Parametern in TMFTopicEventAPIUtil Skripteinbindung.

    In diesem Beispiel eine Funktion in einer anwenderdefinierten TMFTopicEventAPIUtil Die Skripteinbindung überschreibt die Standardfunktion in TMFTopicEventAPIUtilOOB Skripteinbindung zum Durchführen der Validierung des Namensattributs.

    var TMFTopicEventAPIUtil = Class.create();
    TMFTopicEventAPIUtil.prototype = Object.extendsObject(TMFTopicEventAPIUtilOOB, {
    
        // Define overriding functions here
        verifyAlarmCreateEventPayload: function(eventPayload,responseObject){
    
            // Returning error status terminates the POST request
            // Make sure to assign error message and reason
            if (eventPayload.type != "unique") {
                responseObject.setMessage("Failed");
                responseObject.setReason("No reason needed");
                return responseObject.status = “error”;
            }
        },
    	
        type: ‘TMFTopicEventAPIUtil’
    });

    Abonnementvalidierung des Textkörpers anfordern

    Um die Abonnementvalidierung des Anforderungstexts für die API zu ändern, müssen Sie überschreiben ValidateAbonnement() Funktion in TMFTopicEventAPIUtilOOB Skripteinbindung. Diese Funktion validiert, ob die callbackURL, die Sie zum Erstellen der Ereignisbenachrichtigung verwenden, registriert ist, und bestimmt, ob eventTypeIst für den ausgelösten Rückruf registriert. Diese Funktion wird von aufgerufen ProcessAlarmCreateEvent() , ProcessAlarmDeleteEvent() , Und ProcessAlarmChangeEvent() Funktionen, die sich auch in befinden TMFTopicEventAPIUtilOOB Skripteinbindung.

    Feldzuordnung

    Beim Erstellen oder Aktualisieren von Datensätzen wird die verwendet Ereignisbenachrichtigungsmanagement Offen API ordnet Anforderungstext-Parameter Ereignisdatensatzfeldern zu. Beim Abrufen von Datensätzen ordnet die API Ereignisdatensatzfelder Antwortobjektattributen zu.

    Die TMFTopicEventAPIUtilOOB Die Skripteinbindung enthält die folgenden Funktionen, die Change-, Erstellen- und Löschanforderungen basierend auf dem Wert in zuordnen eventTypeParameter, zu einem Datensatz in der Tabelle „Ereignis“ [em_event].

    • MapAlarmChangeObjectToEvent()
    • MapCreateAlarmObjectToEvent()
    • MapDeleteAlarmObjectToEvent()
    Sie können Feldzuordnungen anpassen, um Daten für zusätzliche Ereignistabellenfelder [em_event] hinzuzufügen und abzurufen oder die Standardfeldzuordnungen zu ändern. Um mit Zuordnungen zu arbeiten, erstellen Sie in Funktionen mit identischen Namen und Parametern TMFTopicEventAPIUtil Zum Überschreiben TMFTopicEventAPIUtilOOB Zuordnungsfunktionen.