BusinessServiceManager - 전역

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기15분
  • BusinessServiceManager API는 수동으로 만든 서비스를 애플리케이션 서비스로 변환하고, 애플리케이션 서비스를 채우고, 구성 항목 및 연결을 추가/제거하여 서비스 관리를 통합하는 메서드를 제공합니다.

    전역 서버 스크립트에서 BusinessServiceManager 메서드를 사용합니다. 이 API를 호출하려면 애플리케이션 서비스 관리자 [app_service_admin] 역할이 있어야 합니다.

    BusinessServiceManager - BusinessServiceManager()

    BusinessServiceManager 객체를 인스턴스화합니다.

    표 1. 매개변수
    이름 유형 설명
    없음
    var bsManager = new SNC.BusinessServiceManager();

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

    수동으로 만든 애플리케이션 서비스에 CI를 추가합니다.

    표 2. 매개변수
    이름 유형 설명
    service_id 문자열 CI를 추가할 애플리케이션 서비스의 Sys_id입니다. cmdb_ci_service_discovered 형식이어야 합니다.
    source_id 문자열 발신 연결이 대상 CI에 조인하는 CI의 Sys_id입니다.
    target_id 문자열 서비스에 추가할 CI의 Sys_id입니다. 제외된 항목이 될 수 없습니다. 제외 항목은 수동 CI 포함/제외 [svc_manual_ci_exclusions_inclusions.list] 테이블에 구성된 CI입니다.
    표 3. 반환
    유형 설명
    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');

    새 엔트리포인트 추가

    addCI() 메서드를 사용하여 요청에 다음 매개 변수 값을 제공하여 서비스에 새 진입점을 추가합니다.
    • service_ID 정상적으로 제공합니다.
    • source_ID 값은 비워 둡니다. 예를 들어, ''를 사용합니다.
    • target_ID의 경우 새 엔트리포인트를 추가할 CI의 시스템 ID를 입력합니다.
    따라서 addCI() 메서드는 지정된 대상 CI에 대한 연결을 사용하여 새 진입점을 만듭니다. 다음은 새 엔트리포인트를 추가하는 방법의 예입니다.
    //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)

    애플리케이션 서비스에 엔트리포인트를 추가하고 엔트리포인트에서 검색을 시작합니다.

    표 4. 매개변수
    이름 유형 설명
    serviceId 찌르다 연결을 추가할 애플리케이션 서비스의 Sys_id입니다.
    엔드포인트GR 문자열 애플리케이션 서비스에 추가할 CI 엔드포인트 [cmdb_ci_endpoint] 테이블 또는 해당 하위 테이블의 Glide 기록 객체입니다.
    표 5. 반환
    유형 설명
    부울

    엔트리포인트가 애플리케이션 서비스에 성공적으로 추가되었음을 나타내는 플래그입니다.

    가능한 값:
    • true: 추가에 성공했습니다.
    • false: 추가에 성공하지 못했습니다.

    다음 addEntryPoint() 메서드는 애플리케이션 서비스에 새 진입점을 추가하는 방법을 보여줍니다.

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

    출력:

    true

    BusinessServiceManager - addEntryPointWithoutStartDiscovery(serviceId, endpointGr)

    검색을 시작하지 않고 새 엔트리포인트를 추가합니다.

    표 6. 매개변수
    이름 유형 설명
    serviceId 문자열 연결을 추가할 애플리케이션 서비스의 Sys_id입니다.
    엔드포인트GR 문자열 애플리케이션 서비스에 추가할 CI 엔드포인트 [cmdb_ci_endpoint] 테이블 또는 해당 하위 테이블의 Glide 기록 객체입니다.
    표 7. 반환
    유형 설명
    부울

    엔트리포인트가 애플리케이션 서비스에 성공적으로 추가되었음을 나타내는 플래그입니다.

    가능한 값:
    • true: 추가에 성공했습니다.
    • false: 추가에 성공하지 못했습니다.

    다음 예제는 addEntryPointWithoutStartDiscovery() 메소드를 사용하여 검색을 시작하지 않고 애플리케이션 서비스에 새 엔트리포인트를 추가하는 방법을 보여줍니다.

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

    출력:

    true

    BusinessServiceManager - addManualConnection(문자열 source_id, 개체 manual_endpoint, 문자열 service_id)

    수동으로 만든 연결을 애플리케이션 서비스에 추가합니다.

    표 8. 매개변수
    이름 유형 설명
    source_id 문자열 연결에 추가할 CI의 시스템 ID입니다.
    manual_endpoint 객체 애플리케이션 서비스에 추가할 cmdb_ci_endpoint_manual 테이블의 GlideRecord 객체입니다.
    service_id 문자열 연결을 추가할 애플리케이션 서비스의 시스템 ID입니다.
    표 9. 반환
    유형 설명
    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, String userSysID)

    지정된 사용자의 역할과 지정된 서비스/서비스 그룹에 대해 구성된 권한 데이터를 확인하고 사용자가 서비스/서비스 그룹을 볼 수 있는지 여부를 나타내는 부울 값을 반환합니다.

    다음은 메서드가 사용자가 서비스/서비스 그룹을 볼 수 있는지 여부를 결정하는 데 사용하는 프로세스 흐름을 정의합니다.

    1. 지정된 기록이 서비스 그룹인 경우 사용자 역할 및 그룹 정책을 확인합니다. 서비스 그룹에 할당된 역할에 대한 자세한 내용은 다음 문서를 참조하십시오 Assign a role to a service group.
    2. 역할 목록에 "itil"이 포함되어 있지만 "app_service_admin" 및 "sam_core_user"가 포함되어 있지 않으면 true를 반환합니다.
    3. 역할 목록에 "maint"가 포함되어 있으면 true를 반환합니다.
    4. 역할 목록에 "app_serivce_user"가 포함되어 있지만 "app_service_admin" 및 "sm_app_owner"가 포함되어 있지 않고 서비스가 작동하지 않는 경우 false를 반환합니다.
    5. 서비스 그룹을 확인합니다.
      1. 서비스가 단일 그룹에 속하고 그룹이 "모두"인 경우 true를 반환합니다.
      2. "모든" 그룹이 아닌 경우 에 Assign a role to a service group지정된 규칙에 따라 사용자 역할 및 그룹에 대한 정책을 확인합니다. 그 중 하나라도 true를 반환하면 true를 반환합니다.
    표 10. 매개변수
    이름 유형 설명
    gr GlideRecord 서비스/서비스 그룹의 GlideRecord입니다. 이 GlideRecord는 다음 테이블 중 하나에서 가져올 수 있습니다.
    • 애플리케이션 서비스 [cmdb_ci_service_auto]
    • 애플리케이션 서비스 그룹 [cmdb_ci_service_group]
    • 동적 CI 그룹 [cmdb_ci_query_based_service]
    • 수동 서비스 [cmdb_ci_service_manual]
    • 매핑된 애플리케이션 서비스 [cmdb_ci_service_discovered]
    • 서비스 [cmdb_ci_service]
    userSysId 문자열 사용자 기록의 sys_id입니다. 사용자 [sys_user] 테이블에 있습니다.
    표 11. 반환
    유형 설명
    부울 사용자에게 지정된 서비스/서비스 그룹을 볼 수 있는 권한이 있는지 여부를 나타내는 플래그입니다.
    가능한 값:
    • true: 사용자가 지정된 서비스/서비스 그룹을 볼 수 있습니다.
    • false: 사용자가 지정된 서비스/서비스 그룹을 볼 수 없습니다.

    다음 코드 예제에서는 이 메서드를 호출하여 지정된 사용자가 지정된 서비스 그룹에 액세스할 수 있는지 확인하는 방법을 보여 줍니다.

    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(문자열 service_id)

    수동 서비스를 애플리케이션 서비스로 변환합니다.

    표 12. 매개변수
    이름 유형 설명
    service_id 문자열 변환할 수동 서비스의 시스템 ID입니다.
    표 13. 반환
    유형 설명
    부울 애플리케이션 서비스로의 마이그레이션이 성공하면 True입니다.
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.migrateManualToApplicationService("451047c6c0a8016400de0ae6df9b9d76");

    BusinessServiceManager - populateApplicationService(문자열 service_id, 숫자 수준, 문자열 black_listed_relation_types)

    지정된 엔트리포인트에서 관계 및 CI로 애플리케이션 서비스를 채웁니다.

    표 14. 매개변수
    이름 유형 설명
    service_id 문자열 채울 애플리케이션 서비스의 시스템 ID입니다.
    수준 번호 CMDB에서 추가할 CI 수준의 수입니다.
    black_listed_relation_types 문자열 애플리케이션 서비스를 채울 때 제외할 관계 유형입니다.
    표 15. 반환
    유형 설명
    부울 작업이 성공하면 True입니다.
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.populateApplicationService("5bf65ebeedb91300964f6fa662989533", 10, "Depends on::Used by");

    BusinessServiceManager - removeCI(문자열 service_id, 문자열 target_id)

    애플리케이션 서비스에서 수동으로 만든 CI를 제거합니다.

    표 16. 매개변수
    이름 유형 설명
    service_id 문자열

    CI를 제거할 애플리케이션 서비스의 시스템 ID입니다.

    주:
    GlideRecord 객체 전달도 지원됩니다.
    target_id 문자열

    애플리케이션 서비스에서 제거할 CI의 시스템 ID입니다.

    주:
    GlideRecord 객체 전달도 지원됩니다.
    표 17. 반환
    유형 설명
    void
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.removeCI("2fce42d80a0a0bb4004af34d7e3984c8", "3a290cc60a0a0bb400000bdb386af1cf");

    BusinessServiceManager - removeEntryPoint(serviceId, endpointSysId)

    애플리케이션 서비스에서 기존 엔트리포인트를 제거합니다.

    표 18. 매개변수
    이름 유형 설명
    serviceId 문자열 연결을 추가할 애플리케이션 서비스의 Sys_id입니다.
    엔드포인트 시스템 ID 문자열 제거할 엔트리포인트 엔드포인트의 Sys_id입니다.
    표 19. 반환
    유형 설명
    부울

    엔트리포인트가 애플리케이션 서비스에서 성공적으로 제거되었음을 나타내는 플래그입니다.

    가능한 값:
    • true: 업데이트에 성공했습니다.
    • false: 업데이트에 실패했습니다.

    다음 예Sys_id "aa65ebeedb91300964f6fa6629895ss"와 연결된 엔트리포인트를 지정된 애플리케이션 서비스에서 제거합니다.

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

    출력:

    true

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

    수동으로 생성된 연결과 연결된 CI를 애플리케이션 서비스에서 제거합니다.

    표 20. 매개변수
    이름 유형 설명
    source_id 문자열 엔드포인트에 연결된 CI의 시스템 ID입니다.
    endpoint_id 문자열 애플리케이션 서비스에서 제거할 수동으로 작성된 연결의 시스템 ID
    service_id 문자열 연결을 제거할 애플리케이션 서비스의 시스템 ID입니다.
    표 21. 반환
    유형 설명
    void
    var bsManager = new SNC.BusinessServiceManager();
    var appService = bsManager.removeManualConnection("3a307c930a0a0bb400353965d0b8861f", "60ce3176edb91300964f6fa6629895d1", "2fce42d80a0a0bb4004af34d7e3984c8");

    BusinessServiceManager - updateEntryPoint(serviceId, endpointGr)

    애플리케이션 서비스의 기존 엔트리포인트를 업데이트합니다.

    표 22. 매개변수
    이름 유형 설명
    serviceId 문자열 연결을 추가할 애플리케이션 서비스의 Sys_id입니다.
    엔드포인트GR 객체 애플리케이션 서비스에 추가할 CI 엔드포인트 [cmdb_ci_endpoint] 테이블 또는 해당 하위 테이블의 Glide 기록 객체입니다.
    표 23. 반환
    유형 설명
    부울

    업데이트가 엔트리포인트에 성공적으로 적용되었음을 나타내는 플래그입니다.

    가능한 값:
    • true: 업데이트에 성공했습니다.
    • false: 업데이트에 실패했습니다.

    다음 updateEntryPoint() 예제에서는 새 진입점으로 연결을 업데이트하는 방법을 보여 줍니다.

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

    출력:

    true