MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   IDOCS de materiales (foro/showthread.php?t=12770)

kaitarr 21/04/08 08:24:57

IDOCS de materiales
 
Hola a todos,

Vereis, acabo de empezar con el tema de IDOCS y nos ha surgido el siguiente problema. Tratamos los IDOCS con el programa RBDAPP01, pero lo que queremos es que cuando aparezca un IDOC con un material dado de alta en el maestro de materiales. dicho IDOC no lo trate. Actualemente estos IDOCs lo intenta tratar y luego aparecen como erróneos.

Alguien sabe cuales serian los pasos a seguir o donde podria añadir una verificacion a la MARA ??

He investigado que a través de la WE57 se asocia un IDOC con un tipo de mensaje (MATMAS en mi caso) y Tipo basico(MATMAS05) a una funcion, y aqui creo que se podria intentar algo. Pero no sé muy bien por donde empezar.

Muchas gracias.

Un saludo.

ballan 21/04/08 13:16:19

En la tx BD60 tienes que mirar a que modulo de funciones esta asociado tu mensaje (el estandar asocia la funcion MASTERIDOC_CREATE_SMD_MATMAS al tipo de mensaje MATMAS) entonces dentro de ese modulo de funcion puedes implementar alguna de las enhancement que tiene para que chequee si el material existe y en ese caso no cree el idoc ni lo distribuya

kaitarr 21/04/08 14:20:35

Muchas gracias por contestar ballan, pero sigo atascado con lo mismo.

Efectivamente ese es el modulo de funciones asociado a dicho mensaje, pero revisando el codigo no he encontrado ninguna user asociada a él ni sé donde podria implementar ese nuevo codigo.

¿ Quizá desde la BD60 se puede asociar ese mensaje a otra función Z y esta modificarla a mi gusto, o hay alguna forma de añadir codigo a esta MASTERIDOC_CREATE_SMD_MATMAS ?

Gracias de nuevo a todos los que nos ayudais a avanzar en esta historia :rolleyes:

ballan 21/04/08 15:22:13

Podrias crearte una copia de la funcion MASTERIDOC_CREATE_SMD_MATMAS y cambiarlo en la BD60 para que apunte a tu funcion Z pero como te dije mas arriba la funcion MASTERIDOC_CREATE_SMD_MATMAS dispone de varios enhancement que probablemente te sirvan, te cuento como implementarlos

1. Ve a la tx SE37 e ingresas el nombre de la funcion MASTERIDOC_CREATE_SMD_MATMAS

2. Dale a F7 para visualizar el codigo

3. Dale a los prismaticos y busca enhancement

4. Como minimo te apareceran los siguientes

ENHANCEMENT-POINT MASTERIDOC_CREATE_SMD_MATMA_01 SPOTS ES_SAPLMV01.
ENHANCEMENT-POINT MASTERIDOC_CREATE_SMD_MATMA_02 SPOTS ES_SAPLMV01.
ENHANCEMENT-POINT MASTERIDOC_CREATE_SMD_MATMA_03 SPOTS ES_SAPLMV01.
ENHANCEMENT-POINT MASTERIDOC_CREATE_SMD_MATMA_04 SPOTS ES_SAPLMV01.
ENHANCEMENT-POINT MASTERIDOC_CREATE_SMD_MATMA_05 SPOTS ES_SAPLMV01.

5. Como ejemplo te voy a decir como implementar la enhancement ENHANCEMENT-POINT MASTERIDOC_CREATE_SMD_MATMA_01 SPOTS ES_SAPLMV01.

6. Presiona el boton de las ampliaciones (es un boton que tiene forma de espiral o presiona SHIFT + F4)

7. Te posiciones en la linea donde pone ENHANCEMENT-POINT MASTERIDOC_CREATE_SMD_MATMA_01 SPOTS ES_SAPLMV01. y pinchas con el boton derecho en donde pone ES_SAPLMV01, en el menu que te sale seleccionas Ampliaciones/Crear

8. Te saldra un cuadro donde te pide que le indiques la clase donde la vas a implementar, en dicho cuadro veras que abajo a la izquierda hay un icono de un folio en blanco que sirve para crear

9. Dale al icono de crear y en el cuadro de dialogo que te aparece te pide que le des un nombre a la clase y que le asignes una descripcion (el campo de composite enhancement no se rellena) asignale a tu clase un nombre descriptivo por ejemplo ZCL_CHEQUEO_MARA y en la descripcion ponle lo que hace, dale a enter

10. Te volvera al cuadro que te aparecia en el punto 8 pero ahora aparecera tu clase ZCL_CHEQUEO_MARA, selecciona esa linea y dale a enter

11. Ahora observaras que habra creado un bloque de codigo delimitado por las sentencias ENHANCEMENT (aqui un numero) ZCL_CHEQUEO_MARA
ENDENHANCEMENT

12. Dentro de ese bloque puedes introducir el codigo que tu quieras para realizar los chequeos o lo que haga falta

13. Lo que tendrias que buscar es de todas las enhancement que existen cual es la que te sirve para realizar el chequeo

kaitarr 21/04/08 16:05:03

Gracias de nuevo, pero en mi codigo de la función no aparece ningún ENCHANCEMENT, asi que tendre que realizar una copia Z de la funcion y hacer alli los cambios.

Esperemos que funcione ;)

ballan 21/04/08 16:06:02

Que version sap tienes?

Si has buscado enchancement fijate bien porque es ENHANCEMENT

kaitarr 22/04/08 07:13:48

Hice lo que me comentaste en anteriores post y ENHANCEMENT no aparece en el codigo. Lo he vuelto a buscar tal como me dices y no aparece por ningún lado. Supongo que podría ser problema de versiones.

Aquí tienen la 6.20 en Basis y la 4.70 en la parte de Logistica y Finanzas

Ahora intentaré lo de la copia de la función a una Z.

Esperemos que esto funcione ... sino ya no sé que hacer.

kaitarr 22/04/08 08:04:09

Por cierto, si alguien sabe como podria crear un IDOC de entrada de materiales forma rapida para comprobar si funcionan los cambios, se lo agradeceria !!!!!!

Me han dicho que hay una transaccion que lo hace directamente, pero no la encuentro

ballan 22/04/08 08:51:30

En la transaccion WE19 puedes reprocesar un idoc cambiandole valores


Husos Horarios son GMT. La hora en este momento es 20:39:04.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web