MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Formularios - SAPScript - Smartforms
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 05/05/08, 12:08:10
Avatar de Jonathan Barrio Rodriguez
Jonathan Barrio Rodriguez Jonathan Barrio Rodriguez is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Localización: MADRID
Mensajes: 199
Unhappy 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
Responder Con Cita
  #2  
Viejo 05/05/08, 14:44:43
Avatar de Jonathan Barrio Rodriguez
Jonathan Barrio Rodriguez Jonathan Barrio Rodriguez is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Localización: MADRID
Mensajes: 199
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...
Responder Con Cita
  #3  
Viejo 05/05/08, 14:46:32
azua14 azua14 is offline
Senior Member
 
Fecha de Ingreso: jul 2007
Mensajes: 140
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.
Responder Con Cita
  #4  
Viejo 05/05/08, 14:46:58
Avatar de Jonathan Barrio Rodriguez
Jonathan Barrio Rodriguez Jonathan Barrio Rodriguez is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Localización: MADRID
Mensajes: 199
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):

Responder Con Cita
  #5  
Viejo 05/05/08, 14:52:56
Avatar de Jonathan Barrio Rodriguez
Jonathan Barrio Rodriguez Jonathan Barrio Rodriguez is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Localización: MADRID
Mensajes: 199

______________________________________________________________

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
Responder Con Cita
  #6  
Viejo 07/05/08, 22:13:30
jcanguiano jcanguiano is offline
Member
 
Fecha de Ingreso: jun 2007
Mensajes: 30
Thumbs up



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.
Responder Con Cita
  #7  
Viejo 14/05/08, 19:00:27
Attilio Travascio Attilio Travascio is offline
Member
 
Fecha de Ingreso: jun 2006
Mensajes: 54
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.
__________________
ATTILIO TRAVASCIO
Responder Con Cita
  #8  
Viejo 20/05/08, 14:06:29
Avatar de Jonathan Barrio Rodriguez
Jonathan Barrio Rodriguez Jonathan Barrio Rodriguez is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Localización: MADRID
Mensajes: 199
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...
pero me da rabía que al final no he descubierto la verdad de lo que fallaba

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

Úlima edición por Jonathan Barrio Rodriguez fecha: 11/04/09 a las 00:44:13.
Responder Con Cita
  #9  
Viejo 21/05/08, 14:04:46
Avatar de Jonathan Barrio Rodriguez
Jonathan Barrio Rodriguez Jonathan Barrio Rodriguez is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Localización: MADRID
Mensajes: 199
Lightbulb

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...

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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 21:16:18.


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