Delen via


Een verlofverzoek indienen bij een werkstroom

Is van toepassing op deze Dynamics 365-toepassingen:
Human Resources

In Microsoft Dynamics 365 Human Resources kunt u de API (Application Programming Interface) MyLeaveRequests submit() gebruiken om een verlofaanvraag in te dienen bij de werkstroom. Deze API wordt als actie weergegeven in de entiteit MyLeaveRequests OData.

Vereisten

De verlofaanvraag moet worden opgeslagen in de database en moet kunnen worden opgehaald via de entiteit MyLeaveRequests.

Machtigingen

Een van de volgende machtigingen is vereist om deze API te kunnen aanroepen. Zie Verificatie voor meer informatie over machtigingen en het selecteren hiervan.

Machtigingstype Machtigingen (van laagste naar hoogste bevoegdheidsniveau)
Gedelegeerd (werk- of schoolaccount) user_impersonation

HTTPS-aanvraag

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

De aanvraag voldoet aan OData-normen. De parameters {requestId}, {leaveType}, {leaveDate} en {dataArea} verwijzen naar de velden die de samengestelde natuurlijke sleutel vormen voor de entiteit MyLeaveRequests.

Notitie

Terwijl de velden voor de entiteit MyLeaveRequests verwijzen naar een afzonderlijke regel in de verlofaanvraag, wordt door het aanroepen van de Submit-API de volledige aanvraag voor het verlof (alle regels) ingediend bij de werkstroom.

Kopteksten voor aanvraag

Koptekst Value
Autorisatie Bearer {token} (vereist)
Content-Type application/json

Aanvraagtekst

Geef voor deze methode geen aanvraagtekst op.

Antwoord

Een geslaagde respons is altijd een respons 204 Geen inhoud.

Ongeautoriseerde oproepers ontvangen een 401- of een 403-respons .

Als de indiening mislukt (bijvoorbeeld vanwege validatie), is de respons een 500-serverfout en bevatde body respons een JSON-object met meer details.

Voorbeeld

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()"
    }
  }
}

Validatie- en foutberichten

Als onderdeel van de aanroep van de Submit-API voert Human Resources de validatie van bedrijfslogica uit vóór indiening, waardoor de verlofaanvraag een geldige status heeft voor indiening. De mogelijke foutberichten die worden weergegeven in de respons als validaties mislukken zijn:

  • Met de aanvraag wordt het saldo '{LeaveTypeId}' onder het toegestane minimumsaldo van {date} gezet.
  • Een vrijtijdaanvraag in de status Voltooid kan niet worden ingediend.
  • Kan de aanvraag niet indienen of opslaan omdat er geen wijzigingen zijn aangebracht. Voeg het bedrag of het verloftype toe of werk het bij en probeer vervolgens het opnieuw.
  • De ingevoerde verlofaanvraag bevat een of meer dagen met dezelfde datum en hetzelfde verloftype als een bestaande aanvraag in behandeling. De bestaande aanvraag terugroepen om wijzigingen aan te brengen.
  • Redencode '{ReasonCodeId}' is niet van toepassing op een van de verloftypen in de aanvraag.
  • Voor verloftype '{LeaveTypeId}' is een redencode vereist. Selecteer het toepasselijke type en de bijbehorende redencode.
  • De vrijtijd kan niet worden ingediend. Het verlof is opgeslagen als een conceptaanvraag.

Zie ook