CMDBGroupAPI - 범위 지정됨

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기24분
  • CMDBGroupAPI는 그룹에서 작업을 구성 관리 데이터베이스(CMDB) 수행하기 위한 메서드를 제공합니다.

    이 API는 범위가 지정된 정적 클래스입니다. 이 클래스를 사용하려면 CMDBGroupAPI 객체 앞에 sn_cmdbgroup 네임스페이스 식별자를 포함해야 합니다. 예:
    var response = sn_cmdbgroup.CMDBGroupAPI.getManualCIList(groupSysId, false);

    이 API에 액세스하려면 itil 또는 자산 역할이 있어야 합니다.

    CMDBGroupAPI - getAllCI(문자열 groupId, 부울 requireCompleteSet, 부울 requireAllQueryNodesCis)

    지정된 그룹에 대한 모든 CI(구성 항목)를 반환합니다. 결과에는 모든 수동 CI와 쿼리 작성기의 저장된 쿼리의 CI 목록이 포함됩니다.

    표 1. 매개변수
    이름 유형 설명
    groupId 문자열 CMDB(구성 관리 데이터베이스) 그룹의 Sys_id입니다.
    requireCompleteSet 부울 선택 사항이지만 전달된 경우 requireAllQueryNodesCis 전달해야 합니다.

    ACL(접근 제어 목록) 제한에 따라 CI가 필터링되는 경우 빈 문자열이 반환되는지 여부를 나타내는 플래그입니다.

    유효한 값은 다음과 같습니다.
    • true: 빈 문자열을 반환합니다.
    • false: 값을 반환하지 않습니다.

    기본값: false

    requireAllQueryNodesCis 부울 옵션입니다. 쿼리의 모든 CMDB 클래스에서 CI를 반환할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 모든 열에서 CI를 반환합니다.
    • false: 쿼리 작성기 쿼리의 시작 노드에서 나온 CI만 반환합니다.

    기본값: false

    표 2. 반환
    유형 설명
    오류 실패한 작업의 오류 목록입니다.

    데이터 유형: 배열

    "errors": [ 
      {
        "message": "String",
        "error": "String"
      } 
    ]
    오류.오류 오류 이름입니다.
    가능한 값:
    • GROUP_SYS_ID_IS_NOT_FOUND
    • GROUP_SYS_ID_IS_EMPTY
    • FAIL_TO_INSERT_GROUP_CI_PAIR
    • FAIL_TO_INSERT_GROUP_QUERY_ID_PAIR
    • CI_CAN_NOT_FOUND
    • SAVED_QUERY_ID_NOT_FOUND
    • ERROR_DURING_QUERY_BUILDER_PROCESS_QUERY
    • TIMEOUT_DURING_QUERY_BUILDER_PROCESS_QUERY
    • NOT_COMPLETE_DURING_QUERY_BUILDER_PROCESS_QUERY
    • MAX_LIMIT_DURING_QUERY_BUILDER_PROCESS_QUERY
    • GROUP_API_TIMEOUT
    • EXCEPTION_FROM_EXECUTE_QUERY
    • SOME_CI_NOT_VISIBLE_DUE_TO_SECURITY_CONSTRAINT

    데이터 유형: 문자열

    오류.메시지 오류 메시지에 대한 간략한 설명입니다.

    데이터 유형: 문자열

    아이드리스트 CMDB CI sys_ids 목록입니다.

    데이터 유형: 배열

    partialCIListDueToACLFlag 반환된 CI 목록이 ACL 제한으로 인해 불완전한지 여부를 나타내는 플래그입니다.
    주:
    이는 오류 조건으로 간주되지 않으며 해당 오류 정보가 반환되지 않습니다.

    데이터 유형: 부울

    유효한 값은 다음과 같습니다.
    • true: idList 불완전합니다.
    • false: idList 완료입니다.
    결과 메서드가 성공적으로 완료되었는지 여부를 나타내는 플래그입니다.
    가능한 값:
    • true: 성공
    • false: 오류
    // Script example: 
    var getAllCIFunc = function(groupSysId) {
      var parser = new JSONParser();
      var response = sn_cmdbgroup.CMDBGroupAPI.getAllCI(groupSysId, false);
      var parsed = parser.parse(response);
      if (parsed.result) {
        gs.info("succeed to retrieve ci list: " + parsed.idList);
      } else {
        gs.info("fail to retrieve list, errors: " + JSON.stringify(parsed.errors));
      }
    }
    var groupExists = "d0d2d25113152200eef2dd828144b0e4";
    var groupContainsInvalidSavedQuery = "e685a2c3d7012200de92a5f75e610387";
    getAllCIFunc(groupExists);
    getAllCIFunc(groupContainsInvalidSavedQuery);

    출력:

    // Successful response
    {
      'result':true, 
      'partialCIListDueToACLFlag': false,
      'idList':[
        '3a5dd3dbc0a8ce0100655f1ec66ed42c',
        '6b43105c37301000deeabfc8bcbe5db2'
      ] 
    }
    
    // Error response
    { 
      'result':false, 
      'errors':[ 
        {
          'message':'Group does not exist',
          'error':'GROUP_SYS_ID_IS_NOT_FOUND'
        } 
      ], 
      'partialCIListDueToACLFlag':false,
      'idList':[] 
    }

    CMDBGroupAPI - getAllCIFromQueryBuilder(문자열 groupId, 부울 requireCompleteSet, 부울 requireAllQueryNodesCis)

    지정된 그룹에 대해 저장된 모든 쿼리 작성기의 쿼리 ID에서 반환된 모든 구성 항목(CI)을 반환합니다.

    표 3. 매개변수
    이름 유형 설명
    groupId 문자열 CMDB(구성 관리 데이터베이스) 그룹의 Sys_id입니다.
    requireCompleteSet 부울 선택 사항이지만 전달된 경우 requireAllQueryNodesCis 전달해야 합니다.

    ACL(접근 제어 목록) 제한에 따라 CI가 필터링되는 경우 빈 문자열이 반환되는지 여부를 나타내는 플래그입니다.

    유효한 값은 다음과 같습니다.
    • true: 빈 문자열을 반환합니다.
    • false: 값을 반환하지 않습니다.

    기본값: false

    requireAllQueryNodesCis 부울 옵션입니다. 쿼리의 모든 CMDB 클래스에서 CI를 반환할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 모든 열에서 CI를 반환합니다.
    • false: 쿼리 작성기 쿼리의 시작 노드에서 나온 CI만 반환합니다.

    기본값: false

    표 4. 반환
    유형 설명
    오류 실패한 작업의 오류 목록입니다.

    데이터 유형: 배열

    "errors": [ 
      {
        "message": "String",
        "error": "String"
      } 
    ]
    오류.오류 오류 이름입니다.
    가능한 값:
    • GROUP_SYS_ID_IS_NOT_FOUND
    • GROUP_SYS_ID_IS_EMPTY
    • FAIL_TO_INSERT_GROUP_CI_PAIR
    • FAIL_TO_INSERT_GROUP_QUERY_ID_PAIR
    • CI_CAN_NOT_FOUND
    • SAVED_QUERY_ID_NOT_FOUND
    • ERROR_DURING_QUERY_BUILDER_PROCESS_QUERY
    • TIMEOUT_DURING_QUERY_BUILDER_PROCESS_QUERY
    • NOT_COMPLETE_DURING_QUERY_BUILDER_PROCESS_QUERY
    • MAX_LIMIT_DURING_QUERY_BUILDER_PROCESS_QUERY
    • GROUP_API_TIMEOUT
    • EXCEPTION_FROM_EXECUTE_QUERY
    • SOME_CI_NOT_VISIBLE_DUE_TO_SECURITY_CONSTRAINT

    데이터 유형: 문자열

    오류.메시지 오류 메시지에 대한 간략한 설명입니다.

    데이터 유형: 문자열

    아이드리스트 CMDB CI sys_ids 목록입니다.

    데이터 유형: 배열

    partialCIListDueToACLFlag 반환된 CI 목록이 ACL 제한으로 인해 불완전한지 여부를 나타내는 플래그입니다.
    주:
    이는 오류 조건으로 간주되지 않으며 해당 오류 정보가 반환되지 않습니다.

    데이터 유형: 부울

    유효한 값은 다음과 같습니다.
    • true: idList 불완전합니다.
    • false: idList 완료입니다.
    결과 메서드가 성공적으로 완료되었는지 여부를 나타내는 플래그입니다.
    가능한 값:
    • true: 성공
    • false: 오류
    // Script example:
    var getAllCIFromQueryBuilderFunc = function(groupSysId) {
      var parser = new JSONParser();
      var response = sn_cmdbgroup.CMDBGroupAPI.getAllCIFromQueryBuilder(groupSysId, false);
      var parsed = parser.parse(response);
      if (parsed.result) {
        gs.info("succeed to retrieve ci list: " + parsed.idList);
      } else {
        gs.info("fail to retrieve list, errors: " + JSON.stringify(parsed.errors));
      }
    }
    var groupExists = "d0d2d25113152200eef2dd828144b0e4";
    var groupContainsInvalidSavedQuery = "e685a2c3d7012200de92a5f75e610387";
    getAllCIFromQueryBuilderFunc(groupExists);
    getAllCIFromQueryBuilderFunc(groupContainsInvalidSavedQuery);

    출력:

    // Successful response
    {
      'result':true, 
      'partialCIListDueToACLFlag': false,
      'idList':[
        '3a5dd3dbc0a8ce0100655f1ec66ed42c',
        '6b43105c37301000deeabfc8bcbe5db2'
      ] 
    }
    
    // Error response
    { 
      'result':false, 
      'errors':[ 
        {'message':'Group does not exist',
        'error':'GROUP_SYS_ID_IS_NOT_FOUND'} 
      ], 
      'partialCIListDueToACLFlag':false,
      'idList':[] 
    }

    CMDBGroupAPI - getManualCIList(문자열 groupId, 부울 requireCompleteSet)

    CMDB 그룹의 수동 CI 목록을 반환합니다.

    표 5. 매개변수
    이름 유형 설명
    groupId 문자열 CMDB 그룹의 sysId입니다.
    requireCompleteSet 부울 예일 경우 ACL 제한에 따라 필터링된 CI가 있는 경우 오류 문자열을 반환합니다.
    표 6. 반환
    유형 설명
    문자열 형식의 JSON 형식 문자열
    { 'result':false, 
    'errors':[ {'message':'Group does not exist',
                'error':'GROUP_SYS_ID_IS_NOT_FOUND'},
     { } // another error if it exists 
     ], 
    'partialCIListDueToACLFlag':false,
    'idList':['sys_id_1', 'sys_id2'] }
    위치
    • 결과 - 부울 플래그. true일 때는 메서드가 성공한 것입니다.
    • 오류 - 메시지 및 오류 코드가 포함된 오류 목록입니다.
    • partialCIListDueToACLFlag - 부울 플래그입니다. 예일 때는 ACL 제한으로 인해 idList가 불완전합니다. false인 경우 idList가 완료됩니다.
    • idList - cmdb_ci sys_ids의 배열

    성공하지 못하면 GROUP_SYS_ID_IS_NOT_FOUND, GROUP_SYS_ID_IS_EMPTY, FAIL_TO_INSERT_GROUP_CI_PAIR, FAIL_TO_INSERT_GROUP_QUERY_ID_PAIR, CI_CAN_NOT_FOUND, SAVED_QUERY_ID_NOT_FOUND, ERROR_DURING_QUERY_BUILDER_PROCESS_QUERY, TIMEOUT_DURING_QUERY_BUILDER_PROCESS_QUERY, NOT_COMPLETE_DURING_QUERY_BUILDER_PROCESS_QUERY, MAX_LIMIT_DURING_QUERY_BUILDER_PROCESS_QUERY, GROUP_API_TIMEOUT, EXCEPTION_FROM_EXECUTE_QUERY, SOME_CI_NOT_VISIBLE_DUE_TO_SECURITY_CONSTRAINT

    // Script example for requireCompleteSet being false:
        var getManualCIList = function(groupSysId) {
        var parser = new JSONParser();
        var response = sn_cmdbgroup.CMDBGroupAPI.getManualCIList(groupSysId, false);
        var parsed = parser.parse(response);
        if (parsed.result) {
            gs.info("succeed to retrieve ci list: " + parsed.idList);
        } else {
            gs.info("fail to retrieve list, errors: " + JSON.stringify(parsed.errors));
        }
    }
    // create a group in cmdb_group, and add CIs to this group in Edit Manual CI form
    var groupExists = "d0d2d25113152200eef2dd828144b0e4";
    // use a non-exist group
    var groupDoesNotExists = "d0d2d25113152200eef2dd828144b0e4111";
    getManualCIList(groupExists);
    getManualCIList(groupDoesNotExists);
     

    출력: (서식을 위해 줄 바꿈이 추가되었습니다.)

    succeed to retrieve ci 
    list: 6b43105c37301000deeabfc8bcbe5db2,2dfd7c8437201000deeabfc8bcbe5d56
    fail to retrieve list, errors: 
    [{"message":"Group does not exist","error":"GROUP_SYS_ID_IS_NOT_FOUND"}]
    // Script example for requireCompleteSet being true
        var getManualCIList = function(groupSysId) {
        var parser = new JSONParser();
        var response = sn_cmdbgroup.CMDBGroupAPI.getManualCIList(groupSysId, true);
        var parsed = parser.parse(response);
        if (parsed.result) {
            gs.info("succeed to retrieve ci list: " + parsed.idList);
        } else {
            gs.info("fail to retrieve list, errors: " + JSON.stringify(parsed.errors));
        }
    }
    // create a group in cmdb_group, and add CIs to this group in Edit Manual CI form
    var groupExists = "d0d2d25113152200eef2dd828144b0e4";
    getManualCIList(groupExists);

    출력: (서식을 위해 줄 바꿈이 추가되었습니다.)

    fail to retrieve list, errors: 
    [{"message":"Some CI(s) not visible due to security constraint",
    "error":"SOME_CI_NOT_VISIBLE_DUE_TO_SECURITY_CONSTRAINT"}]

    CMDBGroupAPI - getSavedQueryIdList(문자열 groupId, 부울 requireCompleteSet)

    지정된 CMDB 그룹에 대한 쿼리 작성기의 쿼리 ID를 반환합니다.

    표 7. 매개변수
    이름 유형 설명
    groupId 문자열 CMDB 그룹의 sysId입니다.
    requireCompleteSet 부울 예일 경우 ACL 제한에 따라 필터링된 CI가 있는 경우 빈 문자열을 반환합니다.
    표 8. 반환
    유형 설명
    문자열 형식의 JSON 형식 문자열
    { 'result':false, 
    'errors':[ {'message':'Group does not exist',
                'error':'GROUP_SYS_ID_IS_NOT_FOUND'},
     { } // another error if it exists 
     ], 
    'partialCIListDueToACLFlag':false,
    'idList':['sys_id_1', 'sys_id2'] }
    위치
    • 결과 - 부울 플래그. true일 때는 메서드가 성공한 것입니다.
    • 오류 - 메시지 및 오류 코드가 포함된 오류 목록입니다.
    • partialCIListDueToACLFlag - 부울 플래그입니다. 예일 때는 ACL 제한으로 인해 idList가 불완전합니다. false인 경우 idList가 완료됩니다.
    • idList - cmdb_ci sys_ids의 배열

    성공하지 못하면 GROUP_SYS_ID_IS_NOT_FOUND, GROUP_SYS_ID_IS_EMPTY, FAIL_TO_INSERT_GROUP_CI_PAIR, FAIL_TO_INSERT_GROUP_QUERY_ID_PAIR, CI_CAN_NOT_FOUND, SAVED_QUERY_ID_NOT_FOUND, ERROR_DURING_QUERY_BUILDER_PROCESS_QUERY, TIMEOUT_DURING_QUERY_BUILDER_PROCESS_QUERY, NOT_COMPLETE_DURING_QUERY_BUILDER_PROCESS_QUERY, MAX_LIMIT_DURING_QUERY_BUILDER_PROCESS_QUERY, GROUP_API_TIMEOUT, EXCEPTION_FROM_EXECUTE_QUERY, SOME_CI_NOT_VISIBLE_DUE_TO_SECURITY_CONSTRAINT

    // Script example:
    var getSavedQueryIdList = function(groupSysId) {
        var parser = new JSONParser();
        var response = sn_cmdbgroup.CMDBGroupAPI.getSavedQueryIdList(groupSysId, false);
        var parsed = parser.parse(response);
        if (parsed.result) {
            gs.info("succeed to retrieve saved query id list: " + parsed.idList);
        } else {
            gs.info("fail to retrieve list, errors: " + JSON.stringify(parsed.errors));
        }
    }
    var groupExists = "d0d2d25113152200eef2dd828144b0e4";
    var groupDoesNotExists = "d0d2d25113152200eef2dd828144b0e4111";
    getSavedQueryIdList(groupExists);
    getSavedQueryIdList(groupDoesNotExists);

    출력: (서식을 위해 줄 바꿈이 추가되었습니다.)

    succeed to retrieve saved query id list: 5d498532d7c12200de92a5f75e6103ce
    fail to retrieve list, errors:
     [{"message":"Group does not exist","error":"GROUP_SYS_ID_IS_NOT_FOUND"}]

    CMDBGroupAPI - setManualCIList(문자열 groupId, 문자열 ciSysIds)

    지정된 그룹에 대한 수동 CI 목록을 설정합니다. 기존 수동 CI 목록을 덮어씁니다. cmdb_ci 테이블에서 찾을 수 없는 CI sysId는 무시됩니다.

    표 9. 매개변수
    이름 유형 설명
    groupId 문자열 CMDB 그룹의 sysId입니다.
    ciSysIds 문자열 쉼표로 구분된 CI sysId 목록입니다.
    표 10. 반환
    유형 설명
    문자열 형식의 JSON 형식 문자열
    { 'result':false, 
    'errors':[ {'message':'Group does not exist',
                'error':'GROUP_SYS_ID_IS_NOT_FOUND'},
     { } // another error if it exists 
     ], 
    'partialCIListDueToACLFlag':false,
    'idList':['sys_id_1', 'sys_id2'] }
    위치
    • 결과 - 부울 플래그. true일 때는 메서드가 성공한 것입니다.
    • 오류 - 메시지 및 오류 코드가 포함된 오류 목록입니다.
    • partialCIListDueToACLFlag - 부울 플래그입니다. 예일 때는 ACL 제한으로 인해 idList가 불완전합니다. false인 경우 idList가 완료됩니다.
    • idList - cmdb_ci sys_ids의 배열

    성공하지 못하면 GROUP_SYS_ID_IS_NOT_FOUND, GROUP_SYS_ID_IS_EMPTY, FAIL_TO_INSERT_GROUP_CI_PAIR, FAIL_TO_INSERT_GROUP_QUERY_ID_PAIR, CI_CAN_NOT_FOUND, SAVED_QUERY_ID_NOT_FOUND, ERROR_DURING_QUERY_BUILDER_PROCESS_QUERY, TIMEOUT_DURING_QUERY_BUILDER_PROCESS_QUERY, NOT_COMPLETE_DURING_QUERY_BUILDER_PROCESS_QUERY, MAX_LIMIT_DURING_QUERY_BUILDER_PROCESS_QUERY, GROUP_API_TIMEOUT, EXCEPTION_FROM_EXECUTE_QUERY, SOME_CI_NOT_VISIBLE_DUE_TO_SECURITY_CONSTRAINT

    // Script example:
    var setManualCIListFunc = function(groupSysId, manualCIList) {
        var parser = new JSONParser();
        var response = sn_cmdbgroup.CMDBGroupAPI.setManualCIList(groupSysId, manualCIList);
        var parsed = parser.parse(response);
        if (parsed.result) {
            gs.info("succeed to set manual ci list");
        } else {
            gs.info("fail to set manual ci list, errors: " + JSON.stringify(parsed.errors));
        }
    }
    var group = "d0d2d25113152200eef2dd828144b0e4";
    var groupDoesNotExist = "1234";
    var manualCIList = "b4fd7c8437201000deeabfc8bcbe5dc1, affd3c8437201000deeabfc8bcbe5dc3";
    setManualCIListFunc(group, manualCIList);
    setManualCIListFunc(groupDoesNotExist, manualCIList);

    출력: (서식을 위해 줄 바꿈이 추가되었습니다.)

    succeed to set manual ci list
    fail to set manual ci list, errors: [{"message":"Group does not exist","error":
    "GROUP_SYS_ID_IS_NOT_FOUND"}]

    CMDBGroupAPI - setSavedQueryIdList(문자열 groupId, 문자열 queryIds)

    지정된 그룹에 대해 저장된 쿼리 ID 목록을 설정합니다. 기존 쿼리 ID 목록을 덮어씁니다. qb_saved_query 테이블에서 찾을 수 없는 쿼리 sysId는 무시됩니다.

    표 11. 매개변수
    이름 유형 설명
    groupId 문자열 CMDB 그룹의 sysId입니다.
    queryId 문자열 저장된 쿼리 sysId의 쉼표로 구분된 목록입니다.
    표 12. 반환
    유형 설명
    문자열 형식의 JSON 형식 문자열
    { 'result':false, 
    'errors':[ {'message':'Group does not exist',
                'error':'GROUP_SYS_ID_IS_NOT_FOUND'},
     { } // another error if it exists 
     ], 
    'partialCIListDueToACLFlag':false,
    'idList':['sys_id_1', 'sys_id2'] }
    위치
    • 결과 - 부울 플래그. true일 때는 메서드가 성공한 것입니다.
    • 오류 - 메시지 및 오류 코드가 포함된 오류 목록입니다.
    • partialCIListDueToACLFlag - 부울 플래그입니다. 예일 때는 ACL 제한으로 인해 idList가 불완전합니다. false인 경우 idList가 완료됩니다.
    • idList - cmdb_ci sys_ids의 배열

    성공하지 못하면 GROUP_SYS_ID_IS_NOT_FOUND, GROUP_SYS_ID_IS_EMPTY, FAIL_TO_INSERT_GROUP_CI_PAIR, FAIL_TO_INSERT_GROUP_QUERY_ID_PAIR, CI_CAN_NOT_FOUND, SAVED_QUERY_ID_NOT_FOUND, ERROR_DURING_QUERY_BUILDER_PROCESS_QUERY, TIMEOUT_DURING_QUERY_BUILDER_PROCESS_QUERY, NOT_COMPLETE_DURING_QUERY_BUILDER_PROCESS_QUERY, MAX_LIMIT_DURING_QUERY_BUILDER_PROCESS_QUERY, GROUP_API_TIMEOUT, EXCEPTION_FROM_EXECUTE_QUERY, SOME_CI_NOT_VISIBLE_DUE_TO_SECURITY_CONSTRAINT

    // Script example:
    var setSavedQueryIdListFunc = function(groupSysId, queryIdList) {
        var parser = new JSONParser();
        var response = sn_cmdbgroup.CMDBGroupAPI.setSavedQueryIdList(groupSysId, queryIdList);
        var parsed = parser.parse(response);
        if (parsed.result) {
            gs.info("succeed to set saved query id list");
        } else {
            gs.info("fail to set saved query id list, errors: " + JSON.stringify(parsed.errors));
        }
    }
    var group = "d0d2d25113152200eef2dd828144b0e4";
    var savedQueryBuilderIdList = "394585fed7812200de92a5f75e6103e8";
    var savedQueryBuilderIdNotExistList = "b4fd7c8437201000deeabfc8bcbe5dc1,
       affd3c8437201000deeabfc8bcbe5dc3";
     
    setSavedQueryIdListFunc(group, savedQueryBuilderIdList);
    setSavedQueryIdListFunc(group, savedQueryBuilderIdNotExistList);
    

    출력: (서식을 위해 줄 바꿈이 추가되었습니다.)

    succeed to set saved query id list
    fail to set saved query id list, errors: [{"message":
    "Saved query id(b4fd7c8437201000deeabfc8bcbe5dc1) is not found for 
    group(d0d2d25113152200eef2dd828144b0e4)","error":
    "SAVED_QUERY_ID_NOT_FOUND"},{"message":
    "Saved query id(affd3c8437201000deeabfc8bcbe5dc3) is not found for 
    group(d0d2d25113152200eef2dd828144b0e4)","error":"SAVED_QUERY_ID_NOT_FOUND"}]