Partilhar via


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.

Consulte também