EreignisprozessorUtilOOB – Umfang
Die EreignisprozessorUtilOOB Die Skripteinbindung bietet Methoden zum Erstellen und Veröffentlichen von Ereignissen im konfigurierten Nachrichten-Broker.
Wenn Sie die Standardfunktionalität dieser Skripteinbindung ändern möchten, müssen Sie diese Methoden in überschreiben EreignisprozessorUtil Skripteinbindung. Sie müssen über die Administratorrolle verfügen, um diese Skripteinbindung zu ändern.
Diese Skripteinbindung wird in ausgeführt sn_api_notif_mgmt Namespace.
EventProcessorUtilOOB – constructandPublishEvent(Object inbound EventPayloadRecord, Zeichenfolge eventId)
Erstellt eine TMF688-konforme Nutzlast basierend auf den übergebenen Informationen und veröffentlicht das Ereignis in der konfigurierten Veröffentlichungsplattform.
Die standardmäßige Veröffentlichungsplattform ist in der Systemeigenschaft sn_api_notif_mgmt.Publisher_message_Bus_config definiert.
| Name | Typ | Beschreibung |
|---|---|---|
| InboEventPayloadRecord | Objekt | Informationen, die dem Ereignis zugeordnet sind. Das Format dieser Nutzlast hängt vom Ereignistyp ab. In der Basisimplementierung sind dies die Glide-Datensatzdaten des zugehörigen Ereignisses im JSON-Format. |
| eventId | Zeichenfolge | Eindeutige ID des zu veröffentlichenden Ereignisses, z. B. eine GUID. |
| Typ | Beschreibung |
|---|---|
| TmfEventPayload | TMF688-konforme Ereignisnutzlast, die für das Ereignis erstellt wurde. Eine Beschreibung des Standardformats dieser Ereignisnutzlast finden Sie unter TMF688 Ereignismanagement-API – Anwenderhandbuch . |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
processIndividualEventRecord: function(inboundQueueGr, node_id) {
var isError = false;
var errorMessage;
try {
new EventProcessorUtil().constructandPublishEvent(JSON.parse(inboundQueueGr.getValue('payload')), inboundQueueGr.getValue('record_id'));
} catch (ex) {
this._logger.logErr("Event processing failed " + ex);
isError = true;
errorMessage = JSON.stringify(ex);
}
// Update the inbound queue record based on processing
var inboundQueueObj = new sn_tmt_core.BaseObject();
if (isError == true) {
inboundQueueObj.setValue('state', sn_tmt_core.Constants.INBOUND_QUEUE_STATE.ERROR);
inboundQueueObj.setValue('error_message', errorMessage);
} else {
inboundQueueObj.setValue('state', sn_tmt_core.Constants.INBOUND_QUEUE_STATE.COMPLETED);
}
var inboundQueue = new sn_tmt_core.InboundQueue(inboundQueueGr, false);
inboundQueue.updateInboundQueueRecord(inboundQueueObj);
},
EventProcessorUtilOOB – fetchEventHandlerAndCreateTMFEvent(Object eventSnapshot, String eventType, String eventId)
Konvertiert das übergebene Rohereignisobjekt in ein TMF-konformes Ereignisobjekt, indem ein Nutzlastgenerator basierend auf dem Ereignistyp aufgerufen wird.
- Ändert die vorhandene Ereignisverarbeitung.
- Fügt einen neuen Ereignistyp hinzu. Sie müssen den Ereignistyp und den zugehörigen Nutzlastgenerator hinzufügen.
- Fügt ein neues Objekt im Framework für Erstellererereignisbenachrichtigungen hinzu.
Möglicherweise müssen Sie auch die Methoden in überschreiben TroubleTicketNotificationUtil Skripteinbindung zum Hinzufügen von Attributen zur zurückgegebenen TMF-konformen Nutzlast oder zum Ändern der Standardverarbeitung der Nutzlast.
Weitere Informationen finden Sie unter Konfigurieren Sie Problemticketbenachrichtigungen mit dem Framework für Ereignisbenachrichtigungen des Erstellers.
| Name | Typ | Beschreibung |
|---|---|---|
| EventSnapshot | Objekt | Rohdaten, die in ein TMF-konformes Objekt umgewandelt werden sollen. Sie können dieses Objekt aus dem Nutzlastfeld der Tabelle „eingehende Warteschlange“ [sn_tmt_Core_inbound_Queue] abrufen. Eingehende Warteschlangendatensätze werden durch Geschäftsregeln erstellt, z. B. durch das Change-Ereignis für das Trouble Ticket-Attribut, das der Incident-Tabelle [Incident] zugeordnet ist. Das Format des Ereignis-Snapshots wird durch die Geschäftsregel definiert, die das Ereignis ursprünglich in die eingehende Warteschlange verschoben hat. |
| eventType | Zeichenfolge | Event-Typ Dieser Wert gibt den Typ der Ereignisdaten an, die in übergeben werden eventSnapshotNutzlast. Die übergebene Nutzlast wird basierend auf diesem Ereignistyp verarbeitet. Der Ereignistyp wird im Datensatz der eingehenden Warteschlange durch die zugehörige Business-Regel in der zugehörigen Tabelle gestempelt. Jeder Ereignistyp hat eine eigene Ereignisnutzlaststruktur. Zum Beispiel:Standardwerte für Problemticket-Ereignistypen sind in definiert EVENT_TYPESParameter in sn_api_notif_mgmt.Konstanten Skripteinbindung. |
| eventId | Zeichenfolge | Eindeutiger Bezeichner des zu konvertierenden Ereignisses. |
| Typ | Beschreibung |
|---|---|
| TmfEventPayload | Ereignisnutzlast im TMF-konformen Format. Um den Transformationsprozess der bestandenen anzuzeigen eventSnapshotObjekt für die TMF-konforme Nutzlast, überprüfen Sie den Code in TroubleTicketNotificationUtilOOB Skripteinbindung. |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
constructandPublishEvent: function(inboundEventPayloadRecord, eventId) {
if (gs.nil(inboundEventPayloadRecord)) return;
var tmfEventPayload = this.fetchEventHandlerAndCreateTMFEvent(inboundEventPayloadRecord.eventSnapshot, inboundEventPayloadRecord.eventType, eventId);
this._logger.debug("Event payload generated for the event id " + eventId + " is " + JSON.stringify(tmfEventPayload));
if (gs.getProperty(Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION) == Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION_VALUES.OPEN_MESSAGE_BUS) {
// Publish event in custom message bus
this.publishEventToOpenMessageBus(tmfEventPayload);
} else if (gs.getProperty(Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION) == Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION_VALUES.HERMES) {
// Publish event in hermes kafka
try {
this.publishMessageToHermesKafka(tmfEventPayload);
} catch (ex) {
this._logger.logErr("Publishing message to Hermes Kafka Failed, error is: " + ex);
}
} else if (gs.getProperty(Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION) == Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION_VALUES.BOTH_MESSAGE_BUS_CONFIGURATIONS) {
// Publish event in both custom message bus and hermes kafka
this.publishEventToOpenMessageBus(tmfEventPayload);
try {
this.publishMessageToHermesKafka(tmfEventPayload);
} catch (ex) {
this._logger.logErr("Publishing message to Hermes Kafka Failed, error is: " + ex);
}
}
return tmfEventPayload;
},
Das folgende Codebeispiel zeigt die Switch-Fallanweisungen, die von dieser Methode verwendet werden, um zu bestimmen, wie die übergebene Ereignisnutzlast basierend auf transformiert werden soll eventTypeParameter. Wenn Sie Ihrer Implementierung andere Ereignistypen hinzufügen, müssen Sie diese Methode überschreiben und die Verarbeitung für den neuen Ereignistyp einschließen.
fetchEventHandlerAndCreateTMFEvent: function(eventSnapshot, eventType, eventId) {
var eventPayload;
switch (eventType) {
case Constants.EVENT_TYPES.TROUBLE_TICKET_STATUS_CHANGE:
eventPayload = new sn_ind_tsm_sdwan.TroubleTicketNotificationUtil().generateTroubleTicketStatusChangePayload(eventSnapshot, eventType, eventId);
break;
// New event type in trouble ticket
case ‘troubleTicketPriorityChange’
eventPayload = new sn_ind_tsm_sdwan.TroubleTicketNotificationUtil().generateTroubleTicketAttributeChangePayload(eventSnapshot, eventType, eventId);
break;
// New event type of object other than trouble ticket
case ‘domainOrderStatusChange’
eventPayload = new sn_ind_tmt_orm().domainOrderNotification().generatedomainOrderStatusChangePayoad(eventSnapshot, eventType, eventId);
break;
default:
this._logger.debug("Event with id " + eventId + " could not find the matching payload generator");
eventPayload = null;
}
return eventPayload;
},
EventProcessorUtilOOB – publishMessageToHermesKafka(Object tmfEventPayload)
Instanziiert HermesEventPublisher Klassifiziert und veröffentlicht die übergebene Ereignisnutzlast im Hermes Kafka-Nachrichten-Broker.
| Name | Typ | Beschreibung |
|---|---|---|
| TmfEventPayload | Objekt | TMF688-konforme Ereignisnutzlast, die für das Ereignis erstellt wurde. Eine Beschreibung des Standardformats dieser Ereignisnutzlast finden Sie unter TMF688 Ereignismanagement-API – Anwenderhandbuch . |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
constructandPublishEvent: function(inboundEventPayloadRecord, eventId) {
if (gs.nil(inboundEventPayloadRecord)) return;
var tmfEventPayload = this.fetchEventHandlerAndCreateTMFEvent(inboundEventPayloadRecord.eventSnapshot, inboundEventPayloadRecord.eventType, eventId);
this._logger.debug("Event payload generated for the event id " + eventId + " is " + JSON.stringify(tmfEventPayload));
if (gs.getProperty(Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION) == Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION_VALUES.OPEN_MESSAGE_BUS) {
// Publish event in open message bus
this.publishEventToOpenMessageBus(tmfEventPayload);
} else if (gs.getProperty(Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION) == Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION_VALUES.HERMES) {
// Publish event in Hermes Kafka
try {
this.publishMessageToHermesKafka(tmfEventPayload);
} catch (ex) {
this._logger.logErr("Publishing message to Hermes Kafka Failed, error is: " + ex);
}
} else if (gs.getProperty(Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION) == Constants.EVENT_PUBLISH_MESSAGE_BUS_CONFIGURATION_VALUES.BOTH_MESSAGE_BUS_CONFIGURATIONS) {
// Publish event in both custom message bus and Hermes Kafka
this.publishEventToOpenMessageBus(tmfEventPayload);
try {
this.publishMessageToHermesKafka(tmfEventPayload);
} catch (ex) {
this._logger.logErr("Publishing message to Hermes Kafka Failed, error is: " + ex);
}
}
return tmfEventPayload;
},