PDA

Ver la Versión Completa : CS02 Texto de posición de lista de materiales


Lordval
10/11/09, 12:12:49
Buenas!!!,

Llevo dos días peleándome con los textos largos asociados a una posición de una lista de materiales, si entro a través de la trasancción CS02 los puedo crear, modificar, borrar... lo normal, la cuestión es que desde mi programa Z utilizo la instrucción CREATE_TEXT tal y como la utiliza el estándar y nada..., la cuestión es que es curioso el tema porque la información si que la guarda pero no la asocia a la posición X de la lista de materiales, es decir si después de ejecutar el CREATE_TEXT ejecuto el READ_TEXT vía SE37 puedo ver la información que cargué en mi programa Z pero desde la transacción no puedo ver el texto, siempre me aparece vacío.

Espero que alguién me pueda ayudar :(

Muchas gracias de antemano.

ballan
10/11/09, 13:07:16
Quiza es una tonteria pero has probado a llamar a la funcion COMMIT_TEXT despues de crear el texto?

Lordval
10/11/09, 14:07:32
Si, lo probé.

hasta el bapi_transaction_commit.

Muchas gracias por contestar tan rápido, a ver si hay suerte.

ballan
10/11/09, 14:50:05
Entonces el problema debe estar en la clave

Yo he probado a crear un texto y me funcionaba bien, he puesto lo siguiente

Idioma = ES
ID texto = MPO
Objeto texto = BOM
Nombre de texto = PO 1 (es importante que debes los espacios)

El campo nombre de texto creo que se construye de la siguiente manera:

PO + numero de posicion divido entre 10 y con longitud 9

Por ejemplo la posicion 10 se convertiria en 8 espacios en blanco y un 1
La posicion 100 en 7 espacios en blanco y un 10, etc

Haz pruebas y nos comentas

Lordval
10/11/09, 15:16:44
Lo intento ya de ya.

Pero hay algo que no me termina de gustar, si lo creas de esta manera como sabe a que lista de materiales pertence, la posición del nodo, contador, etc etc, son los campos que utiliza el estándar a la hora de asignar el name del objeto de texto, para ser más concreto necesito asociarlo al texto que aparece a nivel de posición, en la segunda pestaña de forma que cuando cre el texto desde la SE 37 lo pueda ver desde la CS02.

Justo ahora se cayó el sistema... pero muchas gracias.

Muchas gracias.

ballan
10/11/09, 16:17:27
Pues tienes toda la razon, he mirado el valor que tenia mientras creaba la lista y por eso le ponia el PO.....1 pero cuando lo he grabado y he mirado despues he visto el valor bueno

El campo nombre del texto va a llevar la clave de la tabla STPO, quicir

MANDT
STLTY
STLNR
STLKN
STPOZ

todo junto

Por ejemplo en mi caso seria

202M000003470000000400000009

Asi si identificarias univocamente la posicion y la lista

Otra cosa que me ha ocurrido es que al intentar crear una lista con una posicion y un texto para esa posicion me ha dicho que el texto tendria que tener una longitud minima de 3 lineas, si no no se generaria texto sino que se almacenaria en los campos POTX1 y POTX2

Prueba y nos comentas algo

Lordval
11/11/09, 06:56:34
Muchas gracias, ese es justo mi problema, utilizo esa composición para generar el objeto de texto, pero si vas con esos datos a la CS02 verás que realmente no tiene asignado el texto, no sé pq pero te deja crear de forma independiente el objeto, ya que aunque no lo puedes ver por la CS02 puedes recuperarlo a través de la función READ_TEXT.

Si crear el objeto desde la CS02 le asignará el mismo name que tu bien has expuesto, y este si estará en lazada a la TX CS02, pero desde mi programa Z me falta la parte donde enlaza el Object de texto a la entidad material-centro-alternativa...posición .....

En fin muchas gracias, ya vuelvo a tener máquina, seguiré probando...

ballan
11/11/09, 10:40:09
Buenas, no he tenido mucho tiempo para hacer pruebas con lo que comentas, me he fijado que la CS02 cuando llama a la SAVE_TEXT rellena el parametro
TDMACODE1 = CS01SAPMC29S, no se si eso tendra algo que ver

Una pregunta, los textos que introduces en la posicion que longitud tienen?

Como solucion de urgencia lo que se podria es hacer un batch input que metiera el texto en las posiciones a traves de la CS02, es una solucion bastante cutre pero deberia funcionar

Fijate en la funcion CS_BI_BOM_CREATE_WITH_LONGTEXT que creo que hace algo de eso

Lordval
11/11/09, 12:12:27
Muy buenas, lo primero es darte las gracias por dedicarme tiempo.

Finalmente lo he tenido que hacer vía BI, era mi última opción pero cuando no hay tiempo.
El texto será de tamaño indefinido, me viene desde un fichero por lo que podrá ser todo lo grande que quiera el usuario.

Probaré lo que me comentas de
"TDMACODE1 = CS01SAPMC29S, no se si eso tendra algo que ver"

a ver que se puede hacer, estaría solucionar pq seguro que en un futuro me volverá a pasar.

De nuevo muchas gracias, en breve os diré si la cosa se arreglo o se parcheo "BI".

Un saludo.

ballan
11/11/09, 13:22:25
Si seguramente sea una chorrada pero a mi me pasa lo mismo, hay veces que no puedes dedicarle tiempo a cosas y tiras por la calle de enmedio, en este caso el BI