Comandos Scripts obsoletos en Velneo 7.18


([N3] pacosatu) #1

Hola.

Como ya habréis observado, uno de los cambios en la 7.18, concretamente el VELNEO-4226, se refiere al hecho de que los comandos de Script pasan a ser obsoletos.

La consecuencia inmediata en nuestros proyectos es que el Inspector de errores marca como error el uso de estos comandos, aunque de momento no tiene efectos.

Por lo tanto, debemos sustituir cuanto antes estos comandos y no esperar a que Velneo descatalogue los comandos definitivamente.

El cambio es muy sencillo, solo es necesario sustituir el comando “Script: Evaluar intérprete” por un comando Set de una fórmula JavaScript y el resto de comandos se quitan. El paso de variables se efectúa ahora mediante el objeto theRegister, sustituyendo al comando “Script: Set property”. El código javascript es un corta y pega de la fórmula Velneo a la fórmula Javascript.
Pongo un ejemplo sencillo:


Rem (FUNCIÓN javascript Suma: parámetros OPE1 y OPE2)
// Script: Crear interprete (Obsoleto) ( oSuma )
// Script: Set property (Obsoleto) ( oSuma, "OPE1", OPE1 )
// Script: Set property (Obsoleto) ( oSuma, "OPE2", OPE2 )
// Script: Evaluar interprete (Obsoleto) ( oSuma, "function suma(OPE1, OPE2) { return OPE1 + OPE2 } suma(OPE1, OPE2)" ,
      RESUL_C, LOK, )
// Set dato de retorno ( RESUL_C )
Libre
Set ( RESUL, /*JAVASCRIPT*/function suma(OPE1, OPE2) { return OPE1 + OPE2 } 
      suma(theRegister.varToInt("OPE1"), theRegister.varToInt("OPE2")) )
Set dato de retorno ( RESUL )

Y eso es todo
Saludos
Paco Satué


([N2] japps) #2

Muchas gracias Paco por el apunte, ya he hecho cambios al respecto.

Saludos,
Juan Antonio


([N4] Ramon Denuc) #3

Hola Paco,

Llevo un buen rato intentando pasar el siguiente Script (Obsoleto) a la nueva forma que tu suguieres, pero no doy con la solución correcta.

Si no fuera mucho pedir, ¿me puedes ayudar a pasar a la nueva forma el siguiente Script?

Saludos



([N3] pacosatu) #4

Hola Ramón.

Copia y pega el código del fichero JS a la fórmula Javascript. Adaptas el código para que reciba los parámetros y devuelva el resultado.

Si no lo ves claro, adjunta el fichero JS y te lo adapto.

Saludos
Paco Satué


([N4] Ramon Denuc) #5

Hola Paco,

Te adjunto el archivo JS que estoy utilizando para poder pasar los números a letras.

He intentado hacer lo que me has explicado en tu ultima entrada, pero la verdad, no he sabido salirme bien.

Saludos

CifrasEnLetras.zip (5.06 KB)


([N3] pacosatu) #6

Hola Ramón.

Sigue muy atentamente estos pasos:

  • Crea en el proyecto de Velneo un fichero Javascript llamado Numero_a_Letras.js
  • Copia el contenido del fichero CifrasEnLetras.js que has adjuntado
  • Elimina la última línea “CifrasEnLetras.convertirEurosEnLetras(MiNumero);”
  • Crea en Velneo una función llamada por ejemplo FUN_SIS_NUM_A_LETRA
  • Añade las variables locales CNUM_LETRAS y NNUMERO. El parámetro de la fucnión será NNUMERO
  • Introduce las siguientes líneas en la función

Set ( CNUM_LETRAS, /*JAVASCRIPT*/#include "(CurrentProject)/Numero_a_Letra.js" CifrasEnLetras.convertirEurosEnLetras(theRegister.varToInt("NNUMERO")); )
Set dato de retorno ( CNUM_LETRAS )

Y ya está. Puedes llamar a la función usando por ejemplo:
Mensaje (fun:FUN_SIS_NUM_A_LETRA@0PS__MisFunciones_app.app(3500))

Como puedes ver, la instrucción #include "(CurrentProject)/Numero_a_Letra.js importa todo el código a la fórmula Javascript de Velneo. A continuación la línea CifrasEnLetras.convertirEurosEnLetras(theRegister.varToInt(“NNUMERO”)) llama a la función
convertirEurosEnLetras() del objeto CifrasEnLetras, pasándole la variable local de Velneo NNUMERO.

Saludos
Paco Satué


([N4] Ramon Denuc) #7

Hola Paco,

Primero muchas gracias por tu tiempo.

Segundo, seguí paso a paso tu propuesta, y todo perfecto, por lo menos inicialmente.

Muchas gracias de verdad.

Saludos



([N3] pacosatu) #8

Hola Ramón.

Tienes que aprender un mínimo de la sintaxis de Javascript, de lo contrario, cualquier problemilla se convierte en una pesadilla. Observa que el paréntesis del final sobra y esto es así en cualquier lenguaje de programación, no solo en Javascript.

Adjunto la imagen de cómo quedaría la fórmula javascript. Por favor, comprueba la sintaxis.

Puedes probar el funcionamiento del código javascript directamente desde el editor de fórmulas, tal como muestra el segundo adjunto.

Saludos
Paco Satué




([N1] lsmsusvilla) #9

Hola, una… dos preguntas y para transformar la función del check del NIF a java para que siga funcionando.
Y otra ya que veo que sabes, conoces, entiendes y manejas podrías recomendar una guía pag web o… para entender el funcionamiento de programacion en java. Gracias


([N1] wikan) #10
  1. No confundir java con javascript, son lenguajes diferentes.
  2. De javascript hay miles y miles de tutoriales, manuales de referencias y cheatsheets solo buscando un Google.
  3. Ignorar todas las referencias al DOM de las web.
  4. Lo que interesa aprender es las estructuras básicas de javascript, las pocas clases básicas que trae, String, Math, Array.
  5. Leerse por lo menos por encima las funciones de la API de Velneo para tener un poco de conocimiento de las funcionales que nos ofrece.

([N3] pacosatu) #11

Hola lsmsusvilla.

Digo exactamente lo mismo que Manuel y además añado:

  • Ya se ha dicho una y mil veces que lo de javascript (no Java) es lo de menos, lo único importante es conocer a fondo el API de Velneo y tener conocimientos básicos de programación orientada a objetos.
  • Estoy totalmente de acuerdo que programar el API de Velneo con javascript es una pesadez y para nada divertido. Le falta un editor muchíiisimo más profesional, una ayuda contextual de verdad, un depurador más completo y sobre todo, una más completa integración con Velneo.
  • De momento es lo que hay, así que usaremos Javascript lo estrictamente necesario.

Aprender el javascript necesario para usarlo con Velneo no os llevará más de una semana.
En este enlace tienes todo lo necesario y te sobra.

Saludos
Paco Satué


([N1] lsmsusvilla) #12

Ok muchas gracias me pondre un poco las pilas porque veo que el futuro esta cada vez mas en eso, pero hasta entonces y si no es mucha molestia seguire contando con vuestros conocimientos y peticiones. Gracias


([N1] wikan) #13

Hasta que empecemos a cobrar :wink:


([N2] Mgalvezh) #14

Hola aquí un recurso: https://www.youtube.com/watch?v=m2nscBtQEIs&list=PLU8oAlHdN5BmpobVmj1IlneKlVLJ84TID&index=1

Saludos.
Miguel.


([N1] mariobarreiro) #15

Muchas gracias Paco. Modificados todos los procesos con instrucciones obsoletas de js.

Un saludo
Mario


([N2] AyudaVelneo) #16

Hola a todos:

Aquí os dejo 3 recursos mas sobre JavaScript que están en mi blog:

Un saludo


([N3] GSI) #17

Volviendo a numero en letras he seguido los pasos y me funciona, pero mientras que utilizaba las funciones script obsoletas todo iva bien ahora al hacerlo por el nuevo sistema no tiene en cuenta los decimales, es decir:

1.- Sistema antiguo pone siempre el texto con los decimales correctos
2.- Nuevo sistemas pone el texto correcto pero pone siempre cero centimos

He probado con 1525.36 y siempre ocurre, el codigo, js es siempre el mismo, adjunto fichero pdf, la unica diferencia es la ultima linea de js que esta eliminada con el nuevo sistema.

Alguien sabe porque???

Numero_a_letra.pdf (98.3 KB)


([N1] wikan) #18

No voy a revisar todo el pdf pero podría ser que el utilidad use la coma (,) como separador decimal y no el punto (.) ??