Enviar una solicitud de baja al flujo de trabajo
Se aplica a estas aplicaciones de Dynamics 365:
Human Resources
Puede Microsoft Dynamics 365 Human Resources utilizar la interfaz de programación de aplicaciones (API) submit() de MyLeaveRequests para enviar una solicitud de baja al flujo de trabajo. Esta API se expone como una acción en la entidad OData MyLeaveRequests.
Requisitos previos
La solicitud de baja debe guardarse en la base de datos y se debe poder recuperar a través de la entidad MyLeaveRequests.
Permisos
Se requiere uno de los siguientes permisos para llamar a esta API. Para obtener más información acerca de los permisos y de cómo seleccionarlos, consulte Autenticación.
Tipo de permiso | Permisos (de menos a más privilegios) |
---|---|
Delegado (cuenta profesional o educativa) | user_impersonation |
Solicitud 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 solicitud se ajusta a los estándares OData. Los parámetros {requestId}, {leaveType}, {leaveDate} y {dataArea} hacen referencia a los campos que componen la clave natural compuesta para la entidad MyLeaveRequests.
Nota
Si bien los campos para la entidad MyLeaveRequests se refieren a una línea individual en la solicitud de baja, al llamar a la API de envío se enviará toda la solicitud de baja (todas las líneas) al flujo de trabajo.
Encabezados de solicitud
Encabezado | Valor |
---|---|
Autorización | Portador {token} (requerido) |
Content-Type | application/json |
Cuerpo de solicitud
No proporcione un cuerpo de solicitud para este método.
Respuesta
Una respuesta exitosa siempre es una respuesta 204 Sin contenido.
Las personas que llaman sin autorización reciben una respuesta 401 no autorizada o 403 prohibida .
Si el envío no se realiza correctamente (por ejemplo, debido a la validación), la respuesta es un error del servidor 500 y el cuerpo de la respuesta incluirá un objeto JSON con más detalles.
Ejemplo
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()"
}
}
}
Validación y mensajes de error
Como parte de la llamada a la API de envío, Recursos Humanos realiza la validación de la lógica de negocios antes del envío, lo que garantiza que la solicitud de baja se encuentre en un estado válido para el envío. Los posibles mensajes de error que puede recibir en la respuesta si se produce un error en las validaciones son:
- La solicitud pondría el saldo '{LeaveTypeId}' por debajo del saldo mínimo permitido en {date}.
- No se puede enviar una solicitud de indisponibilidad en estado Completada .
- No se puede enviar o guardar la solicitud ya que no se han realizado cambios. Agregue o actualice la cantidad o el tipo de baja e inténtelo de nuevo.
- La solicitud de indisponibilidad introducida contiene uno o más días con la misma fecha y tipo de baja que una solicitud pendiente existente. Recuperar la solicitud existente para realizar cambios.
- El código de motivo '{ReasonCodeId}' no se aplica a ninguno de los tipos de bajas de la solicitud.
- El tipo de baja "{LeaveTypeId}" requiere un código de motivo. Seleccione el tipo adecuado y el código de motivo.
- El tiempo libre no se envió correctamente. La indisponibilidad se ha guardado como un borrador de solicitud.