Partager 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 d’absence au flux de travail. 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 reçoivent une réponse 401 Non autorisée ou 403 Interdite .

Si la soumission échoue (en raison de la validation, par exemple), la réponse est une erreur de serveur 500 et le corps de la réponse inclut un objet JSON avec des détails supplémentaires.

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 d’absence à l’é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. Rappelez la demande existante pour apporter des modifications.
  • 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 correctement. Le congé a été enregistré en tant que brouillon de demande.

Voir également :