PDA

Ver la Versión Completa : Triggers


sanckok
11/11/08, 09:36:49
Muy buenas,

Me gustaria saber si existe algo parecido a los triggers en SAP.
Necesito controlar cada vez que se haga un insert en la tabla MSEG.

Muchas gracias

emerson.tosin
11/11/08, 10:41:16
Yo acredito que no... la unica cosa que puede hacer es econtrar las transaciones que insertan registros en la tabla MSEG y encontrar las exit´s ... hacer un tratamiento en el momiento de salva...

sanckok
11/11/08, 11:02:38
Me temia esta respuesta, pero tenia que intentarlo, jeje
Muchas gracias, espero de todas formas a ver si alguien se ha encontrado alguna vez con algo parecido y me puede dar otra solucion... la esperanza nunca se pierde ;)

ballan
11/11/08, 11:07:40
Entre las instrucciones EXEC SQL y ENDEXEC puedes introducir codigo nativo de SQL, puedes llamar a procedimientos almacenados, etc y en teoria te deberia dejar crear TRIGGERS, de todas formas cuenta lo que quieres hacer porque SAP no trabaja asi, quiza se pueda hacer de otra forma

DavidXD_XD
11/11/08, 11:31:06
Hola ... tal vez es una idea, porque no realizas un programa en el cual realizas una consulta a la CDHDR y a la CDPOS para que puedas ver cuantos INSERT's se han realizado ... y esos los grabas dentro de una tabla Z, ahi colocarias todos los numeros de documento que hayas encontrado ... ahora por lo mismo que sap no acepta triggers puedes correr ese programa via JOB pero por ejemplo cada 5 horas ... con eso como que puede imitar a un trigger

sanckok
11/11/08, 12:13:25
Muchas gracias por las respuestas,

Pues os cuento, se que me vais a decir que no lo haga asi, que SAP no trabaja asi, pero necesito que se haga online.
Necesito que cada vez que se hace una entrada de material, salida, anulacion, devolucion... cualquier movimiento, y desde cualquier transaccion, me genere un fichero de texto para transportarlo a otro programa.

Si se les ocurre algo, soy todo oidos... bueno, en este caso ojos ;)

Muchas gracias por la ayuda

DavidXD_XD
11/11/08, 12:18:23
A verdad ... escuche por ahi (no se si sea cierto) que denrto de SAP el unico que puede mandar triggers son los WorkFLows, la unica forma seria atacar por ahi

ibecerra
11/11/08, 13:05:58
a ver si te puedo ayudar. dime q version de SAP tienes.

sanckok
11/11/08, 13:38:33
Ahora mismo estamos con la 4.7.

ibecerra
11/11/08, 13:44:43
chispas, para esa version no tengo la solución.
te explico la solucion plantead era sencilla y practica pero solo se puede hacer en la version 6.0.
no se si has escuchado los ENHANCEMENT-POINT, con ello puedes meter codigo al standard en ciertas posiciones.
y lo que se tenia que hacer era buscar el programa standard donde hace el insert a la mseg, ubicar el ENHANCEMENT-POINT y meter codigo abap simulando el trigger.
como te decia es algo nuevo en ABAP
Saludos

sanckok
11/11/08, 13:54:07
Ok, gracias
Si que habia oido hablar de lo que comentas, pero todavia no estamos en la 6.0 :( por poco pero hasta mediados del año que viene, no la tendre

Seguire buscando

ballan
11/11/08, 14:17:48
En SAP si es posible crear triggers, lo que pasa es que hasta donde yo se no puedes crearlos contra tablas standar, solo funcionarian contra tablas de otras BBDD

Suponiendo que todas las entradas, salidas, devoluciones, etc las vas a hacer por la transaccion MIGO yo buscaria una user-exit, BADI, enhancement o algun punto proporcionado por SAP para poder introducir codigo y ahi podrias generar el fichero y enviarlo a donde proceda

Para encontrar una usrer-exit busca en este mismo foro y hay un report que te las busca, yo he buscado en mi sistema que tiene la version 6 y me han salido estas

MBCF0002 Salida función cliente: segemento txt en pos.documento mat.
MBCF0005 Pos.documento de material p.vale de acompañamiento de mrcías
MBCF0006 Función cliente p.elemento PSP
MBCF0007 Exit función cliente: Actualización de una reserva
MBCF0009 Rellenar el campo almacén
MBCF0010 Exit de cliente: Crear reserva BAPI_RESERVATION_CREATE 1
MBCF0011 Lectura de RESB y RKPF para lista de impresión en MB26
MB_CF001 Customer Function Exit en actualización documento material


Para encontrar una BADI pon un break point en el metodo get_instance de la clase CL_EXITHANDLER y luego realiza una entrada o algo por la MIGO, se te ira parando en cada una de las BADIs que luego podras implementar en la transaccion SE19 para ver si te sirven

Para buscar un enhancement vete al programa SAPLMIGO y dale a los prismaticos para buscar y pon ENHANCEMENT, (aunque yo creo que en la 4.7 todavia no existian)