Dataverse Web API를 사용하여 작업 순서 만들기

이 문서에서는 데이타버스 Web API 사용하여 Dynamics 365 Field Service 작업 순서를 만드는 예제를 제공합니다. 예제에서는 msdyn_workorder 엔터티를 사용합니다.

필수 조건

  • Web API 엔드포인트가 있는 Dynamics 365 Field Service 환경(예: https://yourorg.api.crm.dynamics.com/api/data/v9.2/).
  • OAuth 2.0을 사용하는 인증된 요청입니다. Web API를 사용하여 Dataverse에 인증하는 방법에 대해 자세히 알아봅니다.
  • 필요한 조회 필드에 대한 기존 레코드:
    • 서비스 계정(account 엔터티)
    • 작업 지시 유형 (msdyn_workordertype 엔터티)
    • 가격표 (pricelevel 엔터티)

중요합니다

다음 예제의 GUID는 가상입니다. Dynamics 365 환경의 실제 레코드 ID로 바꿉니다.

단일 작업 순서 만들기

POST 요청을 msdyn_workorders 엔터티 집합에 보내 작업 오더를 생성합니다. Web API를 사용하여 테이블 행 만들기에 대해 자세히 알아봅니다.

HTTP 요청

POST [Organization URL]/api/data/v9.2/msdyn_workorders
Accept: application/json
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Authorization: Bearer <access_token>

{
  "msdyn_serviceaccount@odata.bind": "/accounts(e1a2b3c4-5678-9abc-def0-1234567890ab)",
  "msdyn_workordertype@odata.bind": "/msdyn_workordertypes(a1b2c3d4-5678-9abc-def0-1234567890cd)",
  "msdyn_pricelist@odata.bind": "/pricelevels(f1e2d3c4-5678-9abc-def0-1234567890ef)",
  "msdyn_systemstatus": 690970000,
  "msdyn_taxable": false,
  "msdyn_instructions": "Install new equipment"
}

HTTP 응답

성공한 요청은 새 작업 순서 레코드의 URL을 포함하는 헤더와 함께 HTTP 204 No Content 반환 OData-EntityId 됩니다.

여러 작업 주문 만들기

단일 요청에서 여러 작업 주문을 만들려면 작업을 사용합니다 CreateMultiple . 이는 개별 POST 요청 또는 일괄 처리 작업보다 성능이 더 높습니다. 대량 작업 메시지 사용에 대해 자세히 알아보세요.

HTTP 요청

POST [Organization URL]/api/data/v9.2/msdyn_workorders/Microsoft.Dynamics.CRM.CreateMultiple
Accept: application/json
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Authorization: Bearer <access_token>

{
  "Targets": [
    {
      "@odata.type": "Microsoft.Dynamics.CRM.msdyn_workorder",
      "msdyn_serviceaccount@odata.bind": "/accounts(e1a2b3c4-5678-9abc-def0-1234567890ab)",
      "msdyn_workordertype@odata.bind": "/msdyn_workordertypes(a1b2c3d4-5678-9abc-def0-1234567890cd)",
      "msdyn_pricelist@odata.bind": "/pricelevels(f1e2d3c4-5678-9abc-def0-1234567890ef)",
      "msdyn_systemstatus": 690970000,
      "msdyn_taxable": false,
      "msdyn_instructions": "Work order 1 - Install new equipment"
    },
    {
      "@odata.type": "Microsoft.Dynamics.CRM.msdyn_workorder",
      "msdyn_serviceaccount@odata.bind": "/accounts(e1a2b3c4-5678-9abc-def0-1234567890ab)",
      "msdyn_workordertype@odata.bind": "/msdyn_workordertypes(a1b2c3d4-5678-9abc-def0-1234567890cd)",
      "msdyn_pricelist@odata.bind": "/pricelevels(f1e2d3c4-5678-9abc-def0-1234567890ef)",
      "msdyn_systemstatus": 690970000,
      "msdyn_taxable": false,
      "msdyn_instructions": "Work order 2 - Preventive maintenance check"
    }
  ]
}

HTTP 응답

성공한 요청은 만든 레코드의 ID와 함께 반환 HTTP 200 OK 됩니다.

{
  "@odata.context": "[Organization URL]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.CreateMultipleResponse",
  "Ids": [
    "c1d2e3f4-5678-9abc-def0-111111111111",
    "c1d2e3f4-5678-9abc-def0-222222222222"
  ]
}

작업 순서 검색

작업 지시서를 만든 후, GET 요청으로 불러옵니다.

GET [Organization URL]/api/data/v9.2/msdyn_workorders(<work-order-id>)?$select=msdyn_name,msdyn_systemstatus,msdyn_address1,msdyn_city
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Authorization: Bearer <access_token>

응답

{
  "@odata.context": "[Organization URL]/api/data/v9.2/$metadata#msdyn_workorders(msdyn_name,msdyn_systemstatus,msdyn_address1,msdyn_city)/$entity",
  "@odata.etag": "W/\"7998533\"",
  "msdyn_workorderid": "d4e5f6a7-1234-5678-9abc-def012345678",
  "msdyn_name": "00051",
  "msdyn_systemstatus": 690970000,
  "msdyn_address1": "205 108th Ave NE",
  "msdyn_city": "Bellevue"
}

비고

필드에는 msdyn_name Field Service에서 생성한 자동 할당 작업 순서 번호가 포함됩니다. msdyn_address1msdyn_city 값은 서비스 계정 레코드에서 채워집니다.

오류 처리

작업 주문을 만들 때 발생하는 일반적인 오류 응답:

상태 코드 원인 해결책
400 Bad Request 필수 필드가 없거나 필드 값이 잘못되었습니다. 모든 필수 필드(msdyn_serviceaccount, , msdyn_workordertype, msdyn_pricelist,msdyn_systemstatusmsdyn_taxable)가 유효한 값에 포함되어 있는지 확인합니다.
400 Bad Request (코드 0x80060888) 조회 필드 값은 엔터티 집합 경로가 없는 완전 GUID입니다. 전체 OData 엔터티 참조 형식, 예를 들어 /accounts(guid)와 같은 형식을 사용하고, GUID만 사용하지 마세요.
401 Unauthorized 액세스 토큰이 없거나 만료되었습니다. 새 OAuth 2.0 액세스 토큰을 새로 고치거나 가져옵니다.
403 Forbidden 권한이 부족합니다. 사용자에게 Field Service - Dispatcher 또는 Field Service - 관리자 보안 역할이 있는지 확인합니다.
404 Not Found 참조된 조회 레코드가 없습니다. 서비스 계정, 작업 주문 유형 및 가격표에 대한 GUID가 기존 레코드를 참조하는지 확인합니다.