Send en permisjonsforespørsel til arbeidsflyt
Gjelder disse Dynamics 365-appene:
Human Resources
I Microsoft Dynamics 365 Human Resources kan du bruke MyLeaveRequests Submit() programmeringsgrensesnitt (API) for å sende en permisjonsforespørsel til arbeidsflyten. Dette API-et vises som en handling på MyLeaveRequests OData-enheten.
Forutsetninger
Permisjonsforespørselen må være lagret i databasen og må kunne hentes via MyLeaveRequests-enheten.
Tillatelser
En av følgende tillatelser kreves for å kalle dette API-et. Hvis du vil ha mer informasjon om tillatelser og hvordan du velger dem, kan du se Godkjenning.
Tillatelsestype | Tillatelser (fra minst privilegert til mest privilegert) |
---|---|
Delegert (jobb- eller skolekonto) | user_impersonation |
HTTPS-forespørsel
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
Forespørselen overholder OData-standarder. Parameterne {requestId}, {leaveType}, {leaveDate} og {dataArea} refererer til feltene som utgjør den sammensatte naturlige nøkkelen for MyLeaveRequests-enheten.
Notat
Mens feltene for MyLeaveRequests-enheten refererer til en enkelt linje i permisjonsforespørselen, vil kall til Send-API-et hele sende permisjonsforespørselen (alle linjene) til arbeidsflyten.
Forespørselshoder
Hode | Value |
---|---|
Autorisasjon | Bærer {token} (obligatorisk) |
Innholdstype | program/json |
Forespørselstekst
Ikke angi en forespørselstekst for denne metoden.
Svar
Et vellykket svar er alltid av typen 204 uten innhold.
Uautoriserte innringere mottar en 401 uautorisert eller en 403 forbudt svar.
Hvis innsendingen mislykkes (for eksempel på grunn av validering), er svar en 500-serverfeil, og den svar delen vil inneholde et JSON-objekt med ytterligere detaljer.
Eksempel
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()"
}
}
}
Validering og feilmeldinger
Som en del av kallet til innsendings-API-et utfører Human Resources en validering av forretningslogikken før innsending, som sikrer at permisjonsforespørselen er i en gyldig tilstand for innsending. De mulige feilmeldingene du kan motta i svaret hvis valideringer mislykkes, er:
- Forespørselen ville lagt {LeaveTypeId}-saldoen under den tillatte minimumssaldoen i {date}.
- Forespørsel om fritid i statusen Fullført kan ikke sendes inn.
- Kan ikke sende inn eller lagre forespørselen fordi ingen endringer er utført. Legg til eller oppdater beløpet eller permisjonstypen, og prøv på nytt.
- Fritidsforespørselen inneholder én eller flere dager med samme dato og permisjonstype som en eksisterende ventende forespørsel. Husk den eksisterende forespørselen om å gjøre endringer.
- Årsakskoden {ReasonCodeId} gjelder ikke for noen av permisjonstypene i forespørselen.
- Permisjonstypen {LeaveTypeId} krever en årsakskode. Velg riktig type og årsakskode.
- Fritiden ble ikke sendt inn. Fritidsforespørselen er lagret som et utkast.