Spendint API - POST /sn_spend_intg/spendint/orderack

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 소요 시간: 6분
  • 사용자가 외부 공급업체 카탈로그에서 제품을 쇼핑할 때 주문 정보를 업데이트합니다. 사용자가 체크 아웃하면 구매에 대한 승인 또는 기타 작업을 완료할 수 있도록 구매 라인이 생성됩니다.

    데이터베이스에서 ServiceNow 구매 주문이 생성되면 주문은 다음 테이블로 푸시됩니다.
    • 아웃바운드 주문: 주문 헤더를 포함합니다.
    • 아웃바운드 주문 라인: 주문 라인을 포함합니다.

    공급자는 이러한 테이블을 쿼리하고 보류 중인 주문을 가져와야 합니다. 공급자는 데이터베이스와 ServiceNow 통합하기 위한 작업에 대해 워크플로우 스튜디오 범위가 지정된 앱을 생성해야 합니다.

    다음 매개변수를 사용하여 테이블을 쿼리합니다.
    • 헤더의 경우 sysparm_query=supplier_id=<supplier_id>^purchase_order.status=20
    • 헤더의 경우 sysparm_query=purchase_order.supplier_id=<supplier_id>^purchase_order.status=20
    구매 라인이 구매 주문서 라인으로 변환되면 다음 프로세스가 실행됩니다.
    1. 해당하는 경우 구매 주문서와 구매 주문서 라인이 전사적 자원 계획(ERP)에 제출됩니다.
    2. 구매 주문서 및 구매 주문서 라인은 통합을 통해 고객 ID, 공급자 ID, 구매 주문서 번호, 주문 날짜, 구매 주문서 금액, 구매 주문서 금액 통화 및 구매 주문서 라인을 사용하여 외부 공급업체로 이전됩니다.
    3. 구매 주문서와 구매 주문서 라인은 외부 공급업체 카탈로그 통합과 ERP에서 확인 메시지를 받을 때까지 제출 보류 중 상태로 유지됩니다. 확인을 받으면 상태가 주문됨으로 업데이트됩니다. ERP 통합이 관련되어 있지 않은 경우 외부 공급업체 통합에서만 확인 메시지가 필요합니다.

    상태 테이블

    주문 확인 요청의 상태를 알려면 테이블 REST API를 사용하여 데이터베이스에 대한 ServiceNow REST 호출을 수행합니다. API의 응답에는 주문 확인 요청이 실패한 기록이 나열됩니다. 주문 확인 응답의 경우 다음 매개변수를 사용하여 주문 확인 오류 테이블을 쿼리합니다.

    sysparm_query=outbound_error.supplier_id=<supplier_id>^outbound_error.state=20

    고객 ID, 공급자 ID, 오류 유형, 고유 임포트 세트 ID 및 상태에 대한 세부 정보는 상위 오류 테이블인 아웃바운드 상태 테이블에서 찾을 수 있습니다.

    URL 형식

    /api/sn_spend_intg/spendint/orderack

    지원되는 요청 매개변수

    표 1. 경로 매개변수
    이름 설명
    없음
    표 2. 쿼리 매개변수
    이름 설명
    모드 타사 통합을 위한 비동기식 및 동기식 모드를 지원합니다.

    데이터 유형: 문자열

    유효한 값:
    • async: 비동기 모드입니다.
    • sync: 동기 모드입니다.

    기본값: 비동기

    표 3. 요청 본문 매개변수(XML 또는 JSON)
    이름 설명
    customer_id 필수 고객의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    order_number 필수 이 주문에 대해 고객이 제공한 구매 주문서 번호입니다.

    데이터 유형: 문자열

    최대 길이: 40

    sales_order_lines 이 주문의 구매에 대한 고유한 업데이트가 있는 판매 주문 라인을 정의하는 객체의 목록입니다.

    데이터 유형: 배열

    "sales_order_lines":[
      {
        "estimated_arrival_date": "String",
        "line_number": "String",
        "sales_order_line_number": "String"
      }
    ]
    sales_order_lines.예상 도착 날짜 주문의 예상 도착 날짜입니다.

    데이터 유형: 문자열

    최대 길이: 40

    형식: YYYY-MM-DD

    sales_order_lines.line_number 필수 특정 구매에 대해 고객이 생성한 구매 주문서 라인 번호입니다.

    데이터 유형: 문자열

    최대 길이: 40

    sales_order_lines.sales_order_line_number 공급자가 생성한 판매 주문 라인 번호입니다. 이 번호는 이 구매를 수정하는 경우에만 필요합니다.

    데이터 유형: 문자열

    최대 길이: 40

    sales_order_number 이 주문에 대해 공급자가 생성한 번호 또는 값입니다.

    데이터 유형: 문자열

    최대 길이: 40

    status_code 필수 주문이 성공적으로 완료되었는지 확인하는 제출된 주문의 상태입니다.

    데이터 유형: 문자열

    유효한 값:
    • 확인됨: 주문이 성공적으로 완료되었습니다.
    • 거부됨: 주문이 접수되지 않았습니다.
    status_message 상태 코드에 첨부된 메시지입니다. 예를 들어 주문이 성공적으로 완료되었으며 이월 주문이라는 메시지가 표시될 수 있습니다.

    데이터 유형: 문자열

    최대 길이: 1000

    supplier_id 필수 고객이 주문할 수 있는 리셀러 또는 공급자의 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    third_party_import_id 외부 공급업체가 문자열 값을 전달하여 임포트한 데이터 세트를 고유하게 식별할 수 있는 식별자입니다.

    데이터 유형: 문자열

    최대 길이: 100

    헤더

    다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 고유한 방식으로 이 작업에 적용됩니다.

    표 4. 요청 헤더
    머리글 설명
    수용 응답 본문의 데이터 형식입니다. 지원되는 유형: application/json 또는 application/xml.

    기본값: application/json

    주:
    구매 통합 프레임워크에는 데이터 형식만 application/json 지원됩니다.
    표 5. 응답 헤더
    머리글 설명
    없음

    상태 코드

    이 HTTP 작업에 적용되는 상태 코드는 다음과 같습니다.

    표 6. 상태 코드
    상태 코드 설명
    성공 성공. 요청이 성공적으로 처리되었습니다.
    실패 실패. 요청이 오류와 함께 처리되었습니다.

    응답 본문 매개변수(JSON)

    이러한 응답 본문 매개변수는 동기 모드에서 쿼리될 때 수신됩니다.
    이름 설명
    error_response_body 판매 주문 번호, 판매 주문 라인 번호 및 오류 메시지로 나열된 오류에 대한 설명입니다.

    데이터 유형: 배열

    error_response_body.error_message 자세한 오류 메시지입니다.

    데이터 유형: 문자열

    status_code "성공" 또는 "실패"와 같은 응답 상태입니다.

    데이터 유형: 문자열

    cURL 요청

    curl "https://instance.service-now.com/api/sn_spend_intg/spendint/orderack" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'
    {"root":[{
      "customer_id": "ACME CORP",
      "supplier_id": "SUP-123456",
      "third_party_import_id": "undefined",
      "order_number": "PO08903323",
      "sales_order_number": "SO03323212",
      "status_code": "CONFIRMED",
      "status_message": "BACKORDERED",
      "sales_order_lines":[
        {
          "line_number": "POL6789876",
          "sales_order_line_number": "SOL5678909",
          "estimated_arrival_date": "YYYY-MM-DD"
        }
      ]
    }
    ]}
    

    가능한 응답:

    // Success response:
    {
        "result": {
            "response": "success"
        }
    }
    
    // Error response:
    {
        "result": {
            "response": [
                {
                    "customer_id": "ACME CORP",
                    "supplier_id": "SUP-123456",
                    "third_party_import_id": "undefined",
                    "status_code": "failure",
                    "error_response_body": [
                        {
                            "sales_order_number": "SO03323212",
                            "sales_order_line_number": "SOL5678909",
                            "error_message": "Field Value empty/Formatting issue Purchase order number\nField Value empty/Formatting issue Purchase order line number\n"
                        }
                    ]
                }
            ]
        }
    }