프로젝트 포트폴리오 관리 API

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기7분
  • 프로젝트 포트폴리오 관리 API는 비용 계획 및 프로젝트 작업을 대량으로 임포트할 수 있는 엔드포인트를 제공합니다.

    이 API에 액세스하려면 PPM Standard 플러그인(com.snc.financial_planning_pmo)이 필요합니다. 호출하는 사용자에게 it_project_manager 역할이 있어야 합니다.

    이 API는 now 네임스페이스 내에서 제공됩니다.

    프로젝트 포트폴리오 관리 - POST /now/ppm/insert_cost_plans

    비용 계획 [cost_plan] 테이블에 비용 계획을 생성합니다.

    URL 형식

    기본 URL: /api/now/ppm/insert_cost_plans

    지원되는 요청 매개변수

    표 1. 경로 매개변수
    이름 설명
    없음
    표 2. 쿼리 매개변수
    이름 설명
    없음
    표 3. 요청 본문 매개변수(JSON)
    이름 설명
    end_fiscal_period 필수 비용 계획의 종료 회계 기간 Sys_id입니다. 회계 기간 [fiscal_period] 테이블에 위치합니다.

    데이터 유형: 문자열

    이름 필수 비용 계획의 이름입니다.

    데이터 유형: 문자열

    resource_type 필수 자원 유형의 Sys_id입니다. 자원 유형 정의 [resource_type_definition] 테이블에 있습니다.

    데이터 유형: 문자열

    start_fiscal_period 필수 비용 계획의 시작 회계 기간 Sys_id입니다. 회계 기간 [fiscal_period] 테이블에 위치합니다.

    데이터 유형: 문자열

    작업 필수 비용 계획에 대한 프로젝트 또는 요구의 Sys_id입니다. 프로젝트 [pm_project] 또는 요구 [dmn_demand] 테이블에 있습니다.

    데이터 유형: 문자열

    unit_cost 필수 비용 계획의 단가입니다.

    데이터 유형: 문자열

    헤더

    다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 이 작업에 고유한 방식으로 적용됩니다. REST API에서 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하세요.

    표 4. 요청 헤더
    헤더 설명
    수용 응답 본문의 데이터 형식입니다. application/json만 지원합니다.
    컨텐츠-형식 요청 본문의 데이터 형식입니다. application/json만 지원합니다.
    표 5. 응답 헤더
    헤더 설명
    없음

    상태 코드

    다음 상태 코드는 이 HTTP 작업에 적용됩니다. REST API에서 사용할 수 있는 상태 코드 목록은 REST API HTTP 응답 코드를 참조하세요.

    표 6. 상태 코드
    상태 코드 설명
    200 성공입니다. 요청이 성공적으로 처리되었습니다.
    401 승인되지 않았습니다. 사용자 자격 증명이 잘못되었거나 전달되지 않았습니다.

    응답 본문 매개변수(JSON)

    이름 설명
    결과 API 요청 상태에 대한 정보를 포함하는 객체입니다.

    데이터 유형: 객체

    "result": {
       "status": "String"
    }
    결과.상태 API 요청의 상태입니다.

    데이터 유형: 문자열

    cURL 요청

    이 예에서는 두 개의 비용 계획을 임포트합니다.

    curl "https://instance.servicenow.com/api/now/ppm/insert_cost_plans" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "[
       {
          "name": "Cost plan 1",
          "resource_type": "3d16eaf79330120064f572edb67ffb04",
          "start_fiscal_period": "ed47e5d90b3010108d9ac74363673a98",
          "end_fiscal_period": "0a47e5d90b3010108d9ac74363673afd",
          "task": "0fc9f992db601810852ca6dc13961951",
          "unit_cost": 1200
       },
       {
          "name": "Cost plan 2",
          "resource_type": "3d16eaf79330120064f572edb67ffb04",
          "start_fiscal_period": "ed47e5d90b3010108d9ac74363673a98",
          "end_fiscal_period": "7947e5d90b3010108d9ac74363673ac9",
          "task": "0fc9f992db601810852ca6dc13961951",
          "unit_cost": 3600
       }
    ]" \
    --user 'username':'password'

    응답 본문입니다.

    {
       "result": {
          "status": "success"
       }
    }

    프로젝트 포트폴리오 관리 - POST /now/ppm/insert_project_tasks

    프로젝트 및 관련 프로젝트 작업을 만듭니다.

    프로젝트는 프로젝트 [pm_project] 테이블에 생성되고 프로젝트 작업은 프로젝트 작업 [pm_project_task] 테이블에 생성됩니다.

    URL 형식

    기본 URL: /api/now/ppm/insert_project_tasks

    지원되는 요청 매개변수

    표 7. 경로 매개변수
    이름 설명
    없음
    표 8. 쿼리 매개변수
    이름 설명
    없음
    표 9. 요청 본문 매개변수(JSON)
    이름 설명
    child_tasks 프로젝트의 작업 배열입니다. 각 작업은 배열의 개체입니다.

    데이터 유형: 배열

    "child_tasks": [
       {
          "child_tasks": [Array],
          "external_id": "String",
          "short_description": "String" 
       }
    ]
    child_tasks.child_tasks 상위 작업의 하위 작업 배열입니다. 각 하위 작업은 배열의 개체입니다. 각 하위 작업에는 고유한 하위 작업 배열이 있을 수 있습니다.

    데이터 유형: 배열

    "child_tasks": [
       {
          "child_tasks": [Array],
          "external_id": "String",
          "short_description": "String" 
       }
    ]
    child_tasks.external_id입니다. 외부 시스템에서 작업의 고유 식별자입니다.

    데이터 유형: 문자열

    child_tasks.short_description 작업에 대한 간단한 설명입니다.

    데이터 유형: 문자열

    end_date 프로젝트의 종료 날짜입니다.

    데이터 유형: 문자열

    external_id 외부 시스템에서 가져온 프로젝트의 고유 식별자입니다.

    데이터 유형: 문자열

    short_description 프로젝트의 간단한 설명

    데이터 유형: 문자열

    start_date 프로젝트의 시작 날짜입니다.

    데이터 유형: 문자열

    헤더

    다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 이 작업에 고유한 방식으로 적용됩니다. REST API에서 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하세요.

    표 10. 요청 헤더
    헤더 설명
    수용 응답 본문의 데이터 형식입니다. application/json만 지원합니다.
    컨텐츠-형식 요청 본문의 데이터 형식입니다. application/json만 지원합니다.
    표 11. 응답 헤더
    헤더 설명
    없음

    상태 코드

    다음 상태 코드는 이 HTTP 작업에 적용됩니다. REST API에서 사용할 수 있는 상태 코드 목록은 REST API HTTP 응답 코드를 참조하세요.

    표 12. 상태 코드
    상태 코드 설명
    200 성공입니다. 요청이 성공적으로 처리되었습니다.
    401 승인되지 않았습니다. 사용자 자격 증명이 잘못되었거나 전달되지 않았습니다.

    응답 본문 매개변수(JSON)

    이름 설명
    결과 API 요청 상태에 대한 정보를 포함하는 객체입니다.

    데이터 유형: 객체

    "result": {
       "status": "String"
    }
    결과.상태 API 요청의 상태입니다.

    데이터 유형: 문자열

    cURL 요청

    이 예제에서는 두 개의 작업(zpq_T1 및 zpq_T2)이 있는 프로젝트를 가져옵니다. 첫 번째 작업에는 여러 하위 작업이 포함되며 두 번째 작업에는 첫 번째 작업의 하위 작업에 대한 종속성이 있습니다.

    curl "https://instance.servicenow.com/api/now/ppm/insert_project_tasks" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
       "start_date": "2022-05-18 08:00:00",
       "end_date": "2022-05-18 17:00:00",
       "short_description": "zpq_Project",
       "external_id": "0",
       "child_tasks": [
          {
             "short_description": "zpq_T1",
             "external_id": "1",
             "child_tasks": [
                {
                   "external_id": "1.1",
                   "short_description": "zpq_T11",
                   "child_tasks": [
                      {
                         "external_id": "1.1.1",
                         "short_description": "zpq_T111"
                      }
                   ]
                },
                {
                   "external_id": "1.2",
                   "short_description": "zpq_T12"
                }
             ]
          },
          {
             "short_description": "zpq_T2",
             "external_id": "2",
             "dependencies": [
                {
                   "external_id": "1.1",
                   "lag": -1,
                   "type": "fs"
                },
                {
                   "external_id": "1.2",
                   "lag": 2,
                   "type": "fs"
                }
             ]
          }
       ]
    }" \
    --user 'username':'password'

    응답 본문입니다.

    {
       "result": {
          "status": "success"
       }
    }