Ejecución de Procedimientos Almacenados de Usuario en TransaccionesConfiguración y uso
+ Para que sirve:
Con este nuevo módulo se va a poder escribir codigo SQL que se ejecuta dentro de una transacción y
poder cancelar la transacción, hacer procesos adicionales que requiera la empresa, mandar mails,
actualizar tablas de la base de datos, actualizar otras bases de datos, etc.
También se puede hacer desde validaciones y retornar mensajes al usuario o procesos complejos
de negocios de la empresa.
Se puede hacer en Compras, Pagos, Ventas, Pedidos y Cobranzas.
+ Configuración y uso:
Para activarlos deberá hacerlo en :
Configuración / Sistema / Compañias / Ejecución de Procedimientos Almacenados de Usuario en Transacciones.
sp_USERSP_wfmSaleOrder_Save_postOpenTransaction : Ejecuta al guardar pedido antes de iniciar la transacción.
sp_USERSP_wfmSaleOrder_Save_preCloseTransaction : Ejecuta al guardar pedido después de hacer la transacción.
sp_USERSP_wfmSaleOrder_Issue_postOpenTransaction : Ejecuta al emitir pedido antes de iniciar la transacción.
sp_USERSP_wfmSaleOrder_Issue_preCloseTransaction : Ejecuta al emitir pedido después de hacer la transacción.
sp_USERSP_wfmPurchaseDocs_postOpenTransaction : Ejecuta al ingresar compra antes de iniciar la transacción.
sp_USERSP_wfmPurchaseDocs_preCloseTransaction: Ejecuta al ingresar compra después de hacer la transacción.
sp_USERSP_wfmCollection_postOpenTransaction : Ejecuta al ingresar cobranza antes de iniciar la transacción.
sp_USERSP_wfmCollection_preCloseTransaction : Ejecuta al ingresar cobranza después de hacer la transacción.
sp_USERSP_wfmPayments_postOpenTransaction : Ejecuta al ingresar pago antes de iniciar la transacción.
sp_USERSP_wfmPayments_preCloseTransaction : Ejecuta al ingresar pago después de hacer la transacción.
A la hora de crear el procedimiento almacenado tener en cuenta :
En @ret_ErrorDescription se pondrá el mensaje personalizado que uno desee, en caso de que @ret_ErrorCode
devuelva un valor menor a 0 mostrará dicho mensaje.
Ejemplo de procedimiento almacenado:
CREATE PROCEDURE [dbo].[sp_USERSP_wfmSaleOrder_Save_postOpenTransaction]
(
@comp_id INT,
@bra_id INT,
@User_id INT,
@Prof_id INT,
@Lang_id INT,
@TransactionClass INT,
@ct_transaction INT,
@guid UNIQUEIDENTIFIER,
@OptionalInteger1 INT,
@OptionalInteger2 INT,
@OptionalBigInt1 BIGINT,
@OptionalBigInt2 BIGINT,
@OptionalDate1 DateTime,
@OptionalDate2 DateTime,
@OptionalString1 NVARCHAR(200),
@OptionalString2 NVARCHAR(200),
@OptionalBit1 BIT,
@OptionalBit2 BIT,
@ret_ErrorCode int OUTPUT,
@ret_ErrorDescription varchar(200) OUTPUT
)
AS
BEGIN
SET NOCOUNT ON
SET @ret_ErrorCode = 0
SET @ret_ErrorDescription = ''
BEGIN TRY
-- ----------------------------------------------------
-- Poner aquí todo el código personalizado del usuario
-- ----------------------------------------------------
-- ----------------------------------------------------
SET @ret_ErrorCode = 0
SET @ret_ErrorDescription = 'Todo OK'
END TRY
BEGIN CATCH
SET @ret_ErrorCode = -1
SET @ret_ErrorDescription = ERROR_MESSAGE()
END CATCH
END