cancel
Showing results for 
Search instead for 
Did you mean: 

Log de tablas de usuario

Former Member
0 Kudos

Hola amigos,

Tengo una tabla de usuario que ya esta creada en SAP BO, el cual almacena los números de los documentos de ventas.

Resulta que necesitamos saber quienes son aquellas personas que ingresan a esta tabla a través de SAP a modificar los valores, ya que hemos detectado que lo están haciendo mal, pero no sabemos qué usuarios son.

De pronto se me ocurre poder grabar en una tabla X los datos que me puedan ayudar a obtener esta información, es decir, construir mi propio log.

He intentado hacer esto por el postNotice, ya tengo el objeto, fecha, hora de modificación pero me falta el nombre del usuario que es el dato mas importante. Mi pregunta es: ¿Cómo puedo obtener al usuario que en esos momentos me esta modificando esta tabla para poder grabarlo en log?

Espero me hayan entendido.

Gracias de antemano.

CRB


Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Buen día Christian,

La forma que yo conozco para tener un "LOG" en las tablas definidas por el usuario es registrando la tabla como objeto de SAP, ahí tienes la opción de generar las tablas de "LOG" en la ventana de configuración.

Te anexo un link con el manual (en inglés) para configurar los objetos en SAP Business One. Con esto el sistema reconoce como objeto las tablas y puedes utilizarlos en el Transaction Notification como cualquier otro nativo de SAP.

http://www.michellgroup.com/images/pdf/bl%20howto_udobjects_882.pdf

Saludos,

Former Member
0 Kudos

Carlos, gracias por tu respuesta.

Si tenía entendido lo que mencionas, pero en mi caso ya esta tabla esta creada y su tipo de objeto no se puede modificar a Datos maestros o algo parecido que me permita hacer lo que me mencionas.

Quería sacarle la vuelta a todo esto de alguna manera, espero que se pueda hacer de alguna u otra manera.

Gracias nuevamente.

rjovel
Active Participant
0 Kudos

si ya tienes identificado el objeto, porque no usas el transactionnotification?

de ahi puedes obtener el usuario, que modifica, y creas una base de datos de control aparte de la de sap, donde mandas el insert con la informacion de la fecha usuario y valor que se modifico.

o puedes subir el codigo que estas usando actualmente para darle una revisada y ver en que te podemos colaborar!

Former Member
0 Kudos

Lo que pasa Roger es que por tratarse de una tabla de usuario por lo que sé no hay forma de obtener el usuario que esta modificando esta tabla.

Por lo que he visto no funciona como una oinv por ejemplo donde si me es sencillo capturar el usuario que modifica o crea.

Lo metí en el postnotice porque voy hacer un Insert a mi tabla del log y para eso me aseguro que haya pasado efectivamente todas las restricciones que contiene un transactionnotification.

El código que solicitas es solo esto que te adjunto..

IF (@object_type = '-3@BPP_NUMDOC' and (@transaction_type='U'))

BEGIN


/*ACA ES DONDE TENGO Q CAPTURAR EL USUARIO*/

INSERT INTO LOG_TABLADOC

VALUES (@usercode, GETDATE())

END

rjovel
Active Participant
0 Kudos

y si haces un backup de la tabla, la borras, la vuelves a crear como te dice Carlos Ventura y le ingresas los datos nuevamente?

podrias probar en una base de datos de pruebas, al menos lo peor que pueda pasar es que no te funcione.....

pero ahi solo te faltaran 2997 bombillas mas que probar no!! (jajajajaa, el caso de thomas edisson cuando creo la bombilla de luz)

Former Member
0 Kudos

jeje si Roger nada pierdo.

Aunque acabo de averiguar algo.. me metí a SQL Profiler, y por ahí vi algo que se registraba en la tabla SEVT de la BD COMMON.

En esta tabla se graba momentaneamente por un tiempo de segundos las últimas transacciones que se hacen en SAP, pero lo mejor de todo es que aquí sí se graba el usuario SAP.

Hasta el momento (aunque no conozco esta tabla SEVT) tengo lo siguiente:

SELECT TOP 1 @usercode=UserID

FROM [SBO-COMMON].dbo.SEVT WHERE ObjectType='-3          @BPP_NUMDOC' ORDER BY [Timestamp] DESC

Esto me devuelve el usuario del objeto que estoy modificando en el momento. Parece que si esta funcionando. Algunos de Uds. conoce esta tabla? voy a realizar mas pruebas y les cuento.

Answers (0)