프로젝트 포트폴리오 관리 API
Project Portfolio Management 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
지원되는 요청 매개변수
| 이름 | 설명 |
|---|---|
| 없음 |
| 이름 | 설명 |
|---|---|
| 안 함 |
| 이름 | 설명 |
|---|---|
| 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 헤더를 참조하세요.
| 헤더 | 설명 |
|---|---|
| 수용 | 응답 본문의 데이터 형식입니다. application/json만 지원합니다. |
| 컨텐츠-형식 | 요청 본문의 데이터 형식입니다. application/json만 지원합니다. |
| 헤더 | 설명 |
|---|---|
| 없음 |
상태 코드
다음 상태 코드는 이 HTTP 작업에 적용됩니다. REST API에서 사용되는 가능한 상태 코드 목록은 REST API HTTP 응답 코드를 참조하세요.
| 상태 코드 | 설명 |
|---|---|
| 200 | 성공입니다. 요청이 성공적으로 처리되었습니다. |
| 401 | 승인되지 않았습니다. 사용자 자격 증명이 잘못되었거나 전달되지 않았습니다. |
응답 본문 매개변수(JSON)
| 이름 | 설명 |
|---|---|
| 결과 | API 요청의 상태에 대한 정보를 포함하는 객체입니다. 데이터 유형: 객체 |
| 결과.상태 | 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"
}
}
Project Portfolio Management - POST /now/ppm/insert_project_tasks
프로젝트 및 관련 프로젝트 작업을 작성합니다.
프로젝트는 프로젝트 [pm_project] 테이블에 만들어지고 프로젝트 작업은 프로젝트 작업 [pm_project_task] 테이블에 만들어집니다.
URL 형식
기본 URL: /api/now/ppm/insert_project_tasks
지원되는 요청 매개변수
| 이름 | 설명 |
|---|---|
| 없음 |
| 이름 | 설명 |
|---|---|
| 안 함 |
| 이름 | 설명 |
|---|---|
| child_tasks | 프로젝트의 작업 배열입니다. 각 작업은 배열의 객체입니다. 데이터 유형: 배열 |
| child_tasks.child_tasks | 상위 작업의 하위 작업 배열입니다. 각 하위 작업은 배열의 객체입니다. 각 하위 작업에는 고유한 하위 작업 배열이 있을 수 있습니다. 데이터 유형: 배열 |
| child_tasks.external_id | 외부 시스템의 작업 고유 식별자입니다. 데이터 유형: 문자열 |
| child_tasks.short_description | 작업에 대한 간단한 설명입니다. 데이터 유형: 문자열 |
| end_date | 프로젝트의 종료 날짜입니다. 데이터 유형: 문자열 |
| external_id | 외부 시스템에서 프로젝트의 고유 식별자입니다. 데이터 유형: 문자열 |
| short_description | 프로젝트의 간단한 설명 데이터 유형: 문자열 |
| start_date | 프로젝트의 시작 날짜입니다. 데이터 유형: 문자열 |
머리글
다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 이 작업에 고유한 방식으로 적용됩니다. REST API에 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하세요.
| 헤더 | 설명 |
|---|---|
| 수용 | 응답 본문의 데이터 형식입니다. application/json만 지원합니다. |
| 컨텐츠-형식 | 요청 본문의 데이터 형식입니다. application/json만 지원합니다. |
| 헤더 | 설명 |
|---|---|
| 없음 |
상태 코드
다음 상태 코드는 이 HTTP 작업에 적용됩니다. REST API에서 사용되는 가능한 상태 코드 목록은 REST API HTTP 응답 코드를 참조하세요.
| 상태 코드 | 설명 |
|---|---|
| 200 | 성공입니다. 요청이 성공적으로 처리되었습니다. |
| 401 | 승인되지 않았습니다. 사용자 자격 증명이 잘못되었거나 전달되지 않았습니다. |
응답 본문 매개변수(JSON)
| 이름 | 설명 |
|---|---|
| 결과 | API 요청의 상태에 대한 정보를 포함하는 객체입니다. 데이터 유형: 객체 |
| 결과.상태 | 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"
}
}