TopicAPIUtilsOOB – Umfang

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 10 Minuten Lesedauer
  • Die TopicAPIUtilsOOB Die Skripteinbindung stellt Methoden bereit, die bei der Verarbeitung von verwendet werden Ereignismanagement-Thema – API öffnen Endpunkt.

    Wenn Sie die Standardfunktionalität von ändern möchten Ereignismanagement-Thema – API öffnen , Sie müssen die Funktionen in dieser Skripteinbindung in überschreiben TopicAPIUtils Skripteinbindung.

    Diese Skripteinbindung wird in ausgeführt sn_api_notif_mgmt Namespace und erfordert die Rolle sn_api_notif_mgmt.event_mgmt_Integration.

    TopicAPIUtilsOOB – createTopicHelper(Object topicObject, Array-Warnungen)

    Fügt die in übergebenen Informationen ein Ereignismanagement-Thema – API öffnen – POST /sn_api_notif_mgmt/topic Endpunkt in der Tabelle „Thema“ [sn_api_notif_mgmt_topic].

    Wenn Sie diesen Einfügeprozess ändern möchten, müssen Sie diese Methode in überschreiben TopicAPIUtils Skripteinbindung.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    TopicObject Objekt Thema-Nutzlastobjekt an übergeben Ereignismanagement-Thema – API öffnen Endpunkt.
    Zum Beispiel:
    {
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "externalId": "ext001",
      "namespace": "telecomEvents"
    }

    Das Schema dieses Objekts muss mit dem übereinstimmen, was in definiert ist KONSTANTS.SCHEMA.CREATE_TOPIC_SCHEMA Befindet sich in sn_api_notif_mgmt.Konstanten Skripteinbindung.

    Warnungen Array Warnmeldungen, die in zurückgegeben werden sollen Ereignismanagement-Thema – API öffnen Endpunktantwort, wenn die Methode auf ein Problem auf der Ebene „Warnung“ stößt.

    Mit diesem Parameter können Sie Ihrer Implementierung dieses Endpunkts anwenderdefinierte Warnmeldungen hinzufügen.

    Wenn keine zusätzlichen Warnmeldungen vorhanden sind, müssen Sie ein leeres Array übergeben.

    Tabelle : 2. Ausgabe
    Typ Beschreibung
    Objekt Antwortobjekt.
    {
      "contentQuery": "String",
      "eventType": "String",
      "externalId": "String",
      "headerQuery": "String",
      "id": "String",
      "name": "String"
    }

    Details zu diesen Parametern finden Sie in den Rückgabeergebnissen für Ereignismanagement-Thema offen – POST /sn_api_notif_mgmt/topic.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    processTopicCreation: function(topicObject) {
      try {
        var warnings = [];
    
        var schema = this.getCreateTopicSchema();
        if (!this.isValidCreateTopicPayload(topicObject, schema, warnings)) {
          this._logger.logDebug("Create Topic : validation failed");
          return this.response;
        }
        this.createTopicHelper(topicObject, warnings);
        this._logger.logDebug("Create Topic: Topic created succesfully");
      } catch (ex) {
        this._logger.logErr("Create Topic : Process aborted, error is: " + ex);
        var errorObj = this.apiCoreUtil.getErrorObj(sn_tmt_core.Constants.ERROR_CODES.INTERNAL_ERROR, Constants.MESSAGES.TOPIC_CREATE_ERROR, Constants.MESSAGES.TOPIC_CREATE_ERROR);
        var details = [];
        details.push(this.apiCoreUtil.getErrorDetailsObj(ex.message + '', ''));
        errorObj.details = details;
        this.response.details = errorObj;
      }
    
      return this.response;
    },

    TopicAPIUtilsOOB – getCreateTopicSchema()

    Gibt das definierte Schema für die von verwendete Nutzlast zurück Ereignismanagement-Thema – API öffnen – POST /sn_api_notif_mgmt/topic Endpunkt zum Validieren der Themennutzlast.

    Wenn Sie das Schema für die Themennutzlast anpassen möchten, müssen Sie das Standardnutzlastschema überschreiben. Konstanten.SCHEMA , Befindet sich in sn_api_notif_mgmt.Konstanten Skripteinbindung. Dieser Standardwert dieses Schemas ist:
    CREATE_TOPIC_SCHEMA: "{
      \"title\":\"Topic\",
      \"type\":\"object\",
      \"properties\":{
        \"name\":{
          \"type\":\"string\"
        },
        \"contentQuery\":{
          \"type\":\"string\"
        },
        \"headerQuery\":{
          \"type\":\"string\"
        },
        \"namespace\":{
          \"type\":\"string\"
        }
      },
      \"required\":[\"name\"]
    }"
    Tabelle : 3. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Schema für Ereignismanagement-Thema – API öffnen – POST /sn_api_notif_mgmt/topic Endpunktnutzlast. Verwenden Sie dieses Schema, um das mit an den Endpunkt übergebene Schema zu validieren TopicAPIUtilsOOB – isValidCreateTopicPayload(Objekt-topicObject, Zeichenfolgenschema, Array-Warnungen) Methode.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    processTopicCreation: function(topicObject) {
      try {
        var warnings = [];
    
        var schema = this.getCreateTopicSchema();
        if (!this.isValidCreateTopicPayload(topicObject, schema, warnings)) {
          this._logger.logDebug("Create Topic : validation failed");
          return this.response;
        }
        this.createTopicHelper(topicObject, warnings);
        this._logger.logDebug("Create Topic: Topic created succesfully");
      } catch (ex) {
        this._logger.logErr("Create Topic : Process aborted, error is: " + ex);
        var errorObj = this.apiCoreUtil.getErrorObj(sn_tmt_core.Constants.ERROR_CODES.INTERNAL_ERROR, Constants.MESSAGES.TOPIC_CREATE_ERROR, Constants.MESSAGES.TOPIC_CREATE_ERROR);
        var details = [];
        details.push(this.apiCoreUtil.getErrorDetailsObj(ex.message + '', ''));
        errorObj.details = details;
        this.response.details = errorObj;
      }
    
      return this.response;
    },

    TopicAPIUtilsOOB – isValidCreateTopicPayload(Objekt-topicObject, Zeichenfolgenschema, Array-Warnungen)

    Validiert die Nutzlast, die an übergeben wurde Ereignismanagement-Thema – API öffnen – POST /sn_api_notif_mgmt/topic Endpunkt. Diese Validierung wird für den Anforderungstext und das Schema durchgeführt.

    Wenn Sie den Validierungsprozess für die Nutzlast ändern möchten, müssen Sie diese Methode in überschreiben TopicAPIUtils Skripteinbindung.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    TopicObject Objekt Thema-Nutzlastobjekt an übergeben Ereignismanagement-Thema – API öffnen Endpunkt.
    Zum Beispiel:
    {
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "externalId": "ext001",
      "namespace": "telecomEvents"
    }

    Das Schema dieses Objekts muss mit dem übereinstimmen, was in definiert ist KONSTANTS.SCHEMA.CREATE_TOPIC_SCHEMA Befindet sich in sn_api_notif_mgmt.Konstanten Skripteinbindung.

    Schema Zeichenfolge Schema, das zum Validieren der Themennutzlast verwendet werden soll. Verwenden Sie TopicAPIUtilsOOB – getCreateTopicSchema() Methode zum Abrufen dieses Schemas.
    Warnungen Array Warnmeldungen, die in zurückgegeben werden sollen Ereignismanagement-Thema – API öffnen Endpunktantwort, wenn die Methode auf ein Problem auf der Ebene „Warnung“ stößt.

    Mit diesem Parameter können Sie Ihrer Implementierung dieses Endpunkts anwenderdefinierte Warnmeldungen hinzufügen.

    Wenn keine zusätzlichen Warnmeldungen vorhanden sind, müssen Sie ein leeres Array übergeben.

    Tabelle : 6. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die Nutzlast in übergeben wurde topicObjectParameter hat die Validierungen von Schema und Anforderungstext übergeben.
    Gültige Werte:
    • Wahr: Nutzlast ist gültig.
    • Falsch: Nutzlast ist ungültig.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    processTopicCreation: function(topicObject) {
      try {
        var warnings = [];
    
        var schema = this.getCreateTopicSchema();
        if (!this.isValidCreateTopicPayload(topicObject, schema, warnings)) {
          this._logger.logDebug("Create Topic : validation failed");
          return this.response;
        }
        this.createTopicHelper(topicObject, warnings);
        this._logger.logDebug("Create Topic: Topic created succesfully");
      } catch (ex) {
        this._logger.logErr("Create Topic : Process aborted, error is: " + ex);
        var errorObj = this.apiCoreUtil.getErrorObj(sn_tmt_core.Constants.ERROR_CODES.INTERNAL_ERROR, Constants.MESSAGES.TOPIC_CREATE_ERROR, Constants.MESSAGES.TOPIC_CREATE_ERROR);
        var details = [];
        details.push(this.apiCoreUtil.getErrorDetailsObj(ex.message + '', ''));
        errorObj.details = details;
        this.response.details = errorObj;
      }
    
      return this.response;
    },

    TopicAPIUtilsOOB – preareCreateTopicResponse(Object topicObject, String topicSysId, Array-Warnungen)

    Generiert die Antwort und gibt sie an zurück Ereignismanagement-Thema – API öffnen – POST /sn_api_notif_mgmt/topic Endpunktaufruf.

    Wenn Sie das vom zurückgegebene Antwortobjekt anpassen möchten Ereignismanagement-Thema – API öffnen – POST /sn_api_notif_mgmt/topic Endpunkt, Sie müssen diese Methode in überschreiben TopicAPIUtils Skripteinbindung.

    Tabelle : 7. Parameter
    Name Typ Beschreibung
    TopicObject Objekt Thema-Nutzlastobjekt an übergeben Ereignismanagement-Thema – API öffnen Endpunkt.
    Zum Beispiel:
    {
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "externalId": "ext001",
      "namespace": "telecomEvents"
    }

    Das Schema dieses Objekts muss mit dem übereinstimmen, was in definiert ist KONSTANTS.SCHEMA.CREATE_TOPIC_SCHEMA Befindet sich in sn_api_notif_mgmt.Konstanten Skripteinbindung.

    TopicSysId Zeichenfolge SYS_ID des Themas, das als Teil von erstellt wurde Ereignismanagement-Thema – API öffnen – POST /sn_api_notif_mgmt/topic Rufen Sie an.

    Tabelle: Thema [sn_api_notif_mgmt_topic]

    Warnungen Array Warnmeldungen, die in zurückgegeben werden sollen Ereignismanagement-Thema – API öffnen Endpunktantwort, wenn die Methode auf ein Problem auf der Ebene „Warnung“ stößt.

    Mit diesem Parameter können Sie Ihrer Implementierung dieses Endpunkts anwenderdefinierte Warnmeldungen hinzufügen.

    Wenn keine zusätzlichen Warnmeldungen vorhanden sind, müssen Sie ein leeres Array übergeben.

    Tabelle : 8. Rückgaben
    Typ Beschreibung
    Objekt Endpunkt-Antwortobjekt.
    Zum Beispiel:
    
    {
      "externalId": "ext001",
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "namespace": "telecomEvents",
      "id": "7ee9850443c3f550461f99612bb8f223"
    }

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

     createTopicHelper: function(topicObject, warnings) {
      var topicObj = new sn_tmt_core.BaseObject();
      topicObj.setValue('topic_name', topicObject.name);
      if (!gs.nil(topicObject.headerQuery))
        topicObj.setValue('header_query', topicObject.headerQuery);
      if (!gs.nil(topicObject.contentQuery))
        topicObj.setValue('content_query', topicObject.contentQuery);
      if (!gs.nil(topicObject.namespace))
        topicObj.setValue('namespace', topicObject.namespace);
      if (!gs.nil(topicObject.externalId))
        topicObj.setValue('topic_id', topicObject.externalId);
      topicObj.setValue('type', "egress");
      topicObj.setValue('user_created', false);
    
      new TopicUtil().createTopic(topicObj);
    
      // If topic external id is passed by external system, add it in topic id field. This will act as an external id for us.
    
      var topicGr = TopicDAO.getTopicByNameHeaderContentNamespace(topicObject.name, topicObject.headerQuery, topicObject.contentQuery, topicObject.namespace, '');
    
      if (topicGr && topicGr.next())
        var newTopicSysId = topicGr.getValue('sys_id');
    
        this.prepareCreateTopicResponse(topicObject, newTopicSysId, warnings);
        return this.response;
    
    },

    TopicAPIUtilsOOB – processTopicCreation(Object topicObject)

    Verarbeitet die Anforderung von Ereignismanagement-Thema – API öffnen Endpunkt.

    Diese Methode ruft die Hilfsmethoden auf, die für die Dateneinfügung, die Schemavalidierung, die Validierung des Anforderungstexts und die Antwortorchestration erforderlich sind. Überschreiben Sie diese Methode, wenn Sie die grundlegende Verarbeitung von anpassen müssen Ereignismanagement-Thema offen – POST /sn_api_notif_mgmt/topic Anforderung. Andernfalls überschreiben Sie die einzelnen Hilfsmethoden.

    Tabelle : 9. Parameter
    Name Typ Beschreibung
    TopicObject Objekt Thema-Nutzlastobjekt an übergeben Ereignismanagement-Thema – API öffnen Endpunkt.
    Zum Beispiel:
    {
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "externalId": "ext001",
      "namespace": "telecomEvents"
    }

    Das Schema dieses Objekts muss mit dem übereinstimmen, was in definiert ist KONSTANTS.SCHEMA.CREATE_TOPIC_SCHEMA Befindet sich in sn_api_notif_mgmt.Konstanten Skripteinbindung.

    Tabelle : 10. Ausgabe
    Typ Beschreibung
    Objekt Endpunkt-Antwortobjekt.
    Zum Beispiel:
    
    {
      "externalId": "ext001",
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "namespace": "telecomEvents",
      "id": "7ee9850443c3f550461f99612bb8f223"
    }

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    try {
      var topicAPIUtils = new TopicAPIUtils();
      var apiResponse = topicAPIUtils.processTopicCreation(request.body.data);
      response.setStatus(apiResponse.status);
      return tsmOpenAPIUtil.responseBuilder(response, apiResponse.details);
    } 

    TopicAPIUtilsOOB – transformCreateTopicResponse(Object topicObject, String topicSysId)

    Bietet die Möglichkeit, dem an zurückgegebenen Antwortobjekt anwenderdefinierte Daten hinzuzufügen Ereignismanagement-Thema – API öffnen – POST /sn_api_notif_mgmt/topic Endpunkt.

    Um dieses Antwortobjekt anzupassen, überschreiben Sie diese Methode in TopicAPIUtils Skripteinbindung.

    Tabelle : 11. Parameter
    Name Typ Beschreibung
    TopicObject Objekt Thema-Nutzlastobjekt an übergeben Ereignismanagement-Thema – API öffnen Endpunkt.
    Zum Beispiel:
    {
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "externalId": "ext001",
      "namespace": "telecomEvents"
    }

    Das Schema dieses Objekts muss mit dem übereinstimmen, was in definiert ist KONSTANTS.SCHEMA.CREATE_TOPIC_SCHEMA Befindet sich in sn_api_notif_mgmt.Konstanten Skripteinbindung.

    TopicSysId Zeichenfolge SYS_ID des Themas, das als Teil von erstellt wurde Ereignismanagement-Thema – API öffnen – POST /sn_api_notif_mgmt/topic Rufen Sie an. Sie können dem Themenantwortobjekt Informationen aus diesem Datensatz hinzufügen.

    Tabelle: Thema [sn_api_notif_mgmt_topic]

    Tabelle : 12. Rückgaben
    Typ Beschreibung
    Objekt Transformiertes Endpunkt-Antwortobjekt. Dieses Objekt muss TMF688-konform sein.
    Zum Beispiel:
    
    {
      "externalId": "ext001",
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "namespace": "telecomEvents",
      "id": "7ee9850443c3f550461f99612bb8f223"
    }

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    prepareCreateTopicResponse: function(topicObject, topicSysId, warnings) {
      if (!gs.nil(topicSysId)) {
        topicObject.id = topicSysId;
        this.response.status = sn_tmt_core.Constants.STATUS_CODES.CREATED;
        topicObject = this.transformCreateTopicResponse(topicObject, topicSysId); // Customize response payload as per requirement.
        this.response.details = topicObject;
        if (!gs.nil(warnings) && warnings.length > 0) {
          this.response.details.warnings = warnings;
        }
      } else {
        var errorObj = this.apiCoreUtil.getErrorObj(sn_tmt_core.Constants.ERROR_CODES.INTERNAL_ERROR, Constants.MESSAGES.CREATE_TOPIC_ERROR, Constants.MESSAGES.CREATE_TOPIC_ERROR);
        var details = [];
        details.push(this.apiCoreUtil.getErrorDetailsObj(Constants.MESSAGES.CREATE_TOPIC_ERROR, ''));
        errorObj.details = details;
        this.response.details = errorObj;
      }
    },

    Das folgende Codebeispiel zeigt den Code zum Überschreiben der Standardfunktionalität dieser Methode.

    transformCreateTopicResponse: function(topicObject, topicSysId) {
      new sn_tmt_core.BaseAPIUtil().removeNulls(topicObject);
    
      // Add custom attributes to the topicObject
      topicObject.origin = “ServiceNow”,
      topicObject.ServiceId= “service001”,
      return topicObject;
    },

    TopicAPIUtilsOOB – validateTopicAttributes (Objekt topicObject, Array-Details)

    Validiert, ob die Kombination aus Themenname, Header-Abfrage, Content-query und Namespace in übergeben wurde Ereignismanagement-Thema – API öffnen Endpunktnutzlast ist eindeutig.

    Der Endpunkt verwendet diese Attributkombinationen, um zu bestimmen, ob das Thema derzeit in der Tabelle „Thema“ [sn_api_notif_mgmt_topic] vorhanden ist.

    Wenn Sie den Validierungsprozess ändern möchten, müssen Sie diese Methode in überschreiben TopicAPIUtils Skripteinbindung.

    Tabelle : 13. Parameter
    Name Typ Beschreibung
    TopicObject Objekt Thema-Nutzlastobjekt an übergeben Ereignismanagement-Thema – API öffnen Endpunkt.
    Zum Beispiel:
    {
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "externalId": "ext001",
      "namespace": "telecomEvents"
    }

    Das Schema dieses Objekts muss mit dem übereinstimmen, was in definiert ist KONSTANTS.SCHEMA.CREATE_TOPIC_SCHEMA Befindet sich in sn_api_notif_mgmt.Konstanten Skripteinbindung.

    details Array Warnmeldungen, die in zurückgegeben werden sollen Ereignismanagement-Thema – API öffnen Endpunktantwort, wenn die Methode auf ein Problem auf der Ebene „Warnung“ stößt.

    Mit diesem Parameter können Sie Ihrer Implementierung dieses Endpunkts anwenderdefinierte Warnmeldungen hinzufügen.

    Wenn keine zusätzlichen Warnmeldungen vorhanden sind, müssen Sie ein leeres Array übergeben.

    Tabelle : 14. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die Kombination aus Themenname, Header-Abfrage, Content-query und Namespace in übergeben wurde topicObjectParameter ist eindeutig.
    Gültige Werte:
    • Wahr: Parameterkombination ist eindeutig.
    • Falsch: Parameterkombination ist nicht eindeutig.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    isValidCreateTopicPayload: function(topicObject, schema, warnings) {
      var isValidPayload = true;
      var details = [];
      var validationResults = this.jsonSchemaValidation.validateJSON(topicObject, schema, ''); // Schema validation
      var errorObj = this.apiCoreUtil.getErrorObj(sn_tmt_core.Constants.ERROR_CODES.MISSING_BODY_FIELD, sn_tmt_core.Constants.MESSAGES.MISSING_BODY_FIELD, sn_tmt_core.Constants.MESSAGES.MISSING_BODY_FIELD);
    
      if (validationResults.length > 0) {
        if (validationResults[0].message == Constants.PAYLOAD_MISSING) {
          this._logger.logDebug("isValidCreateTopicPayload: Missing request body, invalid payload");
          errorObj = this.apiCoreUtil.getErrorObj(sn_tmt_core.Constants.ERROR_CODES.MISSING_BODY, sn_tmt_core.Constants.MESSAGES.MISSING_BODY, sn_tmt_core.Constants.MESSAGES.MISSING_BODY);
          details.push(this.apiCoreUtil.getErrorDetailsObj(sn_tmt_core.Constants.MESSAGES.MISSING_BODY, ''));
          errorObj.details = details;
          this.response.details = errorObj;
          return false;
        } else {
          for (var i = 0; i < validationResults.length; i++) {
            var missingFieldMsg = sn_tmt_core.Constants.MESSAGES.MISSING_FIELD_KEY;
            var message = validationResults[i].message;
            var errorMessage = '';
            if (message.indexOf('missing') != -1) {
              var newMessage = this.apiCoreUtil.constructErrorMsg(message, validationResults[i].dataPath);
              errorMessage = missingFieldMsg.replace(/\$key/g, newMessage);
            } else {
              errorMessage = message;
            }
            details.push(this.apiCoreUtil.getErrorDetailsObj(errorMessage, validationResults[i].dataPath));
          }
        }
        isValidPayload = false;
      }
      var isValidTopicExternalId = this.validateTopicExternalId(topicObject, details);
      var isValidTopicAttributes = this.validatateTopicAttributes(topicObject, details);
    
      isValidPayload = isValidPayload && isValidTopicExternalId && isValidTopicAttributes;
        if (!isValidPayload) {
          errorObj.details = details;
          this.response.details = errorObj;
        }
        return isValidPayload;
      },

    TopicAPIUtilsOOB – validateTopicExternalId(Objekt topicObject, Array-Details)

    Validiert die externe Thema-ID, die im Anforderungstext von übergeben wurde Ereignismanagement-Thema – API öffnen Endpunkt.

    In der Basisimplementierung wird dadurch nur validiert, dass die externe ID nicht leer ist. Wenn Sie den Validierungsprozess für die externe ID des Themas ändern möchten, müssen Sie diese Methode in überschreiben TopicAPIUtils Skripteinbindung. Die übergebene externe ID wird dem Feld topic_ID in der Tabelle „Thema“ [sn_api_notif_mgmt_topic] zugeordnet.

    Tabelle : 15. Parameter
    Name Typ Beschreibung
    TopicObject Objekt Thema-Nutzlastobjekt an übergeben Ereignismanagement-Thema – API öffnen Endpunkt.
    Zum Beispiel:
    {
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "externalId": "ext001",
      "namespace": "telecomEvents"
    }

    Das Schema dieses Objekts muss mit dem übereinstimmen, was in definiert ist KONSTANTS.SCHEMA.CREATE_TOPIC_SCHEMA Befindet sich in sn_api_notif_mgmt.Konstanten Skripteinbindung.

    details Array Fehler-/Detailnachrichten, die in zurückgegeben werden sollen Ereignismanagement-Thema – API öffnen Endpunktantwort, wenn die Methode auf ein Problem auf der Ebene „Fehler“ stößt.

    Mit diesem Parameter können Sie Ihrer Implementierung dieses Endpunkts anwenderdefinierte Fehlermeldungen hinzufügen.

    Wenn keine zusätzlichen Fehlermeldungen vorhanden sind, müssen Sie ein leeres Array übergeben.

    Tabelle : 16. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob die externe ID in übergeben wurde topicObjectParameter ist gültig.
    Gültige Werte:
    • Wahr: Externe ID ist gültig.
    • Falsch: Externe ID ist ungültig.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    isValidCreateTopicPayload: function(topicObject, schema, warnings) {
      var isValidPayload = true;
      var details = [];
      var validationResults = this.jsonSchemaValidation.validateJSON(topicObject, schema, ''); // Schema validation
      var errorObj = this.apiCoreUtil.getErrorObj(sn_tmt_core.Constants.ERROR_CODES.MISSING_BODY_FIELD, sn_tmt_core.Constants.MESSAGES.MISSING_BODY_FIELD, sn_tmt_core.Constants.MESSAGES.MISSING_BODY_FIELD);
    
      if (validationResults.length > 0) {
        if (validationResults[0].message == Constants.PAYLOAD_MISSING) {
          this._logger.logDebug("isValidCreateTopicPayload: Missing request body, invalid payload");
          errorObj = this.apiCoreUtil.getErrorObj(sn_tmt_core.Constants.ERROR_CODES.MISSING_BODY, sn_tmt_core.Constants.MESSAGES.MISSING_BODY, sn_tmt_core.Constants.MESSAGES.MISSING_BODY);
          details.push(this.apiCoreUtil.getErrorDetailsObj(sn_tmt_core.Constants.MESSAGES.MISSING_BODY, ''));
          errorObj.details = details;
          this.response.details = errorObj;
          return false;
        } else {
          for (var i = 0; i < validationResults.length; i++) {
            var missingFieldMsg = sn_tmt_core.Constants.MESSAGES.MISSING_FIELD_KEY;
            var message = validationResults[i].message;
            var errorMessage = '';
            if (message.indexOf('missing') != -1) {
              var newMessage = this.apiCoreUtil.constructErrorMsg(message, validationResults[i].dataPath);
              errorMessage = missingFieldMsg.replace(/\$key/g, newMessage);
            } else {
              errorMessage = message;
            }
            details.push(this.apiCoreUtil.getErrorDetailsObj(errorMessage, validationResults[i].dataPath));
          }
        }
        isValidPayload = false;
      }
      var isValidTopicExternalId = this.validateTopicExternalId(topicObject, details);
      var isValidTopicAttributes = this.validatateTopicAttributes(topicObject, details);
    
      isValidPayload = isValidPayload && isValidTopicExternalId && isValidTopicAttributes;
        if (!isValidPayload) {
          errorObj.details = details;
          this.response.details = errorObj;
        }
        return isValidPayload;
      },