Compartilhar via


Enviar uma solicitação de licença para o fluxo de trabalho

Aplica-se a estes aplicativos do Dynamics 365:
Human Resources

No 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. Essa API é exposta como uma ação na entidade MyLeaveRequests OData.

Pré-requisitos

A solicitação de licença deve ser salva no banco de dados e recuperada por meio da entidade MyLeaveRequests.

Permissões

Uma das permissões a seguir é necessária para chamar essa API. Para obter mais informações sobre permissões como selecioná-las, consulte Autenticação.

Tipo de permissão Permissões (de menos privilegiado ao mais privilegiado)
Delegada (conta corporativa ou de estudante) user_impersonation

Solicitação 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

A solicitação 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.

Observação

Embora os campos da entidade MyLeaveRequests se refiram a uma linha individual na solicitação de licença, chamar a API de envio enviará toda a solicitação de licença (todas as linhas) para o fluxo de trabalho.

Cabeçalhos de solicitação

Cabeçalho Value
Autorização Portador {token} (obrigatório)
Tipo de Conteúdo application/json

Corpo da solicitação

Não forneça um corpo de solicitação para este método.

Resposta

Uma resposta bem-sucedida é sempre uma resposta 204 sem conteúdo.

As chamadas não autorizadas recebem um 401 Não Autorizado ou um 403 Proibido resposta.

Se o envio não for bem-sucedido (por causa da validação, por exemplo), o resposta é um erro de servidor 500 e o corpo da 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 envio, o Human Resources executa a validação de lógica comercial antes do envio, o que garante o estado válido da solicitação de licença para envio. Possíveis mensagens de erro recebidas na resposta se houver falha nas validações:

  • A solicitação deixaria o saldo "{LeaveTypeId}" abaixo do saldo mínimo permitido em {date}.
  • A solicitação de folga no estado concluído não pode ser enviada.
  • Não é possível enviar ou salvar a solicitação, pois não houve alterações. Adicione ou atualize o valor ou o tipo de licença e tente novamente.
  • A solicitação de folga inserida contém um ou mais dias com a mesma data e tipo de licença que uma solicitação pendente existente. Cancele a solicitação existente para fazer alterações.
  • O código de motivo '{ReasonCodeId}' não se aplica a nenhum tipo de licença na solicitação.
  • O tipo de licença '{LeaveTypeId}' requer um código de motivo. Selecione o tipo e o código de motivo apropriados.
  • A folga não foi enviada com êxito. A folga foi salva como uma solicitação de rascunho.

Consulte também