MUNDOSAP

MUNDOSAP (foro/index.php)
-   Formularios - SAPScript - Smartforms (foro/forumdisplay.php?f=5)
-   -   NO me inserta campo SADR-SORT2 mediante PERFORM (foro/showthread.php?t=13114)

Jonathan Barrio Rodriguez 05/05/08 12:08:10

NO me inserta campo SADR-SORT2 mediante PERFORM
 
Hola, Buenas,

Necesito imprimir en un Talón ZF110 el campo ADRC-SORT2 (concepto de busqueda 2) que tambi'en viene en muchas otras tablas, SADR x ejempl.
En la REGUH (tabla de datos que se insertan en el formulario) existe el SORT1, pero no el SORT2, as'i que he decidido hacer una llamada a un perform desde el Formulario... ya que la clave para la tabla (ADRNR) si
la tengo en el Formulario...y he insertado un c'odigo que no me funciona... a pesar que veo que todo est'a correcto...

/: DEFINE: &SOCIO& = &SADR-SORT2&
/: DEFINE: &VALUE& = &REGUH-ADRNR&
/: PERFORM GET_N_SOCIO IN PROGRAM ZRFFOUS_C_NSOCIO
/: USING &VALUE&CHANGING &SOCIO&
/: ENDPERFORM
T1 &SOCIO&

Y he creado un programa con su respectivo perform...

--------------------------------------------------
FORM get_n_socio TABLES INPUT_TABLE STRUCTURE ITCSY OUTPUT_TABLE STRUCTURE ITCSY.

LOOP AT INPUT_TABLE.
VALUE = INPUT_TABLE-VALUE.
SELECT SINGLE * FROM adrc WHERE ADdrnumber = VALUE.
socio= adrc-sort2.

ENDLOOP.

LOOP AT OUTPUT_TABLE.

OUTPUT_TABLE-VALUE = socio.

MODIFY OUTPUT_TABLE.

ENDLOOP.

ENDFORM.
--------------------------------------

Y con muchas pruebas, y sin ver nada incorrecto... no funciona.<>*

Alguien tuvo algo Parecido?? Saben si cometo alg'un erro??

Muchas Gracias

Jonathan Barrio Rodriguez 05/05/08 14:44:43

qué no me he explicado demasiado bien,

es un sapscript, un talón "z" creado a base de un standar, que se usa en la
transacción f110 que llama al programa de control rff0us_c, el cual se había modificado
y ahora llama al zrffous_c.

El form, no lo he metido dentro del prg. control, sino he creado un programa llamado
zrffous_n_socio.

he debugeado mediante "SE71" UTILIDADES --> ACTIVAR DEBUG.
UTILIDADES --> IMPRESIÓN TEST y sí parece leer las líneas...
pero al dejecutar el f110 no se para en el debug... tampoco en ningún programa
que ponga un Breakpoint (debí tocar algo) así que la única forma que tengo para
acgtivar el debug es "/H" en la b arra de las transacciones...

azua14 05/05/08 14:46:32

Mira..la verdad también me he encontrado con ese problema y he preferido ahorrar tiempo y dolores de cabeza haciendo el perform en el programa antes de llamar al smartform.

Es más facil y rápido hacer un Perform que te recupere los datos y los guarde en variables y usarlas en el smartform que pillar lo que esta fallando.

Jonathan Barrio Rodriguez 05/05/08 14:46:58

llitos en mi código:

Define: &value& = &adrc-adrnr&

lo he cambiado por:

Define &value& = &adrc-adrnr& . " osea, sin ":" despues del Define y con "." al final de cada sentencia...

Y se me ha olvidado comentar tambien...

que este código lo he insertado tanto en una ventana que ya existia
"check"
como en una nueva que yo he creado
"window2"

Ahora os cuento alguna cosilla que vaya mejorando.
De todos modos dejo un link de sap donde saqué ejemplo para
insertar campo mediante llamada perform (en ingles, sorry):


Jonathan Barrio Rodriguez 05/05/08 14:52:56


______________________________________________________________

Gracias Azua, se me olvido indicar que era un SAPSCRIPT y no me abre con SMARTFORM... y creo que en sapscript no coge variables, ni campos que no estén en las
tablas REGUP ó REGUH, no es así? (soy muy novato y más con SAPscript)

P.D: ODIO SAPSCRIPT

jcanguiano 07/05/08 22:13:30



Espero te ayude:

1.-Segun a mi entender no necesitas definir &SOCIO& dentro del script, solo lo mandas a llamar.

2.- Si estas utilizando la estructura itcsy cuando mandes tu campo de salida tiene que ser en tipo caracter .....otro no deja.

Te dejo parte de mi codigo que use hace poco para calular campos para un Script:

FORM obten_descrip TABLES in_par STRUCTURE itcsy
out_par STRUCTURE itcsy.

DATA: b_ebeln LIKE ekpo-ebeln,
b_ebelp LIKE ekpo-ebelp,
b_txz01(70) TYPE c,
v_desc(70) TYPE c,
v_desc2 TYPE string.

CLEAR: in_par, b_ebeln, b_ebelp, b_txz01.

READ TABLE in_par INDEX 1.
IF sy-subrc = 0.
b_ebeln = in_par-value.
ENDIF.

READ TABLE in_par INDEX 2.
IF sy-subrc = 0.
b_ebelp = in_par-value.
ENDIF.

CLEAR: b_txz01, v_desc, v_desc2.

SELECT SINGLE txz01 FROM ekpo
INTO b_txz01
WHERE ebeln = b_ebeln
AND ebelp = b_ebelp.

CONDENSE b_txz01.
MOVE b_txz01 TO v_desc2.

CLEAR out_par.
READ TABLE out_par WITH KEY name = 'DESC'.
out_par-value = v_desc2.
MODIFY out_par INDEX sy-tabix.
ENDFORM. "obten_descrip

en mi script se encuentra como:

PERFORM OBTEN_DESCRIP IN PROGRAM ZTOTAL_MEDRUCK
USING &EKPO-EBELN&
USING &EKPO-EBELP&
CHANGING &DESC&
ENDPERFORM

Espero te pueda servir de algo.....
Nos vemos.

Attilio Travascio 14/05/08 19:00:27

Hola buenas tardes, no se si te sirve aun la respuesta, este es el codigo que colocaste:
/: DEFINE: &SOCIO& = &SADR-SORT2&
/: DEFINE: &VALUE& = &REGUH-ADRNR&
/: PERFORM GET_N_SOCIO IN PROGRAM ZRFFOUS_C_NSOCIO
/: USING &VALUE&CHANGING &SOCIO&
/: ENDPERFORM

si esta de esta manera, el error podria estar en que el changing debe ir en una linea sola
/: DEFINE: &SOCIO& = &SADR-SORT2&
/: DEFINE: &VALUE& = &REGUH-ADRNR&
/: PERFORM GET_N_SOCIO IN PROGRAM ZRFFOUS_C_NSOCIO
/: USING &VALUE&
/: CHANGING &SOCIO&
/: ENDPERFORM
de esta manera, de no ser asi, avisame y te mando una rutina en el programa de apoyo para que te leea el registro.

Jonathan Barrio Rodriguez 20/05/08 14:06:29

HOla, disculpen... ya se solventó.
 
Al final el tema acabó con mi cambio de cliente :'( por no conseguir insertar el dichoso campo... no he escrito porque con he estado liado con tareas nuevas en las que estaba perdidillo... Ahra escribo para agradeceroslo y cerrar el hilo.

El tema es qu eno me dieron tiempo a probar los últimos consejos:

1-No probé a no definir la variable que queria mostrar en el formulario
, y a fuera tipo char el del "changing" definiendolo en el programa.
De todos modos me parece que ni salía al perform.

Me despisté...

2-No lo cambié el programa de pool de subrutinas a Module Pool...

Y la solución al final fue la que comentó Azua,

Conseguir los datos desde programa control y pasarlo, no por variable, ya que no me cogia ninguna, sino a un campo de estructura parecida en la tabla REGUH...

E´sto se puede dar por solucionado y cerrado...
:mad: pero me da rabía que al final no he descubierto la verdad de lo que fallaba:mad:

MUCHAS GRACIAS A TODOS POR SUS CONSEJOS, me quedo con una frase de Azua:
*"(...)me he encontrado con ese problema y he preferido ahorrar tiempo y dolores de cabeza(...)"
Creo que hasta la incluiré en los programas

Jonathan Barrio Rodriguez 21/05/08 14:04:46

vAYA...!!! PUES pensaba que había respondido ya para cerrar este hilo...

Bueno.. el caso es que no salió el maldito Perform... y me cambiaron de cliente por una compañera jijiji. LA SOLUCION:

Como Nieves me indicó...
En el programa control, le pasas el dato a un campo de tipo CHAR de
la tabla REGUH. Luego con nombrar ese &reguh-campo& , ya aparece...

lo malo que me quedo sin saber la verdad de porqué no aparece...:mad:

Los únicos razonmientos que quedaban eran.. y no me concedieron tiempo...

1- donde está el form... que se un MODULE POOL,

2- que no hubiera que definir en el sapscript la variable que traemos dl
programa, sino en el mismo programa, y ya ta. Por lo que he entendido,
ni siquiera nombrarla... con el changing apareceria por defecto.

3.- Si estas utilizando la estructura itcsy cuando mandes tu campo de salida tiene que ser en tipo caracter .....otro no deja

Attilio, tienes razón en tú consejo... pero ya probe todos los cambios posibles
en ese sentido... y no work.
JCanguiano, en tú report veo que mandas campos de la Ekko... en mi sapscript... solo venían con datos la tabla REGUH... y no era tema del programa...
Me quedo con tu consego y una frase AZUA
"(...)he preferido ahorrar tiempo y dolores de cabeza(...)"

GRACIAS A TODOS CHICOS, espero que le sirva al siguiente :D


Husos Horarios son GMT. La hora en este momento es 19:25:07.

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