Llamada a funcion parametrizada

Obsydian, Cool:Plex, Advantage Plex, AllFusion Plex...

Moderadores: Jorge Ubeda, pacopicon

Llamada a funcion parametrizada

Notapor psanchez_27 » Mié Feb 25, 2009 6:23 pm

Hola gente, consulta, se puede hacer un " CALL <parametro>" en el diagrama de accion en ves de poner el nombre de la funcion?, el tema es que quiero hacer una sola llamada y de pasarle la funcion a llamar por medio del paramtro, desde ya muchas gracias.
psanchez_27
 
Mensajes: 5
Registrado: Mié Feb 25, 2009 6:18 pm

Notapor pacopicon » Jue Feb 26, 2009 11:51 am

Hola:

Creo recordar que se puede hacer. Dependerá del lenguaje en el que estás generando. Si estás generando en RPG, te puedes crear un Source Code del tipo CALL &(1: ).

En el Source Code puedes añadir más sentencias RPG según necesites (por ej. para los parámetros).

Cuando vayas generando, ve mirando en el fuente generado a ver como te está sustityuendo los parámetros

Saludos
Paco Picón
www.metadata.es
pacopicon
 
Mensajes: 121
Registrado: Lun Oct 03, 2005 12:28 pm
Ubicación: Málaga - España

Notapor psanchez_27 » Vie Feb 27, 2009 1:50 pm

gracias Paco, pero estoy compilando winc y no funciono.
psanchez_27
 
Mensajes: 5
Registrado: Mié Feb 25, 2009 6:18 pm

Re: Llamada a funcion parametrizada

Notapor Jorge Ubeda » Vie Feb 27, 2009 3:19 pm

psanchez_27 escribió:Hola gente, consulta, se puede hacer un " CALL <parametro>" en el diagrama de accion en ves de poner el nombre de la funcion?, el tema es que quiero hacer una sola llamada y de pasarle la funcion a llamar por medio del paramtro, desde ya muchas gracias.

Si entiendo bien tu requerimiento, para WinC se puede usar el api StartExecutableProgram, en la librería Winapi.
Internamente, luce así:
WinExec(&(1:), SW_SHOW);, donde el parámetro incluye nombre del ejecutable y parámetros.
Se puede recurrir a una solución más compleja, pero más actualizada (WinExec está "deprecada", porque está diseñada para 16 bits) usando la función Windows CreateProcess.
...Esto suponiendo que haya entendido bien tu problema.
Jorge Ubeda
Site Admin
 
Mensajes: 229
Registrado: Mié Oct 26, 2005 6:00 pm
Ubicación: Valencia

Re: Llamada a funcion parametrizada

Notapor Dario, Fabini » Jue Mar 05, 2009 1:32 pm

Siguiendo lo que comenta Jorge, recuerdo haber tenido un problema similar y usar StartExecutableProgram (que es el nuevo API) de WINAPI pattern library pero ejecutando el dispatcher de plex, o sea el comando tendría esta forma:

OB400RC [file name] [impl name] [param1] [param2]...

o mas bien:

"ob400rc c:\gen\tuhf.dll tuhf * 1 2"

esto lo podes encontrar en el help buscando "Command-line parameters"

Claro esta que las .dll deben existir previamente, c++ no es interpretado. Además deberían tener una interfaz idéntica para que la lógica cierre. Con esto podes inventar una especia de polimorfismo, pero muy limitado.

Si ves que este es el camino, podemos ampliar un poco mas la explicación.
Saludos cordiales.
Darío Fabini
Dario, Fabini
 
Mensajes: 22
Registrado: Jue Dic 07, 2006 5:37 pm
Ubicación: Argentina, La Plata

Notapor psanchez_27 » Mié Mar 11, 2009 11:21 am

Gracias Dario, Lo pruebo y cualquier duda aviso.
psanchez_27
 
Mensajes: 5
Registrado: Mié Feb 25, 2009 6:18 pm

Notapor psanchez_27 » Mié Mar 11, 2009 2:22 pm

Muchas Gracias Dario, funciono a la perfeccion, lo unico que noto es que una ves que llamo a una funcion por medio del mensaje creado busca los dll solo donde esta el ejecutable, ni mira primero mi gen, ahy alguna forma de que siga mirando primero mi gen\release?
psanchez_27
 
Mensajes: 5
Registrado: Mié Feb 25, 2009 6:18 pm

Re: Llamada a funcion parametrizada

Notapor Dario, Fabini » Vie Mar 20, 2009 4:01 pm

psanchez_27 escribió:Muchas Gracias Dario, funciono a la perfeccion, lo unico que noto es que una ves que llamo a una funcion por medio del mensaje creado busca los dll solo donde esta el ejecutable, ni mira primero mi gen, ahy alguna forma de que siga mirando primero mi gen\release?


No recuerdo exactamente como hacerlo pero si pones el path completo lo lograrías, de todas maneras fijate que también lo podes hacer usando tu .EXE (creo que nostros lo hicimos de esta forma) y esto seguiría el path normal de tu aplicación. Suponiendo que estamos llamando a una función front-end.

Siempre en el nombre del dispacher hay que respetar la versión en que estas, se entiende...:

Fijate esta descripción del help

An AllFusion Plex executable program is simply a starting point for running an AllFusion Plex-generated DLL. It does not contain any of the application logic specified in your model. The only application-specific information contained within the .EXE file is its icon (as specified by the Icon File property of the main window).

When you use the Create Exe command, AllFusion Plex makes a renamed copy of a standard .EXE file called OB450RC.EXE. This standard executable program is supplied in the AllFusion Plex BIN sub-directory.

Note: An alternative method of creating an .EXE is to copy and rename the OB450RC.EXE file manually (using Windows File Manager or Explorer, for example). You should also copy and rename the OB450RC.INI file to the same location as the OB450RC.EXE. If you create an .EXE file in this way, it does not have an application-specific icon.
Saludos cordiales.
Darío Fabini
Dario, Fabini
 
Mensajes: 22
Registrado: Jue Dic 07, 2006 5:37 pm
Ubicación: Argentina, La Plata

Re: Llamada a funcion parametrizada

Notapor Dario, Fabini » Vie Mar 27, 2009 8:41 pm

Hola psanches, nos podrías contar si anda esta última propuesta si es asi podemos cerrar el hilo con la solución final y para que lo utilizaste, siempre es importante dejarlo acentado. Nosotros hcimos la prueba pero nunca lo usamos en concreto.
Saludos cordiales.
Darío Fabini
Dario, Fabini
 
Mensajes: 22
Registrado: Jue Dic 07, 2006 5:37 pm
Ubicación: Argentina, La Plata

Notapor psanchez_27 » Mié Abr 01, 2009 1:18 pm

Disculpa por la tardanza, no respondi al ultimo mensaje por que todavia no pude probarlo, igualmente es un detalle que me hubiese gustado corregir, por lo pronto pude implementar la llamada a funcion parametrizada tal como la explico Dario, y la utilize para llamar a una cantidad finita de funciones dependiendo del nombre de implementacion que reciba el llamado, si alguien necesita hacer algo parecido dejo mi mail laboral pmacchia@fvsa.com, pueden cerrar el tema, gracias.
psanchez_27
 
Mensajes: 5
Registrado: Mié Feb 25, 2009 6:18 pm


Volver a Plex

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 4 invitados

cron