Espacios I., D. y A.
Los tres prefijos que devuelven valores reales en tiempo de ejecución: el registro que recorres, el entorno y el resultado de un algoritmo.
La página del esquema (S.) te dice qué secciones y campos existen. Los prefijos I., D. y A. van un paso más allá: durante la ejecución del script devuelven el valor real.
I.es el valor del registro que estás recorriendo ahora.D.son los datos del entorno: usuario, empresa, fecha y sistema.A.es el resultado de ejecutar un algoritmo.
Los tres usan la misma sintaxis punteada, de lo general a lo concreto, igual que S..
I. — El registro actual
I. lee un campo del registro que recorres en ese momento. Tiene dos formas:
| Forma | Devuelve |
|---|---|
I.Seccion.Campo | Un campo del registro de la lista que recorres. |
I.Informe.Columna | Una columna de la fila del informe que recorres. |
También admite I.Seccion.Algoritmo... para leer un algoritmo sobre el registro actual.
I. solo funciona dentro de un bloque de recorrido de listado (F.ProcessDataList_Ini / F.ProcessDataList_End) o del bloque de listado de una función API. En un algoritmo suelto da error de contexto: no hay "registro actual" que recorrer.
Donde S. te da la referencia del campo, I. te da su valor. Ejemplos reales:
I.Ventas.Cliente
I.Productos.Nombre
I.Productos.StockD. — Datos del sistema y del entorno
D. reúne todo lo que no depende del registro sino del contexto de ejecución. Tiene cuatro subespacios.
| Subespacio | Devuelve |
|---|---|
D.SesionActual.<campo> | Datos de la ficha del usuario que ejecuta el script. |
D.EmpresaActual.<campo> | Datos de la empresa actual. |
D.DatosEspeciales.<clave> | Fecha, hora y datos del sistema. |
D.AlgoritmosDeBusqueda.<Categoria>.<KeyWord> | Algoritmos de búsqueda (solo en algoritmos). |
D.SesionActual y D.EmpresaActual sirven para personalizar el resultado y dejar constancia de quién y qué empresa ejecuta.
D.DatosEspeciales
Fecha, hora y datos del sistema disponibles en cualquier script. Las claves más usadas:
| Clave | Tipo | Devuelve |
|---|---|---|
D.DatosEspeciales.FechaActual | fecha | La fecha de hoy. |
D.DatosEspeciales.FechaYHoraActual | fecha y hora | Fecha y hora del momento. |
D.DatosEspeciales.HoraActual | hora | La hora actual. |
D.DatosEspeciales.DiaActual | entero | Día del mes. |
D.DatosEspeciales.MesActual | entero | Número de mes. |
D.DatosEspeciales.MesActualNombre | texto | Nombre del mes. |
D.DatosEspeciales.AñoActual | entero | Año actual. |
D.DatosEspeciales.TrimestreActual | entero | Trimestre en curso. |
D.DatosEspeciales.SemestreActual | entero | Semestre en curso. |
D.DatosEspeciales.SemanaActual | entero | Semana del año. |
D.DatosEspeciales.DiaDeLaSemanaActual | texto | Día de la semana. |
D.DatosEspeciales.Sistema.Version | texto | Versión del sistema. |
Los nombres van en español tal cual, incluida la ñ de AñoActual.
También hay familias para fechas relativas, FechasAvanzadas.Inicios.* y FechasAvanzadas.Finales.*, que resuelven límites de periodo:
D.DatosEspeciales.FechasAvanzadas.Inicios.InicioDeMes
D.DatosEspeciales.FechasAvanzadas.Finales.FinDeMesD.AlgoritmosDeBusqueda
Solo está disponible dentro de scripts de tipo algoritmo. Se usa junto al operador en para filtrar o buscar:
... en D.AlgoritmosDeBusqueda.Categoria.KeyWordA. — Ejecutar un algoritmo y leer su valor
A.<Categoria>.<NombreAlgoritmo> ejecuta un algoritmo de tipo Cálculo o Dato y devuelve su resultado como un valor que puedes usar en el script.
A.Categoria.NombreAlgoritmoEl formato del dato devuelto lo define el propio algoritmo: número, texto, fecha o relación.
No confundas A. con D.AlgoritmosDeBusqueda. A. lee un valor calculado. Los algoritmos de búsqueda se usan con el operador en para filtrar dentro de otro algoritmo.
Aquí solo documentamos cómo invocar un algoritmo desde DinaScript. Para saber qué es un algoritmo y cómo se define, ve a la página de Algoritmos.
Prefijos reservados
Existen otros prefijos en el motor, pero hoy no aportan y no debes usarlos:
P.,L.yG.están reservados. Se reconocen, pero no están operativos todavía.C.yR.leen los campos del registro actual (C.sección principal,R.sección relacionada) en scripts de campos personales del Terminal. Funcionan, pero quedan fuera del alcance de esta página.
Relacionado
→ Esquema (S.) → DinaScript → Funciones (F.) → Algoritmos → Informes → Secciones
Espacio de Nombres (S.)
Referencia del espacio S. de DinaScript para acceder al esquema de Flex (secciones, campos, relaciones), a la sesión del usuario y a las variables de preguntas en tiempo de ejecución.
Buenas prácticas de DinaScript
Convenciones de estilo, rendimiento y diseño de algoritmos para que tus scripts se entiendan a la primera y no penalicen al guardar.