Habilitando el Despacho Automático para Procesos Propios
Introducción
El Despacho de Documentos permite el despacho automático de todos los perfiles de Despacho cuando se ejecutan procesos específicos (por ejemplo, convertir un contrato en un pedido). La mayoría de los procesos relevantes en el estándar de Business Central ya están cubiertos. Sin embargo, puede ser el caso de que lo que se supone que debe activar el envío aún no esté cubierto o esté fuera del estándar de Business Central.
Para lograr una integración dentro de un procedimiento deseado, debes:
-
Definir un evento personalizado que se active en el punto deseado de tus procesos (por ejemplo, después de publicar un pedido o actualizar una tabla específica).
-
Asegurarte de que exista un conector que conecte tu/s aplicación/es con el Despacho de Documentos. Crea uno si es necesario para facilitar la integración.
-
Crear un Suscriptor de Eventos para este evento dentro de tu propio conector.
Este artículo explica cómo implementar estos pasos y proporciona código de ejemplo para crear un evento, suscribirse a él y vincularlo a nuestra funcionalidad de despacho.
Creando y Suscribiéndose a un Evento Personalizado
Paso 1: Definir el Evento Personalizado
El primer paso es definir un evento personalizado en el código AL. Este evento debe activarse en el punto apropiado del proceso para asegurar el momento correcto para el despacho. Por ejemplo:
[IntegrationEvent(false, false)]
local procedure OnAfterCustomProcess(ParamCustomRecord: Record "Custom Table"; ParamAdditionalInfo: Text)
begin
// Este evento se activará después de un proceso personalizado, como publicar o actualizar.
end;
En este ejemplo, se define el evento OnAfterCustomProcess para una tabla personalizada. Toma el registro de la tabla y cualquier información adicional relevante como parámetros.
Paso 2: Implementar el Disparador del Evento
Este evento personalizado debe ser llamado en el punto del proceso donde se debe iniciar el despacho. Por ejemplo, si debe enviarse después de que se publique un registro:
procedure PostCustomRecord(var ParamCustomRecord: Record "Custom Table")
begin
// Lógica de publicación aquí...
Commit();
// Disparar el evento personalizado
OnAfterCustomProcess(ParamCustomRecord, 'Publicación personalizada completada');
end;
Paso 3: Crear el Suscriptor de Eventos
Una vez que el evento personalizado está en su lugar, el siguiente paso es crear un Suscriptor de Eventos en el conector que escuche el evento y lo conecte al Despacho de Documentos:
[EventSubscriber(ObjectType::Codeunit, CodeunitId, 'OnAfterCustomProcess', '', false, false)]
local procedure HandleCustomProcess(ParamCustomRecord: Record "Custom Table"; ParamAdditionalInfo: Text)
var
LocalCodeunitSIMEDSSI: Codeunit "SIM_EDS SI";
LocalCodeunitSIMEDSQueueMgt: Codeunit "SIM_EDS Queue Mgt";
LocalRecordRef: RecordRef;
begin
// Obtener la referencia del registro para la tabla personalizada
LocalRecordRef.GetTable(ParamCustomRecord);
LocalRecordRef.SetRecFilter();
// Llamar a la funcionalidad de despacho
LocalCodeunitSIMEDSSI.SetIsCustomProcess(true);
LocalCodeunitSIMEDSQueueMgt.SendEDS(LocalRecordRef, false, false, '');
LocalCodeunitSIMEDSSI.ClearIsCustomProcess();
end;
Explicación
Evento Personalizado:
- Debes definir eventos propios, como OnAfterCustomProcess, que deben activarse en el momento adecuado de tus procesos (por ejemplo, después de publicar un registro).
- Esto asegura total flexibilidad para integrar el Despacho de Documentos con tus flujos de trabajo personalizados.
Suscriptor de Eventos:
- El suscriptor escucha el evento personalizado y lo conecta a nuestro procedimiento de despacho.
- Esto debe implementarse dentro de tu conector.
Conector:
- Si no existe un conector, debes crear uno para vincular tus tablas/procedimientos personalizados con el Despacho de Documentos.
Registros y Solución de Problemas
Si la integración no funciona como se esperaba:
- Verificar el Disparo del Evento Personalizado: Asegúrate de que el evento personalizado se llame en el punto apropiado del proceso.
- Verificar Registros: Los registros indicarán problemas, como configuraciones incorrectas o conexiones faltantes entre el evento y el procedimiento de despacho.
- Verificar la Configuración del Conector: Si el Suscriptor de Eventos no está funcionando, asegúrate de que esté correctamente implementado en un conector funcional.
Resumen
Al crear un evento personalizado y un Suscriptor de Eventos dentro de tu conector, puedes extender la funcionalidad del Despacho de Documentos a tablas y procesos personalizados. La flexibilidad para definir dónde y cómo se activa el evento permite una integración fluida con flujos de trabajo únicos.
Si no existe un conector, debe crearse como base para esta integración. Para asistencia adicional, consulta nuestra documentación de soporte o contacta al soporte técnico.