워크플로에 휴가 요청 제출
다음 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 권한 없음 또는 403 권한 없음 응답을 받습니다 .
제출에 실패한 경우(예: 유효성 검사로 인해) 응답은 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}'에는 이유 코드가 필요합니다. 적절한 유형과 이유 코드를 선택하세요.
- 휴가가 성공적으로 제출되지 않았습니다. 휴가가 임시 요청으로 저장되었습니다.