PDA

Ver la Versión Completa : Problema con Batch-input para Tx. GP12N


falkata82
10/08/11, 08:03:47
Hola!!

necesito realizar un batch input para ejecutar en fondo la transacción GP12N y tengo un problema, al intentar rellenar el campo "Mon.transac." de la pantalla 0145 del report SAPLKPP2 me da el siguiente error y no sé cómo solucionarlo ya que ejecutando la transacción de forma manual sí que me deja introducir el valor :(


http://img20.imageshack.us/img20/16/1008201195442.th.png

nievesmp
10/08/11, 09:50:50
¿Has hecho la grabación previamente en la SM35?

Mediante la grabación de la transacción a la que vas a hacer el batch input, puedes verificar de que forma rellena el campo.

Como el campo a rellenar es una tabla en la dynpro, lo mejor es hacer dos grabaciones, una para rellenar un sólo registro de la tabla y otra grabación para grabar varios registros en la tabla, de esta forma tendrás ambos casos, cuando vayas a informar uno sólo o varios registros, ya que el código puede ser diferente.

Espero esto te sirva.

falkata82
10/08/11, 10:05:12
¿Has hecho la grabación previamente en la SM35?

Mediante la grabación de la transacción a la que vas a hacer el batch input, puedes verificar de que forma rellena el campo.

Como el campo a rellenar es una tabla en la dynpro, lo mejor es hacer dos grabaciones, una para rellenar un sólo registro de la tabla y otra grabación para grabar varios registros en la tabla, de esta forma tendrás ambos casos, cuando vayas a informar uno sólo o varios registros, ya que el código puede ser diferente.

Espero esto te sirva.


Muchas gracias por tu ayuda pero el problema es que ya hice la grabación y es por eso que no sé cómo hacer porque siguiendo los pasos y demás no consigo que me funcione :(

El código es éste:
PERFORM dynpro USING: 'X' 'SAPLKPP2' '0145',
' ' 'BDC_OKCODE' '=CBUC',
' ' 'Z-BDC03(01)' tfich-tsl01.....

fdelacruz
10/08/11, 13:06:58
Para solucionar eso no asignes de forma directa la variable de monto al batch, tienes q pasar este valor a una variable tipo STRING y luego esta ultima asignala al batch. Con eso funcionará.

Saludos!

falkata82
10/08/11, 15:37:09
Para solucionar eso no asignes de forma directa la variable de monto al batch, tienes q pasar este valor a una variable tipo STRING y luego esta ultima asignala al batch. Con eso funcionará.

Saludos!

Hola!

en primer lugar gracias por tu ayuda per... cómo se hace eso que dices?

Gracias por anticipado

fdelacruz
10/08/11, 16:04:03
Asumo q tu variable "tfich-tsl01" contiene un monto numerico. Entonces lo que tienes q hacer es:

* Declaras tu variable tipo string
data: monto_c type STRING.

* Pasas el monto a esta variable
monto_c = tfich-tsl01.

* Utilizas la variable en el batch
PERFORM dynpro USING: 'X' 'SAPLKPP2' '0145',
' ' 'BDC_OKCODE' '=CBUC',
' ' 'Z-BDC03(01)' monto_c

Con eso debe salir.

Saludos!

falkata82
11/08/11, 07:16:56
Asumo q tu variable "tfich-tsl01" contiene un monto numerico. Entonces lo que tienes q hacer es:

* Declaras tu variable tipo string
data: monto_c type STRING.

* Pasas el monto a esta variable
monto_c = tfich-tsl01.

* Utilizas la variable en el batch
PERFORM dynpro USING: 'X' 'SAPLKPP2' '0145',
' ' 'BDC_OKCODE' '=CBUC',
' ' 'Z-BDC03(01)' monto_c

Con eso debe salir.

Saludos!


Hola!

gracias por tu ayuda pues por fin conseguí que cogiera el valor, el problema es que yo le paso un fichero de varias líneas y necesito insertarlas en el table control y no sé cómo indicarle que haga el salto de línea ya que mediante la simulación de la SM35 recoge las líneas como comento abajo pero yo no sé cuántas líneas va a tener el fichero y es por ello que no puedo indicarlo en el Batch Input.

Línea 1 --> Z-BDC03(01)
Línea 2 --> Z-BDC03(02)
Línea 3 --> Z-BDC03(03)

sook
11/08/11, 12:59:30
Me parece que en esta parte:

' ' 'Z-BDC03(01)' monto_c

el (01) te esta indicando la línea a la que lo vas a insertar. Podrías hacer un loop y vas concatenando el valor 'Z-BDC03(' variable_numerica ')' para ir avanzando por la tabla.

Claro, si es que ese es tu problema.

Saludos