워크플로에 휴가 요청 제출

다음 Dynamics 365 앱에 적용됩니다.
Human Resources

Microsoft Dynamics 365 Human Resources에서 MyLeaveRequests submit() API(애플리케이션 프로그래밍 인터페이스)를 사용하여 워크플로에 휴가 요청을 제출할 수 있습니다. 이 API는 MyLeaveRequests OData 엔터티에 작업으로 노출됩니다.

전제 조건

휴가 요청은 데이터베이스에 저장되어야 하고 MyLeaveRequests 엔터티를 통해 검색할 수 있어야 합니다.

사용 권한

이 API를 호출하려면 다음 사용 권한 중 하나가 필요합니다. 사용 권한과 사용 권한 선택 방법에 대한 자세한 내용은 인증을 참조하세요.

사용 권한 유형 사용 권한(최소 권한에서 최고 권한으로)
위임됨(회사 또는 학교 계정) user_impersonation

HTTPS 요청

POST https://{cluster}.hr.talent.dynamics.com/namespaces/{namespace_guid}/data/MyLeaveRequests(RequestId='{requestId}', LeaveType='{leaveType}', LeaveDate={leaveDate}, dataAreaId={dataArea})/Microsoft.Dynamics.DataEntities.submit?cross-company=true

요청은 OData 표준을 따릅니다. {requestId}, {leaveType}, {leaveDate} 및 {dataArea} 매개 변수는 MyLeaveRequests 엔터티에 대한 복합 자연 키를 구성하는 필드를 참조합니다.

참고

MyLeaveRequests 엔터티의 필드는 휴가 요청의 개별 라인을 참조하지만 제출 API를 호출하면 전체 휴가 요청(모든 라인)이 워크플로에 제출됩니다.

요청 헤더

머리글
Authorization 전달자 {token}(필수)
Content-Type application/json

요청 본문

이 메소드에 요청 본문을 제공하지 마세요.

응답

성공적인 응답은 항상 204 콘텐츠 없음 응답입니다.

승인되지 않은 발신자는 401 Unauthorized 또는 403 Forbidden 응답를 수신합니다.

제출이 실패한 경우(예: 유효성 검사로 인해) 응답는 500 서버 오류이고 응답 본문에는 추가 세부 정보가 포함된 JSON 개체가 포함됩니다.

POST https://aos-rts-sf-550e5c091f6-prod-westus2.hr.talent.dynamics.com/namespaces/b2eb8003-334f-4a84-ab63-edbe23569090/data/MyLeaveRequests(RequestId='USMF-000065', LeaveType='Vacation', LeaveDate=2019-10-04T12:00:00Z, dataAreaId='USMF')/Microsoft.Dynamics.DataEntities.submit
{
  "error": {
    "code": "",
    "message": "An error has occurred.",
    "innererror": {
      "message": "Exception occurred while executing action submit on Entity MyLeaveRequest: The request would put the 'Vacation' balance below the allowed minimum balance on 9/10/2019.",
      "type": "System.InvalidOperationException",
      "stacktrace": "   at Microsoft.Dynamics.Platform.Integration.Services.OData.Action.ActionInvokable.Invoke()   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.UpdateProcessor.ActionInvocation(ChangeOperationContext context, ActionInvokable action)   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.UpdateManager.<>c__DisplayClass13_0.<ScheduleInvokable>b__0(ChangeOperationContext context)   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.ChangeInfo.ExecuteActionsInCompanyContext(IEnumerable`1 actionList, ChangeOperationContext operationContext)\r\n   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.ChangeInfo.ExecuteActions(ChangeOperationContext context)   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.UpdateManager.SaveChanges()   at Microsoft.Dynamics.Platform.Integration.Services.OData.AxODataDelegatingHandler.<SaveChangesAsync>d__3.MoveNext()"
    }
  }
}

유효성 검사 및 오류 메시지

Human Resources는 제출 API에 대한 호출의 일부로 제출 전에 비즈니스 논리 유효성 검사를 수행하여 휴가 요청이 제출에 유효한 상태인지 확인합니다. 유효성 검사가 실패하면 응답에서 받을 수 있는 오류 메시지는 다음과 같습니다.

  • 요청은 '{LeaveTypeId}' 잔액을 {date}에 허용된 최소 잔액 미만으로 설정합니다.
  • 완료 상태의 휴가 요청은 제출할 수 없습니다.
  • 변경 사항이 없으므로 요청을 제출하거나 저장할 수 없습니다. 잔액 또는 휴가 유형을 추가하거나 업데이트하고 다시 시도하세요.
  • 입력한 휴가 요청에 기존 보류 중인 요청과 날짜 및 휴가 유형이 동일한 날짜가 하나 이상 포함되어 있습니다. 변경하려면 기존 요청을 기억하세요.
  • 이유 코드 '{ReasonCodeId}'는 요청의 휴가 유형에 적용되지 않습니다.
  • 휴가 유형 '{LeaveTypeId}'에는 이유 코드가 필요합니다. 적절한 유형과 이유 코드를 선택하세요.
  • 휴가 시간이 성공적으로 제출되지 않았습니다. 휴가가 임시 요청으로 저장되었습니다.

참고 항목