BusinessServiceManager - Global

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 8 min. de leitura
  • A API BusinessServiceManager fornece métodos que unificam a gestão de serviços convertendo serviços criados manualmente em serviços de aplicações, preenchendo serviços de aplicações e adicionando/remover itens de configuração e conexões.

    Use métodos BusinessServiceManager em scripts de servidor global. Você deve ter a função de administrador de serviço de aplicações [app_service_admin] para chamar esta API.

    BusinessServiceManager - BusinessServiceManager()

    Instancia um objeto BusinessServiceManager.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum
    var bsManager = new SNC.BusinessServiceManager();

    BusinessServiceManager - addCI(cadeia de caracteres service_id, cadeia de caracteres source_id, cadeia de caracteres target_id)

    Adiciona um IC a um serviço de aplicativos criado manualmente.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    service_id Cadeia de caracteres Sys_id do serviço de aplicações ao qual um IC será adicionado. Deve ser do tipo cmdb_ci_service_discovered.
    source_id Cadeia de caracteres Sys_id do IC cuja conexão de saída une-se ao IC de destino.
    target_id Cadeia de caracteres Sys_id do IC a ser adicionado ao serviço. Não pode ser um item excluído. Itens excluídos são ICs configurados na tabela Inclusões/exclusões de IC manuais [svc_manual_ci_exclusions_inclusions.list].
    Tabela 3. Retorna
    Tipo Descrição
    vazio
    //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');

    Adicionar um novo ponto de entrada

    Use o método addCI() para adicionar um novo ponto de entrada a um serviço, fornecendo os seguintes valores de parâmetro em sua solicitação:
    • Forneça o service_ID normalmente.
    • Deixe o valor de source_ID em branco. Por exemplo, use ''.
    • Para target_ID, insira o SYS ID do IC sob o qual o novo ponto de entrada será adicionado.
    Como resultado, o método addCI() cria um novo ponto de entrada com uma conexão com o IC de destino especificado. A seguir está um exemplo de como adicionar um novo ponto de entrada:
    //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)

    Adiciona um ponto de entrada ao serviço de aplicativos e inicia a descoberta no ponto de entrada.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    serviceId Sting Sys_id do serviço de aplicativos ao qual a conexão será adicionada.
    endpointGr Cadeia de caracteres Objeto de registro do Glide na tabela Endpoint de IC [cmdb_ci_endpoint] ou sua tabela secundária para adicionar ao serviço de aplicativos.
    Tabela 5. Retorna
    Tipo Descrição
    Booliano

    Sinalizador indicando que o ponto de entrada foi adicionado com sucesso ao serviço de aplicativos.

    Valores possíveis:
    • verdadeiro: a adição foi bem-sucedida.
    • falso: a adição não foi bem-sucedida.

    O método addEntryPoint() a seguir mostra como adicionar um novo ponto de entrada ao serviço de aplicativos.

    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);
    

    Saída:

    true

    BusinessServiceManager - addEntryPointWithoutStartDiscovery(serviceId, endpointGr)

    Adiciona um novo ponto de entrada sem iniciar a descoberta.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    serviceId Cadeia de caracteres Sys_id do serviço de aplicativos ao qual a conexão será adicionada.
    endpointGr Cadeia de caracteres Objeto de registro do Glide na tabela Endpoint de IC [cmdb_ci_endpoint] ou sua tabela secundária para adicionar ao serviço de aplicativos.
    Tabela 7. Retorna
    Tipo Descrição
    Booliano

    Sinalizador indicando que o ponto de entrada foi adicionado com sucesso ao serviço de aplicativos.

    Valores possíveis:
    • verdadeiro: a adição foi bem-sucedida.
    • falso: a adição não foi bem-sucedida.

    O exemplo a seguir mostra como usar o método addEntryPointWithoutStartDiscovery() para adicionar um novo ponto de entrada ao serviço de aplicativos sem iniciar a descoberta.

    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);
    

    Saída:

    true

    BusinessServiceManager - addManualConnection(cadeia de caracteres source_id, objeto manual_endpoint, cadeia de caracteres service_id)

    Adiciona uma conexão criada manualmente a um serviço de aplicativos.

    Tabela 8. Parâmetros
    Nome Tipo Descrição
    source_id Cadeia de caracteres SYS ID do IC a ser adicionado à conexão.
    endpoint_manual Objeto Objeto GlideRecord na tabela cmdb_ci_endpoint_manual a ser adicionado ao serviço de aplicativos.
    service_id Cadeia de caracteres SYS ID do serviço de aplicativos ao qual a conexão será adicionada.
    Tabela 9. Retorna
    Tipo Descrição
    vazio
    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, String userSysID)

    Verifica as funções de um usuário especificado e os dados de permissões configurados para um serviço/grupo de serviços especificado e retorna um valor booliano que indica se o usuário pode exibir o serviço/grupo de serviços.

    O seguinte define o fluxo do processo que o método usa para determinar se o usuário pode exibir o serviço/grupo de serviços:

    1. Se o registro especificado for um grupo de serviço, verificará as funções do usuário e a política de grupo. Para obter mais informações sobre funções atribuídas para grupos de serviço, consulte Assign a role to a service group.
    2. Se a lista de funções contiver "itil", mas não contiver "app_service_admin" e "sam_core_user", retorne verdadeiro.
    3. Se a lista de funções contiver "manutenção", retorne verdadeiro.
    4. Se a lista de funções contiver "app_serivce_user", mas não contiver "app_service_admin" e "sm_app_owner", e o serviço não estiver operacional, retorne falso.
    5. Verifique o grupo do serviço.
      1. Se o serviço pertencer a um único grupo e o grupo for "todos", retorne verdadeiro.
      2. Para qualquer grupo diferente de "todos", verifica a política para funções de usuário e grupo com base nas regras especificadas em Assign a role to a service group. Se algum deles retornar verdadeiro, retorne verdadeiro.
    Tabela 10. Parâmetros
    Nome Tipo Descrição
    gr GlideRecord GlideRecord do serviço/grupo de serviços. Este GlideRecord pode ser de uma das seguintes tabelas:
    • Serviço de aplicações [cmdb_ci_service_auto]
    • Grupo de serviço de aplicações [cmdb_ci_service_group]
    • Grupo de IC dinâmico [cmdb_ci_query_based_service]
    • Serviços manuais [cmdb_ci_service_manual]
    • Serviço de aplicações mapeadas [cmdb_ci_service_discovered]
    • Serviço [cmdb_ci_service]
    userSysId Cadeia de caracteres Sys_id do registro do usuário. Localizado na tabela Usuário [sys_user].
    Tabela 11. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se o usuário tem permissão para exibir o serviço/grupo de serviços especificado.
    Valores possíveis:
    • verdadeiro: o usuário pode exibir o serviço/grupo de serviços especificado.
    • falso: o usuário não pode exibir o serviço/grupo de serviços especificado.

    O exemplo de código a seguir mostra como chamar este método para verificar a capacidade do usuário especificado de acessar o grupo de serviço especificado.

    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(cadeia de caracteres service_id)

    Converte um serviço manual em um serviço de aplicativos.

    Tabela 12. Parâmetros
    Nome Tipo Descrição
    service_id Cadeia de caracteres SYS ID do serviço manual a ser convertido.
    Tabela 13. Retorna
    Tipo Descrição
    Booliano Verdadeiro se a migração para um serviço de aplicativos for bem-sucedida.
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.migrateManualToApplicationService("451047c6c0a8016400de0ae6df9b9d76");

    BusinessServiceManager - populateApplicationService(cadeia de caracteres service_id, níveis de número, cadeia de caracteres black_listed_relation_types)

    Preenche um serviço de aplicativos com relações e ICs do ponto de entrada designado.

    Tabela 14. Parâmetros
    Nome Tipo Descrição
    service_id Cadeia de caracteres SYS ID do serviço de aplicativos a ser preenchido.
    níveis Número Número de níveis de ICs a serem adicionados do CMDB.
    black_listed_relation_types Cadeia de caracteres Tipos de relação a serem excluídos ao preencher o serviço de aplicativos.
    Tabela 15. Retorna
    Tipo Descrição
    Booliano Verdadeiro se a operação for bem-sucedida.
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.populateApplicationService("5bf65ebeedb91300964f6fa662989533", 10, "Depends on::Used by");

    BusinessServiceManager - removeCI(cadeia de caracteres service_id, cadeia de caracteres target_id)

    Remove um IC criado manualmente de um serviço de aplicativos.

    Tabela 16. Parâmetros
    Nome Tipo Descrição
    service_id Cadeia de caracteres

    SYS ID do serviço de aplicativos do qual um IC será removido.

    Nota:
    A passagem de um objeto GlideRecord também é compatível.
    target_id Cadeia de caracteres

    SYS ID do IC a ser removido do serviço de aplicativos.

    Nota:
    A passagem de um objeto GlideRecord também é compatível.
    Tabela 17. Retorna
    Tipo Descrição
    vazio
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.removeCI("2fce42d80a0a0bb4004af34d7e3984c8", "3a290cc60a0a0bb400000bdb386af1cf");

    BusinessServiceManager - removeEntryPoint(serviceId, endpointSysId)

    Remove um ponto de entrada existente do serviço de aplicativos.

    Tabela 18. Parâmetros
    Nome Tipo Descrição
    serviceId Cadeia de caracteres Sys_id do serviço de aplicativos ao qual a conexão será adicionada.
    endpointSysId Cadeia de caracteres Sys_id do endpoint do ponto de entrada a ser removido.
    Tabela 19. Retorna
    Tipo Descrição
    Booliano

    Sinalizador indicando que o ponto de entrada foi removido com sucesso do serviço de aplicativos.

    Valores possíveis:
    • verdadeiro: a atualização foi bem-sucedida.
    • falso: a atualização não foi bem-sucedida.

    O exemplo a seguir remove o ponto de entrada associado ao Sys_id "aa65ebeedb91300964f6fa6629895ss" do serviço de aplicativos fornecido.

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

    Saída:

    true

    BusinessServiceManager - removeManualConnection(cadeia de caracteres source_id, cadeia de caracteres endpoint_id, cadeia de caracteres service_id)

    Remove uma conexão criada manualmente e o IC conectado de um serviço de aplicativos.

    Tabela 20. Parâmetros
    Nome Tipo Descrição
    source_id Cadeia de caracteres SYS ID do IC conectado ao endpoint.
    endpoint_id Cadeia de caracteres SYS ID da conexão criada manualmente a ser removida do serviço de aplicações
    service_id Cadeia de caracteres SYS ID do serviço de aplicativos do qual a conexão será removida.
    Tabela 21. Retorna
    Tipo Descrição
    vazio
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.removeManualConnection("3a307c930a0a0bb400353965d0b8861f", "60ce3176edb91300964f6fa6629895d1", "2fce42d80a0a0bb4004af34d7e3984c8");

    BusinessServiceManager - updateEntryPoint(serviceId, endpointGr)

    Atualiza um ponto de entrada existente no serviço de aplicativos.

    Tabela 22. Parâmetros
    Nome Tipo Descrição
    serviceId Cadeia de caracteres Sys_id do serviço de aplicativos ao qual a conexão será adicionada.
    endpointGr Objeto Objeto de registro do Glide na tabela Endpoint de IC [cmdb_ci_endpoint] ou sua tabela secundária para adicionar ao serviço de aplicativos.
    Tabela 23. Retorna
    Tipo Descrição
    Booliano

    Sinalizador indicando que a atualização foi aplicada com sucesso ao ponto de entrada.

    Valores possíveis:
    • verdadeiro: a atualização foi bem-sucedida.
    • falso: a atualização não foi bem-sucedida.

    O exemplo de updateEntryPoint() a seguir mostra como atualizar a conexão com um novo ponto de entrada.

    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);
    

    Saída:

    true