MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Bapi_po_create - Extensionin (foro/showthread.php?t=65166)

SAPING 12/11/12 13:55:06

Bapi_po_create - Extensionin
 
Hola.
Agregue un campo ZZ a la tabla EKKO y necesito saber como usar la estructura EXTENSIONIN de la funcion BAPI_PO_CREATE para pasarle este nuevo campo-valor.
Estuve buscando bastante pero no me queda claro como hacerlo.

Si me pueden ayudar, joya!!...

crounly 13/11/12 10:22:20

Busca un poco mas...lo tienes en un post del mes pasado:


SAPING 14/11/12 11:08:10


Si, lo he visto.
Pero no me queda 100% claro como hacerlo ya que primero es para la BAPI_PO_CREATE1, y despues que es para items.

Viendo un poco la funcion, vi que tengo un tratamiento para header, que es lo que busco, donde usa una estructura BAPI_TE_PO_HEADER...
La diferencia con el que vos me pasas es que esta estructura no posee el campo ZZ que agregue a la EKKO...
No se si lo tengo que agregar yo, o que....
Ese es mi problema... no se como completar esa estructura que solo posee el campo PO_NUMBER, que es el num de doc de venta...

Entiendo que la EXTENSIONIN se debe completar con el nombre de la estructura de la bapi (bapi_te_po_header) en el campo STRUCTURE para hacer referencia a que extension usar, pero los valores no se como agregarlos a los campos VALUEPARTx...

No se si me explico...

Gracias por tu rta!

crounly 14/11/12 23:35:21

Tienes que añadir el campo a CI_EKKODB y a CI_EKKODBX ( este ultimo , mismo nombre pero CHAR 1 ).

Yo solo he trabajado con posiciones , no con cabecera, pero funciona igual.

En vez de:


Utiliza:


Luego lo rellenas ( adapta a tu campo ):


Y T_EXTENSIONIN lo pasa al parametro EXTENSIONIN.

Me cuentas si te ha funcionado. Suerte

Roy Fredy 15/11/12 15:28:48

BAPI_PO_CREATE1 para creacion de ordenes de servicio
 

Mauricio Hidalgo 15/11/12 19:25:07

1° Tienes un user exit disponible en la BAPI BAPI_PO_CREATE1. Se llama EXIT_SAPL2012_001.

2° La estructura EXTENSIONIN, la ocupas de la siguiente forma.
STRUCTURE = 'IDENTIFICADOR'
VALUEPART1 = <Valor para el Campo ZZ>

3° En el user exit.
Ya debes tener creado el documento, según la ubicación donde se encuentra este exit.
Entonces leer la tabla EXTENSIONIN con STRUCTURE = 'IDENTIFICADOR' y actualizar la tabla EKKO con:

UPDATE EKKO
SET <CAMPO ZZ> = <VALUEPART1>
WHERE EBELN = POHEADER-PO_NUMBER.


En todo caso, la otra alternativa es que implementes una BADI usando la ME_PROCESS_PO_CUST.

Pero con todo lo anterior mucho más simple sería que tras haber llamado la BAPI, hicieras un update de la tabla EKKO con el dato que necesitas insertar.

Saludos y espero te sirva

Roy Fredy 16/11/12 20:15:21

Me sugirieron aplicarle la nota 736576
 
El funcional aplico la nota respectiva pero persiste en el mismo error me dijeron que con la aplicación de esa nota se soluciona mi problema .
Es necesario utilizar user exit , badi para la solución respectiva tomando en cuenta que los usuarios que van a ejecutar dicha función lo realizaran en forma continua ;espero su gentil apoyo indicándome cual es el camino mas idóneo.

Adjunto el log respectivo de la funcion

crounly 17/11/12 14:27:51

revisa que estan todos los campos tanto en la CI_EKKODB y a CI_EKKODBX.

pega por aqui como rellenas el EXTENSIONIN

Roy Fredy 19/11/12 13:43:12

no se como trabajar con la CI_EKKODB
 
E visualizado que tengo en la CI_EKKODB ciertos campos , que campos tendría que añadir tanto en la estructura , y que código agregaría en mi función .
Adjunto el código de la función rfc para ordenes de compra para que pueda ser revisado y que que código ustedes lo podrían añadir para lograr su ejecución de manera exitosa.

El codigo se puede abrir con libreoffice , openoffice listo para ser descargado , hasta se puede abrir con word , no es imagen de codigo si no denle click en donde figurar para descargar.
"El codigo esta en formato odt de Openoffice "

"img de mi estructura CI_EKKODB que campos tendria que añadir ???'

crounly 20/11/12 11:00:08

No puedo ver e codigo, solo la imagen.

Has ampliado también CI_EKKODBX??
Tienes que ampliar también esa tabla con los mismos campos que en CI_EKKODB
pero de tipo XFELD ( es un CHAR de 1 ).

Necesitas ampliar esa tabla.

Amplias CI_EKKODB y CI_EKKODBX con los nuevos campos.

Y después rellenas EXTENSIONIN como te he indicado en otro post.


Roy Fredy 22/11/12 13:19:54

E seguido sus instrucciones derrepente algo falta por eso solicito apoyo
 
Señores ante la prontitud de la entrega de esa función de parte del funcional responsable fijado por el para el día viernes 23 noviembre.
Pido a ustedes que si pudieran darse el tiempo de revisar con detenimiento el código respectivo ,añadirle el código faltante o que pasos me falta , que quisas no me halla dada cuenta debido a que soy un abaper junior .
Escribir a este mail para suministrarles el ID y la contraseña para poder acceder por el teamweaver , espero contar con su apoyo debido que el funcional que me supervisa esta impaciente por el termino de dicha función.

Roy Fredy 22/11/12 13:32:51

E seguido sus instrucciones derrepente algo falta por eso solicito apoyo
 
Señores ante la exigencia de la entrega de mi función rfc el cual debí haber encontrado la solución hace días , e procurado seguir sus instrucciones .
Solicito el apoyo de ustedes para que sea revisado mi codigo por ustedes, los valores de ingreso , o que porciones de código debo agregar , o que es lo que falta para lo cual escribo mi mail para suministrarle el id y la contraseña para que puedan acceder por el teamweaver para que ustedes puedan revisar dicho codigo y corregirlo.
El uso del user exit me lo descarto el funcional es una funcion rfc se va a utilizar varias veces asi me comento , y no me esta permitido trabajar con BADi , ademas no e trabajado con Badis.

Roy Fredy 26/11/12 20:08:30

No entiendo muy bien que hacer que añadiria en el User Exit
 
Señores soy un abaper que se esta iniciando por eso no se como seguir adecuadamente la guía que me tratan de dar .
Estoy publicando mi código si es que me lo pueden revisar espero gentilmente su ayuda , y podrían añadir el código respectivo si en caso utilizo user exit que código añadir me han indicado que no puedo trabajar con la CI_EKKODB por que pertenece a otra OT y a otro usuario fuera de la empresa en la que estoy.
Indicar en lo posible de manera detallada.
:(
codigo de la funcion respectiva que esta en dev....

Roy Fredy 19/12/12 21:19:08

Problema solucionado
 
No hubo necesidad de utilizar un user exit , una badi .
Solo modificar una linea alguien que sugirió que la pila de sap tiene un funcionamiento que debes saber.

SAPING 21/12/12 15:18:33



Muchas gracias por la ayuda CROUNLY, ya lo pude realizar (no lo hice antes porque surgieron otras prioridades)

Lo unico para aclarar es que la bapi BAPI_PO_CREATE trabaja con la estructura "BAPI_TE_PO_HEADER" y no con la "BAPI_TE_MEPOHEADER".
A su vez, no es necesario colocar la "BAPI_TE_MEPOHEADERX".

Les dejo mi codigo por las dudas:

Abrazo !!!


Husos Horarios son GMT. La hora en este momento es 10:20:35.

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