GrabarCokie: Grabación de un campo en el COKO

Esta función permite grabar un campo en el Cokie, típicamente para pasar valores de un programa a otro en una forma transparente, sin utilizar parámetros o campos hidden. El programa receptor podrá tener acceso a través del arreglo $cok. Por ejemplo, para obtener el resultado de la variable COKGlobal5, solo hace falta escribir $cok[COKGlobal5]

Ubicación

Disponible automáticamente desde programas invocados a través de versup.php, verextendido.php. También está disponible en:

rutinas/utilities.php

Parámetros

PARÁMETRO USO
Variable Variable de la tabla COK. Ejp: COKGlobal3, COKRetorno, COKIdioma
Valor El valor a grabar

La función actualiza el registro correspondiente a la tabla COK, dándole el valor "Valor" a la variable "Variable".

Ejemplo de invocación

GrabarCokie("COKRetorno","Actual");

En este ejemplo, se está grabando "Actual" en la variable COKRetorno, de forma que al regresar de act.php el control regrese a la página invocante.

Ejemplo de pase de parámetros

En un primer programa escribir

GrabarCokie("COKGlobal2","754");

En un segundo programa utilizar

$ValorRecibido=$cok[COKGlobal2];

Explicación:

El primer programa asigna a la variable COKGlobal2, el valor 754. El segundo programa lo obtiene y se lo asigna a la variable $ValorRecibido.

Nota:

Se pueden utilizar las variables COKGlobal1...COKGlobal6, las cuales están disponibles para el asesor. Las variables COKGlobal7..9, son utilizadas por el sistema.

El campo Especial

En todas las tablas de Net2Client, existe un campo llamado "Especial". Por ejemplo, en PER se llama PEREspecial, en ART se llama ARTEspecial y así sucesivamente.

Este campo no puede ser visto por el usuario y es muy cómodo para escribir valores relacionados con un registro. Es en este campo donde se guarda, por ejemplo, que un usuario no quiere recibir más emails. Este campo puede ser utilizado por muchos programas, siempre y cuando se haga a través de las 2 rutinas que presentamos a continuación.

En el caso de la tabla AGE, este campo puede tener información de uso interno relacionada con el login (como, por ejemplo, fecha de creación del password), pero este campo está diseñado para tener múltiples usos y para ser utilizado por muchos usuarios. En efecto, es un campo tipo "bloque" en donde la distinta información se almacena separada por el "separador" principal (xFE) y el "separador" secundario (xF8), bajo el formato siguiente:

þNombreCampoøValorþNombreCampoøValor...

en donde þ (xFE) es el separador principal - mujer embarazada - y ø (xF8) el secundario.

Cuidado: Si lees o escribes el campo Especial directamente, puedes estar dañando información guardada por otros programas y ¡Desastre!

EscribirEspecial: Escritura de información en el campo Especial de una tabla

Esta función permite a un programa almacenar datos, que son marcados como suyos, en el campo "Especial" de cualquier tabla de manera transparente. Es muy importante que el asesor emplee esta rutina (junto con LeerEspecial explicada más abajo) para acceder a esta información puesto que el campo Especial alberga simultáneamente datos perteneciente a múltiples programas, haciéndose necesario un formato particular para diferenciar entre los mismos. EscribirEspecial provee un mecanismo transparente que garantiza que cada programa alamcena los datos que le corresponden en el campo Especial y estos se identifiquen como pertencientes a el sin preocuparse por cuántos y cuáles otras aplicaciones esten utilizándo ese campo.

Ubicación

Esta rutina está disponible en programas invocados a través de versup.php o verextendido.php, siempre que incluyan la libreria correspondiente:

rutinas/especiales.php

Parámetros

PARÁMETRO USO
Contenido Información que se desea almacenar. Este valor va a reemplazar completamente el que estaba contenido en el campo
NombreTabla Nombre de la tabla a sescribir (Ej. PER)
IdRegistro El número del registro en cuyo campo Especial se desea guardar.
CodigoPrograma El código que identifica al programa que almacenó la informacion que quiere ser leida. Es muy importante recordar este código pues será el único que permitirá hallar los datos al momento de leerlos.
Opciones En este parámetro se pueden especificar opciones sobre la información que seraá mostrada durante la ejecución:
  • ECHO--> Al especificar esta opción la rutina imprimirá el contenido COMPLETO del campo Especial del registro que será guardado. Esto se utiliza principalmente para el debugging y para confirmar el código de programa con que los datos está siendo almacenados. (Ver LeerEspecial más abajo) Es muy útil para el proceso de debugging.
  • ERROR--> Esta opción indica a la rutina que imprima en pantalla los mensajes de error que pudieran generarse. Igualmente es útil para el debugging.

Todos los parámetros son obligatorios.
El valor retornado por la llamada es un codigo de status:

  • 1 --> Si la llamada fue exitosa
  • -1 --> Si no se pudo actualizar el campo por problemas con la base de datos, o la tabla especificada no es correcta o no existe el registro.

 

Ejemplo de invocación

$Status = EscribirEspecial("L.11110000;M:11001100;", "PER",$Codigo,"N2C","");

En este ejemplo una aplicación identificada con el código N2C (Ej: Net2Client), desea escribir una cadena de caracteres (que representa alguna información según un formato propio) en el campo Especial de la tabla PER para el registro cuyo código esta almacenado en la variable $Codigo.

LeerEspecial: Lectura de información en el campo Especial de una tabla

Esta función permite leer los datos almacenados por un programa específico en el campo "Especial" de cualquier tabla de manera transparente. Es muy importante que el asesor emplee esta rutina (junto con EscribirEspecial, explicada más arriba) para acceder a esta información puesto que el campo Especial alberga simultáneamente datos perteneciente a múltiples programas, haciéndose necesario un formato particular para diferenciar entre los mismos. LeerEspecial provee un mecanismo transparente que garantiza que cada programa lea los datos que le corresponden del campo Especial sin preocuparse por cuántos y cuáles otras aplicaciones esten utilizándolo.

Ubicación

Esta rutina está disponible en programas invocados a través de versup.php o verextendido.php, siempre que incluyan la libreria correspondiente:

rutinas/especiales.php

Parámetros

PARÁMETRO USO
Contenido Parámetro de SALIDA en donde será colocada la información leida.
NombreTabla Nombre de la tabla a ser leida (Ej. PER)
IdRegistro El número del registro para el cual se desea leer el campo Especial
CodigoPrograma El código que identifica al programa que almacenó la informacion que quiere ser leida. Es muy importante que este código sea el mismo que se utilizó al guardar los datos o de otra forma estos no serán hallados.
Opciones En este parámetro se pueden especificar opciones sobre la información que seraá mostrada durante la ejecución:
  • ECHO--> Al especificar esta opción la rutina imprimirá el contenido COMPLETO del campo Especial del registro (en caso de haberse hallado) Esto se utiliza principalmente para el debugging y para confirmar el código de programa con que los datos están almacenados. Este contenido se presenta como una sucesión de items (cada uno correspondiente a un programa) con el formato 'þXXXøaaaaaa', donde XXX es el CodigoPrograma y 'aaaaaa' son los datos que ese Programa ha almacenado en el campo especial del registro. Es muy útil para el proceso de debugging.
  • ERROR--> Esta opción indica a la rutina que imprima en pantalla los mensajes de error que pudieran generarse. Igualmente es útil para el debugging.

Todos los parámetros son obligatorios.
El valor retornado por la llamada es un codigo de status:

  • 1 --> Si la llamada fue exitosa
  • 0 --> Si se pudo leer el campo, pero no habia información almacenada para ese programa.
  • -1 --> Si no se pudo leer el campo por problemas con la base de datos, o la tabla especificada no es correcta o no existe el registro.

 

Ejemplo de invocación

$Status = LeerEspecial($Contenido, "AR1",$Codigo,"N2C","ERROR,ECHO");

En este ejemplo una aplicación identificada con el código N2C (Ej: Net2Client), desea leer su información del campo especial de la tabla AR1 para el registro cuyo código esta almacenado en la variable $Codigo.