Share via


Soumettre une demande d’absence au workflow

S’applique aux applications Dynamics 365 suivantes :
Human Resources

Dans Microsoft Dynamics 365 Human Resources, vous pouvez utiliser l’interface de programmation d’application (API) MyLeaveRequests submit() pour soumettre une demande de congé au workflow. Cette API est présentée comme une action sur l’entité OData MyLeaveRequests.

Conditions préalables

La demande de congé doit être enregistrée dans la base de données et doit pouvoir être récupérée via l’entité MyLeaveRequests.

Autorisations

L’une des autorisations suivantes est requise pour appeler cette API. Pour plus d’informations sur le paramétrage des autorisations et la manière de sélectionner, voir Authentification.

Type d’autorisation Autorisations (des moins privilégiées au plus privilégiées)
Délégué (compte professionnel ou éducatif) user_impersonation

Demande 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

La demande est conforme aux normes OData. Les paramètres {requestId}, {leaveType}, {leaveDate} et {dataArea} se rapportent aux champs qui constituent la clé naturelle composite de l’entité MyLeaveRequests.

Note

Alors que les champs de l’entité MyLeaveRequests font référence à une ligne individuelle dans la demande de congé, l’appel de l’API de soumission soumettra toute la demande de congé (toutes les lignes) au workflow.

En-tête de la demande

En-tête Value
Autorisation Détenteur {token} (obligatoire)
Type de contenu application/json

Corps de demande

Ne fournissez pas de corps de demande pour cette méthode.

Réponse

Une réponse de réussite est toujours une réponse 204 Aucun contenu.

Les appelants non autorisés recevront une réponse 401 Non autoriséou 403 Interdit.

Si la soumission échoue (en raison de la validation, par exemple), la réponse sera 500 Erreur du serveur et le corps de la réponse comprendra un objet JSON avec plus de détails.

Exemple

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

Validation et messages et d’erreur

Dans le cadre de l’appel à l’API de soumission, Human Resources effectue la validation de la logique métier avant la soumission, ce qui garantit que la demande de congé est dans un état valide pour la soumission. Les messages d’erreur possibles que vous pouvez recevoir dans la réponse si les validations échouent sont :

  • La demande doit définir le solde « {LeaveTypeId} » en-dessous du solde minimal autorisé au {date}.
  • La demande de congé en état Terminé ne peut pas être soumise.
  • Impossible de soumettre ou d’enregistrer la demande car aucune modification n’a été apportée. Ajoutez ou mettez à jour le montant ou le type de congé et réessayez.
  • La demande de congé saisie contient un ou plusieurs jours avec la même date et le même type de congé qu’une demande en attente existante. Veuillez rappeler la demande actuelle pour apporter des modification.
  • Le code motif « {ReasonCodeId} » ne s’applique pas aux types de congé de la demande.
  • Le type de congé ’ {LeaveTypeId} ’nécessite un code motif. Sélectionnez le type et le code motif appropriés.
  • Le congé n’a pas été soumis avec succès. Le congé a été enregistré en tant que brouillon de demande.

Voir également :