Prašymo išeiti atostogų pateikimas darbo eigai
Taikoma šioms „Dynamics 365“ programoms:
„Human Resources“
„Microsoft Dynamics 365 Human Resources“ galite naudoti „MyLeaveRequests submit()“ taikomojo programavimo sąsają (API), kad pateiktumėte atostogų prašymų į darbo eigą. Ši API pateikiamas kaip veiksmas „MyLeaveRequestst OData“ objekte.
Būtinieji komponentai
Atostogų užklausa turi būti įrašyta duomenų bazėje ir turi būti atgaunama per „MyLeaveRequests“ objektą.
Teisės
Norint iškviesti šią API reikia vienos iš šių teisių. Norėdami gauti daugiau informacijos apie teises ir kaip jas pasirinkti, žr. Autentifikavimas.
Teisės tipas | Teisės (nuo mažiausių teisių iki didžiausių teisių) |
---|---|
Perduota (darbo arba mokyklos paskyra) | user_impersonation |
HTTPS užklausa
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
Užklausa atitinka „OData“ standartus. Parametrai {requestId}, {leaveType}, {leaveDate} ir {dataArea} nurodomi laukams, kurie sudaro sudėtinį objekto „MyLeaveRequests“ srities raktą.
Banknotas
Jei objekto „MyLeaveRequests“ laukai priklauso atskirai atostogų užklausos eilutei, iškvietus pateikimą, API pateiks visą atostogų užklausą (visas eilutes) į darbo eigą.
Užklausų antraštės
Antraštė | Value |
---|---|
Autorizavimas | Pateikėjo {token} (privaloma) |
Turinio tipas | programa / json |
Užklausos tekstas
Naudodami šį metodą, nepateikite užklausos teksto.
Atsiliepimas
Sėkmingas atsakymas visada yra 204 nėra turinio atsakymas.
Neteisėtas skambintojai gauna 401 neteisėtą arba 403 draudžiama atsakymas.
Jei pateikimas nesėkmingas (pvz., dėl tikrinimo), atsakymas tai 500 serverio klaida, o atsakymas bus JSON objektas su išsamesne informacija.
Pavyzdys
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()"
}
}
}
Tikrinimas ir klaidų pranešimai
Iškviesdama pateikimo API, prieš pateikdama, „Human Resources“ atlieka verslo logikos patikrinimą, užtikrindama, kad atostogų užklausa yra tinkamos pateikti būsenos. Jei patikrinti nepavyksta, kaip atsakymą galbūt gausite tokius klaidos pranešimus:
- Pateikus užklausą, „{LeaveTypeId}“ balansas nukris žemiau leidžiamo minimalaus balanso {date}.
- Baigtos būsenos laiko užklausos pateikti negalima.
- Nepavyksta pateikti ar įrašyti užklausos, nes nebuvo atlikta pakeitimų. Pridėkite arba atnaujinkite sumą arba atostogų tipą ir bandykite dar kartą.
- Įvestoje atostogų užklausoje yra viena ar daugiau tos pačios datos dienų ir atostogų tipų kaip ir esamoje laukiančioje užklausoje. Atšaukite esamą užklausą ir atlikite keitimus.
- Priežasties kodas {ReasonCodeId} netaikomas jokiam prašyme nurodytam atostogų tipui.
- Atostogų tipui {LeaveTypeId} būtinas priežasties kodas. Pasirinkti tinkamą tipą ir priežasties kodą.
- Laiko nurašyti sėkmingai pateikta nebuvo. Atostogų laikas buvo įrašytas kaip užklausos juodraštis.