ThemenanwenderOOB – Umfang

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 6 Minuten Lesedauer
  • Die ThemenanwenderOOB Die Skripteinbindung enthält Funktionen, mit denen Sie Datensätze in der Thementabelle [sn_api_notif_mgmt_topic] abfragen und bearbeiten können. Diese Klasse wird auf der Serviceebene ausgeführt, die mit der Klasse „Datenzugriffsobjekt“ (DAO) interagiert.

    Diese Funktionen werden aufgerufen, wenn Themen Abrufen Schaltfläche ist im Formular „Themen“ ausgewählt. Wenn Sie die Standardfunktionalität dieser Skripteinbindung ändern möchten, müssen Sie die Funktionen in dieser Skripteinbindung in überschreiben ThemenUtil Skripteinbindung.

    Beide Skripts enthalten „Ausführen“ in sn_api_notif_mgmt Namespace.

    Weitere Informationen zu Themen finden Sie unter Handling the external events using Telecommunications API notification.

    TopicUtilOOB – createTopic(Object topicObj)

    Erstellt einen Datensatz in der Thementabelle [sn_api_notif_mgmt_topic] mithilfe von DAO INSERT.

    Normalerweise rufen Sie diese Funktion innerhalb von auf ValidateAndInsertTopic Funktion, die auch verschiedene Validierungen für den Inhalt ausführt.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    TopicObj Objekt Objekt, das die Felder enthält, die im Themendatensatz gespeichert werden sollen. Für die Basisimplementierung hat das Objekt das folgende Format. Wenn Sie die Tabelle „Themen“ ändern oder erweitern, sollte dieses Objekt diese Struktur widerspiegeln. Stellen Sie sicher, dass Sie alle Pflichtfelder einschließen.
    "topicObj": {
      "content_query": "String";
      "description": "String";
      "header_query": "String";
      "namespace": "String";
      "topic_id": "String";
      "topic_name": "String";
      "type": "String";
    }
    Tabelle : 2. Rückgaben
    Typ Beschreibung
    Zeichenfolge SYS_ID des erstellten Themendatensatzes.

    Das folgende Codebeispiel zeigt, wie diese Funktion aufgerufen wird.

    validateAndInsertTopics: function(topicsResponse) {
      if (!gs.nil(topicsResponse)) {
        var topicsArr = topicsResponse.response;
        for (var i = 0; i < topicsArr.length; i++) {
          var name = topicsArr[i].name;
          var headerQuery = topicsArr[i].headerQuery;
          var contentQuery = topicsArr[i].contentQuery;
          var namespace = topicsArr[i].namespace;
          var id = topicsArr[i].id;
          var description = topicsArr[i].description;
          var topicGr = TopicDAO.getTopicByNameHeaderContentNamespace(name, headerQuery, contentQuery, namespace,'');
          if (topicGr && !topicGr.hasNext()) {
            var topicObj = new sn_tmt_core.BaseObject();
            topicObj.setValue('topic_name', name);
            topicObj.setValue('header_query', headerQuery);
            topicObj.setValue('content_query', contentQuery);
            topicObj.setValue('namespace', namespace);
            topicObj.setValue('description', description);
            topicObj.setValue('topic_id', id);
            topicObj.setValue('type', Constants.TYPE_INGRESS);
            this.createTopic(topicObj);
          }
        }
      }
    }

    Das folgende Codebeispiel zeigt, wie diese Funktion überschrieben wird.

    var TopicUtil = Class.create();
    TopicUtil.prototype = 
      Object.extendsObject(TopicUtilOOB, { 
    
      // Define overriding functions here. Pass a topic record object with 
      // values for a single Topic table record.
    
      createTopic: function(topicObj){ 
        return this.topicDAO.create(topicObj); 
      } 
    
      type: TopicUtil 
    
    });

    TopicUtilOOB – getSubFlowName()

    Gibt den Namen des Subflows zurück, der aufgerufen werden soll, um Themen von einem externen System abzurufen.

    Normalerweise wird diese Funktion von aufgerufen TriggerSubflow() Funktion. Dieser Subflow ist dafür verantwortlich, ein externes System zu kontaktieren und alle Themendatensätze abzurufen, die in die Tabelle „Themen“ [sn_api_notif_mgmt_topic] eingefügt werden müssen.

    Der Name des Subflows ist in definiert CONSTANTS.GET_TOPICS_SUBFLOW . Für die Demoimplementierung ist dieser Subflow sn_ind_tmf642.event_alarm_notifications_api Und generiert eine „Mock“-Antwort (ruft kein externes System auf), um die End-to-End-Verarbeitung anzuzeigen.

    Sie können diese Funktionalität ändern, um den Namen Ihres eigenen Subflows einzubeziehen, indem Sie den Namen des Subflows überschreiben, der in ausgeführt werden soll sn_api_notif_mgmt.Constants Skripteinbindung.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 4. Rückgaben
    Typ Beschreibung
    Zeichenfolge Name des Subflows, der zum Abrufen von Themen aus einem externen System verwendet werden soll.

    Das folgende Codebeispiel zeigt, wie diese Funktion überschrieben wird.

    var TopicUtil= Class.create();  
    TopicUtil.prototype = 
      Object.extendsObject(TopicUtilOOB, { 
    
      // Define overriding function here. In TopicUtilOOB it returns the flow name of a GET outbound API call that mocks the GET call.
      // Override this function to return a flow that returns topics from an external system. 
    
      getSubflowName: function(){ 
        return <flow_name>; // Return the name here
      } 
    
      type: TopicUtil 
    
    });

    TopicUtilOOB – triggerSubflow()

    Löst den Subflow aus, der für das Abrufen von Themendatensätzen aus einem externen System verantwortlich ist.

    Diese Funktion wird aufgerufen, wenn der Anwender auswählt Themen Abrufen Schaltfläche im Formular „Themen“.

    Der Name des Subflows, der ausgelöst wird, ist in definiert CONSTANTS.GET_TOPICS_SUBFLOW . Für die Demoimplementierung ist dieser Subflow sn_ind_tmf642.event_alarm_notifications_api Und generiert eine „Mock“-Antwort (ruft kein externes System auf), um die End-to-End-Verarbeitung anzuzeigen.

    Sie müssen diese Funktion ändern, um den Namen Ihres eigenen Subflows einzubeziehen, indem Sie den Namen des Subflows überschreiben, der in ausgeführt werden soll sn_api_notif_mgmt.Constants Skripteinbindung.

    Innerhalb des Subflows müssen Sie einen REST-Schritt, einen Verbindungsalias oder eine andere Implementierung erstellen, um eine Endpunkt-URL bereitzustellen, die Themen aus Ihrem externen Netzwerk abruft. Wenn die Themen von diesem Subflow zurückgegeben werden, rufen Sie auf ValidierenAndInsertThemen Funktion zum Überprüfen der zurückgegebenen Themennutzlast und zum Einfügen/Aktualisieren der Datensätze in die Thementabelle.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 6. Rückgaben
    Typ Beschreibung
    Keine

    Das folgende Codebeispiel zeigt, wie diese Funktion überschrieben wird.

    var TopicUtil = Class.create();
    TopicUtil.prototype = 
      Object.extendsObject(TopicUtilOOB, { 
    
      // Define overriding functions here. Override this function to call your own GET API outbound call subflow.
      triggerSubflow: function(){
        var result =''; // Pass the subflow here 
    
        try {
          var flowOp = sn_fd.FlowAPI.getRunner().subflow(result).inBackground().withInputs().run();
          if (flowOp) { 
            gs.addInfoMessage(gs.getMessage('Please refresh the list to see new Topics.'));
          } 
        } catch (ex) {
          gs.addInfoMessage(gs.getMessage(ex + ' Please check if the trigger is defined and passed correctly')); 
        }
      } 
    
      type: TopicUtil 
    
    });

    TopicUtilOB – validateAndInsertTopics (Array topicsResponse)

    Validiert die übergebene Nutzlast des Themendatensatzes und fügt Datensätze in die Tabelle „Thema“ [sn_api_notif_mgmt_topic} ein, die diese Daten enthält.

    Die übergebene Themennutzlast wird vom „API-Endpunkt ABRUFEN“ abgerufen, der zum Abrufen von Themen aus einem externen System verwendet wird. Weitere Informationen zum Auslösen dieser GET-API finden Sie unter TriggerSubflow() .

    Sie können diese Funktionalität ändern, um Ihre eigenen Validierungsregeln und Themendatensatzfelder einzubeziehen, indem Sie diese Funktion in überschreiben ThemenUtil Skripteinbindung.

    Tabelle : 7. Parameter
    Name Typ Beschreibung
    Themenantwort Array von Objekten Nutzlast des Themendatensatzes, die vom externen System über den API-Endpunkt im Subflow zurückgegeben wird. Diese Nutzlast muss der Struktur der Tabelle „Themen“ [sn_api_notif_mgmt_topic] entsprechen. Jedes Objekt im Array ist ein separates Thema. Beispiel: In der Demoimplementierung ist dies:
    "topicResponse": [
      {
        "name": "String";
        "header_query": "String";
        "content_query": "String";
        "namespace": "String";
        "id": "String";
        "description": "String"
      },
      {
        "name": "String";
        "header_query": "String";
        "content_query": "String";
        "namespace": "String";
        "id": "String";
        "description": "String"
      }
    ]
    Tabelle : 8. Rückgaben
    Typ Beschreibung
    Keine

    Das folgende Codebeispiel zeigt, wie diese Funktion überschrieben wird.

    var TopicUtil= Class.create();  
    TopicUtil.prototype = 
      Object.extendsObject(TopicUtilOOB, { 
    
      // Define overriding functions here. Override this function to include custom 
      // validations on topic payload parameters and insert the record into the Topics table. 
    
      validateInsertTopics: function(topicsResponse){ 
    
        // Provide validation on the passed payload. 
        this.createTopic(topicObj);
      } 
    
    type: TopicUtil 
    
    });

    TopicUtilOOB – verifyTopics (String Topicname, String headerQuery, String contentQuery, String Namespace, String reviousSysId)

    Bestimmt, ob ein anderer Themendatensatz in der Thementabelle [sn_api_notif_mgmt_topic] die angegebene Kombination von Feldern als zusammengesetzten Schlüssel enthält, was auf ein doppeltes Thema hinweist.

    Tabelle : 9. Parameter
    Name Typ Beschreibung
    Themenname Zeichenfolge Name des Themas.
    HeaderQuery Zeichenfolge Filter, der auf den Inhalt der Ereignis-Header-Eigenschaften angewendet werden soll. Diese Abfrage definiert den Typ der Ereignisse, die für das zugehörige Thema abgehört werden sollen. Sie können diesen Parameter als geschachtelte Abfrage übergeben.

    Beispiel: „HeaderQuery“: „EventType=AlarmCreateNotification&Domain=Paris“,

    Weitere Informationen finden Sie unter TMF688 Ereignismanagement-API-Anwenderhandbuch .

    Inhaltsabfrage Zeichenfolge Filter, der auf den Inhalt des Ereignisses angewendet werden soll. Diese Abfrage ist ein tieferer Ereignisfilter, der verwendet wird, um Informationen wie Ereignisschweregrad oder wahrscheinliche Ursache zu finden. Sie können diesen Parameter als geschachtelte Abfrage übergeben.

    Beispiel: „ContentQuery“: „Event.Alarm.cepvedSeverity=CRITICAL“,

    Weitere Informationen finden Sie unter TMF688 Ereignismanagement-API-Anwenderhandbuch .

    namespace Zeichenfolge Namespace, in dem sich das zugeordnete Thema befindet. Themen können nicht innerhalb einer Domäne dupliziert werden, können jedoch in mehreren Domänen enthalten sein.
    Vorherige SysId Zeichenfolge Optional. SYS_ID des zu aktualisierenden Themas. Übergeben Sie diesen Wert nur, wenn Sie ein vorhandenes Thema aktualisieren.
    Tabelle : 10. Rückgaben
    Typ Beschreibung
    Boolean

    Kennzeichnung, die angibt, ob ein anderer Datensatz in der Thementabelle die angegebene Kombination von Feldern enthält.

    Mögliche Werte:
    • Wahr: Ein anderer Datensatz in der Thementabelle enthält die Kombination von Feldern.
    • Falsch: Kein anderer Datensatz in der Thementabelle enthält die Kombination von Feldern.

    Das folgende Codebeispiel zeigt, wie diese Funktion überschrieben wird.

    
    var TopicUtil= Class.create();
    TopicUtil.prototype = 
      Object.extendsObject(TopicUtilOOB, {
    
      // Define overriding functions here. Override this function to provide custom validations on 
      // the passed parameters and to verify whether an insert is possible or not. 
    
      verifyTopics: function(topicname, headerQuery, contentQuery, namespace, previousSysId) { 
    
        // Write modified code here to get any combination of records present in the current Topic table. 
        // In the current implementation, the function checks if there is a duplicate topic record that contains the
        // passed parameters. 
    
      },
    
    type: TopicUtil 
    
    });