on 12-18-2015 7:19 PM
Estimados.
Como puedo empezar a trabajar con el TRANSACTION NOTIFICATION entontré este manual de SAP pero no me ayudó mucho: http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/e991e2b9-0901-0010-0395-ef5268b00...
Mis Principales dudas:
¿Donde está el Transaction Notification?
¿como puedo empezar a generar Stores Procedures?
Hay que instalar algun ADD-ON?
Necesito bloquear para algunos usuarios el campo nombre del Socio de Negocios en los datos maestros y según lo que leí el TN sería el camino.
Cualquier orientación la agradezco.
Saludos.
El transaction notification es un procedimiento almacenado en la base de datos de SBO.
Se ejecuta cada vez que se realiza alguna transaccion en la base de datos y es posible detener dicha transaccion aplicando lo que dice el documento que dejaste en el link.
Cada transaccion en SBO tiene un identificador único (ObjectType), con este identificador es posible filtrar y validar la transaccion.
Además del identificador unico de cada tipo de transaccion, en transation tambien nos informa 2 cosas claves:
La accion que se esta realizando(TransactionType), Add, Update, Delete, cLose, Cancel.
La llave primaria del registro de la transaccion (el docentry, cardcode, itemcode) dependiendo del objeto.
Con esos 3 datos es posible construir una validación, ejemplo, quiero bloquear cualquier modificación o creación de clientes que no tienen una "C" en el cardcode
*** Lo hare por partes para poder explicarlo
if @object_type='2' /* el 2 es el identidicador unico del objeto business partners*/
begin
if @transaction_type in ('A','U') /* A de add y U de update, es decir en la creación y actualización*/
begin
/* la variable @list_of_cols_val_tab_del me informa que cliente se esta modificando o creando */
if exists(select CardCode from OCRD where CardCode = @list_of_cols_val_tab_del and CardCode not like '%C%' and cardtype ='C')
begin
/*si la condición se cumple, es decir, el cliente que se esta modificando o actualizando no tiene una C en el cardcode seteamos las variables de error*/
set @error = 19 /* un numero interger */
set @error_message = 'mi error'
end
end
end
Cuando el transaction termina de ejecutarse, devuelve las 2 variables @error, @error_message, si al final @error es <> a 0 la transaccion no hará un commit (no quedara en la base de datos) y se hará un rollback de los cambios hechos por la transaccion.
Eso es lo mas detallado que puedo ser
Saludos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
99 | |
12 | |
11 | |
6 | |
6 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.