MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Matchcode por modulo de función (foro/showthread.php?t=7794)

nenuke 19/09/07 10:09:20

Matchcode por modulo de función
 
Hola,

tengo un problema al leer los parámetros import de restricciones de mi matchcode, no se como acceder a ellos para hacer mi seleccion de datos y posteriormente mostrarlos. Me he basado en esta respuesta que encontré en el foro, pero no se bien como hacer mi select con los parametros que ha introducido el usuario.

Os pego el código del otro post.


Mi duda está aquí:

* Puebla tu tabla interna, por ejemplo
select * into corresponding fields of table mis_datos
from <tu_tabla>
where <tus_condiciones>.


Entiendo que en <tus condiciones> hay que hacer referencia a los parametros import del matchcode....como debo declararlos? alguna idea?

Un saludo y gracias

nenuke 24/09/07 11:07:44

:confused: ¿Nadie ha hecho nunca algo parecido a esto?

Tengo otro problema: no se como sacar la ayuda de búsqueda individual de cada una de las restricciones. Si creo el matchcode cogiendo los parámetros de una vista o una tabla si que coge sus ayudas de busqueda pero si lo creo con el módulo de función no me aparecen.

¿Alguna idea?

LauraVV 08/07/09 09:46:31

Imports Matchcodes
 
Qué tal?

Ojalá alguien te respondiera porque tengo justamente el mismo problema... me explicarón que tenía que usar lo del callcontrol 'SELECT' pero tampoco sé como va el tema. Incluso mirando el código comentado del standard, hay una variable 'RC' que no sé de donde sale tampoco:

IF callcontrol-step = 'SELECT'.
PERFORM STEP_SELECT TABLES RECORD_TAB SHLP_TAB
CHANGING SHLP CALLCONTROL RC.
IF RC = 0.
CALLCONTROL-STEP = 'DISP'.
ELSE.
CALLCONTROL-STEP = 'EXIT'.
ENDIF.

EXIT. "Don't process STEP DISP additionally in this call.
ENDIF.

Si consigo averiguar cómo va o si lo haces tu primero, nos escribimos, vale?
Saludos!

LauraV.

LauraVV 20/07/09 12:52:57

Vaya... no me había fijado en la fecha del mensaje... en fin, supongo que después de estos años ya lo habrán resuelto... de todas formas, si a alguien le interesa, que me pregunte que he logrado averiguar cómo va esto...

Saludos!
LauraV.

jjeffer 05/09/11 19:50:23

Hola Laura

Resulta que yo tambien estoy tratando de hacer un math code, el problema es, por ejemplo, al consultar los datos obtengo 4 registros, pero la popup sale con 4 lineas en blanco sin los valores, no se como hacer para que me muestre los datos y no solo los registros en blanco :confused: .


IF callcontrol-step = 'SELECT'.
SELECT pernr
FROM nper
INTO TABLE ti_ngpa
WHERE sptyp EQ '01'.

REFRESH record_tab.

CALL FUNCTION 'F4UT_RESULTS_MAP'
TABLES
shlp_tab = shlp_tab
record_tab = record_tab
source_tab = ti_ngpa
CHANGING
shlp = shlp
callcontrol = callcontrol
EXCEPTIONS
illegal_structure = 1
OTHERS = 2.

callcontrol-step = 'DISP'.
ENDIF.

Gracias.

adge 12/09/11 14:22:57

Hola, yo tengo el mismo problema no se como hacer referencia a los datos de Import si alguien sabe exactamente como se hace si lo pued postear o envia se lo agradecería.

Gracias.
Un saludo.

jjeffer 12/09/11 16:18:44



Mira lo que debes hacer es crear un modulo de funciones por la SE37, sin parametros de IMPORT y EXPORT, pero si con los siguientes parametros.

En TABLES
SHLP_TAB TYPE SHLP_DESCT
RECORD_TAB TYPE SEAHLPRES

En CHANGING
SHLP TYPE SHLP_DESCR
CALLCONTROL LIKE DDSHF4CTRL

Luego si va el código
************************************
* Se declara la estructura que almacena los datos del MatchCode
************************************
DATA: BEGIN OF ti_ngpa OCCURS 0,
name1 TYPE gpnam1, "Debe ser igual al nombre del parametro
END OF ti_ngpa.

IF callcontrol-step = 'SELECT'.
************************************
* Inicio Se realiza la consulta y se almacenan los datos
************************************
SELECT pernr
FROM nper
INTO TABLE ti_nper
WHERE sptyp EQ '01'.

LOOP AT ti_nper.
SELECT SINGLE gpart
FROM ngpa
INTO lv_gpa
WHERE gpart = ti_nper-pernr.

CLEAR ti_ngpa.

CALL FUNCTION 'ISH_NGPA_CONCATENATE'
EXPORTING
ss_gpart = lv_gpa
ss_read_ngpa = 'X'
IMPORTING
ss_pname = ti_ngpa-name1
EXCEPTIONS
wrong_gpart = 1
OTHERS = 2.

APPEND ti_ngpa.
ENDLOOP.
************************************
* Fin Se realiza la consulta y se almacenan los datos
************************************

REFRESH record_tab.

CALL FUNCTION 'F4UT_RESULTS_MAP'
TABLES
shlp_tab = shlp_tab
record_tab = record_tab
source_tab = ti_ngpa
CHANGING
shlp = shlp
callcontrol = callcontrol
EXCEPTIONS
illegal_structure = 1
OTHERS = 2.

callcontrol-step = 'DISP'.

CALL FUNCTION 'F4UT_PARAMETER_VALUE_GET'
EXPORTING
parameter = 'NAME1' " Reference to search help parameter
fieldname = 'NAME1' " Reference to field of Seatinfo
TABLES
shlp_tab = shlp_tab
record_tab = record_tab
results_tab = ti_ngpa
CHANGING
shlp = shlp
callcontrol = callcontrol.
ENDIF.


Espero te sirva

mysmb2 12/09/11 17:34:52

en la tabla shlp-selopt que es pasada como CHANGING están todos los parámetros por los que filtraste en la ayuda para búsqueda y tiene la siguiente estructura similar a un rango.
SHLPNAME
SHLPFIELD
SIGN
OPTION
LOW
HIGH

Saludos.

adge 13/09/11 07:27:59

Gracias por los aportes.

Pero tengo un problema tonto que no se como resolver ya que no se como leer el numero de empleado. Hago una ayuda de búsqueda en el infotipo 61 donde un campo tendrá un valor según el TRFAR,TRFGB, y TRFGR del infotipo 8. Lo que no consigo es leer el PERNR.

He probado con PERNR en el import y con una estructura INNNN-PERNR pero no consigo obtener el numero del empleado de la ayuda de busqueda asociada a ese infotipo dodne lo leo.

MUchas Gracias.
Saludos.

adge 13/09/11 16:38:41

Me da que va a ser imposible pq la ayuda de búsqueda la disparó en una tabla. Y necesito leer el pernr del infotipo 61, pero no tengo ninguna relación con esa tabla, sólo la categoría.


Husos Horarios son GMT. La hora en este momento es 10:31:57.

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