on 01-14-2011 10:18 PM
Estimados
necesito restringir las imputaciones a los centros de beneficio por usuario, para algunos usuario no debe permitir imputar los CB y emitir un mensaje No autorizado. Trate de hacerlo creando un campo de usuario en la tabla de usuario, y enlazando una busqueda formateada pero no logro los resultado que espero. Como lo podria hacer con Transaction Notification?.
Por favor solicito si alguien me enviara un manual de TN.
gracias, Saludos
Marianet
Buenas tardes
Tienes algun correo para enviarte el manual.
Saludos
FLR
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Buenos dias
Prueba con esta validacion en las facturas de proveedores
IF (@object_type = 18) and (@transaction_type= 'A' or @transaction_type = 'U')
BEGIN
DECLARE @USER as Nvarchar (25)
SET @USER = (SELECT T0.userSign
FROM OPCH T0
WHERE T0.DocEntry = @list_of_cols_val_tab_del)
DECLARE @CB as NVarchar (25)
SET @CB = (SELECT COUNT(T1.OcrCode)
FROM OPCH T0
INNER JOIN PCH1 T1 ON T1.DocEntry = T0.DocEntry
WHERE T0.DocEntry = @list_of_cols_val_tab_del)
IF (@USER IN (cod,cod,cod,cod)) AND (@CB > '0')
BEGIN
SET @error = 101
SET @error_message = 'No tiene autorizacion para trabajar con centros de beneficio'
END
END
Saludos
FLR
Felipe
efectivamente la version 8.8.1 esta en pruebas, hay poca información, con los SP me ha ido bastante bien, he modificado algunos pero en la transaccion por ejemplo ingreso de facturas de compras no reconoce los cambio, debere eliminar el antiguo sp de alguna parte?
una vez mas , gracias por tu ayuda.
saludos
Marianet
Hola
Si entiendo bien, modificas un SP y el SAP no te reconoce los cambios? estas segura que los cambios quedan guardados en el SBO_SP_TransactionNotification?
si quieres dejar sin efecto un SP, solo colocalo entre /* */
ejemplo
/*IF (@object_type = 17) and (@transaction_type= 'A' or @transaction_type = 'U')
BEGIN
DECLARE @SN as Nvarchar (25)
SELECT @SN = T0.CardCode FROM ORDR T0 WHERE T0.DocEntry = @list_of_cols_val_tab_del
IF @SN = '96936470-0'
BEGIN
SET @error = 102
SET @error_message = 'SN incorrecto'
END
END*/
Asi dejas sin efecto el SP
Saludos
Felipe
no se que estare haciendo mal pero tengo el sgte error al ejecutar desde sql, estoy generando al restriccion de CB en la orden de compra cambie las tablas
a OPDN y PDN1,
el proceso que hice fue el siguiente
En sql click derecho sobre SBO_SP_TransactionNNotification- Incluir procedimiento de almacenado como y selecciono CREATE
me trae por defecto el primer SP que esta echo para factura de proveedores y sobre este modifico. No se si estara correcto.
gracias por tu ayuda
Mens 2714, Nivel 16, Estado 3, Procedimiento SBO_SP_TransactionNotification, Línea 48
Ya hay un objeto con el nombre 'SBO_SP_TransactionNotification' en la base de datos.
es SQL 2005
saludos
Marianet
Buenas,
El procedimiento esta correcto, pero las tablas de Orden de compra son OPOR y POR1, tambien debes cambiar el Object_type
Las tablas OPDN y PDN1 son de las Entradas de Mercaderias OP, mas arrina te las puse como ejemplo junto con el objtype
Para saber el tipo de objeto de cada documento debes hacer la siguiente query
SELECT DISTINCT objtype
FROM TABLA
Si le das OPCH te arrojara 18, si le das OINV te arrojara 13 y asi con las demas
Entonces si quieres hacer el SP para las ordenes de compra, debes saber cual es el objtype de la O/C.
Luego en la validacion, aparte de cambiar las tablas, debes cambiar el Object_type
Donde dice
IF (@object_type = 18) -- (18 = Factura de Proveedores)
Debe decir
IF (@object_type = 22) -- (22 = Orden de Compra)
Saludos
FLR
PD: Si no te funciona, enviame un pantallazo
Edited by: Floyola on Jan 25, 2011 5:08 PM
Edited by: Floyola on Jan 25, 2011 5:11 PM
Felipe
favor corrigene si estoy en un error se debe cambiar el nombre al crear un nuevo SP en CREATE PROC, te adjunto el sp de ordenes de compras para que lo observes y veas si cometi algun error
Hice ordenes de compra pero no esta considerando el sp, graba sin enviar el mensaje. en la factura proveedor funciona correctamente, ¿al grabar un SP cambia automaticamente de CREATE A ALTER?
MUCHAS GRACIAS POR TU AYUDA
MARIANET
GO
/****** Objeto: StoredProcedure .[SBO_SP_TransactionNotification] Fecha de la secuencia de comandos: 01/26/2011 13:14:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
@object_type nvarchar(20), -- SBO Object Type
@transaction_type nchar(1), -- dd, pdate, elete, ancel, C[L]ose
@num_of_cols_in_key int,
@list_of_key_cols_tab_del nvarchar(255),
@list_of_cols_val_tab_del nvarchar(255)
AS
begin
-- Return values
declare @error int -- Result (0 for no error)
declare @error_message nvarchar (200) -- Error string to be displayed
select @error = 0
select @error_message = N'Ok'
-- ADD YOUR CODE HERE
IF (@object_type = 22) and (@transaction_type= 'A' or @transaction_type = 'U')
BEGIN
DECLARE @USER as Nvarchar (25)
SET @USER = (SELECT T0.userSign
FROM OPOR T0
WHERE T0.DocEntry = @list_of_cols_val_tab_del)
DECLARE @CB as NVarchar (25)
SET @CB = (SELECT COUNT(T1.OcrCode)
FROM OPOR T0
INNER JOIN POR1 T1 ON T1.DocEntry = T0.DocEntry
WHERE T0.DocEntry = @list_of_cols_val_tab_del)
IF (@USER IN (1)) AND (@CB > '0')
BEGIN
SET @error = 101
SET @error_message = 'No tiene autorizacion para trabajar con centros de beneficio'
END
END
-
-
-- Select the return values
select @error, @error_message
end
Buenas
Deberia estar de esta manera, pruebalo antes
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[SBO_SP_TransactionNotification]
@object_type nvarchar(20), -- SBO Object Type
@transaction_type nchar(1), -- [A]dd, pdate, [D]elete, [C]ancel, C[L]ose
@num_of_cols_in_key int,
@list_of_key_cols_tab_del nvarchar(255),
@list_of_cols_val_tab_del nvarchar(255)
AS
begin
-- Return values
declare @error int -- Result (0 for no error)
declare @error_message nvarchar (200) -- Error string to be displayed
select @error = 0
select @error_message = N'Ok'
-----------------------------------------------------------------------------
-- ADD YOUR CODE HERE
-- VALIDACION CENTRO BENEFICIO POR USUARIO EN ORDENES DE COMPRA
IF (@object_type = 22) and (@transaction_type= 'A' or @transaction_type = 'U')
BEGIN
DECLARE @USER as Nvarchar (25)
SET @USER = (SELECT T0.userSign
FROM OPOR T0
WHERE T0.DocEntry = @list_of_cols_val_tab_del)
DECLARE @CB as NVarchar (25)
SET @CB = (SELECT COUNT(T1.OcrCode)
FROM OPOR T0
INNER JOIN POR1 T1 ON T1.DocEntry = T0.DocEntry
WHERE T0.DocEntry = @list_of_cols_val_tab_del)
IF (@USER IN (1)) AND (@CB > '0')
BEGIN
SET @error = 101
SET @error_message = 'No tiene autorizacion para trabajar con centros de beneficio'
END
END
-----------------------------------------------------------------------------
-- Select the return values
select @error, @error_message
end
Saludos
FLR
Edited by: Floyola on Jan 26, 2011 5:17 PM
User | Count |
---|---|
104 | |
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.