Ejecución de Procedimientos Almacenados de Usuario en Transacciones
Configuració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




Contenido Relacionado