Sdílet prostřednictvím


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.

Viz také