Submeter um pedido de licença para o fluxo de trabalho
Aplica-se a estas aplicações do Dynamics 365:
Human Resources
Em Microsoft Dynamics 365 Human Resources, você pode usar a interface de programação de aplicativo (API) MyLeaveRequests submit() para enviar uma solicitação de licença para o fluxo de trabalho. Esta API é exposta como uma ação na entidade MyLeaveRequests OData.
Pré-requisitos
O pedido de licença deve ser guardado na base de dados e deve poder ser obtido por meio da entidade MyLeaveRequests.
Permissões
Uma das permissões a seguir é necessária para chamar esta API. Para obter mais informações sobre permissões e como selecioná-las, consulte Autenticação.
Tipo de permissão | Permissões (do menos privilegiado ao mais privilegiado) |
---|---|
Delegada (conta escolar ou profissional) | user_impersonation |
Pedido 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
O pedido está de acordo com os padrões OData. Os parâmetros {requestId}, {leaveType}, {leaveDate} e {dataArea} referem-se aos campos que constituem a chave natural composta da entidade MyLeaveRequests.
Nota
Embora os campos da entidade MyLeaveRequests se refiram a uma linha individual no pedido de licença, chamar a API de submissão submeterá todo o pedido de licença (todas as linhas) para o fluxo de trabalho.
Cabeçalhos de pedidos
Cabeçalho | Valor |
---|---|
Autorização | Portador {token} (obrigatório) |
Tipo de Conteúdo | application/json |
Corpo do pedido
Não forneça um corpo do pedido para este método.
Resposta
Uma resposta bem-sucedida é sempre uma resposta 204 Sem Conteúdo.
Chamadas não autorizadas recebem um 401 Não Autorizado ou um 403 Proibido resposta.
Se o envio não for bem-sucedido (devido à validação, por exemplo), o resposta será um erro de servidor 500 e o corpo resposta incluirá um objeto JSON com mais detalhes.
Exemplo
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()"
}
}
}
Validação e mensagens de erro
Como parte da chamada à API de submissão, o Human Resources executa a validação de lógica de negócio antes da submissão, o que garante o estado válido do pedido de licença para submissão. As possíveis mensagens de erro recebidas na resposta se houver falha nas validações são:
- O pedido deixaria o saldo '{LeaveTypeId}' abaixo do saldo mínimo permitido em {date}.
- Não é possível enviar o pedido de folga no estado Concluído .
- Não é possível submeter ou guardar o pedido, uma vez que não foram efetuadas quaisquer alterações. Adicione ou atualize o valor ou o tipo de licença e tente novamente.
- O pedido de licença introduzido contém um ou mais dias com a mesma data e tipo de licença que um pedido pendente existente. Recupere a solicitação existente para fazer alterações.
- O código de razão '{ReasonCodeId}' não se aplica a nenhum tipo de licença no pedido.
- O tipo de licença '{LeaveTypeId}' requer um código de razão. Selecione o tipo e o código de razão apropriados.
- A folga não foi enviada com sucesso. A licença foi guardada como um pedido de rascunho.