Odeslání žádosti o volno do workflow
Platí pro tyto aplikace Dynamics 365:
Human Resources
V aplikaci Microsoft Dynamics 365 Human Resources MyLeaveRequests submit() můžete použít aplikační programovací rozhraní (API) k odeslání žádosti o pracovní volno do workflow. Toto rozhraní API je vystaveno jako akce pro entitu OData MyLeaveRequests.
Předpoklady
Žádost o pracovní volno musí být uložena v databázi a musí být možné ji získat prostřednictvím entity MyLeaveRequests.
Oprávnění
K volání tohoto rozhraní API jsou vyžadována některá z následujících oprávnění. Další informace o oprávněních a způsobu jejich výběru získáte v části Ověřování.
Typ oprávnění | Oprávnění (od nejnižšího k nejvyššímu) |
---|---|
Delegované (pracovní nebo školní účet) | user_impersonation |
Požadavek 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
Požadavek odpovídá standardům OData. Parametry {requestId}, {leaveType}, {leaveDate} a {dataArea} odkazují na pole, která tvoří složený přirozený klíč pro entitu MyLeaveRequests.
Poznámka
Zatímco pole pro entitu MyLeaveRequests odkazují na jednotlivé řádky žádosti o pracovní volno, volání rozhraní API pro odeslání odešle do workflowu celou žádost o pracovní volno (všechny řádky).
Záhlaví požadavku
Záhlaví | Value |
---|---|
Autorizace | Nosič {token} (povinný) |
Content-Type | žádost/json |
Tělo žádosti
Nepřidávejte tělo požadavku pro tuto metodu.
Odezva
Úspěšná odpověď je vždy 204 No Content.
Neoprávnění volající obdrží 401 Neautorizováno nebo 403 Zakázáno odpověď.
Pokud je odeslání neúspěšné (například z důvodu ověření), odpověď je chyba serveru 500 a text odpověď bude obsahovat objekt JSON s dalšími podrobnostmi.
Příklad
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()"
}
}
}
Chyby ověření a chybové zprávy
Při volání rozhraní API pro odesílání provádí aplikace Human Resources ověření obchodní logiky před odesláním, což zaručuje, že žádost o pracovní volno je v platném stavu pro odeslání. Možné chybové zprávy, které se mohou zobrazit v odpovědi v případě selhání ověření:
- Požadavek by způsobil, že zůstatek {LeaveTypeId} klesne pod povolené minimum zůstatku {date}.
- Žádost o volno ve stavu Dokončeno nelze odeslat.
- Žádost nelze odeslat nebo uložit, protože nebyly provedeny žádné změny. Přidejte nebo aktualizujte částku nebo typ pracovního volna a zkuste to znovu.
- Zadaný požadavek na volno obsahuje jeden nebo více dnů se stejným datem a tento typ ponechá jako existující požadavek čekající na vyřízení. Vzpomeňte si na existující požadavek na provedení změn.
- Kód důvodu {ReasonCodeId} se nevztahuje na žádný typ pracovního volna v požadavku.
- Typ pracovního volna {LeaveTypeId} vyžaduje kód důvodu. Vyberte příslušný typ a kód důvodu.
- Volno nebylo úspěšně odesláno. Časové volno bylo uloženo jako koncept žádosti.