twesession.prg con mercury

Responder
mag071
Mensajes: 24
Registered for: 3 years 4 months
Venezuela

twesession.prg con mercury

Mensaje por mag071 »

Saludos ;
Estoy intentando usar el ejemplo de sesiones de tweb
e incorporarlo a mercury
Cargo en el index.prg
{% LoadHrb( 'lib/tweb/tweb.hrb' ) %} //Llamando tweb.hrb

Y en el controlador he intentado sin éxito colocar el include
He intentado con
#include {% TWebInclude() %}
#include {% TWebInclude( 'lib/tweb/' ) %}
Y hasta intente usar el include con todo el path c:\xampp\xxxxxxxxxxxxxxxxx

Pero al momento de ejecución me sale el siguiente error:
Error: Unclosed control structure 'IF*'

operation: line:22
called from: HB_COMPILEFROMBUF, line: 0
called from: C:/xampp/htdocs/sonetos2/lib/mercury/mercury.hrb, ZEXECUTE, line: 313
called from: C:/xampp/htdocs/sonetos2/lib/mercury/mercury.hrb, TROUTE:EXECUTE, line: 576
called from: C:/xampp/htdocs/sonetos2/lib/mercury/mercury.hrb, TROUTE:LISTEN, line: 392
called from: C:/xampp/htdocs/sonetos2/lib/mercury/mercury.hrb, TAPP:INIT, line: 135
called from: pcode.hrb, MAIN, line: 35
called from: HB_HRBDO, line: 0
called from: ..\apache.prg, EXECUTE, line: 134

Source:

Error: Unclosed control structure 'IF*'

Quito el include y me trabaja normal claro pero sin poder usar funciones de tweb
Como tsession

Lo que quiero es usar las sesiones como en el ejemplo
Aunque se que los puedo guardar en JWT también
Quiero es guardar en variables de sesiones tal como el ejemplo de sesiones de tweb
hData := { 'in' => time(), ;
'user' => hData[ 'user' ],;
'role' => 'admin' }

InitSession()
Session( 'user', hData[ 'user' ] )
Session( 'in', time() )
Session( 'telefono', aRows[nI][ 'telefono' ])


Se que esas funciones están en twebsession.prg y al parecer son una clase independiente
Pero quiero ver si puedo de una integrar tweb en mercury
Y a la vez saber si alguien a probado algo asi que no tengan conflicto el sistema de jwt de mercury con twebsession.prg
porque realmente solo quiero usarlas para transportar variables... o de que otra forma las puedo pasar entre prg.

Gracias.

gabriel.martinez
Mensajes: 13
Registered for: 3 years 4 months
Spain

Mensaje por gabriel.martinez »

Hola, me he encontrado con el mismo error.
En mi caso usando TWeb, al intentar declarar una clase e incorporar #include 'hbclass.ch".
Podéis comprobarlo con el siguiente ejemplo, sólo tenéis que cambiar el camino del fichero hbclass.ch, según vuestro proyecto :

Código: Seleccionar todo

//	{% LoadHrb( 'lib/tweb/tweb.hrb' ) %}

#include "C:/apache24/htdocs/ICM/include/hbclass.ch"
#include {% TWebInclude() %}

   function Main
  
      ? 'Version:', twebversion()	
   return Nil
 
   class TClase 

   endclass 
El error es el siguiente :
Error: Unclosed control structure 'IF*'
operation: line:10
called from: HB_COMPILEFROMBUF, line: 0
called from: ..\apache.prg, EXECUTE, line: 132
Si quito la línea #include {% TWebInclude() %} funciona bien.

Gracias.

mag071
Mensajes: 24
Registered for: 3 years 4 months
Venezuela

Mensaje por mag071 »

Gracias Gabriel ;

Pero hice los cambios y no me funciono igual me sigue generando el mismo error;

una pregunta usas el modharbour de Charly
yo estoy usando el modharbour que se uso en el curso de mercury dictado por charly
es para saber si estamos usando las mismas versiones

yo solo usando tweb todo corre bien.
es cuando intento incorporar tweb en mercury.

Gracias.

gabriel.martinez
Mensajes: 13
Registered for: 3 years 4 months
Spain

Mensaje por gabriel.martinez »

La versión que uso de modharbour es la que recomienda Charly en su manual de Mercury.

Código: Seleccionar todo

 hb_BuildDate() 
me devuelve : May 17 2020 07:58:38

Estoy haciendo pruebas de Mercury, TWeb y WDO sin problemas.
No he probado las sesiones de TWeb, pero al intentar declarar una clase e incorporar #include 'hbclass.ch' junto a #include {% TWebInclude() %} me dio el mismo error que a ti (Error: Unclosed control structure 'IF*') y pensé que podía venir por el mismo motivo, por eso preparé un ejemplo simple para que lo pudieran chequear.
Si en tu caso no hay dos include estamos en dos casos distintos con el mismo mensaje de error.

Un saludo.

gabriel.martinez
Mensajes: 13
Registered for: 3 years 4 months
Spain

Mensaje por gabriel.martinez »

Hola mag071, he intentado usar las session de TWeb y me da el mismo error que a ti.

Imagen

Como nadie ha dado una posible solución a este error, estoy pensando en usar el objeto oController:oMiddleware.
En el manual de Mercury explica el uso de Middleware en el apartado de Autenticación. Con el método GetDataJWT () se puede recuperar el token previamente guardado en la autenticación y usarlo para almacenar variables.

Espero que te sea de utilidad.

Avatar de Usuario
charly
Mensajes: 145
Registered for: 3 years 5 months

Mensaje por charly »

Hola,

A raiz de una entrada en otro foro sobre le mismo tema, os pongo el link aqui --> http://fivetechsupport.com/forums/viewt ... 17#p240383
Salutacions, saludos, regards.
Charly

"...programar es fácil, hacer programas es difícil..."

https://httpd2.blogspot.com/
https://forum.modharbour.app

ramirezosvaldo
Mensajes: 127
Registered for: 3 years 4 months
Mexico

Mensaje por ramirezosvaldo »

Buen dia

Me paso a mi y pense que era que yo no sabia como declarar una clase en harbour.

Lo deje por la paz.

Saludos

Responder