BusinessServiceManager – Global

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 6 Minuten Lesedauer
  • Die BusinessServiceManager- API bietet Methoden, die das Servicemanagement vereinheitlichen, indem manuell erstellte Services in Anwendungsservices konvertiert, Anwendungsservices gefüllt und Konfigurationselemente und Verbindungen hinzugefügt/entfernt werden.

    Verwenden Sie BusinessServiceManager -Methoden in globalen Serverskripts. Sie müssen über die Rolle „Anwendungsservice-Administrator“ [app_service_admin] verfügen, um diese API aufzurufen.

    BusinessServiceManager – BusinessServiceManager()

    Instantiiert ein BusinessServiceManager-Objekt.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Keine
    var bsManager = new SNC.BusinessServiceManager();

    BusinessServiceManager – addCI(String service_id, String source_id, String target_id)

    Fügt einem manuell erstellten Anwendungsservice ein CI hinzu.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    service_id Zeichenfolge Sys_id des Anwendungsservice, dem ein CI hinzugefügt werden soll. Muss vom Typ cmdb_ci_service_discovered sein.
    source_id Zeichenfolge Sys_id des CI, dessen ausgehende Verbindung das Ziel-CI verknüpft.
    target_id Zeichenfolge Sys_id des CI, das dem Service hinzugefügt werden soll. darf kein ausgeschlossenes Element sein. Ausgeschlossene Elemente sind CIs, die in der Tabelle Manuelle CI-Einschlüsse/Ausschlüsse [svc_manual_ci_exclusions_inclusions.list] konfiguriert sind.
    Tabelle : 3. Rückgaben
    Typ Beschreibung
    void
    //Application service is 'PeopleSoft Portals'
    //Source CI is windows server 'PS Apache01'
    //Target CI is 'SAP WEB01'
    
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.addCI('2fce42d80a0a0bb4004af34d7e3984c8','3a27d4370a0a0bb4006316812bf45439', '3a6cadc1c0a8ce01001f1e5d0d7d68fa');

    Fügen Sie einen neuen Einstiegspunkt hinzu

    Verwenden Sie die Methode addCI(), um einem Service einen neuen Einstiegspunkt hinzuzufügen, indem Sie die folgenden Parameterwerte in Ihrer Anforderung angeben:
    • Geben Sie die service_ID wie gewohnt an.
    • Lassen Sie den Wert für „source_ID“ leer. Verwenden Sie beispielsweise „“.
    • Geben Sie für target_ID die Sys-ID des CI ein, unter dem der neue Einstiegspunkt hinzugefügt werden soll.
    Daher erstellt die Methode addCI() einen neuen Einstiegspunkt mit einer Verbindung zum angegebenen Ziel-CI. Im Folgenden finden Sie ein Beispiel für das Hinzufügen eines neuen Einstiegspunkts:
    //Application service sys_id is '49de2b3187cd9d50d5c8a6880cbb35ea' 
    //Source CI is passed as an empty string as '' 
    //Target CI sys id is '15ca5fb187129910d5c8a6880cbb3537'   
    
    var bsManager = new SNC.BusinessServiceManager(); 
    var appService = bsManager.addCI('49de2b3187cd9d50d5c8a6880cbb35ea','', '15ca5fb187129910d5c8a6880cbb3537');

    BusinessServiceManager – addEntryPoint(serviceId, endpointGr)

    Fügt dem Anwendungsservice einen Einstiegspunkt hinzu und startet die Discovery auf dem Einstiegspunkt.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    serviceId Sting Sys_id des Anwendungsservice, dem die Verbindung hinzugefügt werden soll.
    endpointGr Zeichenfolge Glide-Datensatz-Objekt in der CI-Endpunkttabelle [cmdb_ci_endpoint] oder ihrer untergeordneten Tabelle, das dem Anwendungsservice hinzugefügt werden soll.
    Tabelle : 5. Rückgaben
    Typ Beschreibung
    Boolean

    Kennzeichnung, die angibt, dass der Einstiegspunkt dem Anwendungsservice erfolgreich hinzugefügt wurde.

    Mögliche Werte:
    • wahr: Das Hinzufügen war erfolgreich.
    • „falsch“: Das Hinzufügen war nicht erfolgreich.

    Die folgende Methode addEntryPoint() zeigt, wie dem Anwendungsservice ein neuer Einstiegspunkt hinzugefügt wird.

    var now_GR = new GlideRecord("cmdb_ci_endpoint_tcp");
    now_GR.initialize(); 
    now_GR.setValue("host", "10.196.39.251");
    now_GR.setValue("port", "8080");
    now_GR.insert();
    var bsManager = new SNC.BusinessServiceManager();
    var serviceId = "5bf65ebeedb91300964f6fa662989533";
    bsManager.addEntryPoint(serviceId,now_GR);
    

    Ausgabe:

    true

    BusinessServiceManager – addEntryPointWithoutStartDiscovery(serviceId, endpointGr)

    Fügt einen neuen Einstiegspunkt hinzu, ohne Discovery zu starten.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    serviceId Zeichenfolge Sys_id des Anwendungsservice, dem die Verbindung hinzugefügt werden soll.
    endpointGr Zeichenfolge Glide-Datensatz-Objekt in der CI-Endpunkttabelle [cmdb_ci_endpoint] oder ihrer untergeordneten Tabelle, das dem Anwendungsservice hinzugefügt werden soll.
    Tabelle : 7. Rückgaben
    Typ Beschreibung
    Boolean

    Kennzeichnung, die angibt, dass der Einstiegspunkt dem Anwendungsservice erfolgreich hinzugefügt wurde.

    Mögliche Werte:
    • wahr: Das Hinzufügen war erfolgreich.
    • „falsch“: Das Hinzufügen war nicht erfolgreich.

    Das folgende Beispiel zeigt, wie die Methode addEntryPointWithoutStartDiscovery() verwendet wird, um dem Anwendungsservice einen neuen Einstiegspunkt hinzuzufügen, ohne Discovery zu initiieren.

    var now_GR = new GlideRecord("cmdb_ci_endpoint_tcp");
    now_GR.initialize(); 
    now_GR.setValue("host", "10.196.39.251");
    now_GR.setValue("port", "8080");
    now_GR.insert();
    var bsManager = new SNC.BusinessServiceManager();
    var serviceId = "5bf65ebeedb91300964f6fa662989533";
    bsManager.addEntryPointWithoutStartDiscovery(serviceId,now_GR);
    

    Ausgabe:

    true

    BusinessServiceManager – addManualConnection(String source_id, Object manual_endpoint, String service_id)

    Fügt eine manuell erstellte Verbindung zu einem Anwendungsservice hinzu.

    Tabelle : 8. Parameter
    Name Typ Beschreibung
    source_id Zeichenfolge Sys-ID des CI, das der Verbindung hinzugefügt werden soll.
    manual_endpoint Objekt GlideRecord-Objekt in der Tabelle „cmdb_ci_endpoint_manual“, das dem Anwendungsservice hinzugefügt werden soll.
    service_id Zeichenfolge Sys-ID des Anwendungsservice, dem die Verbindung hinzugefügt werden soll.
    Tabelle : 9. Ergebnisse
    Typ Beschreibung
    void
    var now_GR = new GlideRecord("cmdb_ci_endpoint_manual");
    now_GR.initialize(); 
    now_GR.name='myEndpoint'; 
    now_GR.insert();
    
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.addManualConnection("3a307c930a0a0bb400353965d0b8861f", now_GR, "2fce42d80a0a0bb4004af34d7e3984c8");

    BusinessServiceManager – isReadingPermitted(Object GR, Zeichenfolge userSysID)

    Überprüft die Rollen eines angegebenen Anwenders und die Berechtigungsdaten, die für einen bestimmten Service/eine bestimmte Servicegruppe konfiguriert sind, und gibt einen booleschen Wert zurück, der angibt, ob der Anwender den Service/die Servicegruppe anzeigen kann.

    Im Folgenden wird der Prozess-Flow definiert, den die Methode verwendet, um zu bestimmen, ob der Benutzer den Service/die Servicegruppe anzeigen kann:

    1. Wenn der angegebene Datensatz eine Servicegruppe ist, werden die Anwenderrollen und die Gruppenrichtlinie überprüft. Weitere Informationen zu zugewiesenen Rollen für Servicegruppen finden Sie unter Assign a role to a service group.
    2. Wenn die Rollenliste „itil“ enthält, aber nicht „app_service_admin“ und „sam_core_user“, wird „wahr“ zurückgegeben.
    3. Wenn die Rollenliste „maint“ enthält, wird „true“ zurückgegeben.
    4. Wenn die Rollenliste „app_serivce_user“, aber nicht „app_service_admin“ und „sm_app_owner“ enthält und der Service nicht betriebsbereit ist, geben Sie „falsch“ zurück.
    5. Überprüfen Sie die Gruppe des Services.
      1. Wenn der Service zu einer einzelnen Gruppe gehört und die Gruppe „alle“ ist, wird „wahr“ zurückgegeben.
      2. Bei jeder Gruppe, die nicht „alle“ ist, prüft die Richtlinie auf Anwenderrollen und Gruppen basierend auf den in Assign a role to a service groupangegebenen Regeln. Wenn einer von ihnen „wahr“ zurückgibt, geben Sie „wahr“ zurück.
    Tabelle : 10. Parameter
    Name Typ Beschreibung
    gr GlideRecord GlideRecord des Services/der Servicegruppe. Dieser GlideRecord kann aus einer der folgenden Tabellen stammen:
    • Serviceinstanz [cmdb_ci_service_auto]
    • Anwendungsservicegruppe [cmdb_ci_service_group]
    • Dynamische CI-Gruppe [cmdb_ci_query_based_service]
    • Manuelle Services [cmdb_ci_service_manual]
    • Zugeordneter Anwendungsservice [cmdb_ci_service_discovered]
    • Service [cmdb_ci_service]
    userSysId Zeichenfolge Sys_id des Benutzerdatensatzes

    Tabelle: Benutzer [sys_user]

    Tabelle : 11. Rückgaben
    Typ Beschreibung
    Boolean Kennzeichnung, die angibt, ob der Anwender berechtigt ist, den angegebenen Service/die angegebene Servicegruppe anzuzeigen.
    Mögliche Werte:
    • „wahr“: Der Anwender kann den angegebenen Service/die angegebene Servicegruppe anzeigen.
    • „falsch“: Der Anwender kann den angegebenen Service/die angegebene Servicegruppe nicht anzeigen.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird, um die Fähigkeit des angegebenen Benutzers zu überprüfen, auf die angegebene Servicegruppe zuzugreifen.

    var cmdbServGr = new GlideRecord('cmdb_ci_service_discovered');
    cmdbServGr.addQuery('sys_id', "123123123123123123123123");
    cmdbServGr.query();
    var userId = gs.getUserID();
    
    var bsManager = new SNC.BusinessServiceManager();
    while (cmdbServGr.next()) {
      var answer = bsManager.isReadingPermitted(cmdbServGr, userId);
    
      //do something with / according to the answer
    
    }

    BusinessServiceManager – migrateManualToApplicationService(String service_id)

    Konvertiert einen manuellen Service in einen Anwendungsservice.

    Tabelle : 12. Parameter
    Name Typ Beschreibung
    service_id Zeichenfolge Sys-ID des zu konvertierenden manuellen Service.
    Tabelle : 13. Ergebnisse
    Typ Beschreibung
    Boolean True, wenn die Migration in einen Anwendungsservice erfolgreich ist.
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.migrateManualToApplicationService("451047c6c0a8016400de0ae6df9b9d76");

    BusinessServiceManager – populateApplicationService(String service_id, Number levels, String black_listed_relation_types)

    Füllt einen Anwendungsservice mit Beziehungen und CIs vom angegebenen Einstiegspunkt aus.

    Tabelle : 14. Parameter
    Name Typ Beschreibung
    service_id Zeichenfolge Sys-ID des Anwendungsservice zum Auffüllen.
    levels Zahl Anzahl der Ebenen von CIs, die aus der CMDB hinzugefügt werden sollen.
    black_listed_relation_types Zeichenfolge Beziehungstypen, die beim Auffüllen des Anwendungsservice ausgeschlossen werden sollen.
    Tabelle : 15. Ergebnisse
    Typ Beschreibung
    Boolean True, wenn die Operation erfolgreich ist.
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.populateApplicationService("5bf65ebeedb91300964f6fa662989533", 10, "Depends on::Used by");

    BusinessServiceManager – removeCI(String service_id, String target_id)

    Entfernt ein manuell erstelltes CI aus einem Anwendungsservice.

    Tabelle : 16. Parameter
    Name Typ Beschreibung
    service_id Zeichenfolge

    Sys-ID des Anwendungsservice, aus dem ein CI entfernt werden soll.

    Hinweis:
    Die Übergabe eines GlideRecord-Objekts wird ebenfalls unterstützt.
    target_id Zeichenfolge

    Sys-ID des CI, das aus dem Anwendungsservice entfernt werden soll.

    Hinweis:
    Die Übergabe eines GlideRecord-Objekts wird ebenfalls unterstützt.
    Tabelle : 17. Ergebnisse
    Typ Beschreibung
    void
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.removeCI("2fce42d80a0a0bb4004af34d7e3984c8", "3a290cc60a0a0bb400000bdb386af1cf");

    BusinessServiceManager – entfernenEntryPoint(serviceId, endpointSysId)

    Entfernt einen vorhandenen Einstiegspunkt aus dem Anwendungsservice.

    Tabelle : 18. Parameter
    Name Typ Beschreibung
    serviceId Zeichenfolge Sys_id des Anwendungsservice, dem die Verbindung hinzugefügt werden soll.
    endpointSysId Zeichenfolge Sys_id des zu entfernenden Einstiegspunkt-Endpunkts.
    Tabelle : 19. Rückgaben
    Typ Beschreibung
    Boolean

    Kennzeichnung, die angibt, dass der Einstiegspunkt erfolgreich aus dem Anwendungsservice entfernt wurde.

    Mögliche Werte:
    • „wahr“: Das Update war erfolgreich.
    • „falsch“: Das Update war nicht erfolgreich.

    Im folgenden Beispiel wird der Einstiegspunkt, der der Sys_id „aa65ebeedb91300964f6fa6629895ss“ zugeordnet ist, aus dem angegebenen Anwendungsservice entfernt.

    var bsManager = new SNC.BusinessServiceManager();
    var serviceId = "5bf65ebeedb91300964f6fa662989533";
    var entrypointId = “aa65ebeedb91300964f6fa6629895ss”;
    bsManager.removeEntryPoint(serviceId, entrypointId);
    

    Ausgabe:

    true

    BusinessServiceManager – removeManualConnection(String source_id, String endpoint_id, String service_id)

    Entfernt eine manuell erstellte Verbindung und das verbundene CI aus einem Anwendungsservice.

    Tabelle : 20. Parameter
    Name Typ Beschreibung
    source_id Zeichenfolge Sys-ID des mit dem Endpunkt verbundenen CI.
    endpoint_id Zeichenfolge Sys-ID der manuell erstellten Verbindung, die aus dem Anwendungsservice entfernt werden soll
    service_id Zeichenfolge Sys-ID des Anwendungsservice, aus dem die Verbindung entfernt werden soll.
    Tabelle : 21. Ergebnisse
    Typ Beschreibung
    void
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.removeManualConnection("3a307c930a0a0bb400353965d0b8861f", "60ce3176edb91300964f6fa6629895d1", "2fce42d80a0a0bb4004af34d7e3984c8");

    BusinessServiceManager – updateEntryPoint(serviceId, endpointGr)

    Aktualisiert einen vorhandenen Einstiegspunkt im Anwendungsservice.

    Tabelle : 22. Parameter
    Name Typ Beschreibung
    serviceId Zeichenfolge Sys_id des Anwendungsservice, dem die Verbindung hinzugefügt werden soll.
    endpointGr Objekt Glide-Datensatz-Objekt in der CI-Endpunkttabelle [cmdb_ci_endpoint] oder ihrer untergeordneten Tabelle, das dem Anwendungsservice hinzugefügt werden soll.
    Tabelle : 23. Rückgaben
    Typ Beschreibung
    Boolean

    Kennzeichnung, die angibt, dass das Update erfolgreich auf den Einstiegspunkt angewendet wurde.

    Mögliche Werte:
    • „wahr“: Das Update war erfolgreich.
    • „falsch“: Das Update war nicht erfolgreich.

    Das folgende updateEntryPoint()-Beispiel zeigt, wie die Verbindung mit einem neuen Einstiegspunkt aktualisiert wird.

    var now_GR = new GlideRecord("cmdb_ci_endpoint_http");
    now_GR.get(“11f65ebeedb91300964f6fa66298951”);
    now_GR.setValue(“protocol”, “https”);
    var bsManager = new SNC.BusinessServiceManager();
    var serviceId = "5bf65ebeedb91300964f6fa662989533";
    bsManager.updateEntryPoint(serviceId,now_GR);
    

    Ausgabe:

    true