Workflow Composer Referencia de scripts Para ver o descargar ésta u otra publicación de Lexmark Document Solutions, haga clic aquí. Octubre de 2003 www.lexmark.com Edición: octubre de 2003 El siguiente párrafo no tiene vigencia en aquellos países en los que estas disposiciones entren en conflicto con las leyes locales: LEXMARK INTERNATIONAL, INC. PROPORCIONA ESTA PUBLICACIÓN "TAL COMO ESTÁ" SIN GARANTÍA DE NINGÚN TIPO, NI EXPRESA NI IMPLÍCITA, INCLUIDA PERO NO LIMITADA A LAS GARANTÍAS IMPLÍCITAS DE COMERCIALIDAD O DE APTITUD PARA UN PROPÓSITO ESPECÍFICO. En algunos estados no se permite la renuncia de garantías implícitas o explícitas en determinadas transacciones, por lo que puede que esta declaración no se aplique. La presente publicación puede incluir imprecisiones técnicas o errores tipográficos. De forma periódica, se realizan modificaciones en la información aquí contenida; dichas modificaciones se incorporarán en ediciones posteriores. En cualquier momento se pueden realizar mejoras o cambios en los productos o programas descritos. Si desea realizar algún comentario sobre esta publicación, puede dirigirse a Lexmark International, Inc., Department F95 / 032-2, 740 West New Circle Road, Lexington, Kentucky 40550, EE.UU. En el Reino Unido e Irlanda, envíelos a Lexmark International Ltd., Marketing and Services Department, Westhorpe House, Westhorpe, Marlow Bucks SL7 3RQ. Lexmark puede utilizar o distribuir cualquier información que suministre de la forma que crea conveniente sin que ello implique ninguna obligación. Puede adquirir copias adicionales de las publicaciones relacionadas con este producto llamando al 1-800-553.9727. En el Reino Unido e Irlanda, llame al +44 (0)8704 440 044. En los demás países, póngase en contacto con el establecimiento de venta. Las referencias en esta publicación a productos, programas o servicios no implican que el fabricante pretenda ponerlos a disposición en todos los países en los que opera. Cualquier referencia a un producto, un programa o un servicio no implica que sólo se deba utilizar dicho producto, programa o servicio. En su lugar, se puede utilizar cualquier producto, programa o servicio de funcionalidad equivalente que no infrinja ningún derecho de propiedad intelectual existente. Es responsabilidad del usuario la evaluación y verificación de funcionamiento junto con otros productos, programas o servicios, a excepción de los designados expresamente por el fabricante. ImageQuick, Optra, Lexmark y Lexmark con diamante son marcas comerciales de Lexmark International, Inc., registradas en los Estados Unidos y/o en otros países. PostScript® es una marca registrada de Adobe Systems Incorporated. Otras marcas comerciales pertenecen a sus respectivos propietarios. © Copyright 2003 Lexmark International, Inc. Reservados todos los derechos. DERECHOS DEL GOBIERNO DE LOS ESTADOS UNIDOS Este software y la documentación que lo acompaña que se proporcionan según este acuerdo constituyen software y documentación comercial de ordenador desarrollados exclusivamente con capital privado. Contenido Capítulo 1: Introducción ............................................................... 1 Compatibilidad................................................................................................ 2 Novedades en la versión 3.2 .......................................................................... 2 Capítulo 2: Conceptos básicos .................................................... 3 Objetos ........................................................................................................... 3 Declaración de variables ................................................................................ 4 Control de flujo ............................................................................................... 4 If/Then/Else .............................................................................................. 4 Switch/Case .............................................................................................. 5 Sentencias repetitivas .................................................................................... 6 Loop .......................................................................................................... 6 Repeat ...................................................................................................... 7 Operadores .................................................................................................... 9 Matemáticos ............................................................................................. 9 Comparación .......................................................................................... 10 Booleanos ............................................................................................... 11 Otras características .................................................................................... 12 Abreviatura de objetos con "with" ........................................................... 12 Depuración de un script .......................................................................... 12 Concatenación de comentarios y líneas de código en un script ............ 13 Cancelación de un script durante el tiempo de ejecución ...................... 13 Capítulo 3: Objetos de tipo de datos ......................................... 14 Booleano ...................................................................................................... 15 Operadores ............................................................................................. 15 Documento ................................................................................................... 16 Métodos .................................................................................................. 16 Operadores ............................................................................................. 20 Entero ........................................................................................................... 21 Métodos .................................................................................................. 21 Operadores ............................................................................................. 22 iii Real .............................................................................................................. 24 Métodos .................................................................................................. 24 Operadores ............................................................................................ 25 String ............................................................................................................ 26 Métodos .................................................................................................. 26 Operadores ............................................................................................ 31 Asignación.................................................................................................... 34 Métodos .................................................................................................. 34 Capítulo 4: Objetos auxiliares..................................................... 37 Matriz booleana............................................................................................ 38 Métodos .................................................................................................. 38 Dataset ......................................................................................................... 39 Métodos .................................................................................................. 39 Matriz de enteros.......................................................................................... 41 Métodos .................................................................................................. 41 Opciones de impresión................................................................................. 42 Métodos .................................................................................................. 42 Opciones ................................................................................................ 43 Matriz de reales............................................................................................ 47 Métodos .................................................................................................. 47 Matriz de cadenas ........................................................................................ 48 Métodos .................................................................................................. 48 Textfile.......................................................................................................... 50 Métodos .................................................................................................. 50 Capítulo 5: Objetos del sistema.................................................. 55 Original ......................................................................................................... 56 Usertime ................................................................................................. 57 Confirm......................................................................................................... 60 Ejemplo de anulación ............................................................................. 63 Local............................................................................................................. 64 Capítulo 6: Objetos de acción..................................................... 65 BarcodeRead (Códigos de barras: leer)....................................................... 66 BarcodeWrite (Códigos de barras: escribir) ................................................. 72 ConvertImageFormat (Imágenes: cambiar formato) .................................... 77 ConvertToDocument (Imágenes: convertir a Postscript o imagen PDF) ..... 82 Contenido iv DatabaseNotes (Groupware: introducir)....................................................... 84 Acciones de Domino.Doc ............................................................................. 87 DominoDocCheckIn (EDMS: introducir) ................................................. 88 DominoDocRetrieve (EDMS: recuperar) ................................................ 93 Conexión a Domino.Doc ........................................................................ 98 Desplazamiento por una biblioteca de Domino.Doc .............................. 98 EmailExchange (E-mail)............................................................................. 100 EmailNotes (E-mail) ................................................................................... 103 EmailSMTP (E-mail)................................................................................... 106 Direcciones de e-mail ........................................................................... 108 Destinatarios y remitentes .................................................................... 108 Autenticación ........................................................................................ 109 FaxByPrinter (Fax) ..................................................................................... 110 FTPget (FTP: obtener) ............................................................................... 112 FTPput (FTP: colocar)................................................................................ 114 Acciones de GroupWise............................................................................. 116 GWMail (E-mail) ................................................................................... 117 GWDiscuss (E-mail) ............................................................................. 121 GWCheckIn (Groupware: introducir) .................................................... 124 ImageCombine (Imágenes: combinar en documento) ............................... 128 ImageCrop (Imágenes: recortar) ................................................................ 130 ImageInvert (Imágenes: invertir) ................................................................ 133 ImageMerge (Imágenes: plantilla).............................................................. 134 ImageRotate (Imágenes: girar) .................................................................. 139 ImageSeparate (Imágenes: separar en documento).................................. 141 ImageText (Imágenes: texto de plantilla) ................................................... 142 ImageToHTML (Imágenes: convertir a HTML)........................................... 146 Tipos de texto ....................................................................................... 149 ImageToPDF (Imágenes: convertir a PDF [se pueden realizar búsquedas])... 150 Tipos de texto ....................................................................................... 153 ImageToRTF (Imágenes: convertir a RTF) ................................................ 154 Tipos de texto ....................................................................................... 157 ImageToText (Imágenes: convertir a texto) ............................................... 158 Tipos de texto ....................................................................................... 162 LaunchExe (Iniciar otro programa)............................................................. 163 Comprobación de los valores devueltos .............................................. 166 MergeForm (Formularios: combinar en PDF) ............................................ 167 Contenido v Acciones de ODBC .................................................................................... 168 Introducción .......................................................................................... 168 ODBCWrite (Base de datos ODBC: escribir) ....................................... 169 ODBCRead (Base de datos ODBC: leer) ............................................. 174 PrintByDriver (Imprimir).............................................................................. 180 PrintForm (Imprimir) ................................................................................... 183 Tipo de impresora ................................................................................ 185 Uso de una cola de impresión de Windows ......................................... 185 PrintJob (Imprimir)...................................................................................... 188 Confirmación de impresión ................................................................... 195 PrintURL (Imprimir) .................................................................................... 196 SaveToFile (Guardar en archivo) ............................................................... 197 SharePoint.................................................................................................. 201 SharePointWrite (EDMS: introducir) ..................................................... 202 SharePointRead (EDMS: recuperar) .................................................... 206 Capítulo 7: Solicitudes .............................................................. 213 Solicitud de activación................................................................................ 214 Solicitud de mensaje .................................................................................. 215 Solicitud de número.................................................................................... 216 Solicitud de opciones (selección múltiple).................................................. 218 Solicitud de opciones (selección única) ..................................................... 221 Solicitud de contraseña .............................................................................. 224 Solicitud de texto ........................................................................................ 225 Apéndice A: Referencia de ODBC ............................................227 Requisitos y configuración de software...................................................... 227 Compatibilidad de documentos de base de datos ............................... 228 Inserción de valores en columnas de fecha ......................................... 229 Apéndice B: Referencia de códigos de barras ........................230 Codabar...................................................................................................... 230 Code 2 of 5................................................................................................. 231 Code 3 of 9................................................................................................. 232 Code 93...................................................................................................... 232 Code 128.................................................................................................... 233 EAN-8......................................................................................................... 233 Contenido vi EAN-13....................................................................................................... 234 ITF .............................................................................................................. 234 Patch .......................................................................................................... 235 PDF-417 ..................................................................................................... 235 UCC 128..................................................................................................... 236 UPC-A ........................................................................................................ 236 UPC-E ........................................................................................................ 237 Apéndice C: Referencia de metadatos .....................................238 Opciones de digitalización.......................................................................... 238 Opciones de copia...................................................................................... 241 Opciones de fax ......................................................................................... 244 Opciones de e-mail/FTP............................................................................. 245 Acceso a los datos de anulación en un script ............................................ 246 Contenido vii 1 Introducción Este manual proporciona una referencia técnica para LDDScript 3.2, el lenguaje de scripts del conjunto de productos Lexmark™ Document Solutions. La Referencia de scripts está organizada del siguiente modo: Capítulo 2, "Conceptos básicos": descripción general rápida de las construcciones básicas de LDDScript. Capítulo 3, "Objetos de tipo de datos": información sobre los tipos de datos admitidos. Capítulo 4, "Objetos auxiliares": información sobre los objetos que se utilizan para realizar operaciones habituales. Capítulo 5, "Objetos del sistema": información sobre los objetos que proporcionan los datos con un trabajo enviado y ofrecen información al usuario. Capítulo 6, "Objetos de acción": información sobre los objetos que realizan el procesamiento real de los documentos a direccionar, almacenar en una base de datos, imprimir, etc. Capítulo 7, "Solicitudes": información sobre la sintaxis y los objetos para solicitar datos a los usuarios. Apéndice A, "Referencia de ODBC": información sobre la interfaz con bases de datos desde un script. Apéndice B, "Referencia de códigos de barras": información sobre los códigos de barras que admite LDDScript. Apéndice C, “Referencia de metadatos”: información sobre las propiedades de metadatos devueltas cuando un script anula la operación normal de copia/fax/email de una impresora multifunción. Introducción 1 Compatibilidad LDDScript 3.2 sigue teniendo la misma sintaxis y construcciones que las presentadas en la versión 2.0 de Lexmark Document Distributor. El conjunto de productos que utiliza el lenguaje de scripts incluye: • • • Lexmark Document Distributor Lexmark Document Producer Lexmark Document Portal El lenguaje de scripts funciona con todos los productos y permite automatizar el flujo de trabajo, producir formularios basados en servidor e imprimir formularios en blanco o rellenados previamente. Estos productos pueden funcionar independientemente o se pueden integrar para proporcionar una solución de documentos completa. Los scripts escritos para LDD 2.x se deben convertir o volver a escribir para que funcionen en LDD 3.x. Los scripts escritos mediante Workflow Composer 3.1 funcionarán con LDD 3.2 sin modificación; la única excepción es para scripts que hayan utilizado la acción ImageDeskew, que se ha eliminado de LDD 3.2. Novedades en la versión 3.2 Se han realizado los siguientes cambios en la versión 3.2: • • • • • • La página de confirmación se ha mejorado para permitir la inclusión de todas las miniaturas de todas las páginas digitalizadas; además, se pueden incluir en ella las preguntas y respuestas introducidas por el usuario en la impresora multifunción. Se ha agregado la posibilidad de anular la acción de la página de confirmación; esto permite que la página de confirmación se pueda enviar por e-mail, guardar en un archivo, entre otras acciones. Se ha agregado autenticación a la acción EmailSMTP. Se ha eliminado la acción ImageDeskew. Ha mejorado significativamente el rendimiento de la acción MergeForm. Se ha agregado compatibilidad de cola de impresión de Windows a la acción PrintForm. Introducción 2 2 Conceptos básicos Objetos Los objetos son los elementos básicos de LDDScript. Un objeto contiene propiedades y métodos. Una propiedad es uno de los objetos de tipo de datos básico como una cadena o un entero. Una propiedad se define con varios valores que afectan al modo en que funciona el objeto. Un método es una función a la que se llama para que realice operaciones en los datos. A un método se le pueden pasar parámetros y puede devolver un valor. Los parámetros y los valores devueltos son objetos del tipo de datos o auxiliares. Se utiliza la notación de puntos para acceder a las propiedades y los métodos de un objeto. Para definir el valor de una propiedad: ObjectName.propertyName = value Para llamar a un método: ObjectName.MethodName() ObjectName.MethodName(param1, param2) returnValue = ObjectName.MethodName(param1) LDDScript admite cuatro tipos de objetos: • • • • Tipo de datos: los objetos más básicos; todas las propiedades y la mayoría de las variables son de este tipo. Auxiliar: proporciona una forma sencilla de realizar algunas operaciones habituales. Sistema: no procesa documentos; se utiliza para recopilar entrada de datos y proporcionar información al usuario. Acción: procesa documentos, realiza el archivado, direccionamiento, distribución, etc. Los restantes capítulos de este manual proporcionan una referencia de los objetos de cada tipo. Conceptos básicos 3 Declaración de variables Todas las variables se deben declarar para poder utilizarlas. Las variables no se pueden declarar dentro de un bloque "with" ni dentro de bloques lógicos como if/then o bucles. Para declarar una variable, especifique su tipo de objeto y nombre. Por ejemplo: string text int num Hay varias reglas que se deben seguir al asignar nombres a las variables: • • • • El nombre debe constar de letras, números y caracteres de subrayado. El primer carácter del nombre debe ser una letra. Debe ser único en el script; no se distingue entre mayúsculas y minúsculas en los nombres, por lo que se considera que "Nombre", "NOMBRE" y "nombre" son la misma variable. No puede ser una palabra reservada (aquélla que tiene un significado especial para el compilador de scripts). Control de flujo Para controlar la ejecución de las sentencias del script, es necesario algún tipo de lógica de control de flujo. Las sentencias de script se pueden ejecutar de tres formas: secuencial, selectiva o repetidamente. Cuando no se utiliza lógica de control de flujo, las sentencias se ejecutan en el orden en el que están en el script. Para la ejecución selectiva de determinadas sentencias de script, puede utilizar sentencias if/then/else o switch/case. Para la ejecución repetitiva de sentencias de script, se pueden utilizar las sentencias loop y repeat. If/Then/Else El tipo más habitual de control de flujo es la capacidad de ejecutar una sentencia si se cumple una determinada condición. Esta capacidad se implementa en Document Server mediante la construcción if/then/else. El formato básico es: if (bool expression) then statement1 statementn endif De statement1 a statementn sólo se ejecutan si la expresión booleana del paréntesis es TRUE. En ocasiones también es necesario evaluar un conjunto de sentencias si una condición es TRUE y otro si es FALSE. Esto se puede realizar con la construcción else: if (bool expression) then statementa statementc else statementx statementz endif Conceptos básicos 4 De statementa a statementc se ejecutan si la expresión booleana del paréntesis es TRUE; de lo contrario, se ejecutan de statementx a statementz. Switch/Case A veces hay varias condiciones que se desean comprobar. Puede hacerlo con varias sentencias If/Then. La sentencia Switch/Case proporciona una forma más sencilla de realizar varias comparaciones: Sentencia switch con entero Sentencia switch con cadena switch (intvar) case intval1 statementa statementb case intval2 statementc statementd default statemente statementf endswitch switch (stringvar) case "stringval1" statementa statementb case "stringval2" statementc statementd default statemente statementf endswitch Puede utilizar valores enteros o de cadena con la sentencia Switch/Case. Según el valor de la variable, se ejecuta el bloque case correspondiente a dicho valor. Cada bloque case puede contener varias sentencias, pero sólo se ejecuta un bloque case. Si el valor de la variable switch no coincide con ninguno de los bloques case, se ejecuta el bloque default. No se requiere el bloque default. Sin embargo, si se utiliza un bloque default, debe ser el último. Ejemplo de switch Las impresoras multifunción tienen funciones de seguimiento de trabajos. Cuando se activa esta característica, los usuarios deben introducir un número de cuenta antes de acceder a un perfil. En este ejemplo, los usuarios introducen un número de departamento al utilizar perfiles. Este script de ejemplo utiliza una sentencia Switch/Case para comprobar el número de departamento. string CustomSubject // Utilizar el número de cuenta como entero int DeptNumber = original.useracct.AsInt() switch (DeptNumber) case 35 CustomSubject = "Documento de Recursos Humanos" case 41 CustomSubject = "Documento del Departamento legal" case 15 CustomSubject = "Documento del Departamento de envíos" predeterminado CustomSubject = "Documento de la empresa" endswitch Conceptos básicos 5 with EmailSMTP .Server="servidorcorreo.com" .To="[email protected]" .From="[email protected]" .Subject=AsuntoCliente .Message="Léelo." .CharacterSet=LDD_SMTPCHARSET_US .Attachments=original.document .Go() endwith Sentencias repetitivas Cada sentencia de un script se ejecuta sólo una vez. Las sentencias repeat y loop permiten ejecutar el mismo bloque de sentencias varias veces. Loop Cuando desee repetir un conjunto de sentencias un número conocido de veces, utilice la sentencia loop. Sintaxis: loop (intcounter from istart to ifinish) statement1 statementn endloop donde: • • • intcounter es una variable entera declarada anteriormente istart es un valor entero que se asignará a intcounter cuando se inicie el bucle ifinish es un valor entero que es el máximo para intcounter Utilizando una variable entera como contador, el bucle se repite tantas veces como se especifica en la información de istart/ifinish. Puede incluir tantas sentencias como desee en un bloque de bucle. El bloque de bucle termina con la sentencia endloop. El bucle comienza asignando el valor indicado por istart a la variable de contador. Con cada ejecución del bucle, el valor del contador se incrementa en 1. Continúa hasta que el contador es mayor que el valor de ifinish. Por lo tanto, un bucle de 1 a 10 se repite hasta que el contador tiene el valor 11. El valor de istart debe ser menor que el valor de ifinish. La variable entera utilizada para el contador se debe declarar antes de utilizarla en la sentencia loop. Conceptos básicos 6 Ejemplo: Enviar por e-mail el documento digitalizado originalmente a diez representantes del servicio de atención al cliente. En este script, se especifican las propiedades comunes de EmailSMTP antes de enviar los mensajes de e-mail dentro de la sentencia loop. string EmailAdd int LoopCount // Configurar las propiedades comunes para los mensajes de e-mail. with EmailSMTP .Subject="Queja del cliente" .Server="servidor.correo.com" .From="[email protected]" .Message="Revisa esta queja." .Attachments=original.document .CharacterSet=LDD_SMTPCHARSET_US endwith loop (LoopCount from 1 to 10) EmailSMTP.To="RepCli" + LoopCount.AsString() + "@empresax.com" EmailSMTP.Go() endloop Repeat La sentencia repeat permite ejecutar un bloque de sentencias continuamente hasta que una expresión sea verdadera. repeat until (bool expression) statement1 statementn endrepeat La sentencia repeat repite el bloque de sentencias hasta que la expresión booleana es TRUE. Puede haber tantas sentencias como desee en un bloque de bucle. La sentencia endrepeat termina el bloque de bucle. Si el valor inicial de la expresión booleana es true, el bucle no se ejecuta. Ejemplo: En este script se utiliza OCR (reconocimiento óptico de caracteres) para comprobar si los documentos digitalizados por los usuarios son confidenciales. Si el documento es confidencial, no se envía por e-mail. La imagen digitalizada se guarda en un archivo y se envía un mensaje de advertencia al usuario que ha digitalizado el documento confidencial. with ImageToText .input=original.document .TextType=LDD_TEXTTYPE_NORMAL .Language=LDD_LANG_ENGLISH .AllPages=TRUE .Go() endwith textfile tf string OneLine, Remitente Conceptos básicos 7 // Abrir el resultado de una acción OCR tf.Open(ImageToText.output) bool bConfDoc = FALSE int iCount, iEnd iCount =1 iEnd = tf.GetNumberLines() Submitter = original.username+ "@lexmark.com" // Buscar en cada línea el término Confidencial repeat (until (bConfDoc OR (iCount>=iEnd))) OneLine = tf.ReadLine() if (OneLine.Contains("Confidencial")) then bConfDoc = TRUE endif iCount.Add(1) endrepeat // Si es un documento confidencial, guardarlo y enviar un mensaje de advertencia if (bConfDoc) then with SaveToFile .input=original.document .Path="c:\ebc.txt" .AppendTimestamp=TRUE .Overwrite=FALSE .Go() endwith with EmailSMTP .Server="servidor.correo.com" .To= Remitente .From="[email protected]" .Subject="E-mail no válido rechazado" .Message="No se puede enviar por e-mail un documento confidencial" .CharacterSet=LDD_SMTPCHARSET_US .Go() endwith else with EmailSMTP .Server="servidor.correo.com" .To="[email protected]" .From=Remitente .Subject="Documento digitalizado" .Message="Aquí tienes el documento solicitado." .CharacterSet=LDD_SMTPCHARSET_US .Attachments=original.document .Go() endwith endif Conceptos básicos 8 Operadores Matemáticos Estos operadores se utilizan para definir o cambiar el valor de una variable o propiedad. Operador Símbolo Descripción Suma + Para objetos enteros y reales, suma los números a ambos lados de "+" y devuelve el nuevo valor. Para objetos de cadena, tiene un efecto similar al método concatenate. Añade la cadena a la derecha de la cadena situada a la izquierda y devuelve la nueva cadena. Para objetos de documento, añade el documento a la derecha del documento situado a la izquierda y devuelve el nuevo documento. En todos los casos, las variables situadas a ambos lados no se modifican. Resta - Para objetos enteros y reales, resta el número de la derecha al de la izquierda y devuelve el nuevo valor. Las variables situadas a ambos lados no se modifican. No se aplica a ningún otro tipo de objeto. Multiplicación * Para objetos enteros y reales, multiplica los números a ambos lados de "*" y devuelve el nuevo valor. Las variables situadas a ambos lados no se modifican. No se aplica a ningún otro tipo de objeto. División / Para objetos enteros y reales, divide el número de la izquierda entre el de la derecha y devuelve el nuevo valor. Las variables situadas a ambos lados no se modifican. No se aplica a ningún otro tipo de objeto. Resto % Para objetos enteros, divide el número de la izquierda entre el de la derecha y devuelve el resto. Las variables situadas a ambos lados no se modifican. No se aplica a ningún otro tipo de objeto. Por ejemplo, 5%2 devuelve 1 debido a que 5 dividido entre 2 es 2 con un resto de 1. Conceptos básicos 9 Comparación Estos operadores se utilizan para comparar los valores de variables o propiedades del mismo tipo. El resultado de la comparación es un valor booleano (TRUE o FALSE). Se puede utilizar cualquiera de los símbolos enumerados para un operador. Operador Símbolos Descripción Menor que <, LT Para enteros y reales, devuelve TRUE si el valor de la izquierda es menor que el de la derecha. Para cadenas, devuelve TRUE si el valor de la izquierda es alfabéticamente anterior al de la derecha (incluyendo mayúsculas y minúsculas). De lo contrario, devuelve FALSE. Mayor que >, GT Para enteros y reales, devuelve TRUE si el valor de la izquierda es mayor que el de la derecha. Para cadenas, devuelve TRUE si el valor de la izquierda es alfabéticamente posterior al de la derecha (incluyendo mayúsculas y minúsculas). De lo contrario, devuelve FALSE. Menor o igual que <=, LE Para enteros y reales, devuelve TRUE si el valor de la izquierda es menor o igual que el de la derecha. Para cadenas, devuelve TRUE si el valor de la izquierda es alfabéticamente anterior o igual al de la derecha (incluyendo mayúsculas y minúsculas). De lo contrario, devuelve FALSE. Mayor o igual que >=, GE Para enteros y reales, devuelve TRUE si el valor de la izquierda es mayor o igual que el de la derecha. Para cadenas, devuelve TRUE si el valor de la izquierda es alfabéticamente posterior o igual al de la derecha (incluyendo mayúsculas y minúsculas). De lo contrario, devuelve FALSE. Igual a ==, EQ Para enteros y reales, devuelve TRUE si el valor de la izquierda es igual que el de la derecha. Para cadenas, devuelve TRUE si el valor de la izquierda es exactamente el mismo (incluyendo mayúsculas y minúsculas) que el de la derecha. De lo contrario, devuelve FALSE. (doble signo igual) No igual a !=, <>, NE Para enteros y reales, devuelve TRUE si el valor de la izquierda no es igual que el de la derecha. Para cadenas, devuelve TRUE si el valor de la izquierda no es exactamente el mismo (incluyendo mayúsculas y minúsculas) que el de la derecha. De lo contrario, devuelve FALSE. Conceptos básicos 10 Booleanos Estos operadores se utilizan para crear expresiones booleanas complejas. El valor a cada lado del operador debe ser booleano. El resultado del operador booleano es un valor booleano (TRUE o FALSE). Se puede utilizar cualquiera de los símbolos enumerados para un operador. Operador Símbolos Descripción Y &, &&, AND Realiza una operación AND entre dos valores booleanos para obtener el resultado booleano final. O |, ||, OR Realiza una operación OR entre dos valores booleanos para obtener el resultado booleano final. No !, NOT Realiza una operación NOT entre dos valores booleanos para obtener el resultado booleano final. La siguiente tabla muestra los resultados de los métodos AND y OR utilizando: bool1 AND bool2 bool1 OR bool2 bool 1 bool2 AND OR FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE La siguiente tabla muestra los resultados del método NOT utilizando: NOT bool1 bool 1 NOT TRUE FALSE FALSE TRUE Conceptos básicos 11 Otras características Abreviatura de objetos con "with" Si tiene un código de sección que funciona con el mismo objeto, puede resultar molesto escribir continuamente el mismo nombre de objeto. Para evitarlo, puede utilizar la sentencia with. El formato general es: with nombreobjeto .property = valor .property = valor .method() endwith El nombre del objeto que se utilizará se indica en la sentencia with y, a continuación, se puede hacer referencia a cualquier propiedad o método del objeto utilizando el "punto" seguido del nombre de la propiedad o el método. Se utiliza habitualmente con los objetos de acción. Depuración de un script Cuando se ejecuta un script, los objetos de acción pueden escribir mensajes de error y advertencia en el registro. También puede escribir mensajes propios en el registro para facilitar la depuración del script. Por ejemplo, desea conocer el valor de una variable o el valor devuelto de un método. Para escribir el mensaje en el registro, utilice la sentencia "debug". debug (msg) msg puede ser una variable de cadena, una cadena entre comillas o una expresión numérica. A continuación se ofrecen algunos ejemplos: int index= 3 string ErrorMsg = "No se puede imprimir." debug (index) debug (ErrorMsg) debug ("Recibido trabajo de " + original.username) Cada una de estas sentencias escriben un mensaje en el registro del servidor. Conceptos básicos 12 Concatenación de comentarios y líneas de código en un script Para concatenar comentarios en un script, debe utilizar la barra inclinada doble (“//”) si las líneas se ajustan. Por ejemplo: //Este script enviará por fax un original digitalizado y lo enviará a una base de datos proporcionada //por el usuario, si la base de datos no está admitida por el software..... Para concatenar líneas de código, se debe utilizar un carácter de subrayado (“_”). Por ejemplo: str email="Juan García" doc ocr with EmailSMTP .Server=local.emailserver .To=email .From=email .Subject="Documento digitalizado" .Message="Se incluye el documento digitalizado en el formato"_ "solicitado." .CharacterSet=LDD_SMTPCHARSET_US .Attachments=ocr .Go() endwith Cancelación de un script durante el tiempo de ejecución Si detecta una condición de error durante la ejecución del script, resulta útil disponer de medios para detener el procesamiento del script. Para ello, utilice la función exit: void exit(string msg) La función exit detiene el procesamiento del script. Permite pasar una cadena que aparecerá en el registro del servidor así como en la página/cuadro de diálogo de confirmación. Conceptos básicos 13 3 Objetos de tipo de datos Todos los datos que utiliza Workflow Composer se pueden agrupar en seis grupos distintos de tipos de datos: • • • • • • Booleano Documento Entero Asignación Real String Cada propiedad de objeto es uno de los objetos de tipo de datos. Además, la mayoría de las variables son uno de estos tipos. A continuación se ofrece una explicación de cada uno de estos objetos. Objetos de tipo de datos 14 Booleano El objeto booleano se utiliza para valores que son verdaderos o falsos desde el punto de vista lógico. Los únicos valores válidos para esta variable son las palabras reservadas: TRUE y FALSE. El objeto no tiene propiedades. Se admiten los siguientes operadores: Operadores Símbolo Descripción ==, EQ Igual <> No igual &, AND Y |, OR O !, NOT No = Asignación Objetos de tipo de datos 15 Documento El objeto de documento se utiliza para contener una colección de archivos de imagen, texto y otros formatos. Todos los archivos de un objeto de documento no tienen que ser del mismo tipo; se puede utilizar para contener diferentes archivos de distintos tipos. Una propiedad o variable es de este tipo cuando se declara como doc. El objeto de documento no tiene propiedades. Métodos Sintaxis Descripción bool AddDocument(doc doc1) Agrega un documento existente al final de este documento. Parámetros: doc1: el documento que se agregará. Devuelve: Un valor bool que indica si se ha realizado correcta o incorrectamente. bool AddFile(string path [, string type]) Agrega un archivo existente al final de este documento. Se producirá un error en este método si el archivo no existe o no se puede leer. Parámetros: path: ruta de acceso completa del archivo en el servidor a agregar. type: si no se indica, el tipo de archivo se definirá como la extensión del archivo a agregar; de lo contrario, se utilizará el valor suministrado. Devuelve: Un valor bool que indica si se ha realizado correcta o incorrectamente. void AddTempFile(string ext) Agrega un archivo temporal al documento. El archivo se eliminará cuando termine el script. Parámetros: ext: la extensión del archivo temporal Devuelve: Nada void Clear() Elimina todos los archivos del documento. Parámetros: Ninguno Devuelve: Nada Objetos de tipo de datos 16 Sintaxis Descripción doc Copy() Copia todos los archivos de este documento en uno nuevo; realmente efectúa una copia de los archivos, por lo que existen dos copias de los mismos. De este modo, se pueden efectuar cambios en un conjunto de archivos sin afectar al otro. Parámetros: Ninguno Devuelve: un documento que contiene una copia de todos los archivos en la variable de documento que se está copiando. doc CopyRange(int start, int end) Copia los archivos especificados de este documento en uno nuevo; realmente efectúa una copia de los archivos, por lo que existen dos copias de los mismos. De este modo, se pueden efectuar cambios en un conjunto de archivos sin afectar al otro. Parámetros: start: índice del primer archivo del documento que se copiará; los índices de archivo empiezan en 1 end: índice del último archivo del documento que se copiará Devuelve: Un documento que contiene una copia de los archivos del rango especificado. int GetDocumentSize() Devuelve el tamaño total en bytes de todos los archivos de este documento. Se devuelve un tamaño cero (0) si no hay archivos en el documento. Parámetros: Ninguno Devuelve: Un entero con el número total de bytes de este documento. string GetDocumentType() Devuelve el tipo (formato o extensión de archivo) del documento. Si todos los archivos del documento son del mismo tipo, el valor es el tipo de documento; de lo contrario, el valor es una cadena vacía. Parámetros: Ninguno Devuelve: Una cadena que contiene el tipo de documento (formato o extensión de archivo) del documento. Objetos de tipo de datos 17 Sintaxis Descripción doc GetFile(int filenum) Devuelve una referencia al archivo especificado; el documento devuelto no es una copia, por lo que los cambios efectuados en este archivo afectan al original. Se devuelve un documento vacío si filenum no es válido. Parámetros: filenum: índice del archivo a obtener; los índices de archivo empiezan en 1 Devuelve: Un documento que contiene una referencia al archivo especificado. string GetFileLabel(int filenum) Devuelve la etiqueta del archivo especificado. La etiqueta se utiliza como nombre de archivo (menos la extensión) de los anexos en e-mails o bases de datos. Se devuelve una cadena vacía si filenum no es válido. Parámetros: filenum: índice del archivo cuya etiqueta se desea obtener; los índices de archivo empiezan en 1 Devuelve: Una cadena que contiene la etiqueta del archivo especificado. doc GetFileRange(int start, int end) Devuelve una referencia a los archivos especificados; el documento devuelto no es una copia, por lo que los cambios efectuados en estos archivos afectan a los originales. Parámetros: start: índice del primer archivo a obtener; los índices de archivo empiezan en 1 end: índice del último archivo a obtener Devuelve: Un documento que contiene una referencia a los archivos especificados. int GetFileSize(int filenum) Devuelve el tamaño en bytes del archivo especificado. Se devuelve un valor cero (0) si filenum no es válido. Parámetros: filenum: índice del archivo cuyo tamaño se desea obtener; los índices de archivo empiezan en 1 Devuelve: Un entero que contiene el tamaño en bytes del archivo especificado. Objetos de tipo de datos 18 Sintaxis Descripción string GetFileType(int filenum) Devuelve el tipo (formato o extensión de archivo) del archivo especificado. Se devuelve una cadena vacía si filenum no es válido. Parámetros: filenum: índice del archivo cuyo tipo se desea obtener; los índices de archivo empiezan en 1 Devuelve: Una cadena que contiene el valor de tipo de archivo del archivo especificado. int GetNumberFiles() Devuelve el número de archivos independientes de este documento. No devuelve el número de páginas. Parámetros: Ninguno Devuelve: Un entero con el número de archivos de este documento. bool SetFileLabel(int filenum, string label) Define la etiqueta del archivo especificado; esta etiqueta se utiliza como nombre de archivo (menos la extensión) para asignar nombres a los anexos en e-mail o bases de datos. Se produce un error en este método si filenum no es válido. Parámetros: filenum: índice de archivo; los índices de archivo empiezan en 1. label: etiqueta que se asignará al archivo especificado; debido a que se utiliza como nombre de archivo, la etiqueta debe seguir las reglas de la nomenclatura de archivos. Devuelve: Un valor bool que indica si se ha realizado correcta o incorrectamente. void SetFileLabelAll(string label) Define las etiquetas de todos los archivos de este documento; esta etiqueta se utiliza como nombre de archivo (menos la extensión) para asignar nombres a los anexos en e-mail o bases de datos. Parámetros: label: etiqueta que se asignará a todos los archivos; debido a que se utiliza como nombre de archivo, la etiqueta debe seguir las reglas de la nomenclatura de archivos. Devuelve: Nada Nota: para las variables de tipo doc, la asignación de la variable es sólo una referencia. Es decir, ambas variables señalan al mismo conjunto físico de archivos que componen el documento. Por lo tanto, cuando se realiza un cambio en un archivo, dicho archivo cambia en ambos documentos. Para realizar copias de trabajo distintas de los archivos, utilice los métodos Copy o CopyRange del objeto doc. Objetos de tipo de datos 19 Operadores Símbolo Descripción + Agregar (igual que llamar a AddDocument) [] Índice (igual que llamar a GetFile utilizando dicho archivo) = Asignación (igual que llamar a GetFileRange utilizando todos los archivos) Objetos de tipo de datos 20 Entero El objeto entero se utiliza para valores que son números sin puntos decimales. Una propiedad o variable es de este tipo cuando se declara como int. El objeto no tiene propiedades. Métodos Sintaxis Descripción void Add(int num) Suma num al valor actual. El valor de este objeto se cambia. Parámetros: num: entero que se sumará al valor actual. Devuelve: Nada real AsReal() Convierte y devuelve el valor actual de este objeto como un objeto real. El valor de este objeto no se cambia. Parámetros: Ninguno Devuelve: Un real con el valor de este objeto. string AsString() Devuelve el valor actual de este objeto como una cadena. Este método se utiliza normalmente para que el valor del entero se pueda usar como parte de una cadena. Parámetros: Ninguno Devuelve: Una cadena con el valor de este objeto. void Divide(int num) Divide el valor actual entre num. El valor de este objeto se cambia. Parámetros: num: entero entre el que se dividirá. Devuelve: Nada Objetos de tipo de datos 21 Sintaxis Descripción void Mod(int num) Divide el valor actual entre num y define el valor de este objeto como el resto. Parámetros: num: entero entre el que se dividirá. Devuelve: Nada void Multiply(int num) Multiplica el valor actual por num. El valor de este objeto se cambia. Parámetros: num: entero por el que se multiplicará. Devuelve: Nada Operadores Símbolo Descripción <, LT Menor que >, GT Mayor que <=, LE Menor o igual que >=, GE Mayor o igual que ==, EQ Igual <>, NE, != No igual a + Sumar - Restar * Multiplicar / Dividir % Resto = Asignación Objetos de tipo de datos 22 Ejemplos Media carta Valor de X Comentario int x 0 Declara la variable x = 5 5 Asigna el valor 5 a x x.Mod(2) 1 5%2 es 2 devuelve 1 x.Add(9) 10 x.Subtract(2) 8 x.Multiply(2) 16 x.Divide(8) 2 x.AsReal() 2 Devuelve 2.0 x.AsString() 2 Devuelve "2" Nota: también se pueden utilizar los operadores matemáticos estándar (+, -, *, /). Objetos de tipo de datos 23 Real El objeto real se utiliza para valores que son números con puntos decimales. Una propiedad o variable es de este tipo cuando se declara como: real. El objeto no tiene propiedades. Métodos Sintaxis Descripción void Add(real num) Suma num al valor actual. El valor de este objeto se cambia. Parámetros: num: real que se sumará al valor actual. Devuelve: Nada int AsInt () Convierte y devuelve el valor actual de este objeto como un objeto entero. El valor no se redondea; los números que van después del punto decimal se truncan. El valor de este objeto no se cambia. Parámetros: Ninguno Devuelve: Un entero con el valor de este objeto. string AsString() Devuelve el valor actual de este objeto como una cadena. Este método se utiliza normalmente para que el valor del real se pueda usar como parte de una cadena. Parámetros: Ninguno Devuelve: Una cadena con el valor de este objeto. Objetos de tipo de datos 24 Sintaxis Descripción void Divide(real num) Divide el valor actual entre num. El valor de este objeto se cambia. Parámetros: num: real entre el que se dividirá. Devuelve: Nada void Multiply(real num) Multiplica el valor actual por num. El valor de este objeto se cambia. Parámetros: num: real por el que se multiplicará. Devuelve: Nada Operadores Símbolo Descripción <, LT Menor que >, GT Mayor que <=, LE Menor o igual que >=, GE Mayor o igual que ==, EQ Igual <>, NE, != No igual a + Sumar - Restar * Multiplicar / Dividir = Asignación Objetos de tipo de datos 25 String El objeto de cadena se utiliza para valores que son texto. Una propiedad o variable es de este tipo cuando se declara como: string. El objeto no tiene propiedades. Métodos Sintaxis Descripción string AsAlphaNumeric() Convierte y devuelve el valor actual de la cadena como una cadena que sólo contiene los caracteres alfabéticos y numéricos del valor actual; todos los demás caracteres se eliminan. El valor de esta cadena no se cambia. Parámetros: Ninguno Devuelve: Una cadena que sólo contiene los caracteres alfabéticos y numéricos de la cadena actual. doc AsDoc() Devuelve el valor actual de esta cadena como un documento. El documento tiene un archivo que contiene el valor actual de esta cadena como su texto. Parámetros: Ninguno Devuelve: Un documento con el valor actual de esta cadena como su texto. int AsInt() Devuelve el valor actual de la cadena como un entero. El valor actual se lee hasta el primer carácter que no sea numérico. El valor devuelto es cero (0) si la cadena está vacía o el primer carácter no es numérico. El valor de esta cadena no se cambia. Parámetros: Ninguno Devuelve: Un entero con el valor actual de la cadena como su entero. Objetos de tipo de datos 26 Sintaxis Descripción string AsLower() Convierte y devuelve el valor actual de esta cadena con todas las letras en minúsculas. Los caracteres que no sean alfabéticos no se cambian. El valor de esta cadena no se cambia. Parámetros: Ninguno Devuelve: Una cadena con el valor actual convertido a letras minúsculas. real AsReal() Devuelve el valor actual de la cadena como un real. El valor actual se lee hasta el primer carácter que no sea numérico. Los caracteres numéricos para los números reales incluyen el punto decimal. El valor devuelto es cero (0.0) si la cadena está vacía o el primer carácter no es numérico. El valor de esta cadena no se cambia. Parámetros: Ninguno Devuelve: Un real con el valor actual de la cadena como un real. string AsUpper() Convierte y devuelve el valor actual de esta cadena con todas las letras en mayúsculas. Los caracteres que no sean alfabéticos no se cambian. El valor de esta cadena no se cambia. Parámetros: Ninguno Devuelve: Una cadena con el valor actual convertido en letras mayúsculas. bool Compare(string string1) Compara el valor actual de esta cadena con la proporcionada. En esta comparación se distinguen mayúsculas y minúsculas. Parámetros: string1: cadena con la que se compara el valor actual de esta cadena. Devuelve: Un valor bool TRUE si las cadenas son las mismas, incluyendo los caracteres en mayúsculas y minúsculas; de lo contrario, FALSE. Objetos de tipo de datos 27 Sintaxis Descripción bool CompareNoCase(string string1) Compara el valor actual de esta cadena con la proporcionada. En esta comparación no se distinguen mayúsculas y minúsculas. Parámetros: string1: cadena con la que se compara el valor actual de esta cadena. Devuelve: Un valor bool TRUE si las cadenas son las mismas, sin tener en cuenta los caracteres en mayúsculas y minúsculas; de lo contrario, FALSE. void Concatenate(string string1) Añade string1 al valor actual de esta cadena. Parámetros: string1: cadena que se añadirá Devuelve: Nada int Find(string substring, int start) Busca en el valor actual de esta cadena la primera aparición del parámetro substring especificado. Parámetros: substring: la subcadena que se buscará. start: el índice del carácter en esta cadena donde se empezará la búsqueda; el valor 1 inicia la búsqueda al principio. Devuelve: Un entero que indica la posición de inicio de la subcadena en esta cadena; 0 si no se encuentra la cadena. string Left(int count) Devuelve el primer recuento de caracteres de esta cadena. Si el parámetro count es mayor que la longitud de la cadena, se devuelve toda la cadena. Parámetros: count: el número de caracteres que se obtendrán Devuelve: Una cadena que contiene el primer recuento de caracteres del valor actual. int Length() Devuelve el número de caracteres de esta cadena. Parámetros: Ninguno Devuelve: Un entero que contiene el número de caracteres de la cadena. Objetos de tipo de datos 28 Sintaxis Descripción string Mid(int start, int count) Devuelve una subcadena de la cadena actual con la longitud especificada en el parámetro count a partir del carácter indicado en el parámetro start. Los índices de cadena empiezan en 1. Parámetros: start: el índice del primer carácter que se incluirá en la subcadena count: el número de caracteres que se incluirán en la subcadena; un valor cero (0) indica el resto de los caracteres de la cadena Devuelve: Una cadena que es una subcadena del valor actual y contiene los caracteres del rango especificado. int Replace(string old, string new, int index, bool matchcase, bool wholeword) Busca el valor actual de la cadena empezando en el índice especificado y sustituye la primera aparición de la cadena anterior por la nueva. La búsqueda se puede definir para que coincidan mayúsculas y minúsculas o para encontrar sólo palabras enteras. Parámetros: old: la cadena que se buscará. new: la cadena utilizada para sustituir la cadena anterior. index: entrada en el campo de índice. matchcase: indica si en la búsqueda se distinguen mayúsculas y minúsculas. wholeword: indica si en la búsqueda sólo deben coincidir palabras enteras, no partes de palabras. Devuelve: Un entero que indica el índice del primer carácter en la cadena que coincide con la cadena de búsqueda solicitada. Se devuelve un valor 0 si no hay ninguna coincidencia. Objetos de tipo de datos 29 Sintaxis Descripción int ReplaceAll(string old, string new, bool matchcase, bool wholeword) Busca el valor actual de la cadena y sustituye todas las apariciones de la cadena anterior por la nueva. La búsqueda se puede definir para que coincidan mayúsculas y minúsculas o para encontrar sólo palabras enteras. Parámetros: old: la cadena que se buscará new: la cadena utilizada para sustituir la cadena anterior matchcase: indica si en la búsqueda se distinguen mayúsculas y minúsculas wholeword: indica si en la búsqueda sólo deben coincidir palabras enteras, no partes de palabras Devuelve: Un entero que indica el número de sustituciones que se han efectuado. Se devuelve un valor 0 si no hay ninguna coincidencia. string Right(int count) Devuelve el último recuento de caracteres de la cadena. Si el parámetro count es mayor que la longitud de la cadena, se devuelve toda la cadena. Parámetros: count: el número de caracteres que se obtendrán Devuelve: Una cadena que contiene el último recuento de caracteres del valor actual. stringarray Separate(string separator) Se busca la cadena indicada en el parámetro separator en el valor actual de la cadena; cada vez que se encuentra, se forma una nueva cadena menos el valor del separador. Cuando se llega al final de la cadena, la parte restante de la cadena se agrega como último elemento de la matriz. Si no se encuentra el separador, se devuelve toda la cadena como el primer elemento de la matriz. Parámetros: separator: la cadena que se utiliza como el valor de separación Devuelve: Una matriz de cadenas en la que cada elemento es una cadena menos el separador. Objetos de tipo de datos 30 Sintaxis Descripción void TrimBoth() Elimina todos los espacios en blanco del principio y el final de la cadena. Un espacio en blanco es cualquier carácter de nueva línea, espacio o tabulación. El valor de la cadena actual se cambia. Parámetros: Ninguno Devuelve: Nada void TrimLeft() Elimina todos los espacios en blanco del principio de la cadena. Un espacio en blanco es cualquier carácter de nueva línea, espacio o tabulación. El valor de la cadena actual se cambia. Parámetros: Ninguno Devuelve: Nada void TrimRight() Elimina todos los espacios en blanco del final de la cadena. Un espacio en blanco es cualquier carácter de nueva línea, espacio o tabulación. El valor de la cadena actual se cambia. Parámetros: Ninguno Devuelve: Nada Operadores Símbolo Descripción <, LT Menor que (compara distinguiendo mayúsculas y minúsculas) >, GT Mayor que (compara distinguiendo mayúsculas y minúsculas) ==, EQ Igual (compara distinguiendo mayúsculas y minúsculas) <>, NE No igual (compara distinguiendo mayúsculas y minúsculas) + Concatenar Objetos de tipo de datos 31 Ejemplos: Para la cadena, str, con el valor "ABC123abc:789": str.AsAlphaNumeric() devuelve "ABC123abc789" str.AsInt() devuelve 0 str.AsLower() devuelve "abc123abc:789" str.AsReal() devuelve 0.0 str.AsUpper() devuelve "ABC123ABC:789" str.Contains("123") devuelve TRUE str.Find("123", 1) devuelve 4 str.Length() devuelve 13 str.Left(5) devuelve "ABC12" str.Mid(6, 4) devuelve "3abc" str.Right(4) devuelve ":789" Para la cadena, str, con el valor "12.45": str.AsReal() devuelve 12.45 str.AsInt() devuelve 12 Para la cadena, str, con el valor "Esto es una prueba de esta cadena.": str.Replace("es", "ha sido", 1, TRUE, FALSE) devuelve 3 y cambia el valor a: "Esto ha sido una prueba de esta cadena." str.Replace("es", "ha sido", 1, FALSE, TRUE) devuelve 6 y cambia el valor a: "Esto ha sido una prueba de esta cadena." Objetos de tipo de datos 32 str.ReplaceAll("esta", "esa", FALSE,TRUE) devuelve 2 y cambia el valor a: "Esto ha sido una prueba de esa cadena." str.ReplaceAll("esta", "esa", TRUE, FALSE) devuelve 1 y cambia el valor a: "Esto es una prueba de esa cadena." Caracteres de escape Hay algunos caracteres necesarios en las cadenas que no se pueden representar mediante los caracteres normales. Para incluir estos caracteres, los objetos de cadena admiten los siguientes caracteres de escape. Símbolo Descripción ^n Nueva línea de Windows ^l Avance de línea de Unix ^r Retorno de carro de Unix ^t Tabulación ^^ Signo de intercalación ^xdd Hexadecimal ^" Poner comillas en una cadena Para utilizarlos, incluya el carácter de escape entre las comillas. Por ejemplo: string str = "Línea 1^nLínea2^tTab hasta siguiente columna" string msg = "Ésta es la ^"primera^" cadena entrecomillada." Objetos de tipo de datos 33 Asignación El objeto de asignación se utiliza para contener una colección de pares de clave/valor. Proporciona un modo de estructurar datos de una manera definida por el usuario. Los datos se pueden subdividir en categorías y éstas pueden tener sus propios pares de clave/valor. Todas las claves y valores de la asignación son cadenas. La presentación de los datos es la siguiente: • key = valor • category.key = valor • category.subcategory.key = valor Se permiten múltiples niveles de categorías. Cada categoría debe tener un par de clave/valor como mínimo. Una propiedad o variable es de este tipo cuando se declara como asignación. El objeto de asignación no tiene propiedades. Métodos Sintaxis Descripción void AddItem(string key, string value) Agrega el par de clave/valor a la asignación. Para agregar el par de clave/valor a una categoría específica, incluya el nombre de la categoría como parte de la clave utilizando un punto para separar sus nombres. Si la categoría no existe, se creará. Parámetros: key: la clave que se agregará a la asignación value: el valor que se asignará a la clave Devuelve: Nada map GetCategory(string category) Devuelve una asignación de los pares de clave/valor que pertenecen a la categoría especificada. Si la categoría no existe, se devolverá una asignación sin entradas. Parámetros: category: el nombre de la categoría. Devuelve: Una asignación con los pares de clave/valor que pertenecen a la categoría especificada. Objetos de tipo de datos 34 Sintaxis Descripción stringarray GetCategoryList() Devuelve una lista de las categorías de nivel superior de la asignación. Si no hay categorías, se devuelve una matriz de cadenas sin elementos. Parámetros: Ninguno Devuelve: Una lista de las categorías de nivel superior de la asignación. stringarray GetKeyList() Devuelve una lista de las claves de nivel superior de la asignación. Si no hay claves de nivel superior, se devuelve una matriz de cadenas sin elementos. Parámetros: Ninguno Devuelve: Una lista de las claves de nivel superior de la asignación. string GetValue(string key) Devuelve el valor de la clave especificada. Para obtener el par de clave/valor de una categoría específica, incluya el nombre de la categoría como parte de la clave utilizando un punto para separar sus nombres. Si la clave especificada no existe, se devuelve una cadena vacía. Parámetros: key: el nombre de la clave. Devuelve: El valor de la clave especificada. bool HasCategory(string category) Devuelve TRUE si la categoría especificada existe en la asignación. Para comprobar si una categoría tiene una subcategoría, separe sus nombres con un punto. Parámetros: category: el nombre de la categoría. Devuelve: Un valor bool que indica si la categoría existe en la asignación. bool HasKey(string key) Devuelve TRUE si la clave especificada existe en la asignación. Para comprobar si el par de clave/valor existe en una categoría específica, incluya el nombre de la categoría como parte de la clave utilizando un punto para separar sus nombres. Parámetros: key: el nombre de la clave. Devuelve: Un valor bool que indica si la clave existe en la asignación. Objetos de tipo de datos 35 Ejemplos: Para crear una asignación que tenga las claves de primer nivel "nombre" y "apellido", así como la categoría "dirección": map info info.AddItem("nombre", "juan") info.AddItem("apellido", "garcía") info.AddItem("dirección.calle", "12 Calle Mayor") info.AddItem("dirección.ciudad", "Cualquiera") info.AddItem("dirección.provincia", "Granada") info.AddItem("dirección.cp,", "18001") Siguiendo con el ejemplo anterior, para obtener información de la asignación: stringarray catlist, keylist map address catlist = info.GetCategoryList() address = info.GetCategory("dirección") keylist = address.GetKeyList() Usando de las variables anteriores: address.HasKey("teléfono")devuelveFALSE info.GetValue("nombre")devuelve"juan" info.GetValue("dirección.cp")devuelve"40000" address.GetValue("apartadocorreos ")devuelve"" Objetos de tipo de datos 36 4 Objetos auxiliares Los objetos auxiliares se proporcionan para facilitar la realización de algunas operaciones habituales. Actualmente, hay siete objetos de este tipo: • • • • • • • Matriz booleana Dataset Matriz de enteros Opciones de impresión Matriz de reales Matriz de cadenas TextFile Para utilizar un objeto auxiliar, declare una variable del tipo de objeto específico. Objetos auxiliares 37 Matriz booleana El objeto de matriz booleana se utiliza para contener una colección de valores booleanos. El índice de matriz empieza en 1. Una variable es de este tipo cuando se declara como: boolarray. El objeto no tiene propiedades. Métodos Sintaxis Descripción void Add(bool item) Agrega el elemento especificado al final de la matriz. Parámetros: item: valor booleano a agregar. Devuelve: Nada bool GetAt(int index) Devuelve el valor booleano del índice especificado. Si se especifica un índice no válido, se devuelve FALSE. Parámetros: index: índice del valor booleano en la matriz a devolver. Devuelve: El valor booleano del índice especificado. int GetSize() Devuelve el número de elementos de la matriz. Parámetros: Ninguno Devuelve: Un entero con el número de elementos de la matriz. void RemoveAll() Elimina todos los elementos de la matriz. Parámetros: Ninguno Devuelve: Nada void RemoveAt(int index) Elimina el valor booleano del índice especificado; todos los demás elementos de la matriz después del índice especificado se mueven una posición hacia arriba. Parámetros: index: índice del valor booleano en la matriz a eliminar. Devuelve: Nada Objetos auxiliares 38 Dataset El objeto dataset contiene el nombre de un Formset que se utilizará para realizar una combinación, así como una asignación de pares de clave/valor que se corresponden con los campos del Formset especificado. Una propiedad o variable es de este tipo cuando se declara como: dataset. El objeto no tiene propiedades. Métodos Sintaxis Descripción string GetDataItem(string key) Busca en la asignación la clave especificada y devuelve su valor. Parámetros: key: par de clave/valor que se buscará. Devuelve: Una cadena que contiene el valor de la clave especificada. Se devuelve una cadena vacía si no existe la clave en dicha página. string GetFormset() Devuelve el nombre del formset que utiliza el dataset. Parámetros: Ninguno Devuelve: Una cadena que contiene el nombre del formset que se utiliza. bool Load(doc info) Carga la información de dataset guardada anteriormente de un archivo. Los valores anteriores definidos para este dataset se borran y sustituyen por los datos del archivo. Parámetros: info: documento que contiene el dataset. Devuelve: Un valor bool que indica si el dataset se ha cargado correctamente. bool Save(doc info) Guarda los valores actuales del dataset en un archivo. Este archivo se puede cargar posteriormente para volver a crear una combinación sin necesidad de la entrada original. Parámetros: info: documento en el que se guardará el dataset. Devuelve: Un valor bool que indica si el formset se ha guardado correctamente. Objetos auxiliares 39 Sintaxis Descripción void SetDataItem(string key, string value) Agrega el par de clave/valor a la asignación. Parámetros: key: clave a agregar. value: valor que se asignará a la clave. Devuelve: Nada void SetFormset(string formset) Define el nombre del formset que utiliza el dataset. Parámetros: formset: nombre del formset. Devuelve: Nada Objetos auxiliares 40 Matriz de enteros El objeto de matriz de enteros se utiliza para contener una colección de enteros. El índice de matriz empieza en 1. Una variable es de este tipo cuando se declara como: intarray. El objeto no tiene propiedades. Métodos Sintaxis Descripción void Add(int item) Agrega el elemento especificado al final de la matriz. Parámetros: item: entero a agregar. Devuelve: Nada int GetAt(int index) Devuelve el entero del índice especificado. Si se especifica un índice no válido, se devuelve cero (0). Parámetros: index: índice del entero en la matriz a devolver. Devuelve: El entero del índice especificado. int GetSize() Devuelve el número de elementos de la matriz. Parámetros: Ninguno Devuelve: Un entero con el número de elementos de la matriz. void RemoveAll() Elimina todos los elementos de la matriz. Parámetros: Ninguno Devuelve: Nada void RemoveAt(int index) Elimina el entero del índice especificado; todos los demás elementos de la matriz después del índice especificado se mueven una posición hacia arriba. Parámetros: index: índice del entero en la matriz a eliminar. Devuelve: Nada Objetos auxiliares 41 Opciones de impresión El objeto de opciones de impresión se utiliza para especificar opciones de impresión por trabajo y por página como dúplex, orientación y bandeja de salida. La acción PrintForm utiliza este objeto para determinar la forma correcta de imprimir su documento de entrada. Una variable o propiedad es de este tipo cuando se declara como: printoptions. El objeto no tiene propiedades. Métodos Sintaxis Descripción bool SetJobOption(int optionid, int valueid) Define una opción de impresión que se aplica a todo el trabajo de impresión. Cuando se combina con las opciones de página, las opciones de trabajo sirven de valores predeterminados para el trabajo y las anulan las opciones de página. Parámetros: optionid: opción de trabajo a definir. valueid: valor que se definirá para la opción de trabajo. Devuelve: Un valor bool que indica si la opción de trabajo se ha definido. bool SetPageOption(int optionid, int valueid, int startpage, int endpage) Define una opción de impresión que se aplica al rango de páginas especificado. Para definir una opción para una sola página, especifique dicha página como inicial y final. Parámetros: optionid: opción de trabajo a definir. valueid: valor que se definirá para la opción de trabajo. startpage: primera página a la que se debe aplicar la opción. endpage: última página a la que se debe aplicar la opción. Devuelve: Un valor bool que indica si la opción de página se ha definido. Objetos auxiliares 42 Opciones ID de opción Valor posible LDD_PRINTOPTION_COLLATE LDD_COLLATE_ON LDD_COLLATE_OFF LDD_PRINTOPTION_COLORMODEL LDD_COLORMODEL_BLACK LDD_COLORMODEL_CMYK LDD_PRINTOPTION_COPIES Número entero de copias LDD_PRINTOPTION_DUPLEX LDD_DUPLEX_OFF LDD_DUPLEX_LONGEDGE LDD_DUPLEX_SHORTEDGE LDD_PRINTOPTION_HOLEPUNCH LDD_HOLEPUNCH_ON LDD_HOLEPUNCH_OFF LDD_PRINTOPTION_NUP LDD_NUP_OFF LDD_NUP_2UP LDD_NUP_3UP LDD_NUP_4UP LDD_NUP_6UP LDD_NUP_9UP LDD_NUP_12UP LDD_NUP_16UP LDD_PRINTOPTION_NUP_BORDER LDD_NUP_BORDER_ON LDD_NUP_BORDER_OFF LDD_PRINTOPTION_NUP_ORDER LDD_NUP_ORDER_HORIZONTAL LDD_NUP_ORDER_VERTICAL LDD_NUP_ORDER_REV_HORIZONTAL LDD_NUP_ORDER_REV_VERTICAL LDD_PRINTOPTION_NUP_VIEW LDD_NUP_ORIENTATION_AUTO LDD_NUP_ORIENTATION_PORTRAIT LDD_NUP_ORIENTATION_LANDSCAPE LDD_PRINTOPTION_ORIENTATION LDD_ORIENTATION_PORTRAIT LDD_ORIENTATION_LANDSCAPE Objetos auxiliares 43 ID de opción Valor posible LDD_PRINTOPTION_OUTPUTBIN LDD_OUTPUTBIN_STANDARD LDD_OUTPUTBIN_1 LDD_OUTPUTBIN_2 LDD_OUTPUTBIN_3 LDD_OUTPUTBIN_4 LDD_OUTPUTBIN_5 LDD_OUTPUTBIN_6 LDD_OUTPUTBIN_7 LDD_OUTPUTBIN_8 LDD_OUTPUTBIN_9 LDD_OUTPUTBIN_10 LDD_PRINTOPTION_PAPERSIZE LDD_PAPERSIZE_11X17 LDD_PAPERSIZE_A3 LDD_PAPERSIZE_A4 LDD_PAPERSIZE_A5 LDD_PAPERSIZE_FOLIO LDD_PAPERSIZE_JISB4 LDD_PAPERSIZE_JISB5 LDD_PAPERSIZE_LEGAL LDD_PAPERSIZE_LETTER LDD_PAPERSIZE_STATEMENT LDD_PAPERSIZE_UNIVERSAL LDD_PRINTOPTION_PAPERSOURCE LDD_PAPERSOURCE_TRAY1 LDD_PAPERSOURCE_TRAY2 LDD_PAPERSOURCE_TRAY3 LDD_PAPERSOURCE_TRAY4 LDD_PAPERSOURCE_TRAY5 LDD_PAPERSOURCE_ENV_FEEDER LDD_PAPERSOURCE_MP_FEEDER LDD_PAPERSOURCE_MANUAL_ENV LDD_PAPERSOURCE_MANUAL_PAPER Objetos auxiliares 44 ID de opción Valor posible LDD_PRINTOPTION_PAPERTYPE LDD_PAPERTYPE_PLAIN LDD_PAPERTYPE_COLOR LDD_PAPERTYPE_TRANSPARENCY LDD_PAPERTYPE_CARDSTOCK LDD_PAPERTYPE_LABELS LDD_PAPERTYPE_LETTERHEAD LDD_PAPERTYPE_PREPRINTED LDD_PAPERTYPE_BOND LDD_PAPERTYPE_ENVELOPE LDD_PAPERTYPE_CUSTOM1 LDD_PAPERTYPE_CUSTOM2 LDD_PAPERTYPE_CUSTOM3 LDD_PAPERTYPE_CUSTOM4 LDD_PAPERTYPE_CUSTOM5 LDD_PAPERTYPE_CUSTOM6 LDD_PRINTOPTION_RESOLUTION LDD_RESOLUTION_75 LDD_RESOLUTION_150 LDD_RESOLUTION_200 LDD_RESOLUTION_300 LDD_RESOLUTION_400 LDD_RESOLUTION_500 LDD_RESOLUTION_600 LDD_RESOLUTION_1200 LDD_RESOLUTION_1200IQ LDD_PRINTOPTION_STAPLE LDD_STAPLE_ON LDD_STAPLE_OFF LDD_PRINTOPTION_TONERSAVER LDD_TONERSAVER_ON LDD_TONERSAVER_OFF Notas: • LDD_PRINTOPTION_COLORMODEL sólo se utiliza cuando se imprime en una impresora en color. Si se define como BLACK, la impresora sólo utilizará el cartucho negro para reproducir la página. Si se define en CMYK, permitirá que también se utilicen los cartuchos de color. • LDD_PRINTOPTION_RESOLUTION y LDD_PRINTOPTION_STAPLE no son opciones de página válidas; sólo se pueden definir mediante SetJobOption. Objetos auxiliares 45 • Al especificar opciones de página, tenga en cuenta que cambiar algunas opciones, como el tamaño del papel, puede provocar que algunas opciones no funcionen según lo esperado. Por ejemplo, si se activa la opción dúplex para las páginas uno y dos, pero el tamaño del papel para la página uno se define en Carta y el de la página dos en Legal, no se llevará a cabo la operación dúplex en las páginas. • El tamaño de papel Universal se personaliza mediante el menú de la impresora y permite definir el tamaño y el avance del papel. Si el tamaño de papel para una página se define en Universal, la orientación definida para dicha página no se aceptará debido a que Universal es tanto un tamaño como una orientación. • Si se define el tamaño del papel y el origen del papel, éste último valor anulará el de tamaño. Se recomienda definir uno u otro. Objetos auxiliares 46 Matriz de reales El objeto de matriz de reales se utiliza para contener una colección de números reales. El índice de matriz empieza en 1. Una variable es de este tipo cuando se declara como: realarray. El objeto no tiene propiedades. Métodos Sintaxis Descripción void Add(real item) Agrega el elemento especificado al final de la matriz. Parámetros: item: número real a agregar. Devuelve: Nada real GetAt(int index) Devuelve el número real del índice especificado. Si se especifica un índice no válido, se devuelve cero (0,0). Parámetros: index: índice del número real en la matriz a devolver. Devuelve: El número real del índice especificado. int GetSize() Devuelve el número de elementos de la matriz. Parámetros: Ninguno Devuelve: Un entero con el número de elementos de la matriz. void RemoveAll() Elimina todos los elementos de la matriz. Parámetros: Ninguno Devuelve: Nada void RemoveAt(int index) Elimina el número real del índice especificado; todos los demás elementos de la matriz después del índice especificado se mueven una posición hacia arriba. Parámetros: index: índice del número real en la matriz a eliminar. Devuelve: Nada Objetos auxiliares 47 Matriz de cadenas El objeto de matriz de cadenas se utiliza para contener una colección de cadenas. El índice de matriz empieza en 1. Una variable es de este tipo cuando se declara como: stringarray. El objeto no tiene propiedades. Métodos Sintaxis Descripción void Add(string item) Agrega el elemento especificado al final de la matriz. Parámetros: item: cadena a agregar. Devuelve: Nada string GetAt(int index) Devuelve la cadena del índice especificado. Si se especifica un índice no válido, se devuelve una cadena vacía. Parámetros: index: el índice de la cadena en la matriz a devolver Devuelve: La cadena del índice especificado. int GetSize() Devuelve el número de elementos de la matriz. Parámetros: Ninguno Devuelve: Un entero con el número de elementos de la matriz. void RemoveAll() Elimina todos los elementos de la matriz. Parámetros: Ninguno Devuelve: Nada void RemoveAt(int index) Elimina la cadena del índice especificado; todos los demás elementos de la matriz después del índice especificado se mueven una posición hacia arriba. Parámetros: index: el índice de la cadena en la matriz a eliminar Devuelve: Nada Objetos auxiliares 48 Ejemplo: Para una cadena, str, que tiene el valor "José,María,Juan,Ana", si llama al método separate del objeto de cadena, devuelve una matriz en la que cada entrada es uno de los nombres. stringarray a string str = "José,María,Juan,Ana" a = str.Separate(",") a.GetSize() devuelve 4 a[1] o a.GetAt(1) devuelve "José" a[2] o a.GetAt(2) devuelve "María" a[3] o a.GetAt(3) devuelve "Juan" a[4] o a.GetAt(4) devuelve "Ana" string.GetSize() devuelve 4 string.Add() devuelve Lo que haya agregado a la matriz. string.Remove() devuelve Elimina una entrada de la matriz. string.RemoveAll() devuelve Elimina todas las entradas de la matriz. Objetos auxiliares 49 Textfile El objeto textfile se utiliza para trabajar en un único archivo de texto; no puede trabajar con imágenes ni con varios archivos. Se puede utilizar para leer el texto de un archivo existente o para escribir texto en un archivo nuevo o existente para usarlo en otro proceso. Una variable es de este tipo cuando se declara como: textfile. El objeto tiene una propiedad. Nombre Descripción Tipo Información adicional filetype Cada sistema operativo gestiona las nuevas líneas de forma distinta. Utilice este valor para indicar el sistema operativo en el que se ha creado el archivo y/o el sistema en el que el usuario lo utilizará posteriormente. int (LDD Constant) Valores válidos: LDD_FILETYPE_UNIX LDD_FILETYPE_DOS LDD_FILETYPE_MAC Valor predeterminado: LDD_FILETYPE_UNIX Métodos Sintaxis Descripción bool Append(string text) Añade text al final del archivo. El puntero de archivo se mueve al final del texto añadido. Se produce un error en el método si no se ha abierto un archivo o no hay espacio en el disco. Parámetros: text: datos que se añadirán al archivo. Devuelve: Un valor bool que indica si se ha realizado correcta o incorrectamente. bool AppendLine(string text) Añade text al final del archivo e inserta una nueva línea al final del texto especificado. El puntero de archivo se mueve al final del texto añadido, después de la nueva línea. Se produce un error en el método si no se ha abierto un archivo o no hay espacio en el disco. Parámetros: text: datos que se añadirán al archivo. Devuelve: Un valor bool que indica si se ha realizado correcta o incorrectamente. Objetos auxiliares 50 Sintaxis Descripción bool Clear() Elimina el contenido del archivo. Se produce un error en el método si no se ha abierto un archivo. Parámetros: Ninguno Devuelve: Un valor bool que indica si se ha realizado correcta o incorrectamente. void Close() Cierra el archivo asociado a este objeto. Parámetros: Ninguno Devuelve: Nada bool Eof() Comprueba si el puntero de archivo está al final del archivo. Devuelve TRUE si se ha llegado al final del archivo; de lo contrario, devuelve FALSE. Parámetros: Ninguno Devuelve: Un valor bool que indica si el puntero de archivo está al final del archivo. string GetLine(int line) Devuelve la línea de texto especificada por el parámetro line sin ningún carácter de nueva línea en la cadena devuelta. Una línea termina cuando se encuentra un carácter de nueva línea. Este método no mueve el puntero de archivo. Si no existe line o no hay abierto un archivo, se devuelve una cadena vacía. Parámetros: line: la línea de texto a obtener Devuelve: Una cadena que contiene la línea de texto menos el carácter de nueva línea. int GetNumberLines() Devuelve el número de líneas del archivo. Una línea termina cuando se encuentra un carácter de nueva línea. Este método no mueve el puntero de archivo. Se devuelve cero (0) si no se ha abierto un archivo. Parámetros: Ninguno Devuelve: Un entero con el número de líneas de texto de este archivo. Objetos auxiliares 51 Sintaxis Descripción bool Open(doc doc1) Abre el primer archivo del documento especificado y define el puntero de archivo al principio del archivo. Normalmente se llama para utilizar un archivo creado por otra acción. Se produce un error en el método si el documento especificado no existe. Parámetros: doc1: documento a abrir. Devuelve: Un valor bool que indica si el archivo se ha abierto correctamente. bool Open(string file, bool create) Abre el archivo especificado y define el puntero de archivo al principio del archivo. Si el archivo no existe y el parámetro create se ha definido en TRUE, se creará el archivo; de lo contrario, el archivo no se creará y se producirá un error en el método. También se puede producir un error en el método si algún directorio de la ruta de acceso no existe o si la ruta de acceso está en una unidad de red a la que Document Server no tiene derechos de acceso. Parámetros: file: ruta de acceso completa del archivo a abrir. create: especifica si se creará el archivo si no existe. Devuelve: Un valor bool que indica si el archivo se ha abierto correctamente. string Read(int count) Devuelve el número de caracteres especificados en el parámetro count del archivo a partir de la posición actual del puntero de archivo. Dicho puntero se mueve a la posición situada después del último carácter leído. Si el parámetro count es mayor que los caracteres restantes en el archivo, se devuelven los caracteres hasta el final del archivo. Si no se ha abierto un archivo o el puntero de archivo está al final del archivo, se devuelve una cadena vacía. Parámetro: count: el número de caracteres que se leerán Devuelve: Una cadena con los caracteres especificados que se han leído del archivo. Objetos auxiliares 52 Sintaxis Descripción string ReadLine() Devuelve la siguiente línea del archivo. El puntero de archivo avanza hasta que se encuentra un carácter de nueva línea. La cadena devuelta no incluye el carácter de nueva línea. Si no se ha abierto un archivo o el puntero de archivo está al final del archivo, se devuelve una cadena vacía. Parámetros: Ninguno Devuelve: Una cadena que contiene la siguiente línea de texto del archivo. bool Rewind() Mueve el puntero de archivo al principio del archivo. Se produce un error en este método si no se ha abierto un archivo. Parámetros: Ninguno Devuelve: Un valor bool que indica si se ha realizado correcta o incorrectamente. int Size() Devuelve el tamaño en bytes del archivo de texto. Se devuelve cero (0) si no se ha abierto un archivo. Parámetros: Ninguno Devuelve: Un entero con el tamaño del archivo en bytes. bool Write(string data) Escribe el parámetro data en el archivo de texto en la posición actual del puntero de archivo. Dicho puntero se mueve a una posición después del último carácter escrito. Se produce un error en este método si no se ha abierto un archivo o falta espacio en el disco. Parámetros: data: cadena que se escribirá en el archivo de texto. Devuelve: Un valor bool que indica si se ha realizado correcta o incorrectamente. bool WriteLine(string data) Escribe el parámetro data en el archivo de texto en la posición actual del puntero de archivo. Se escribe un carácter de nueva línea después de data. El puntero de archivo se mueve a una posición después del carácter de nueva línea. Se produce un error en este método si no se ha abierto un archivo o falta espacio en el disco. Parámetros: data: cadena que se escribirá en el archivo de texto. Devuelve: Un valor bool que indica si se ha realizado correcta o incorrectamente. Objetos auxiliares 53 Ejemplo 1: Supongamos que en el directorio raíz c:\ hay un archivo denominado "data.txt". A continuación se muestra el código LDDScript que leerá el contenido de dicho archivo. textfile tf string data int size tf.Open("c:\data.txt", FALSE) size = tf.Size() data = tf.Read(size) tf.Close() Ejemplo 2: Supongamos que desea guardar los datos de usuario (userdata) que se han enviado con el trabajo en un archivo .xml para procesarlo posteriormente. El archivo se debe guardar en un directorio de datos; el nombre de cada archivo debe ser el tiempo de usuario (usertime) para garantizar un nombre único. textfile tf string data tf.Open("c:\data\" + original.usertime + ".xml", TRUE) tf.WriteLine("<? xml version=’1.0’>") tf.WriteLine("<metadata>") data = "<account number=’" + userdata.acct + "’>" tf.WriteLine(data) data = "<copies number=’" + userdata.copies.AsString() + "’ />" tf.WriteLine("</account>") tf.WriteLine("</metadata>") tf.WriteLine(data) tf.Close() El archivo de datos XML que produce el script anterior debe coincidir o asemejarse a la información siguiente: <? xml version="1.0"> <metadata> <account number="12345"> <copies number="1" /> </account> </metadata> Objetos auxiliares 54 5 Objetos del sistema Los objetos del sistema permiten obtener información sobre el documento enviado originalmente o sobre el usuario que ha enviado el trabajo. También permiten personalizar la información proporcionada a los usuarios finales que envían trabajos. Se admiten los siguientes objetos del sistema: • original: proporciona información sobre el documento enviado y el usuario que lo ha enviado. • confirm: proporciona una interfaz para agregar información a la página o cuadro de diálogo de confirmación que el usuario ve cuando ha terminado el trabajo • local: contiene valores introducidos por el administrador de Server Manager cuando el script se importa al servidor Los objetos del sistema no se pueden declarar como variables y no hay propiedades de objeto de este tipo. Estos objetos existen automáticamente para cada script. Para usar uno, utilice el tipo de objeto seguido de un punto y, a continuación, el nombre de propiedad o método. Objetos del sistema 55 Original El objeto original contiene todos los datos e información enviados para el trabajo. La información sobre el remitente está disponible para todos los scripts. La demás información varía según el tipo de script que se ejecute. Todas las propiedades del objeto son de sólo lectura; el objeto no contiene métodos. Para acceder a la lista desplegable de propiedades, como userip, (que se muestra en la lista de barra de desplazamiento) introduzca un punto (.) después de escribir la cadena "original". Las siguientes propiedades están disponibles para todos los scripts: Propiedad Descripción Tipo Información adicional userip Dirección IP del dispositivo (impresora multifunción o estación de trabajo de usuario) que ha enviado el trabajo. string Si se ha enviado mediante un flujo de impresión, esta propiedad es una cadena vacía. username Nombre del usuario que ha enviado la solicitud. string Si se ha enviado mediante una impresora multifunción que no requiere autenticación, este valor es "Usuario de impresora multifunción". Si se ha enviado mediante un flujo de impresión, este valor contiene información proporcionada por dicho flujo. useracct Número de cuenta enviado con el trabajo. string Este número sólo lo proporcionan las impresoras multifunción que tienen activado el seguimiento de trabajos. Para todos los demás trabajos, este valor es una cadena vacía. usertime Hora a la que se envió el trabajo al servidor. string Es la misma hora utilizada para todas las acciones que tienen la propiedad AppendTimestamp. Para obtener información sobre el formato de estos datos, consulte Usertime en la página 57. scriptname Nombre del script que se está ejecutando actualmente. string metadata Cualquier otro dato enviado con el trabajo que no corresponda a una propiedad existente. map Para obtener más información sobre la propiedad de metadatos, consulte Referencia de metadatos en la página 238. Objetos del sistema 56 Usertime El formato del sello de hora es: _DD_MES_AAAA_HH_MM_SS_MSEG donde: • MES es la abreviatura de tres letras del mes • DD es el día del mes • AAAA es el año de cuatro dígitos • HH es la hora con formato de 24 horas • MM son los minutos • SS son los segundos • MSEG son los milisegundos Nota: observe que se coloca un carácter de subrayado delante del mes. Las siguientes propiedades adicionales están disponibles para los scripts de Document Distributor que requieren un envío de documento: Propiedad Descripción Tipo document Documento enviado con el trabajo. doc scansize Tamaño de papel del documento digitalizado según lo definido por el perfil. int (LDD constant) Información adicional Si el trabajo se envía mediante una estación de trabajo, este valor es 0. Si se envía mediante una impresora multifunción, es uno de los valores siguientes: LDD_SCANSIZE_A3 LDD_SCANSIZE_A4 LDD_SCANSIZE_A5 LDD_SCANSIZE_B4 LDD_SCANSIZE_B5 LDD_SCANSIZE_BOOK LDD_SCANSIZE_BUSCARD LDD_SCANSIZE_EXECUTIVE LDD_SCANSIZE_LEGAL LDD_SCANSIZE_LETTER LDD_SCANSIZE_PHOTO35 LDD_SCANSIZE_PHOTO46 LDD_SCANSIZE_TABLOID Objetos del sistema 57 Propiedad Descripción Tipo Información adicional scanorient Orientación del documento digitalizado. int (LDD constant) Si el trabajo se envía mediante una estación de trabajo y no se puede determinar, este valor es 0. Si se envía mediante una impresora multifunción, es uno de los valores siguientes: LDD_ORIENTATION_PORTRAIT LDD_ORIENTATION_LANDSCAPE scandepth Profundidad de color del documento digitalizado. int (LDD Constant) Si el trabajo se envía mediante una estación de trabajo y no se puede determinar, este valor es 0. Si se envía mediante una impresora multifunción, es uno de los valores siguientes: LDD_IMGDEPTH_BW LDD_IMGDEPTH_8G LDD_IMGDEPTH_24C scanres Resolución del documento digitalizado. real Si el trabajo se envía mediante una estación de trabajo y no se puede determinar, este valor es 0. scanpages Número de páginas del documento digitalizado. int Si el trabajo se envía mediante una estación de trabajo y no se puede determinar, este valor es 0. scanrotateodd Número de grados que se tienen que girar las páginas impares con el fin de obtener la orientación que solicita el perfil. int Si el trabajo se envía mediante una estación de trabajo, este valor es 0. Si se envía mediante una impresora multifunción, los valores posibles son: 0, 90, 180 y 270. scanrotateeven Número de grados que se tienen que girar las páginas pares con el fin de obtener la orientación que solicita el perfil. int Si el trabajo se envía mediante una estación de trabajo, este valor es 0. Si se envía mediante una impresora multifunción, los valores posibles son: 0, 90, 180 y 270. Las siguientes propiedades adicionales están disponibles para los scripts de Document Producer: Propiedad Descripción Tipo Información adicional dataset Datos que se utilizarán para realizar la combinación de formularios para este trabajo. dataset EL nombre del formset así como los datos a combinar ya estarán definidos. Se puede pasar como entrada de la acción MergeForm. Objetos del sistema 58 Las siguientes propiedades adicionales están disponibles para los scripts de Document Portal: Propiedad Descripción Tipo Información adicional printoptions Opciones de impresión que se utilizarán para este trabajo. printoptions Se puede pasar a la acción PrintForm. printerip Dirección IP de la impresora asociada al cliente de Document Portal remitente. string Se puede utilizar para determinar la impresora adecuada para imprimir el formulario. formsetname Nombre del formset que se utilizará para este trabajo. string Se puede utilizar para generar un dataset necesario con el fin de obtener un formulario en blanco o rellenado automáticamente. kioskid ID del cliente de Document Portal que ha enviado la solicitud. string Objetos del sistema 59 Confirm El objeto confirm permite controlar la información que aparece en la página de confirmación (para los trabajos enviados mediante una impresora multifunción) o el cuadro de diálogo de confirmación (para los trabajos enviados mediante Print ‘N’ Send o Select ‘N’ Send). Estas páginas o cuadros de diálogo de confirmación aparecen después de que se haya procesado el trabajo. Puede definir el comportamiento predeterminado de todos los scripts modificando los valores de trabajo en Server Manager. En ocasiones puede que sea necesario anular los valores predeterminados desde un script y, para ello, puede utilizar el objeto confirm. Para acceder a las propiedades y métodos, utilice: confirm.propertyname confirm.methodname() A continuación, se ofrecen las propiedades del objeto Confirm. Propiedad Tipo Valor Descripción input doc original.document Controla el origen que se utiliza para generar las miniaturas en la página de confirmación. level int LDD_CONFIRM_OFF: no se utiliza ninguna página o cuadro de diálogo de confirmación para este script. Controla el tipo de página o cuadro de diálogo de confirmación que se utilizará para el script. De forma predeterminada, se utiliza el valor definido en los valores del servidor. LDD_CONFIRM_SCRIPT: el script proporciona todo el contenido para la página o cuadro de diálogo de confirmación. LDD_CONFIRM_ERROR: todas las advertencias o errores se agregan automáticamente a la página o cuadro de diálogo de confirmación. El script proporciona el resto del contenido. LDD_CONFIRM_VERBOSE: todos los objetos de acción agregan automáticamente información después de ejecutarse además de otras advertencias o errores. printmfp int LDD_CONFIRM_NEVER: nunca se imprime una página de confirmación. LDD_CONFIRM_ALWAY: siempre se imprime una página de confirmación. LDD_CONFIRM_ONERROR: sólo se imprime una página de confirmación si se produce una advertencia o error. Objetos del sistema 60 Controla si se debe imprimir una página de confirmación para los trabajos enviados mediante una impresora multifunción. El valor predeterminado es que siempre se imprima. Propiedad Tipo Valor Descripción displayws int LDD_CONFIRM_NEVER: nunca se muestra un cuadro de diálogo de confirmación. Controla si se muestra un cuadro de diálogo de confirmación en el ordenador del usuario que ha enviado el trabajo después de terminarlo. De forma predeterminada, este cuadro de diálogo siempre se muestra. LDD_CONFIRM_ALWAYS: siempre se muestra un cuadro de diálogo de confirmación. LDD_CONFIRM_ONERROR: sólo se muestra un cuadro de diálogo de confirmación si se produce una advertencia o error. thumbs int -1 = incluir miniaturas de todas las páginas 0 = No incluir miniaturas de ninguna página 1–3 = Incluir una miniatura del primer número de páginas x Controla el número de imágenes de miniatura que se incluyen con la página de confirmación. De forma predeterminada, se utiliza el valor definido en los valores del servidor. includePrompts bool TRUE o FALSE, Predeterminado = FALSE Incluir las solicitudes y sus respuestas en la página de confirmación. override bool TRUE o FALSE, Predeterminado = FALSE Permite que se anule la acción de la página de confirmación predeterminada de imprimir trabajos de la impresora multifunción y mostrar un cuadro de diálogo en los equipos. Al anular esta acción, se genera una imagen TIF de la página de confirmación. Esta imagen se puede enviar por e-mail, guardar en un archivo o realizar con ella cualquier otra acción disponible en un script. output doc Sólo está disponible si la anulación está definida en TRUE y se ha llamado después del método Go. Contendrá la imagen TIF de la página de confirmación. Objetos del sistema 61 A continuación, se ofrecen los métodos del objeto Confirm. Sintaxis Descripción void Reset() Provoca que todas las propiedades de este objeto se vuelvan a definir en los valores del servidor. void AddItem(string title, bool success, string msg [, string err]) Agrega una línea al final de la página o cuadro de diálogo de confirmación. Si se llama varias veces, cada línea se agrega en el orden en que se llama al método. Parámetros: title: título breve que aparece en la primera columna de la página o cuadro de diálogo success: indica si esta línea se ha agregado correcta o incorrectamente. Si está definido en TRUE, aparece "Terminado" en la segunda columna. De lo contrario, aparece "Error". msg: descripción de mayor tamaño que aparece en la tercera columna. err: parámetro opcional. Cuando se especifica, este texto aparece después de la palabra del parámetro success en la segunda columna. Normalmente, se utiliza para un mensaje de error o advertencia. Devuelve: Nada void Clear() Elimina todos los elementos agregados a la página de confirmación por el método Daytime o cualquier otro objeto. Parámetros: Ninguno Devuelve: Nada bool Go () Hace que se genere la página de confirmación. Este método sólo se debe llamar en un archivo de script si la propiedad de anulación se ha definido en TRUE. El servidor llamará automáticamente a este método para los scripts que se están anulando. Para los siguientes ejemplos, se supone que el comportamiento predeterminado para las páginas/ cuadros de diálogo de confirmación es tener el nivel de confirmación definido en detallado e imprimir y mostrar siempre. Para el script A, desea que todas las páginas/cuadros de diálogo estén desactivados. Al comienzo del script, agregue la siguiente línea: confirm.level = LDD_CONFIRM_OFF Para el script B, desea que las páginas de confirmación estén desactivadas, pero que aún se sigan mostrando los cuadros de diálogo de confirmación. Al comienzo del script, agregue: confirm.printmfp = LDD_CONFIRM_NEVER Objetos del sistema 62 Para el script C, desea utilizar los comentarios predeterminados, excepto cuando esté dentro de un bucle. Tiene que cambiar el nivel a script antes del bucle, agregar sus propios comentarios y, a continuación, restablecer el nivel a detallado siguiendo el script. Para ello, agregue: (otro procesamiento de script) confirm.level = LDD_CONFIRM_SCRIPT loop (x from 1 to 5) (imprimir copias) endloop confirm.AddItem("Imprimir", TRUE, "Copias enviadas para comercialización") confirm.level = LDD_CONFIRM_VERBOSE (continuar el procesamiento de script) Estos ejemplos muestran las distintas formas en que se puede utilizar el objeto confirm para aumentar el comportamiento especificado en los valores de página de confirmación según el script. Ejemplo de anulación Para anular la acción de la página de confirmación predeterminada, agregue lo siguiente al final del script: Ejemplo: confirm.Override = TRUE // activa la función de anulación confirm.go() // hace que se genere la imagen de la página de confirmación confirm.level = LDD_CONFIRM_OFF // desactiva la acción de la página de confirmación para el // resto del script with EmailSMTP .To = "[email protected]" .From = "[email protected]" .Subject = "Confirmación del trabajo" .Message = "Aquí tienes la confirmación del trabajo" .Attachment = confirm.output .Server="correo.suemp.com" .CharacterSet=LDD_SMTPCHARSET_US .Go() endwith En el ejemplo anterior se envía por e-mail la página de confirmación (confirm.output) a otro usuario. Esta página de confirmación se puede simplemente guardar en un archivo, insertar en una base de datos o utilizar en otra acción LDD. Al desactivar la página de confirmación (mediante la sentencia confirm.level) evita que el script genere una página de confirmación automáticamente. Objetos del sistema 63 Local El objeto local contiene los valores introducidos por el administrador al importar el script a Server Manager. Cuando se escribe un script, una de las opciones es definir valores locales que establece el administrador al importarlo. Normalmente, estos valores se utilizan para datos que pueden variar de un servidor a otro (como direcciones IP de impresora, direcciones de e-mail, números de fax, contraseñas, etc.). Este objeto proporciona acceso a dicha información. Por cada valor que se solicitará al administrador, se asigna un nombre de variable y un tipo de datos junto con otras opciones. El nombre de variable que asigne se convierte en una de las propiedades del objeto local y el valor suministrado por el administrador se almacena en dicha propiedad. Para acceder a las propiedades del objeto local, utilice local.propertyname Por ejemplo, suponga que desea solicitar al administrador la dirección IP de la impresora que se utilizará para el script. Al escribir el script, debe definir un valor local (esta acción se realiza en el cuadro de diálogo Valores locales del Asistente de scripts de Workflow Composer) con el nombre de variable “printerip” y asignarle el tipo de datos string. Para acceder a este valor en el script, utilice: string ip ip = local.printerip Aunque en el ejemplo anterior se utilizan variables para contener los valores, no es necesario para utilizar el valor. Debido a que se ha definido un tipo de datos para cada valor, la propiedad local se puede usar donde se pueda utilizar un valor de dicho tipo de datos. Siguiendo con el ejemplo anterior, la acción PrintJob podría utilizar el valor: PrintJob.ipaddress = local.printerip Objetos del sistema 64 6 Objetos de acción Muchos objetos de acción crean un nuevo documento como resultado de su ejecución. Si una acción tiene una propiedad denominada output, crea un nuevo documento nuevo durante su ejecución. Sin embargo, este documento no existe hasta que se ha llamado al método Go. Antes de llamar a Go por primera vez, es simplemente un documento vacío. Este nuevo documento de salida sólo está disponible mientras se ejecuta el script; si necesita utilizarlo después de terminado el script, es necesario incluir en el mismo una acción que guarde o archive el documento. En el resto de este capítulo se explican los objetos de acción disponibles. Objetos de acción 65 BarcodeRead (Códigos de barras: leer) Objetivo: leer uno o varios códigos de barras de un determinado tipo en una sola página. Para leer códigos de barras de distintos formatos de una página, esta acción se debe utilizar varias veces. La acción falla si no se encuentra ningún código de barras del tipo especificado en la página. Grupo de instalación: CD de código de barras Requisitos previos: ninguno Propiedades Nombre Descripción Tipo de datos Información adicional Input Documento origen de la acción. doc Sólo se puede leer una página del documento. Utilice la propiedad PageNumber para especificar la página. Validate Activa la validación de los caracteres de código y la suma de verificación. bool Se puede utilizar si la calidad de la imagen es demasiado deficiente como para que el código de barras sea legible, pero se necesita la presencia del código de barras y no de los datos. Esto se aplica a los códigos de barras del tipo: LDD_BARCODE_CODE39 LDD_BARCODE_CODE39_CHK LDD_BARCODE_CODE93 LDD_BARCODE_ITF LDD_BARCODE_ITF_CHK LDD_BARCODE_CODE128 Se ignora para todos los demás. Valor predeterminado: TRUE Los nombres en negrita son propiedades obligatorias. Objetos de acción 66 Nombre Descripción Tipo de datos Type Tipo de código de int barras que se leerá. (LDD Constant) Información adicional Para obtener más información sobre los distintos tipos de códigos de barras, consulte Referencia de códigos de barras en la página 230. Valores válidos: LDD_BARCODE_CODE39 LDD_BARCODE_CODE39_CHK LDD_BARCODE_CODE93 LDD_BARCODE_CODABAR LDD_BARCODE_CODE128 LDD_BARCODE_UCC128 LDD_BARCODE_C25_INDUSTRIAL LDD_BARCODE_C25_MATRIX LDD_BARCODE_C25_DATALOGIC LDD_BARCODE_C25_AIRLINE LDD_BARCODE_ITF LDD_BARCODE_ITF_CHK LDD_BARCODE_UPCA LDD_BARCODE_UPCE LDD_BARCODE_EAN8 LDD_BARCODE_EAN8_PLUS2 LDD_BARCODE_EAN8_PLUS5 LDD_BARCODE_EAN13 LDD_BARCODE_EAN13_PLUS2 LDD_BARCODE_EAN13_PLUS5 LDD_BARCODE_PATCH LDD_BARCODE_PDF417 Valor predeterminado: LDD_BARCODE_CODE39 Los nombres en negrita son propiedades obligatorias. Objetos de acción 67 Nombre Descripción Tipo de datos Información adicional Direction Dirección en la que está colocado el código de barras en la página. int Este valor ayuda a acelerar el reconocimiento de códigos de barras y se puede utilizar para evitar que se reconozcan códigos de barras en una dirección distinta. Las opciones de inclinación indican que el código de barras está en esa dirección pero en un ángulo de más de 15 grados. (LDD constant) Valores válidos: LDD_BCDIR_HORIZ LDD_BCDIR_HORIZ_SKEW LDD_BCDIR_VERT LDD_BCDIR_VERT_SKEW LDD_BCDIR_ANY Valor predeterminado: LDD_BCDIR_HORIZ Quality Calidad de la imagen que contiene el código de barras. int (LDD constant) Este valor ayuda a acelerar el reconocimiento de códigos de barras mediante la activación del algoritmo adecuado. Valores válidos: LDD_BCQUALITY_EXCELLENT LDD_BCQUALITY_GOOD LDD_BCQUALITY_FAIR LDD_BCQUALITY_POOR Valor predeterminado: LDD_BCQUALITY_GOOD Fixed Especifica si el valor de la longitud se trata como un valor mínimo o exacto. bool Si se define en TRUE, el valor de la longitud se trata como un valor exacto, si se define en FALSE, el valor de la longitud se trata como un valor mínimo. Si la longitud es cero, el valor se ignora. Valor predeterminado: FALSE Los nombres en negrita son propiedades obligatorias. Objetos de acción 68 Nombre Descripción Tipo de datos Length Longitud prevista de int los datos del código de barras. Información adicional Si se define en cero (0), cualquier longitud es aceptable. Si se define en un valor mayor que cero y Fixed se define en FALSE, se trata de la longitud mínima que deben tener los datos del código de barras. Si se define en un valor mayor que cero y Fixed se define en TRUE, se trata de la longitud exacta que deben tener los datos del código de barras. Si no se encuentra un código de barras de la longitud mínima o exacta, se produce un error en la acción. Si el tipo de código de barras especificado requiere una determinada longitud para dicho tipo, este campo se ignora. Valor predeterminado: 0 PageNumber Página del documento de entrada en el que se debe buscar. int Se puede utilizar un valor de cero para la última página. Valor predeterminado: 1 WholePage Especifica si se busca el código de barras en toda la página. bool Si se define en TRUE, se devuelve el primer código de barras del tipo especificado (y longitud, si se indica). Si se define en FALSE, sólo se busca en el área especificada. Valor predeterminado: TRUE Left Especifica (en píxeles) el lado izquierdo del área en que se buscará. Int El valor sólo se utiliza cuando WholePage está definido en FALSE. Valor predeterminado: 0 Top Especifica (en píxeles) el lado superior del área en que se buscará. bool El valor sólo se utiliza cuando WholePage está definido en FALSE. Valor predeterminado: 0 Right Especifica (en píxeles) el lado derecho del área en que se buscará. string El valor sólo se utiliza cuando WholePage está definido en FALSE. Valor predeterminado: 0 Los nombres en negrita son propiedades obligatorias. Objetos de acción 69 Nombre Descripción Tipo de datos Información adicional Bottom Especifica (en píxeles) el lado inferior del área en que se buscará. int (LDD Define) El valor sólo se utiliza cuando WholePage está definido en FALSE. Valor predeterminado: 0 Results Contiene el valor de los datos del código de barras. string La propiedad sólo está disponible después de llamar al método Go. Si no se encuentra ningún código de barras, será una cadena vacía. Los nombres en negrita son propiedades obligatorias. Métodos Sintaxis Descripción bool Go() Utilice este método para que la acción busque el código de barras basándose en las propiedades que se han definido. Se devuelve TRUE si se encuentra un código de barras; de lo contrario, se devuelve FALSE. Parámetros: Ninguno Devuelve: Un valor bool que indica si el código de barras se ha leído correcta o incorrectamente. void Reset() Borra todas las propiedades y las restablece a su valor predeterminado. Parámetros: Ninguno Devuelve: Nada Objetos de acción 70 Notas: • Utilice la propiedad PageNumber para especificar la página de la que se leerá un código de barras. Para leer un código de barras de varias páginas, utilice la acción BarcodeRead varias veces. • Para obtener los mejores resultados, utilice una imagen monocroma con esta acción. De este modo se permite una mejor detección de los espacios dentro de un código de barras, lo que da como resultado una mayor precisión. Las imágenes que son demasiado oscuras reducen la precisión de la lectura de códigos de barras. Se recomiendan perfiles con un valor de oscuridad 3 o menor. • Normalmente, una resolución de digitalización de 300 puntos por pulgada (ppp) proporciona buenos resultados. No se recomienda una resolución mayor que 600 ppp. • Si sólo se va a buscar un área específica de una página, defina WholePage en FALSE. Por ejemplo, puede digitalizar facturas, leer el número de factura de un código de barras situado en la esquina derecha y utilizar dicho número de factura como nombre de archivo para almacenar la factura. • Los valores de Right, Left, Top y Bottom dependen de la resolución de digitalización utilizada para adquirir el documento. Determine la resolución de digitalización necesaria, determine las posiciones de píxeles necesarias para delimitar el área y, a continuación, utilice la misma resolución de digitalización para todos los perfiles que usan el script. Objetos de acción 71 BarcodeWrite (Códigos de barras: escribir) Objetivo: escribir uno o varios códigos de barras de un determinado tipo en una sola página. Para escribir códigos de barras de distintos formatos en una página, esta acción se debe utilizar varias veces. Grupo de instalación: CD de código de barras Requisitos previos: ninguno Propiedades: Nombre Descripción Tipo de datos Información adicional Text Texto que se va a codificar en el código de barras. string La mayoría de los códigos de barras tienen tipos de caracteres específicos y/o longitudes que se deben respetar. Para obtener más información sobre los distintos tipos de códigos de barras, consulte Referencia de códigos de barras en la página 230. Output Documento en el que se escribe la salida de la acción. doc La propiedad sólo está disponible después de llamar al método Go. Los nombres en negrita son propiedades obligatorias. Objetos de acción 72 Nombre Descripción Tipo de datos Información adicional Type Tipo de código de barras que se generará. int Valores válidos: (LDD Constant) LDD_BARCODE_CODE39 LDD_BARCODE_CODE39_CHK LDD_BARCODE_CODE93 LDD_BARCODE_CODABAR LDD_BARCODE_CODE128 LDD_BARCODE_UCC128 LDD_BARCODE_C25_INDUSTRIAL LDD_BARCODE_C25_MATRIX LDD_BARCODE_C25_DATALOGIC LDD_BARCODE_C25_AIRLINE LDD_BARCODE_ITF LDD_BARCODE_ITF_CHK LDD_BARCODE_UPCA LDD_BARCODE_UPCE LDD_BARCODE_EAN8 LDD_BARCODE_EAN8_PLUS2 LDD_BARCODE_EAN8_PLUS5 LDD_BARCODE_EAN13 LDD_BARCODE_EAN13_PLUS2 LDD_BARCODE_EAN13_PLUS5 LDD_BARCODE_PDF417 Valor predeterminado: LDD_BARCODE_CODE39 Resolution Resolución de la imagen que se generará. int (LDD constant) Esta resolución debe coincidir con la de la imagen en la que se combinará el código de barras posteriormente. Valores válidos: LDD_RESOLUTION_300 LDD_RESOLUTION_600 Valor predeterminado: LDD_RESOLUTION_300 Los nombres en negrita son propiedades obligatorias. Objetos de acción 73 Nombre Descripción Tipo de datos Información adicional Direction Dirección del código de barras que se va a generar. int (LDD constant) Valores válidos: LDD_BCDIRECTION_HORIZ LDD_BCDIRECTION_VERTUP LDD_BCDIRECTION_VERTDOWN Valor predeterminado: LDD_BCDIRECTION_HORIZ Height int Altura del código de barras que se va a generar en milímetros. Valores válidos: 1–50 Valor predeterminado: 10 TextJustify int (LDD constant) Controla cómo se alinea el texto en relación al código de barras. Este valor se ignora si la presentación de texto está definida en Ninguno. Valores válidos: LDD_BCJUSTIFY_LEFT LDD_BCJUSTIFY_CENTER LDD_BCJUSTIFY_RIGHT Valor predeterminado: LDD_BCJUSTIFY_CENTER TextDisplay Controla dónde se presenta el texto (si lo hubiera) en relación al código de barras. int (LDD constant) Valores válidos: LDD_BCDISPLAY_NONE LDD_BCDISPLAY_HALFEMBED LDD_BCDISPLAY_EMBED LDD_BCDISPLAY_UNDER LDD_BCDISPLAY_ABOVE Valor predeterminado: LDD_BCDISPLAY_UNDER TextSize Especifica el tamaño de fuente que se utilizará para el texto. int Este valor especifica el tamaño de fuente (en puntos) que se utilizará para el texto. Si se define en cero, la fuente cambia automáticamente de tamaño para ajustarse a la anchura del código de barras. Este valor se ignora si la presentación de texto está definida en Ninguno. Valor predeterminado: 0 Los nombres en negrita son propiedades obligatorias. Objetos de acción 74 Métodos Sintaxis Descripción bool Go() Utilice este método para que la acción genere el código de barras basándose en las propiedades que se han definido. Se devuelve TRUE si el código de barras se genera correctamente; de lo contrario, se devuelve FALSE. Parámetros: Ninguno Devuelve: Un valor bool que indica si el código de barras se ha generado correcta o incorrectamente. void Reset() Borra todas las propiedades y las restablece a su valor predeterminado. Parámetros: Ninguno Devuelve: Nada Notas: • La resolución del código de barras que se va a generar debe coincidir con la de la imagen en la que se combinará. • Esta acción genera un mapa de bits en blanco y negro. La salida de esta acción se puede pasar como MergeFile en la acción ImageMerge para colocar el código de barras encima de una imagen. Objetos de acción 75 Ejemplo En este ejemplo, la impresora multifunción tiene activado el seguimiento de trabajos y el script utilizará el número de cuenta para generar un código de barras. El código de barras se agregará a la esquina inferior izquierda de la primera página del documento digitalizado. A continuación, se guardará en un archivo para poder recuperarlo posteriormente. Debido a que el código de barras que se va a generar tiene 300 ppp, el perfil de digitalización del script también se debe definir en 300 ppp. with BarcodeWrite .Text = original.useracct .Type = LDD_BARCODE_CODE39 .Resolution = LDD_RESOLUTION_300 .Direction = LDD_BCDIRECTION_HORIZ .Height = 10 .TextDisplay = LDD_BCDISPLAY_UNDER .TextJustify = LDD_BCJUSTIFY_CENTER .TextSize = 0 .Go() endwith // Convierte el mapa de bits generado por la acción BarcodeWrite // en un formato PNG; se obtienen mejores resultados con la // acción ImageMerge. with ConvertImageFormat .input = BarcodeWrite.output .format = LDD_IMGFORMAT_PNG .colordepth = LDD_IMGDEPTH_BW .AllPages = TRUE .Go() endwith with ImageMerge .Input = ConvertImageFormat.output .ImageFile = BarcodeWrite.output .Position = LDD_IMGMERGEPOS_BOTTOMLEFT .Offset = 20 .AllPages = FALSE .StartPage = 1 .EndPage = 1 .Go() endwith with SaveToFile .Input = ImageMerge.output .Path = "c:\invoices\invoice.tif" .AppendTimestamp = TRUE .Go() endwith Objetos de acción 76 ConvertImageFormat (Imágenes: cambiar formato) Objetivo: convierte uno o varios archivos de imagen en el formato de archivo especificado. Para convertir una imagen a formato PostScript o PDF, utilice la acción ConvertToDocument. Grupo de instalación: módulo de imágenes Requisitos previos: ninguno Propiedades Nombre Descripción Tipo de datos Información adicional Input Documento origen de la acción. doc Debe estar en formato de imagen o PDF. Output Documento en el que se escribe la salida de esta acción. doc La salida está en el formato especificado. Format Formato de salida de la conversión. int (LDD Constant) Valores válidos: LDD_IMGFORMAT_TIF LDD_IMGFORMAT_TIFG3 LDD_IMGFORMAT_TIFG4 LDD_IMGFORMAT_TIFPB LDD_IMGFORMAT_BMP LDD_IMGFORMAT_JPG LDD_IMGFORMAT_PJPG LDD_IMGFORMAT_PCX LDD_IMGFORMAT_DCX LDD_IMGFORMAT_PNG Valor predeterminado: LDD_IMGFORMAT_TIF Los nombres en negrita son propiedades obligatorias. Objetos de acción 77 Nombre Descripción Tipo de datos Información adicional ColorDepth Tipo de la imagen en color de salida. int (LDD Constant) Valor válido: LDD_IMGDEPTH_BW: Blanco y negro LDD_IMGDEPTH_4C: Color de 4 bits LDD_IMGDEPTH_8C: Color de 8 bits LDD_IMGDEPTH_8G: Escala de grises de 8 bits LDD_IMGDEPTH_24C: Color de 24 bits LDD_IMGDEPTH_24G: Escala de grises de 24 bits Valor predeterminado: LDD_IMGDEPTH_BW JPEGQuality AllPages StartPage Especifica la cantidad de compresión JPEG que se utilizará. Cuanto mayor sea el número, mejor será la calidad pero el archivo tendrá mayor tamaño. int Valor válido: 5–95 Valor predeterminado: 95 Convierte todas las bool páginas del documento de entrada. Valor predeterminado: Primera página a convertir. El valor sólo se utiliza cuando AllPages está definido en FALSE. int TRUE Valor predeterminado: 0 EndPage Última página a convertir. int El valor sólo se utiliza cuando AllPages está definido en FALSE. El valor 0 indica la última página del archivo. Valor predeterminado: 0 Los nombres en negrita son propiedades obligatorias. Objetos de acción 78 Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Profundidades de color predeterminadas Si la profundidad de color del archivo de salida especificada en el script no es válida, la acción selecciona un valor predeterminado adecuado para dicho formato y termina la conversión. En la siguiente tabla se enumera la profundidad de color predeterminada para los distintos formatos de imagen. Formato de imagen Profundidad de color predeterminada PostScript (*.ps) Escala de grises de 8 bits TIFF Grupo 4 (*.tif) Blanco y negro TIFF Grupo 3 (*.tif) Blanco y negro TIFF Bits empaquetados (*.tif) Color de 8 bits TIFF Sin comprimir (*.tif) Color de 8 bits Mapa de bits (*.bmp) Color de 8 bits PCX de Windows (*.pcx) Color de 8 bits DCX de Windows (*.dcx) Color de 8 bits JPEG (*.jpg) Color de 24 bits JPEG progresivo (*.jpg) Color de 24 bits PNG (*.png) Color de 8 bits PDF (*.pdf) Color de 8 bits Formatos de imagen multipágina Los formatos de imagen TIFF y DCX pueden contener varias páginas en un solo archivo. Todos los demás formatos de imagen sólo pueden contener una página por archivo. Si convierte una imagen TIFF o DCX con varias páginas a un formato que sólo puede contener una página por archivo, el resultado será un nuevo archivo por cada página del archivo multipágina original. Objetos de acción 79 Formatos de conversión válidos Tipo de archivo Conversión válida Mapa de bits Blanco y negro Color de 4 bits Escala de grises de 8 bits Color de 8 bits Escala de grises de 24 bits Color de 24 bits JPG Escala de grises de 8 bits Color de 24 bits TIFF (Sin comprimir) Blanco y negro Color de 4 bits Escala de grises de 8 bits Color de 8 bits Escala de grises de 24 bits Color de 24 bits TIFF (Bits empaquetados) Blanco y negro Color de 4 bits Escala de grises de 8 bits Color de 8 bits Escala de grises de 24 bits Color de 24 bits TIFF (Grupo 3) Blanco y negro TIFF (Grupo 4) Blanco y negro PCX Blanco y negro Color de 4 bits Escala de grises de 8 bits Color de 8 bits Escala de grises de 24 bits Color de 24 bits DCX Blanco y negro Color de 4 bits Escala de grises de 8 bits Color de 8 bits Escala de grises de 24 bits Color de 24 bits Objetos de acción 80 Tipo de archivo Conversión válida PJPEG Escala de grises de 8 bits Color de 24 bits PNG Blanco y negro Color de 4 bits Escala de grises de 8 bits Color de 8 bits Escala de grises de 24 bits Color de 24 bits Objetos de acción 81 ConvertToDocument (Imágenes: convertir a Postscript o imagen PDF) Objetivo: convierte uno o varios archivos de imagen al formato de documento PDF o PostScript. Los archivos PDF generados son únicamente imágenes; no se puede realizar búsquedas en ellos. No es lo mismo que utilizar la acción ImageToPDF, que utiliza un motor OCR para generar archivos PDF en los que se pueden realizar búsquedas. Grupo de instalación: módulo de imágenes Requisitos previos: ninguno Propiedades: Nombre Descripción Tipo de datos Información adicional Input Documento origen de la acción. doc Output Documento en el que se escribe la salida de la acción. doc Format Formato de salida de la conversión. La profundidad de color de la salida no se cambia. int (LDD constant) Debe estar en formato de imagen. Valores válidos: LDD_DOCFORMAT_PS LDD_DOCFORMAT_PDF Valor predeterminado: LDD_DOCFORMAT_PDF PaperSize Tamaño del papel que se utilizará para la salida. int (LDD Constant) Valores válidos: LDD_PAPERSIZE_11X17 LDD_PAPERSIZE_A3 LDD_PAPERSIZE_A4 LDD_PAPERSIZE_A5 LDD_PAPERSIZE_EXECUTIVE LDD_PAPERSIZE_FOLIO LDD_PAPERSIZE_JISB4 LDD_PAPERSIZE_JISB5 LDD_PAPERSIZE_LEGAL LDD_PAPERSIZE_LETTER LDD_PAPERSIZE_STATEMENT Valor predeterminado: LDD_PAPERSIZE_LETTER Los nombres en negrita son propiedades obligatorias. Objetos de acción 82 Nombre Descripción Tipo de datos Información adicional Orientation Orientación del tamaño del papel de la salida. int (LDD constant) Si se define en automático, la orientación del papel de salida se definirá para que coincida con la de la imagen de entrada. Valores válidos: LDD_ORIENTATION_AUTO LDD_ORIENTATION_PORTRAIT LDD_ORIENTATION_LANDSCAPE Valor predeterminado: LDD_ORIENTATION_AUTO PSFitToPage Indica si la imagen se debe escalar para ajustarse a la página completa o se debe mantener su tamaño real. bool Este valor sólo se utiliza en las conversiones a PostScript. Valor predeterminado: FALSE AllPages Especifica si se deben convertir todas las páginas del documento de entrada. bool Si se define en FALSE, en la salida sólo aparecerán las páginas especificadas. Valor predeterminado: TRUE StartPage Página en la que empezará la conversión. int El valor sólo se utiliza cuando AllPages está definido en FALSE. Valor predeterminado: 0 EndPage Página en la que terminará la conversión. int El valor sólo se utiliza cuando AllPages está definido en FALSE. El valor 0 indica la última página del archivo. Valor predeterminado: 0 Los nombres en negrita son propiedades obligatorias. Objetos de acción 83 DatabaseNotes (Groupware: introducir) Objetivo: agrega una entrada en la base de datos de Lotus Notes especificada en el servidor Notes indicado. Utiliza un formulario predefinido. Se admiten los documentos que tienen varios anexos. Grupo de instalación: módulo de Lotus Notes Requisitos previos: • El cliente de Lotus Notes debe estar instalado en Document Server para que esta acción utilice las funciones de Notes. El cliente de Notes proporciona la seguridad y los valores de Notes subyacentes para que Document Server interactúe con los servidores Notes. • Se debe proporcionar un archivo de cuenta/ID de usuario de Notes válido para que lo utilicen las acciones de Notes en Document Server. Los administradores de Notes normalmente llaman a los ID de Notes asociados a una aplicación de servidor (en vez de a una persona) un ID de aplicación. • Si el archivo de ID que utiliza el cliente de Notes tiene una contraseña, asegúrese de definir la propiedad de contraseña (password) en el script. (La propiedad se puede definir mediante un valor local en el script; esto provocará que se pregunte la contraseña cuando se cargue el script mediante Server Manager.) Si no se proporciona la contraseña, se produce un error en la acción. Propiedades Nombre Descripción Tipo de datos Información adicional Password Contraseña del archivo de ID que utiliza el cliente de Notes. string Se debe definir en el script o mediante un valor local si el archivo de ID utiliza una contraseña. De no hacerlo, se producirá un error en la acción. Server Nombre del servidor que aloja la base de datos. string Si se deja en blanco, el valor predeterminado es el equipo local. Database Nombre de la base de datos de Notes que se utilizará. string El nombre de la base de datos es el nombre de archivo real de la base de datos que se utilizará y es relativo al directorio de datos de Notes en el servidor especificado. Form Nombre del formulario de la base de datos de Notes que se utilizará. string Si se deja en blanco, el valor predeterminado es el formulario predeterminado de la base de datos. ComputeWithForm bool Realiza cálculos, valida campos y rellena valores predeterminados según lo especificado en el formulario de Notes cuando se inserta un nuevo registro. Valor predeterminado: FALSE Los nombres en negrita son propiedades obligatorias. Objetos de acción 84 Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. bool AddField(string fieldname, int datatype, Define un campo de la base de datos de Notes de tipo texto, texto enriquecido o fecha/hora en el valor de string value) cadena especificado. Se produce un error en este método si el tipo de datos especificado no coincide con el tipo del valor proporcionado. Parámetros: fieldname: nombre del campo de la base de datos de Notes a definir; datatype: tipo del campo de la base de datos de Notes; debe ser uno de las siguientes constantes LDD: LDD_NOTESDBFIELD_TEXT LDD_NOTESDBFIELD_RICHTEXT LDD_NOTESDBFIELD_DATETIME valor: valor en el que se definirá el campo Devuelve: Un valor bool que indica si se ha realizado correcta o incorrectamente. bool AddField(string fieldname, int datatype, Define un campo de la base de datos de Notes de tipo numérico en el valor de entero especificado. Se produce int value) un error en este método si el tipo de datos especificado no coincide con el tipo del valor proporcionado. Parámetros: fieldname: nombre del campo de la base de datos de Notes a definir; datatype: tipo del campo de la base de datos de Notes; debe ser la siguiente constante LDD: LDD_NOTESDBFIELD_NUMBER valor: valor en el que se definirá el campo Devuelve: Un valor bool que indica si se ha realizado correcta o incorrectamente. bool AddField(string fieldname, int datatype, Agrega un anexo a un campo de la base de datos de Notes de tipo texto o texto enriquecido. Se produce un doc value) error en este método si el tipo de datos especificado no coincide con el tipo del valor proporcionado. Parámetros: fieldname: nombre del campo de la base de datos de Notes a definir; datatype: debe ser la siguiente constante LDD: LDD_NOTESDBFIELD_ATTACHMENT valor: anexo que se agregará Devuelve: Un valor bool que indica si se ha realizado correcta o incorrectamente. Objetos de acción 85 Notas: Cada vez que se llama al método Go(), se escribe un nuevo registro en la base de datos de Notes. El registro contiene los campos especificados por las llamadas anteriores a AddField(). Si se escriben varios registros en la base de datos, llame al método Reset() para borrar todos los campos. A continuación, llame a AddField() tantas veces como sea necesario, seguido de una llamada al método Go() para insertar el registro en la base de datos. Ejemplo: Este script de ejemplo inserta el documento digitalizado originalmente en una base de datos de Notes junto con una cadena que describe el contenido del documento. with DatabaseNotes .Server="Misdatos05/nuevo/contratos" .ComputeWithForm = TRUE .Database="Library\VendCntr.nsf" .Form="Contratos digitalizados" .ComputeWithForm=FALSE .AddField("image",LDD_NOTESDBFIELD_ATTACHMENT,original.document) .AddField("DocType",LDD_NOTESDBFIELD_TEXT,"Acuerdo principal") .Go() endwith Objetos de acción 86 Acciones de Domino.Doc Requisitos previos • Estas acciones sólo se han probado con Lotus Domino R5.0.4a; otros servidores R5 deben funcionar, pero no se han probado específicamente. El servidor Domino debe incluir la instalación de servidor Domino.Doc de la versión 3.0 o superior. • Se debe instalar un cliente de Lotus Notes certificado por Lotus como compatible con Domino.Doc en el mismo equipo que Document Server. • Si Document Server se va a conectar a Dominio mediante autenticación de Notes, se requiere un ID de Notes. Si el ID tiene una contraseña, Notes se puede configurar para compartir la contraseña con complementos de otros fabricantes; esto no es obligatorio, pero es una opción. • Si Document Server se conectará a Domino mediante una conexión HTTP o HTTPS, debe haber un navegador de Internet certificado por Lotus que funcione con Domino. • No importa el método que se utilice para conectar a Domino, Domino.Doc Desktop Enabler debe estar instalado. Enabler se puede instalar visitando una base de datos de Domino.Doc con capacidad Web con un navegador y seleccionando "Primeros pasos" en la página de inicio de la biblioteca. Objetos de acción 87 DominoDocCheckIn (EDMS: introducir) Objetivo: inserta uno o varios documentos con metadatos asociados en Lotus Domino.Docs. Propiedades: Nombre Descripción Tipo de datos Información adicional Input Documento que se introducirá. Doc Cada archivo del documento se introduce por separado. La etiqueta de cada archivo del documento se utiliza para generar los títulos de documento. Si hay archivos que tengan la misma etiqueta, se añade un cualificador "(x de y)" a cada título, donde x e y indican los índices de base 1 de los archivos con la misma etiqueta de archivo. Username Especifica el usuario con el que se conectará. String Si se conecta mediante Notes, se debe quedar en blanco. Se requiere si se conecta mediante HTTP o HTTPS. Password Especifica la contraseña del usuario. String Si se conecta mediante Notes y la contraseña es compartida o no hay contraseña, puede estar en blanco. En los demás casos, se trata de la contraseña del usuario. Library Especifica la biblioteca de Domino.Doc que se utilizará. String Consulte Conexión a Domino.Doc en la página 98 para obtener más información. Room Especifica la sala de Domino.Doc que se utilizará. String Consulte Desplazamiento por una biblioteca de Domino.Doc en la página 98 para obtener más información sobre estos cuatro valores. Cabinet Especifica el mueble de Domino.Doc que se utilizará. String Consulte Conexión a Domino.Doc en la página 98 para obtener más información. Category Especifica la categoría de Domino.Doc que se utilizará. String Consulte Conexión a Domino.Doc en la página 98 para obtener más información. Binder Especifica el clasificador de Domino.Doc que se utilizará. String Consulte Conexión a Domino.Doc en la página 98 para obtener más información. Description Descripción que se asociará a todas las versiones de este documento. String Se utiliza para la versión recién creada y todas las operaciones posteriores. Los nombres en negrita son propiedades obligatorias. Objetos de acción 88 Nombre Descripción Tipo de datos Información adicional Checkinlevel Especifica si el documento que se está introduciendo es una versión principal (1.0) o un borrador (0.1). int (LDD Constant) Valores: Comment Comentario que sólo se aplica a esta versión inicial. String Este campo normalmente se actualiza de forma automática a medida que el documento pasa por los procesos de flujo de trabajo de Domino.Doc, como revisión, aprobación y auditoría. DocumentType Especifica el tipo del documento que se introducirá. String De forma predeterminada está vacío (sin tipo). El tipo de documento se denomina "perfil" en Domino.Doc y especifica los campos de metadatos que están disponibles para este documento. El tipo de documento debe ser uno de los tipos válidos admitidos al crear el mueble de archivos. En el tipo de documento se distingue entre mayúsculas y minúsculas. Si se utilizan las características de flujo de trabajo de Domino.Doc, como la automatización del ciclo de vida de los documentos, DocumentType también especifica el flujo de trabajo que se aplicará automáticamente al documento introducido. stringarray Después de llamar al método Go, contiene una matriz de cadenas que corresponden al identificador de Domino único asignado a cada archivo que se ha introducido. DocumentList LDD_DOMDOC_INLEVEL_VERSION LDD_DOMDOC_INLEVEL_DRAFT Valor predeterminado: LDD_DOMDOC_INLEVEL_DRAFT Los nombres en negrita son propiedades obligatorias. Objetos de acción 89 Métodos: Sintaxis Descripción bool Go() Cada archivo del documento de entrada se introduce de forma independiente con los mismos valores de seguridad, perfil y metadatos. Parámetros: Ninguno Devuelve: TRUE: todos los archivos se han introducido correctamente; la propiedad DocumentList se rellena con la lista de los identificadores de Domino únicos asignados a cada archivo. FALSE: no se ha podido inicializar la API, se ha especificado una biblioteca no válida, se ha indicado un nombre de usuario o contraseña no válido, el documento de entrada estaba vacío, se ha indicado un valor de propiedad no válido. Consulte el archivo de registro para obtener más información sobre el error exacto. void Reset() Borra toda la información definida anteriormente para esta acción y devuelve todas las propiedades a su valor predeterminado. Parámetros: Ninguno Devuelve: Nada void SetMetadata(string key, string value) Define un par clave/valor de metadatos que se utilizará durante el siguiente uso del método Go. Las claves de metadatos válidas se determinan por el tipo de documento en el diseño de perfil de documento. Esta función se puede llamar tantas veces como sea necesario para definir todos los elementos de metadatos de un documento de entrada. Parámetros: key: nombre de la clave que se definirá value: valor que se utilizará para la clave Devuelve: Nada void ClearMetadata() Elimina todos los pares de clave/valor de metadatos almacenados actualmente en este objeto. Resulta de mayor utilidad si el objeto DominoDocCheckIn se va a utilizar varias veces en el mismo script. Parámetros: Ninguno Devuelve: Nada Objetos de acción 90 Sintaxis Descripción void SetSecurityLevel(string name, int level) Especifica el nivel de acceso de un determinado usuario a este documento. Si no se llama a este método, el documento utilizará los mismos valores de seguridad que su clasificador principal. Este método se puede llamar tantas veces como sea necesario para configurar el nivel de acceso de cada usuario. Los usuarios para los que no se llame este método recibirán el nivel de acceso predeterminado. Parámetros: name: nombre completo de un usuario que tenga derechos de acceso para participar en este mueble level: los derechos de acceso que se concederán al usuario especificado para el documento que se va a introducir; debe ser uno de los valores siguientes: LDD_DOMDOC_SECURITY_NOACCESS LDD_DOMDOC_SECURITY_READER LDD_DOMDOC_SECURITY_EDITOR LDD_DOMDOC_SECURITY_MANAGER Devuelve: Nada void ClearSecurityLevel() Elimina todos los niveles de acceso almacenados actualmente en este objeto. Resulta de mayor utilidad si el objeto DominoDocCheckIn se va a utilizar varias veces en el mismo script. Parámetros: Ninguno Devuelve: Nada Para introducir el documento digitalizado en Domino.Doc En este ejemplo se supone que el documento digitalizado es un único archivo. Es el ejemplo completo más pequeño del uso de la acción CheckIn y no incluye ninguna opción. Normalmente, el ID de documento devuelto por el método se almacenará en otro lugar para su uso posterior (por ejemplo, incluyéndolo en un e-mail). doc d1=original.document// documento que se introducirá string id// ubicación en la que se almacena el ID de documento with DominoDocCheckin .input=d1 .library="notes://MyServer/DocumentLibrary.nsf" .cabinet="Archivos digitalizados" .binder="LDD" .description="Enviado desde "+original.userip .comment="Insertado por LDD" .Go() id=.documentlist[1] endwith Objetos de acción 91 Metadatos de introducción y opciones de seguridad adicionales En este ejemplo, el documento introducido se utilizará como informe de estado para el proyecto actual de Juan García. Lamentablemente, Juan García sólo puede leer documentos del clasificador Status Reports, por lo que se anulará la seguridad para permitirle editar éste. Se etiqueta el documento y se agregan metadatos adicionales. doc d1=original.document// documento que se introducirá d1.SetFileLabelAll("Dispositivo: Estado actual") with DominoDocCheckin .input=d1 .library="notes://MyServer/DocumentLibrary.nsf" .cabinet="Archivos de proyectos" .binder="Informes de estado" .description="Enviado desde "+original.userip .comment="Insertado por LDD" .SetSecurityLevel("Juan García/MiDominioNotes",LDD_DOMDOC_SECURITY_EDITOR) .documenttype="Documento genérico" .SetMetadata("Descripción","Proyecto: Director del dispositivo: García") .SetMetadata("Fecha",original.usertime.AsAlphanumeric()) .Go() endwith Objetos de acción 92 DominoDocRetrieve (EDMS: recuperar) Objetivo: recupera uno o varios documentos y sus descripciones y metadatos asociados de una biblioteca de Lotus Domino.Docs basándose en criterios de búsqueda. Detalles: los documentos se recuperan de Domino.Doc utilizando los ID de documento únicos asignados por Domino al introducirlos. Para utilizar esta acción, primero se deben definir la conexión, el desplazamiento y los criterios de búsqueda. A continuación, se llama al método Query(); si se realiza correctamente, la propiedad DocumentList devuelve una matriz de ID de documento de todos los documentos coincidentes. Después, la propiedad DocumentID se define en uno de estos ID y se llama al método Go para recuperar el documento y su descripción y metadatos asociados. Propiedades: Nombre Descripción Tipo de datos Información adicional Username Especifica el usuario con el que se conectará. string Si se conecta mediante Notes, se debe quedar en blanco. Si se conecta mediante HTTP o HTTPS, el nombre de usuario con el que se conectará. Password Especifica la contraseña del usuario. string Si se conecta mediante Notes y la contraseña es compartida o no hay contraseña, puede estar en blanco. Library Biblioteca de Domino.Doc que se utilizará. string Consulte Conexión a Domino.Doc en la página 98. Room string Consulte Desplazamiento por una biblioteca de Domino.Doc en la página 98. Cabinet string Category string Binder string Searchmethod Especifica el tipo de consulta que se realizará. int (LDD constant) Valores válidos: LDD_DOMDOC_SMETHOD_NONE: desplazarse a un clasificador y seleccionar por título LDD_DOMDOC_SMETHOD_FORMULA: desplazarse opcionalmente a un mueble, utilizar una fórmula LotusScript LDD_DOMDOC_SMETHOD_FAVS: sin desplazamiento, seleccionar por título en los marcadores Web favoritos LDD_DOMDOC_SMETHOD_RECENT: sin desplazamiento, seleccionar por título en los marcadores Web editados recientemente LDD_DOMDOC_SMETHOD_OUT: sin desplazamiento, seleccionar por título en los marcadores Web recuperados Valor predeterminado: LDD_DOMDOC_SMETHOD_NONE Los nombres en negrita son propiedades obligatorias. Objetos de acción 93 Nombre Descripción Tipo de datos Información adicional Criteria Si se ha especificado el método de búsqueda por fórmula, esta propiedad se utiliza para especificar los criterios de búsqueda de LotusScript o la cualificación de búsqueda de texto completo. string Si se ha especificado el método de búsqueda por fórmula, esta propiedad indica cómo debe funcionar la búsqueda de texto completo. int (LDD Constant) Fulltextoptions La búsqueda de texto completo sólo se puede utilizar si se ha activado para esta biblioteca. Ningún otro método de búsqueda utiliza este valor. Valores: LDD_DOMDOC_FULLTEXT_NONE: se requiere coincidencia exacta o no se utiliza la búsqueda de texto completo. LDD_DOMDOC_FULLTEXT_STEMWORDS: utilizar estas palabras base para la coincidencia (las coincidencias incluyen sufijos como ‘ado’, ‘endo’ o ‘s’) LDD_DOMDOC_FULLTEXT_THESAURUS: las palabras con significado similar se tratan como coincidentes LDD_DOMDOC_FULLTEXT_BOTH: se aplican la flexión y los sinónimos. Valor predeterminado: LDD_DOMDOC_FULLTEXT_NONE Sortoptions Si se ha especificado el método de búsqueda por fórmula, esta propiedad especifica el orden en el que los documentos coincidentes se devuelven en la lista de documentos. int (LDD Constant) Valores: LDD_DOMDOC_SORT_NONE: los documentos se devuelven en orden 'natural' LDD_DOMDOC_SORT_RELEVANCE: si se incluye ponderación en la cadena de búsqueda de LotusScript, las coincidencias más próximas se enumeran en primer lugar LDD_DOMDOC_SORT_DATEDESCEND: los documentos se enumeran desde el más reciente LDD_DOMDOC_SORT_DATEASCEND: los documentos se enumeran desde el más antiguo Valor predeterminado: LDD_DOMDOC_SORT_NONE Los nombres en negrita son propiedades obligatorias. Objetos de acción 94 Nombre Descripción Whichdocument Después de llamar al método Query, se crea una lista de todos los documentos coincidentes. Si se especifica esta propiedad, se busca en la lista de documentos coincidentes uno cuyo título coincida con este valor. Tipo de datos Información adicional string Sólo debe haber una coincidencia; si no hay ninguna coincidencia o hay varias, el método Query devolverá FALSE. Si sólo hay una coincidencia, dicho ID de documento será el único que se devuelva en la propiedad DocumentList. DocumentID string ID de documento único del documento que se debe recuperar con la siguiente llamada al método Go. Output Último documento que se ha recuperado con el método Go. doc Esta propiedad está vacía si no se ha recuperado ningún documento correctamente. DocumentType Tipo de documento (o perfil de documento) del último documento que se ha recuperado con el método Go. string Es una cadena vacía si no se ha recuperado ningún documento correctamente. Description Descripción del último documento que se ha recuperado con el método Go. string Es una cadena vacía si no se ha recuperado ningún documento correctamente. DocumentList Esta matriz contiene la lista de los documentos coincidentes según los ha devuelto el método Query(). Array Esta matriz está vacía hasta que se llame al método Query. Los nombres en negrita son propiedades obligatorias. Objetos de acción 95 Métodos: Sintaxis Descripción bool Go() Recupera el documento individual y único especificado por la propiedad DocumentID. Parámetros: Ninguno Devuelve: TRUE: se ha encontrado el documento y ahora está disponible en la propiedad output; el tipo de documento, la descripción y los metadatos también están disponibles ahora. FALSE: no se ha podido encontrar el documento void Reset() Borra toda la información definida anteriormente para esta acción y devuelve todas las propiedades a su valor predeterminado. Parámetros: Ninguno Devuelve: Nada Objetos de acción 96 Sintaxis Descripción bool Query() Ejecuta la consulta de búsqueda especificada por las propiedades searchmethod, criteria, sortoptions, fulltextoptions y whichdocument. Las consultas se desplazarán al mueble o clasificador requerido si se especifica o si el método de búsqueda los requiere. Parámetros: Ninguno Devuelve: TRUE: la consulta se ha realizado correctamente; la lista de los ID de documento coincidentes está ahora disponible en la propiedad DocumentList. FALSE: la consulta no se ha realizado correctamente; las causas posibles son: no se ha podido conectar a la biblioteca especificada, nombre de usuario o contraseña no válidos, no se ha podido desplazar a la ubicación de biblioteca especificada o valor de propiedad de búsqueda no válido. Si se ha podido ejecutar la consulta y no hay ningún documento que cumpla los criterios de búsqueda, el método seguirá devolviendo TRUE. string GetMetadata(string key) Obtiene el valor de la clave especificada para el último documento recuperado con Go. Parámetros: key: clave de la que se devolverá el valor de los metadatos Devuelve: El valor de la clave especificada para el último documento recuperado. Este valor está formateado según las especificaciones de formato definido para dicho tipo de documento. Si la clave especificada no existe, se devuelve una cadena vacía. Objetos de acción 97 Conexión a Domino.Doc Cuando se utiliza una acción, ésta primero se debe conectar a una determinada biblioteca de Domino.Doc para que pueda continuar con la función solicitada. Cada acción utiliza las propiedades username, password y library para configurar la conexión. Domino.Doc admite tres métodos de conexión; cada uno de ellos se describe a continuación junto con los valores necesarios para estas propiedades. Cliente de Notes: Este método conecta a Domino.Doc con el ID de usuario almacenado en el archivo de ID de Notes local. En este caso, la propiedad username debe estar en blanco. La propiedad password puede estar en blanco si el cliente de Notes se ha configurado para compartir su contraseña con aplicaciones complementarias; de lo contrario, se debe utilizar la propiedad password para especificarla explícitamente. La propiedad library debe empezar por "notes://" y, si es necesario, se puede utilizar para acceder a servidores Notes jerárquicos. Los valores habituales son: – – notes://MyServer/domdoc.nsf notes://MyNotesServer/organization units/organization!!subdirectory/domdoc.nsf HTTP o HTTPS: Estos métodos se conectan a Domino.Doc como un usuario concreto y no están limitados al ID de usuario del archivo de ID de Notes local. Las propiedades username y password se deben suministrar utilizando el nombre completo tal como aparece en Nombre de Notes y Libreta de direcciones, por ejemplo, "Juan García/DominioNotes". Los valores habituales de la propiedad library son: – – http://MyWebServer/domdoc.nsf https://MySecureWebServer/domdoc.nsf Desplazamiento por una biblioteca de Domino.Doc Cada acción utiliza las propiedades room, cabinet, category y binder para desplazarse a una determinada ubicación de la biblioteca de Domino.Doc. Las salas y las categorías son técnicas de agrupación que se utilizan para facilitar el uso de la presentación gráfica de una biblioteca. Cada mueble debe tener un número único, mientras que cada clasificador de un mueble debe tener un nombre único. Por ejemplo, un mueble puede aparecer en varias salas o un clasificador puede aparecer en varias categorías. Los clasificadores de muebles distintos pueden tener el mismo nombre; los clasificadores del mismo mueble no pueden. Sólo es necesario especificar los muebles y los clasificadores para encontrar la ubicación correcta en la biblioteca. Las propiedades room y category se pueden utilizar para facilitar la ubicación de determinados muebles o clasificadores (especialmente cuando se relaciona con lo que se muestra en una pantalla de cliente). Al introducir documentos, se deben especificar un mueble y clasificador únicos. Al recuperar documentos, sólo se tiene que especificar un mueble y un clasificador si el método de búsqueda especificado lo requiere. Nota: las categorías pueden estar anidadas. Las categorías anidadas se indican mediante el uso de "/" como separador de ruta de acceso. Por ejemplo, "Formularios/Médicos". Objetos de acción 98 Recuperación de un ID de documento conocido El ID de documento devuelto por el método de introducción identifica de forma única el documento y se ha podido enviar en un e-mail o agregar a una página de confirmación. El siguiente script define un campo de datos de usuario (userdata) de modo que, cuando se ejecute este script, se pueda introducir y recuperar un ID de documento. El script continuará normalmente para imprimir o enviar este documento. doc d1 //documento recuperado with DominoDocRetrieve .library="notes://MyServer/DocumentLibrary.nsf" .documentID=userdata.docid .Go() d1=.output endwith Búsqueda de archivos que cumplan un criterio específico La organización anterior ha decidido etiquetar y clasificar los archivos de proyecto de un modo coherente y ha decidido asegurarse de que todos los títulos de los documentos introducidos en Domino.Doc incluyen el nombre de proyecto. El siguiente ejemplo busca todos los archivos relacionados con el proyecto Dispositivo, los ordena desde el más reciente y los clasifica en un único documento LDD que, por ejemplo, se puede entregar en un mensaje de e-mail. doc dCollate //ubicación en la que se clasifican los archivos que coincidan int iIndex //índice de los documentos coincidentes with DominoDocRetrieve .library="notes://MyServer/DocumentLibrary.nsf" .cabinet="Archivos de proyectos" .searchmethod=LDD_DOMDOC_SMETHOD_FORMULA .criteria='([Title]CONTAINS"Dispositivo")' .sortoptions=LDD_DOMDOC_SORT_DATEDESCEND .Query() loop iIndex from 1 to .documentList.GetSize() .documentID=.documentList[iIndex] .Go() dCollate.AddDocument(.output) endloop endwith Objetos de acción 99 EmailExchange (E-mail) Objetivo: envía un mensaje de e-mail a uno o varios destinatarios mediante un servidor Exchange. Los destinatarios pueden ser personas o carpetas públicas de Exchange. Grupo de instalación: módulo de Microsoft Exchange Requisitos previos: hay varios requisitos previos para utilizar la acción EmailExchange: • Microsoft Outlook debe estar instalado en el mismo ordenador que Document Server. Microsoft Outlook Express incluido con Internet Explorer no funciona. • Debe estar instalada la biblioteca MAPI. Para verificarlo, compruebe la siguiente clave del registro: HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Messaging Subsystem Los valores de las claves "CMC" y "MAPI" deben estar definidas en 1. • Necesita una cuenta de usuario válida en el servidor Exchange para conectarse. Si tiene instalado Outlook, intente conectarse al servidor Exchange para verificar si funciona. • Document Distributor debe conectarse como un usuario. Document Server es un servicio. Para la acción EmailExchange, tiene que configurar el servicio para que se conecte con una cuenta de usuario. La cuenta de usuario seleccionada debe tener una cuenta de e-mail de Exchange válida. La cuenta de usuario debe tener acceso completo al ordenador host de Document Server. Para configurar el servicio Document Server para conectarse como un usuario (debe conectarse como administrador para realizar este procedimiento): Windows NT: 1 Haga clic en Inicio Æ Configuración Æ Panel de control Æ Servicios. 2 Seleccione el servicio Lexmark Document Server y haga clic en Inicio. 3 Haga clic en Esta cuenta y seleccione el nombre del usuario que tiene los derechos de acceso deseados. Escriba la contraseña del usuario y confirme. 4 Haga clic en Aceptar. Nota: para que el servicio se conecte como el usuario especificado, debe detener e iniciar el servicio Document Server o reiniciar el ordenador. Windows 2000/XP: 1 Haga clic en Inicio Æ Configuración Æ Panel de control Æ Herramientas administrativas Æ Servicios. 2 Haga doble clic en el servicio Lexmark Document Server. 3 Seleccione la ficha Iniciar sesión. 4 Haga clic en Esta cuenta y seleccione el nombre del usuario que tiene los derechos de acceso deseados. Escriba la contraseña del usuario y confirme. Objetos de acción 100 5 Haga clic en Aceptar. Nota: para que el servicio se conecte como el usuario especificado, debe detener e iniciar el servicio Document Server o reiniciar el ordenador. Acerca de los perfiles de Exchange Se requiere un "perfil" de usuario para que Document Distributor se conecte a Exchange. El perfil especifica la dirección del servidor Exchange y el nombre del buzón de Exchange válido. Document Distributor le crea un perfil de Exchange si el script suministra: • • • El nombre del perfil que desea crear. La dirección del ordenador donde está instalado Exchange. El nombre de un buzón de Exchange válido. Si proporciona el nombre de un perfil que ya existe en el equipo de Document Distributor, éste intenta conectarse a Exchange con dicho perfil. Si no se suministra ningún perfil, Document Distributor busca el nombre de un perfil predeterminado en el registro del sistema. El nombre de este perfil predeterminado (si existe) se encuentra en la siguiente clave del registro: HKEY_CURRENT _USER\\Software\\Microsoft\\WindowsNT\\CurrentVersion\\Windows Messaging Subsystem\\Profiles Si no se especifica un nombre de perfil en el script y no existe ninguno predeterminado en el sistema, Document Distributor genera un error. Propiedades Nombre Descripción Tipo de datos Información adicional To Lista de las direcciones de e-mail a las que se enviará este mensaje. string Para especificar varios destinatarios, sepárelos con comas. From Dirección de e-mail del remitente. string cc Lista de las direcciones de e-mail a las que se enviarán copias. string Para especificar varios destinatarios, sepárelos con comas. bcc Lista de las direcciones de e-mail a las que se enviarán copias ocultas. string Para especificar varios destinatarios, sepárelos con comas. Subject Asunto del e-mail. string Message Cadena de texto que se utilizará como cuerpo del mensaje. string Los nombres en negrita son propiedades obligatorias. Objetos de acción 101 Nombre Descripción Tipo de datos Información adicional Attachments Puede ser: doc Para adjuntar varios archivos, cree una variable de tipo doc y llame al método AddFile() del objeto doc para agregarlos a dicho objeto antes de utilizarlo aquí. • Documento digitalizado original • Salida de una acción anterior Server Dirección IP o nombre de host DNS del servidor. string Incluya este valor si desea que Document Distributor cree un perfil. Mailbox Nombre del buzón string Incluya este valor si desea que Document Distributor cree un perfil. ProfileName Perfil que se utilizará string Este valor especifica el nombre del nuevo perfil que desea que Document Distributor cree o puede ser el nombre de un perfil existente que desea que Document Distributor utilice. Si no se especifica ningún nombre, Document Distributor busca un perfil predeterminado en el registro, Acerca de los perfiles de Exchange en la página 101. Password Contraseña para acceder al servidor Exchange. string Los nombres en negrita son propiedades obligatorias. Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 102 EmailNotes (E-mail) Objetivo: envía un mensaje de e-mail a uno o varios destinatarios mediante un servidor de correo Lotus Notes. Grupo de instalación: módulo de Lotus Notes Requisitos previos: • El cliente de Lotus Notes debe estar instalado en Document Server para que esta acción utilice las funciones de Notes. El cliente de Notes proporciona la seguridad y los valores de Notes subyacentes para que Document Server interactúe con los servidores Notes. • Se debe proporcionar un archivo de cuenta/ID de usuario de Notes válido para que lo utilicen las acciones de Notes en Document Server. Los administradores de Notes normalmente llaman a los ID de Notes asociados a una aplicación de servidor (en vez de a una persona) un ID de aplicación. • Si el archivo de ID que utiliza el cliente de Notes tiene una contraseña, asegúrese de definir la propiedad de contraseña (password) en el script. (La propiedad se puede definir mediante un valor local en el script; esto provocará que se pregunte la contraseña cuando se cargue el script mediante Server Manager.) Si no se proporciona la contraseña, se produce un error en la acción. Propiedades: Nombre Descripción Tipo de datos Información adicional Password Contraseña del archivo de ID que utiliza el cliente de Notes. string Se debe definir en el script o mediante un valor local si el archivo de ID utiliza una contraseña. De no hacerlo, se producirá un error en la acción. To Lista de las direcciones de e-mail a las que se enviará este mensaje. string Para especificar varios destinatarios, sepárelos con comas. From Dirección de e-mail del remitente. string cc Lista de las direcciones de e-mail a las que se enviarán copias. string Para especificar varios destinatarios, sepárelos con comas. bcc Lista de las direcciones de e-mail a las que se enviarán copias ocultas. string Para especificar varios destinatarios, sepárelos con comas. Subject Asunto del e-mail. string Message Cadena de texto que se utilizará como cuerpo del mensaje. string Los nombres en negrita son propiedades obligatorias. Objetos de acción 103 Nombre Descripción Tipo de datos Información adicional Attachments El anexo puede ser: doc Para adjuntar varios archivos, cree una variable de tipo doc y llame al método AddFile() del objeto doc para agregarlos a dicho objeto antes de utilizarlo aquí. int (LDD Constant) Valores de la propiedad: • Documento digitalizado original • Salida de una acción anterior DeliveryPriority Prioridad de la entrega de e-mail. LDD_PRIORITY_LOW LDD_PRIORITY_NORMAL LDD_PRIORITY_HIGH Valor predeterminado: LDD_PRIORITY_NORMAL MailImportance Importancia del e-mail. int (LDD Constant) Valores de la propiedad: LDD_PRIORITY_LOW LDD_PRIORITY_NORMAL LDD_PRIORITY_HIGH Valor predeterminado: LDD_PRIORITY_NORMAL MoodStamp Moodstamp es opcional. int (LDD Constant) Valores de la propiedad: LDD_MOODSTAMP_NORMAL LDD_MOODSTAMP_PERSONAL LDD_MOODSTAMP_CONFIDENTIAL LDD_MOODSTAMP_PRIVATE LDD_MOODSTAMP_THANKYOU LDD_MOODSTAMP_URGENT LDD_MOODSTAMP_GOODJOB LDD_MOODSTAMP_JOKE LDD_MOODSTAMP_FYI LDD_MOODSTAMP_QUESTION LDD_MOODSTAMP_REMINDER Valor predeterminado: LDD_MOODSTAMP_NORMAL Los nombres en negrita son propiedades obligatorias. Objetos de acción 104 Nombre Descripción Tipo de datos Información adicional DeliveryReport Estado de entrega de la nota. int (LDD Constant) Valores de la propiedad: LDD_DELIVERYREPORT_CONFIRM LDD_DELIVERYREPORT_FAILURE LDD_DELIVERYREPORT_TRACEPATH LDD_DELIVERYREPORT_NONE Valor predeterminado: LDD_DELIVERYREPORT_FAILURE ReturnReceipt bool Si desea que se envíe un acuse de recibo al remitente. TRUE si desea un acuse de recibo; de lo contrario, FALSE. Valor predeterminado: FALSE PreventCopying Impedir que se copie la nota. bool TRUE para evitar la copia; de lo contrario, FALSE. Valor predeterminado: FALSE SaveSent Indica si se debe guardar una copia del mensaje en la carpeta "Enviado". bool TRUE para guardar el mensaje; de lo contrario, FALSE. Valor predeterminado: FALSE ViewIcon Icono que se mostrará junto al mensaje de correo en la bandeja de entrada de un cliente de Notes. int Si se define en cero, se utilizará el icono predeterminado basado en el icono de tipo de mensaje. De lo contrario, se puede definir cualquier ID de icono de Notes válido y se anulará el valor predeterminado. Valor predeterminado: 0 Los nombres en negrita son propiedades obligatorias. Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Notas: • Las direcciones de e-mail pueden ser direcciones de Lotus Notes o direcciones de e-mail de Internet. • Lotus Notes no requiere valores para las propiedades To, From, cc o bcc. Sin embargo, un mensaje debe suministrar un valor para una de estas propiedades como mínimo. Objetos de acción 105 EmailSMTP (E-mail) Objetivo: enviar un mensaje de e-mail a uno o varios destinatarios mediante el servidor SMTP (Protocolo simple de transferencia de correo) especificado. Grupo de instalación: módulo SMTP Requisitos previos: esta acción sólo funcionará en servidores SMTP que no necesiten cifrado. Es decir, si el servidor SMTP especificado necesita una conexión segura, esta acción no funcionará. Propiedades: Nombre Descripción Tipo de datos Información adicional To Lista de las direcciones de e-mail a las que se enviará este mensaje. string Para especificar varios destinatarios, sepárelos con comas. From Dirección de e-mail del remitente. string Algunos servidores SMTP requieren que el campo From sea una dirección válida que conozca el servidor SMTP antes de direccionar correo. cc Lista de las direcciones de e-mail a las que se enviarán copias. string Para especificar varios destinatarios, sepárelos con comas. bcc Lista de las direcciones de e-mail a las que se enviarán copias ocultas. string Para especificar varios destinatarios, sepárelos con comas. ReplyTo Dirección a la que se responderá si es distinta del campo "From". string Por ejemplo, en el caso de una secretaria que envíe los e-mails de su jefe. Sender Dirección de e-mail al que se enviarán los errores. string Subject Asunto del mensaje. string Message Cadena de texto que se utilizará como cuerpo del mensaje. string Server Dirección IP o nombre de host DNS del servidor SMTP. string Los nombres en negrita son propiedades obligatorias. Objetos de acción 106 Nombre Descripción Tipo de datos Información adicional CharacterSet Juego de caracteres que se utilizará para enviar el mensaje y el texto del asunto. int (LDD Constant) Valores válidos: LDD_SMTPCHARSET_US LDD_SMTPCHARSET_WEUROPE LDD_SMTPCHARSET_EEUROPE LDD_SMTPCHARSET_SEUROPE LDD_SMTPCHARSET_NEUROPE LDD_SMTPCHARSET_CYRILLIC LDD_SMTPCHARSET_ARABIC LDD_SMTPCHARSET_GREEK LDD_SMTPCHARSET_HEBREW LDD_SMTPCHARSET_TURKISH LDD_SMTPCHARSET_NORDIC Valor predeterminado: LDD_SMTPCHARSET_US Attachments doc El anexo puede ser: • Documento digitalizado original • Salida de una acción anterior Authentication Determina el método de autenticación que debe utilizar LDD. Para adjuntar varios archivos, cree una variable de tipo doc y llame al método AddFile() del objeto doc para agregarlos a dicho objeto antes de utilizarlo aquí. Valores válidos: LDD_SMTPAUTH_NONE LDD_SMTPAUTH_LOGIN LDD_SMTPAUTH_PLAIN LDD_SMTPAUTH_CRAMMD5 LDD_SMTPAUTH_DIGESTMD5 LDD_SMTPAUTH_AUTO Valor predeterminado: LDD_SMTPAUTH_AUTO Realm Dominio de conexión concreto en un servidor SMTP que comparte varios dominios. string Sólo necesario en servidores SMTP que comparten varios dominios. User Name Nombre de cuenta con el que se conecta al servidor SMTP. string Si no se especifica, el nombre se deriva de la dirección del remitente. Password Contraseña utilizada para conectarse al servidor SMTP. string Los nombres en negrita son propiedades obligatorias. Objetos de acción 107 Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Direcciones de e-mail Esta acción admite direcciones de e-mail tanto decoradas como sin decorar. Los siguientes tres ejemplos enviarían e-mail a la misma dirección: • • • [email protected] Juan García <[email protected]> "García, Juan" <[email protected]> El primer ejemplo está sin decorar y simplemente proporciona la dirección de e-mail. El segundo ejemplo está decorado; es simplemente una frase seguida de la dirección de e-mail entre <>. El tercer ejemplo está decorado pero con caracteres especiales; por lo tanto, la frase debe estar entre comillas seguida de la dirección de e-mail entre <>. El nombre decorado es lo que aparece en el cliente de e-mail y proporciona un aspecto descriptivo. Cuando se utilizan direcciones de e-mail decoradas, es importante tener en cuenta que sólo los caracteres ASCII de 7 bits se permiten como parte de la frase. Esto significa que los caracteres acentuados y otros caracteres no estándar que son válidos en los campos de asunto y mensaje (según el juego de caracteres especificado) no se pueden utilizar aquí. Destinatarios y remitentes Las siguientes propiedades permiten configurar quién recibirá el e-mail: • • • To: usuario a quien se envía el e-mail directamente cc: usuario a quien se envía una copia del e-mail bcc: usuario a quien se envía una copia del e-mail de forma secreta Aunque ninguna de estas propiedades requieren tener un valor, como mínimo se debe especificar un destinatario en una de ellas. Se pueden especificar varias direcciones para cualquiera de ellas separándolas con una coma. Las siguientes propiedades permiten configurar cómo verán los destinatarios del e-mail quién les ha enviado el correo: • • • From: especifica de quién parece ser el e-mail ReplyTo: si un destinatario responde, especifica a quién se envía la respuesta Sender: especifica quién envía realmente el e-mail; se trata de la dirección a la que se enviarán los errores que encuentre el servidor SMTP La propiedad From es obligatoria y puede contener una o varias direcciones de e-mail. Objetos de acción 108 La propiedad ReplyTo es opcional y se puede definir en una o varias direcciones; si se omite, se utilizan las direcciones de la lista From. La propiedad Sender es opcional si sólo se especifica una dirección en la lista From; de lo contrario, si se especifican varias direcciones para la propiedad From, es obligatoria. Cuando se define, la propiedad Sender sólo puede una dirección. Si se omite, la propiedad Sender se define en la primera (o única) dirección de la lista From. Ejemplo Una gerente de préstamos de un banco desea enviar un e-mail a varias ubicaciones para anunciar los nuevos tipos de interés de los préstamos. El siguiente fragmento muestra uno de los e-mails enviados cuando se ejecuta este script. with EmailSMTP .To = "^"García, Juan^" <jgarcí[email protected]>" .From = "María Ruiz<[email protected]>" .ReplyTo = "Tipos de interés de préstamos <[email protected]>" .Sender = "[email protected]" .Subject = "Anuncio de tipos de interés" .Message = "Consultad los nuevos tipos de interés para los préstamos en el folleto adjunto." .Attachment = original.document .Go() endwith En este fragmento, el e-mail se envía a Juan García. Observe cómo se utiliza una dirección de e-mail decorada; debido a que incluye un carácter especial (la coma), la frase debe estar entre comillas. Como las cadenas de LDDScript están entre comillas, "^" es una secuencia de escape para que se puedan utilizar comillas en la cadena. El e-mail procede de la gerente de préstamos María Ruiz. Si Juan García tiene una duda y responde al e-mail, la respuesta se enviará a Jorge, que es el ayudante de María y se encargará de las preguntas. Si se produce algún error y no se puede enviar el e-mail, se enviará un mensaje al administrador. Autenticación El mecanismo de autenticación está diseñado para comprobar que un usuario concreto puede enviar correo con una ruta de acceso de devolución concreta (direcciones de origen y de destino válidas). Algunos servidores SMTP no necesitan autenticación, mientras que otros puede que tengan una configuración más compleja. En la mayoría de los casos, suministrar una contraseña será suficiente. Consulte a su proveedor de servicio SMTP para obtener más información. Se admiten los siguientes métodos de autenticación: • • • • • Ninguno: esto puede ser válido si el servidor SMTP no tiene restricciones o se ha configurado para confiar de forma implícita en el servidor LDD. Iniciar sesión: se trata del método más habitual en los servidores de Windows. Normal: este método es habitual en numerosos servidores de UNIX. CRAMMD5: este método es muy habitual y no envía la contraseña como texto normal. DIGESTMD5: este método también es muy habitual y es resistente a numerosos ataques comunes por e-mail. Si especifica Automático como método de autenticación, el servidor LDD determinará el mecanismo más seguro y con más funciones que admitan tanto los servidores LDD como SMTP. Objetos de acción 109 FaxByPrinter (Fax) Objetivo: envía por fax un documento mediante una impresora Lexmark con un servidor de impresión MarkNet™ con funciones de fax. Grupo de instalación: módulo de impresión Requisitos previos: un servidor de impresión MarkNet con funciones de fax. Entradas: Archivo PostScript (PS), Blanco y negro o Escala de grises de 8 bits. Propiedades Nombre Descripción Tipo de datos Información adicional Input Documento que se enviará por fax. doc IPAddress Dirección IP o nombre de host DNS de la impresora equipada con fax. string FaxNumber Número de teléfono al que se enviará el fax. string StationID ID de estación que utiliza el fax. string WaitForCompletion Esperar a que termine el fax antes de continuar. bool Si se define en TRUE, el método Go no volverá hasta que el fax se haya enviado correctamente, el fax devuelva un error o se alcance el tiempo de espera especificado por WaitTimeout. Si se define en FALSE, el método Go vuelve inmediatamente después de enviar la solicitud de fax. WaitTimeout Número máximo de minutos que se esperará a que termine el fax o se produzca un error. int Este valor se ignora si WaitForCompletion está definido en FALSE. Este valor debe dejar tiempo para la solicitud inicial y cualquier reintento. El archivo debe estar en formato .PS. Valores válidos: De 0 a 60 Valor predeterminado: 0 Los nombres en negrita son propiedades obligatorias. Objetos de acción 110 Nombre Descripción Tipo de datos Información adicional RedialMinutes Si se produce un error en el fax, tiempo en minutos que se tiene que esperar antes de reintentar. int Para no realizar ningún reintento, este valor se debe definir en 0. Para utilizar el valor definido en la página Web de la impresora, utilice la constante LDD LDD_PRINTER_DEFAULT. Valores válidos: De 0 a 9 o LDD_PRINTER_DEFAULT Valor predeterminado: LDD_PRINTER_DEFAULT RedialTimes Número de veces que se reintentará el fax. int Para utilizar el valor definido en la página Web de la impresora, utilice la constante LDD LDD_PRINTER_DEFAULT. Valores válidos: De 1 200 o LDD_PRINTER_DEFAULT Valor predeterminado: LDD_PRINTER_DEFAULT Los nombres en negrita son propiedades obligatorias. Métodos Nombre Sintaxis Descripción Go bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. Reset void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 111 FTPget (FTP: obtener) Objetivo: recupera un archivo de un servidor FTP especificado. Grupo de instalación: Document Server Requisitos previos: ninguno Propiedades: Nombre Descripción Tipo de datos Información adicional Output Documento en el que se escribe la salida de esta acción. doc ServerAddress Dirección IP o nombre de host DNS del servidor FTP del que se recuperará el archivo. string UserName Nombre de usuario utilizado para conectarse al servidor FTP. string Si no se requiere ninguno, introduzca una cadena vacía. Valor predeterminado: anonymous Password Contraseña utilizada para conectarse al servidor FTP. string Si no se requiere ninguno, introduzca una cadena vacía. Valor predeterminado: anonymous Account Nombre de cuenta a utilizar si se requiere alguna. string La mayoría de los servidores FTP no requieren que se especifique una cuenta. TransferMode Modo utilizado para transferir el archivo solicitado. int (LDD Constant) Si el documento es una imagen o imágenes, seleccione el modo LDD_FTPMODE_BINARY. Si el documento es texto, seleccione el modo LDD_FTPMODE_ASCII. Valor predeterminado: LDD_FTPMODE_BINARY SourcePath Archivo que se recuperará. string Los nombres en negrita son propiedades obligatorias. Objetos de acción 112 Si no se especifica una ruta de acceso con el nombre de archivo, el archivo se recuperará del directorio FTP predeterminado del usuario, Ruta de acceso origen de ejemplo en la página 113. Métodos Nombre Sintaxis Descripción Go bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. Reset void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Nota: debido a las diferencias entre los sistemas de archivos, cuando se transfiere un archivo en modo ASCII, es posible que el tamaño del nuevo archivo no sea idéntico al del archivo original en el servidor FTP. Ruta de acceso origen de ejemplo Explicación /sample1.tif Recupera el archivo "sample1.tif" del directorio raíz del ordenador origen. sample1.tif Recupera el archivo "sample1.tif" del directorio FTP predeterminado del usuario. /zdir/sample1.tif Recupera el archivo "sample1.tif" del directorio "zdir" que está debajo del directorio raíz del ordenador origen (no el directorio FTP predeterminado del usuario). myfile/sample1.tif Recupera el archivo "sample1.tif" del subdirectorio "myfile" que se encuentra debajo del directorio FTP predeterminado del usuario. Objetos de acción 113 FTPput (FTP: colocar) Objetivo: transfiere un documento a un servidor FTP especificado. Grupo de instalación: Document Server Requisitos previos: ninguno Propiedades Nombre Descripción Tipo de datos Información adicional Input Documento a transferir. doc ServerAddress Dirección IP o nombre de host DNS del servidor FTP al que se transferirá el documento. string UserName Nombre de usuario utilizado string para conectarse al servidor FTP. Si no se requiere ninguno, introduzca una cadena vacía. Valor predeterminado: anonymous Password Contraseña utilizada para conectarse al servidor FTP. string Si no se requiere ninguno, introduzca una cadena vacía. Valor predeterminado: anonymous DestinationPath Nombre de la ruta de acceso completa del archivo transferido al servidor FTP. string Si el valor sólo contiene un nombre de archivo, el archivo se almacenará en el directorio FTP predeterminado del usuario, Ruta de acceso de destino de ejemplo en la página 115. Account Nombre de cuenta a utilizar si se requiere alguna. string La mayoría de los servidores FTP no requieren que se especifique una cuenta. AppendTimeStamp Añade un sello de hora que contiene el año, mes, día y hora del día al nombre de archivo de modo que los archivos con el mismo nombre no se sobrescriban. bool Para el sello de hora se utiliza la variable reservada original.usertime. Crea la ruta de acceso especificada en el parámetro "DestinationPath" si no existe. bool CreateDirectory Valor predeterminado: TRUE Si el valor se define en FALSE y el directorio especificado no existe, se producirá un error en la acción. Valor predeterminado: FALSE Los nombres en negrita son propiedades obligatorias. Objetos de acción 114 Nombre Descripción Tipo de datos Información adicional TransferMode Modo utilizado para transferir el documento. int (LDD Constant) Si el documento es una imagen, seleccione el modo LDD_FTPMODE_BINARY. Si el documento es texto, seleccione el modo LDD_FTPMODE_ASCII. Valor predeterminado: LDD_FTPMODE_BINARY Overwrite Sobrescribe el archivo FTP anterior. bool Valor predeterminado: TRUE Los nombres en negrita son propiedades obligatorias. Métodos Nombre Sintaxis Descripción Go bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. Reset void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Nota: si un documento contiene varios archivos, los archivos creados en el servidor FTP tendrán un número añadido después de la extensión de archivo y antes del sello de hora (si se ha solicitado un sello de hora) con el fin de crear un nombre de archivo único. Debido a las diferencias entre los sistemas de archivos, cuando se transfiere un archivo en modo ASCII, es posible que el tamaño del nuevo archivo no sea idéntico al del archivo original. Ruta de acceso de destino de ejemplo Explicación /sample1.tif Coloca el archivo "sample1.tif" en el directorio raíz del ordenador de destino. sample1.tif Coloca el archivo "sample1.tif" en el directorio FTP predeterminado del usuario con el nombre "sample1.tif". /zdir/sample1.tif Coloca el archivo "sample1.tif" en el directorio "zdir" que está debajo del directorio raíz del ordenador de destino (no el directorio FTP predeterminado del usuario). Objetos de acción 115 Acciones de GroupWise Requisitos previos: • En el equipo host debe estar disponible la conectividad NetWare necesaria. Esto incluye los controladores necesarios para que el servidor Lexmark Document Solutions (LDS) se conecte a un servidor NetWare. Compruebe las propiedades de Entorno de red para asegurarse de que se han instalado los gateways y protocolos necesarios al instalar GroupWise. El módulo utiliza cualquier protocolo disponible y no está limitado a TCP/IP. • También debe estar instalado el software de cliente de NetWare. En concreto, el servidor debe tener instalado el cliente de Novell para Windows NT, Windows 2000 o Windows XP. El cliente debe ser compatible con la versión de NetWare que se ejecuta en el host de GroupWise. Como mínimo, el cliente debe estar configurado para señalar a un servidor NetWare con un árbol y contexto específicos. Consulte los valores avanzados en el cuadro de diálogo del cliente de Novell. • En el equipo servidor también debe estar instalado el cliente de Novell GroupWise para Windows. Si la aplicación GroupWise se puede iniciar desde el icono en el equipo servidor sin requerir ningún otro dato del usuario que un nombre de usuario y contraseña, la configuración es correcta. • La versión de GroupWise debe ser la 6 como mínimo. • Según su configuración de GroupWise preferido, puede requerir que Document Server se conecte como un determinado usuario al inicio. Esto se puede definir en el subprograma Servicios de Panel de control (en Windows 2000 se encuentra en Herramientas administrativas). De este modo el módulo GroupWise puede recuperar cualquier configuración de NetWare necesaria a partir de los valores de usuario en el Registro. No debe ser necesaria la interacción con el escritorio. No es necesario que el cliente de GroupWise esté en ejecución. Es muy recomendable que cualquier componente interactivo de GroupWise, como la aplicación de notificación, esté desactivado en el equipo servidor. Opciones de configuración El módulo GroupWise se puede utilizar de tres formas posibles: • • • Cada llamada a GroupWise requiere un nombre de usuario y una contraseña para conectarse. Las diferentes llamadas se pueden conectar como usuarios distintos. Cada llamada a GroupWise requiere una conexión utilizando el mismo nombre de usuario y contraseña, pero la conexión puede ser proxy como otro usuario. La función proxy no requiere una contraseña, pero precisa que el destino proxy conceda los derechos de acceso adecuados. Cada llamada a GroupWise se conecta utilizando los valores predeterminados del sistema especificados en el cliente de Novel o en el inicio de GroupWise. No es necesario que cada script indique un nombre de conexión o una contraseña. Está disponible el registro proxy. Sugerencia: se recomienda la tercera forma. En concreto, se recomienda crear una cuenta de GroupWise dedicada para Document Distributor. Para permitir que LDD actúe en nombre de otros usuarios, el administrador de GroupWise o los propios usuarios deben configurar LDD para que actúe como proxy. Dichas conexiones de proxy no requieren que las contraseñas de los usuarios se expongan a LDD y la conexión de la cuenta de LDD se puede configurar como un valor predeterminado del sistema. Este método permite que el administrador de GroupWise controle la seguridad, en vez de hacerlo el administrador de Document Server. Para obtener más información sobre estos requisitos previos, consulte la ayuda en línea del administrador de GroupWise, administrador de NetWare, cliente de NetWare o GroupWise. Objetos de acción 116 GWMail (E-mail) Objetivo: enviar correo mediante GroupWise. Resultados: el correo se puede enviar a uno o varios destinatarios con o sin anexo de archivo en varios formatos. No hay control sobre la entrega, prioridad, notificación y seguridad de los mensajes. Propiedades: Nombre Descripción Tipo de datos Información adicional RootAccount ID de usuario para que el módulo se conecte mediante el cliente de Novell para Windows. string No tiene que ser el mismo que el nombre de usuario de GroupWise. Si no se especifica, se busca en el sistema un valor predeterminado adecuado. RootPassword Contraseña para la conexión del cliente de Novell. string Si no se especifica, se busca en el sistema un valor predeterminado adecuado. ProxyAccount Cuenta proxy con la que el módulo realiza todas las operaciones de GroupWise. string El nombre de cuenta especificado aquí debe ser un nombre de cuenta de GroupWise y debe aparecer en la libreta de direcciones del sistema de GroupWise. Si es necesario, GroupWise completa el nombre. El usuario del que se va a ser proxy, o el administrador de GroupWise, debe haber asignado derechos de proxy adecuados a la conexión especificada por la cuenta raíz. Si se especifica, todas las operaciones de GroupWise se realizan con la cuenta raíz. To Lista de las direcciones de e-mail a las que se enviará este mensaje. string La lista puede estar separada por comas, como en los demás módulos de correo de LDD, o puede estar separada por puntos y comas como en el cliente de GroupWise. Las direcciones se resuelven con las libretas de direcciones del remitente, incluyendo el completar los nombres. Si el servidor GroupWise lo admite, también funcionarán las direcciones externas como SMTP y MAPI. Nota: se debe especificar un destinatario como mínimo en los campos To, From, cc o bcc. Los nombres en negrita son propiedades obligatorias. Objetos de acción 117 Nombre Descripción Tipo de datos Información adicional From Dirección de e-mail del remitente. string El nombre del usuario proxy o raíz siempre se añade a este campo; no se puede definir de forma fraudulenta una dirección From mediante este método. El valor predeterminado es que la dirección From no esté decorada. Una entrada adecuada en este campo podría ser "Enviado por LDD en nombre de" u otra decoración similar. cc Lista de las direcciones de e-mail a las que se enviarán copias. string Al igual que el campo To, la lista puede estar separada por comas o por puntos y comas, y puede incluir cualquier dirección que se pueda resolver con las libretas de direcciones o con conexiones externas del servidor GroupWise. bcc Lista de las direcciones de e-mail a las que se enviarán copias ocultas. string Ningún destinatario puede ver a este destinatario en el correo recibido. Las mismas condiciones se aplican a los campos To y cc. Subject Línea de asunto de este correo. string Message Contenido del mensaje de este correo. string El cuerpo del mensaje está sujeto a la limitación de GroupWise de aproximadamente 32.000 caracteres. MessageFormat Formato en el que se codifica el mensaje ASCII. int (LDD Constant) Valores válidos: LDD_GWMSGTYPE_PLAINTEXT LDD_GWMSGTYPE_RICHTEXT Valor predeterminado: LDD_GWMSGTYPE_PLAINTEXT Attachments Anexos de archivo que se añadirán a este mensaje. doc Para adjuntar varios archivos, cree una variable de tipo doc y llame al método AddFile () del objeto doc para agregarlos a dicho objeto antes de utilizarlo aquí. Los nombres en negrita son propiedades obligatorias. Objetos de acción 118 Nombre Descripción Tipo de datos Información adicional ConvertAttachments Especifica si la oficina de correos de GroupWise debe cambiar los anexos a formularios que se puedan ver en GroupWise. bool El valor predeterminado es FALSE, que transmite cualquier anexo en su formato original tal como lo ha enviado LDD y puede requerir que los destinatarios utilicen una aplicación externa para verlo. Si se define en TRUE, se da a la oficina de correos el derecho de cambiar los formatos de los anexos a formularios que se puedan ver en GroupWise. Dicha modificación puede cambiar el formato o la compresión de archivo y no se garantiza que conserve los códigos de formato o el detalle gráfico. Consulte al administrador de la oficina de correos para obtener información sobre estas conversiones. Priority int (LDD Constant) Se aplica siempre que sea posible en función del mecanismo de transporte utilizado para enviar el correo. Para los destinos GroupWise, la prioridad se indica mediante el color de icono en la bandeja de entrada de los destinatarios. Prioridad asignada a este mensaje. Valores válidos: LDD_PRIORITY_LOW LDD_PRIORITY_NORMAL LDD_PRIORITY_HIGH Valor predeterminado: LDD_PRIORITY_NORMAL Private RequestReply Especifica si este mensaje se oculta a los usuarios proxy y sólo lo puede ver el destinatario al que va dirigido. bool Indica si se adjunta una int (LDD solicitud de respuesta Constant) al mensaje. Sólo es válido para los destinos de GroupWise. Sólo es relevante para los destinos de GroupWise. Valor predeterminado: FALSE Valores válidos: LDD_GWREPLY_NONE LDD_GWREPLY_CONVENIENT LDD_GWREPLY_DAYS Valor predeterminado: LDD_GWREPLY_NONE Los nombres en negrita son propiedades obligatorias. Objetos de acción 119 Nombre Descripción Tipo de datos Información adicional ReplyDays Si RequestReply se int define en LDD_GWREPLY_DAYS, este número especifica cuántos días espera el mensaje antes de enviar a sus destinatarios un recordatorio. NotifyOpened Cuando el destinatario abre los mensajes, se notifica al remitente proxy mediante la aplicación de escritorio GroupWise Notify o se envía un e-mail de confirmación. Sólo es válido para destinatarios de GroupWise. Si se activa, el valor predeterminado es 0, solicitando una respuesta el mismo día. int Sólo es válido para los destinos de GroupWise. Valores válidos: LDD_GWNOTIFICATION_NONE LDD_GWNOTIFICATION_MESSAGE LDD_GWNOTIFICATION_USER LDD_GWNOTIFICATION_BOTH Valor predeterminado: LDD_GWNOTIFICATION_NONE NotifyDeleted Cuando el destinatario elimina los mensajes, se notifica al remitente proxy mediante la aplicación de escritorio GroupWise Notify o se envía un e-mail de confirmación. int Sólo es válido para los destinos de GroupWise. Valores válidos: LDD_GWNOTIFICATION_NONE LDD_GWNOTIFICATION_MESSAGE LDD_GWNOTIFICATION_USER LDD_GWNOTIFICATION_BOTH Valor predeterminado: LDD_GWNOTIFICATION_NONE Los nombres en negrita son propiedades obligatorias. Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 120 GWDiscuss (E-mail) Objetivo: enviar un mensaje de correo a una carpeta compartida como un debate. Todos los usuarios que comparten acceso a la carpeta de destino pueden ver el correo. El correo se puede utilizar como contenedor simple de cualquier documento o archivo, al que posteriormente se puede acceder mediante búsqueda de texto completo. Resultados: el correo se entrega en una carpeta compartida. Puede incluir anexos de archivo. Todos los usuarios que comparten acceso a esta carpeta pueden ver los mensajes de correo. Propiedades: Nombre Descripción Tipo de datos Información adicional RootAccount ID de usuario para que el módulo se conecte mediante el cliente de Novell para Windows. string No tiene que ser el mismo que el nombre de usuario de GroupWise. Si no se especifica, se busca en el sistema un valor predeterminado adecuado. RootPassword Contraseña para la conexión del cliente de Novell. string Si no se especifica, se busca en el sistema un valor predeterminado adecuado. ProxyAccount Cuenta proxy con la que el módulo realiza todas las operaciones de GroupWise. string El nombre de cuenta especificado aquí debe ser un nombre de cuenta de GroupWise y debe aparecer en la libreta de direcciones del sistema de GroupWise. Si es necesario, GroupWise completa el nombre. El usuario del que se va a ser proxy, o el administrador de GroupWise, debe haber asignado derechos de proxy adecuados a la conexión especificada por la cuenta raíz. Si se especifica, todas las operaciones de GroupWise se realizan con la cuenta raíz. From Se puede agregar texto adicional al campo From como parte del mensaje. string El usuario debe añadir el nombre del usuario raíz o proxy a este campo. El valor predeterminado es que la dirección From no esté decorada. Una entrada adecuada en este campo podría ser "Enviado por LDD en nombre de Juan García" u otra decoración similar. Los nombres en negrita son propiedades obligatorias. Objetos de acción 121 Nombre Descripción Tipo de datos Información adicional Folder Ruta de acceso de carpeta en la que se escribirá el correo. string La ruta de acceso de carpeta es relativa al directorio de inicio global en cuyo nombre actúa Document Server. Puede ser un usuario proxy o la cuenta raíz de la conexión de LDD. Se admite el anidamiento de carpetas mediante el separador "/"; por lo tanto, Mueble/ Compartido/Debate es una ruta de acceso de carpeta adecuada. Todos los usuarios con derechos de lectura compartida en esta carpeta pueden ver el correo. Todos los usuarios con derechos de agregación compartida en esta carpeta pueden crear correos de debate en esta carpeta. Subject Línea de asunto de este correo. string Message Contenido del mensaje de este correo. string El cuerpo del mensaje está sujeto a la limitación de GroupWise de aproximadamente 32.000 caracteres. El cuerpo del mensaje está disponible para realizar búsquedas de texto completo en él, lo que permite las tareas de indización que, de otra manera, no estarían disponibles en GroupWise. MessageFormat Formato en el que se codifica el mensaje ASCII. int (LDD Constant) Valores válidos: LDD_GWMSGTYPE_PLAINTEXT LDD_GWMSGTYPE_RICHTEXT Valor predeterminado: LDD_GWMSGTYPE_PLAINTEXT Attachments Anexos de archivo que se añadirán a este mensaje. string Los nombres en negrita son propiedades obligatorias. Objetos de acción 122 Para adjuntar varios archivos, cree una variable de tipo doc y llame al método AddFile () del objeto doc para agregarlos a dicho objeto antes de utilizarlo aquí. Nombre Descripción Tipo de datos Información adicional ConvertAttachments Especifica si la oficina de correos de GroupWise debe cambiar los anexos a formularios que se puedan ver en GroupWise. bool El valor predeterminado es FALSE, que transmite cualquier anexo en su formato original tal como lo ha enviado LDD y puede requerir que los destinatarios utilicen una aplicación externa para verlo. Si se define en TRUE, se da a la oficina de correos el derecho de cambiar los formatos de los anexos a formularios que se puedan ver en GroupWise. Dicha modificación puede cambiar el formato o la compresión de archivo y no se garantiza que conserve los códigos de formato o el detalle gráfico. Consulte al administrador de la oficina de correos para obtener información sobre estas conversiones. Priority int (LDD Constant) Se aplica siempre que sea posible en función del mecanismo de transporte utilizado para enviar el correo. Para los destinos de GroupWise, la prioridad se indica mediante el color de icono en la bandeja de entrada del destinatario. Prioridad asignada a este mensaje. Valores válidos: LDD_PRIORITY_LOW LDD_PRIORITY_NORMAL LDD_PRIORITY_HIGH Valor predeterminado: LDD_PRIORITY_NORMAL Los nombres en negrita son propiedades obligatorias. Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Nota: el correo de debate no aparece como los debates creados desde el cliente de GroupWise (nota y alfiler) sino como un correo de borrador (lápiz y sobre). Los dos funcionan de un modo algo distinto. Objetos de acción 123 GWCheckIn (Groupware: introducir) Objetivo: introducir un archivo de documento en una biblioteca de documentos de GroupWise. Resultados: se creará un nuevo documento en la biblioteca de destino. Además, se pueden definir los derechos de acceso por usuario o por grupo a este nuevo documento en la biblioteca. La acción puede crear opcionalmente una referencia al documento en una carpeta compartida para facilitar el acceso a varios usuarios. Los controles de acceso se pueden aplicar por versión. El nuevo documento es la 'raíz' de una nueva jerarquía de control de versiones. Propiedades: además de los valores del módulo GroupWise común, este módulo tiene las siguientes propiedades. Nombre Descripción Tipo de datos Información adicional RootAccount ID de usuario para que el módulo se conecte mediante el cliente de Novell para Windows. string No tiene que ser el mismo que el nombre de usuario de GroupWise. Si no se especifica, se busca en el sistema un valor predeterminado adecuado. RootPassword Contraseña para la conexión del cliente de Novell. string Si no se especifica, se busca en el sistema un valor predeterminado adecuado. ProxyAccount Cuenta proxy con la que el módulo realiza todas las operaciones de GroupWise. string El nombre de cuenta especificado aquí debe ser un nombre de cuenta de GroupWise y debe aparecer en la libreta de direcciones del sistema de GroupWise. Si es necesario, GroupWise completa el nombre. El usuario del que se va a ser proxy, o el administrador de GroupWise, debe haber asignado derechos de proxy adecuados a la conexión especificada por la cuenta raíz. Si se especifica, todas las operaciones de GroupWise se realizan con la cuenta raíz. Input Documento que se va a insertar en el control de versiones. doc GWCheckIn crea un nuevo objeto de documento de GroupWise por cada archivo del documento entrante (conceptualmente, un documento de GroupWise es una o varias versiones de un único archivo). En la biblioteca, a cada nuevo documento se le asigna un nombre derivado de la etiqueta del documento en Document Distributor. Los nombres en negrita son propiedades obligatorias. Objetos de acción 124 Nombre Descripción Tipo de datos Información adicional Library Nombre de la biblioteca de documentos de GroupWise en la que se insertará este documento. string El nombre de la biblioteca de documentos es exactamente como aparece en las carpetas de búsqueda de GroupWise. VersionDescription Descripción para string incluirla en las propiedades de esta versión del documento. El valor predeterminado es no incluir ninguna descripción; sin embargo, cadenas aceptables podrían ser "Enviado por LDD". MarkOfficial Cuando se introduce, el documento siempre se marca como la versión actual. bool GroupWise permite asignar dos niveles de promoción a un documento. Las bifurcaciones recientes de un documento se indican como actuales, mientras que una versión individual se puede marcar como oficial. En la versión de documento oficial se pueden definir los privilegios de seguridad. Este valor marca automáticamente el nuevo documento como una versión oficial. El valor predeterminado es TRUE. AccessRights De forma predeterminada, los derechos de acceso aplicados a un documento son conceder acceso completo al autor del documento y denegar todo tipo de acceso a los demás. string Normalmente, se recomienda especificar derechos de acceso a determinados usuarios o grupos, según la versión. Folder Si se especifica, indica string una carpeta personal o compartida a la que se envía una referencia a este documento. La ruta de acceso de carpeta es relativa al directorio de inicio global de la conexión de LDD. Se admite el anidamiento de carpetas mediante el separador "/"; por lo tanto, "Mueble/Compartido/ Documentos/Noviembre" es una ruta de acceso de carpeta adecuada. Todos los usuarios con derechos de lectura compartida en esta carpeta pueden ver la referencia al documento. Sin embargo, tenga en cuenta que, a menos que a los usuarios se les conceda expresamente derechos de acceso, no pueden manipular el documento. Los nombres en negrita son propiedades obligatorias. Objetos de acción 125 Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Derechos de acceso • Los derechos de acceso se pueden definir para grupos o usuarios, por versión según sea necesario. La sintaxis de los derechos de acceso permite agregar o quitar derechos progresivamente; por ejemplo, de este modo puede conceder derechos de visualización a todo un grupo y, a continuación, agregar derechos de edición a un miembro específico del grupo. También puede asignar derechos a todos los visores. De forma predeterminada, al autor del documento se le conceden derechos completos, mientras que a los demás se les deniega cualquier tipo de acceso. Puede modificar este comportamiento mediante el valor de la cadena de derechos de acceso. • Tenga en cuenta que asignar derechos de visualización a un determinado documento o versión permite que el usuario tome una instantánea de dicho documento y lo copie, pero los cambios no afectan al original. Sintaxis de los derechos de acceso Conceptualmente, la cadena de derechos de acceso es un conjunto delimitado por comas de comandos de acceso con el formato {nombre de usuario o grupo}{':'}{derechos de acceso}. Se pueden especificar tantos usuarios o grupos en la cadena de derechos de acceso como sea necesario. Los usuarios o grupos de la cadena de derechos de acceso deben estar incluidos en cualquiera de las libretas de direcciones que pertenezcan al ID de GroupWise utilizado por LDD para conectarse. Los grupos se expanden en sus miembros individuales. La parte de derechos de acceso de la cadena se compone de los caracteres "V", "E" y "D" para conceder derechos de visualización, edición y eliminación. El carácter "M" concede permiso para modificar la seguridad de un documento. En GroupWise 5.2 y versiones posteriores el carácter "S" se puede utilizar para conceder derechos para compartir. Si se antepone a cualquiera de estos caracteres un "-", se revoca dicho privilegio a este usuario o grupo. Si se incluye "c", "o" o "a" en la parte de derechos de acceso, cualquiera de los caracteres posteriores se aplican, respectivamente, sólo a las versiones "actual", "oficial" o "todas las demás" del documento (los derechos de modificación de seguridad especificados por "M" se aplican a todas las versiones). De forma predeterminada, los derechos de acceso se aplican a todas las versiones del documento. Si no se especifica un nombre de usuario o grupo, los derechos de acceso predeterminados serán públicos. Objetos de acción 126 Ejemplo: Puede especificar la siguiente cadena de derechos de acceso: oV,DESARROLLO:VE,DIRECTORES:SaD,guest:-E,María Ruiz:VEDS-M,Juan García:M • oV: permite que un documento sólo se pueda ver en su versión oficial de forma pública. • DESARROLLO:VE: permite que el grupo denominado DESARROLLO vea y edite todas las versiones del documento. • DIRECTORES:SaD: permite que el grupo DIRECTORES comparta cualquier versión o elimine las versiones que no sean críticas del documento. • guest:-E: elimina los privilegios de edición de los usuarios que visiten el equipo de desarrollo como invitados. • María Ruiz:VEDS-M,Juan García:M: permite que María Ruiz realice cualquier operación en el documento, excepto cambiar la seguridad y conceder a Juan García acceso completo a las opciones de seguridad. Nota: los derechos de acceso son acumulativos, por lo que cualquier usuario puede ver la versión oficial, mientras que el grupo DIRECTORES, que también forma parte del grupo DESARROLLO, puede automáticamente ver y editar todas las versiones. Si Juan García decide que estos privilegios son incorrectos, puede acceder a las propiedades para compartir de este documento y modificarlo manualmente más adelante, por usuario, si es necesario. Objetos de acción 127 ImageCombine (Imágenes: combinar en documento) Objetivo: crea un archivo de imagen multipágina a partir de varios archivos de imagen de una sola página. Es lo contrario de ImageSeparate. Grupo de instalación: módulo de imágenes Requisitos previos: ninguno Propiedades Nombre Descripción Tipo de datos Información adicional Input Documento origen de la acción. doc La entrada debe estar en formato de imagen. Output doc Contiene el documento de salida generado por la acción. A esta propiedad sólo se puede acceder después de llamar al método Go. Format int Formato de la imagen multipágina (LDD Constant) de salida en la que desea combinar los archivos de entrada. Valores válidos: LDD_IMGFORMAT_TIF LDD_IMGFORMAT_TIFPB LDD_IMGFORMAT_TIFG3 LDD_IMGFORMAT_TIFG4 LDD_IMGFORMAT_DCX Valor predeterminado: LDD_IMGFORMAT_TIF ColorDepth Bit de color que tendrá el archivo de salida. int (LDD Constant) Valores válidos: LDD_IMGDEPTH_BW LDD_IMGDEPTH_4C LDD_IMGDEPTH_8C LDD_IMGDEPTH_8G LDD_IMGDEPTH_24C LDD_IMGDEPTH_24G Valor predeterminado: LDD_IMGDEPTH_8C Los nombres en negrita son propiedades obligatorias. Objetos de acción 128 Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Nota: si la profundidad de color del archivo de salida especificada en el script no es válida, la acción selecciona una profundidad de color para dicho formato y termina la operación de combinación. Objetos de acción 129 ImageCrop (Imágenes: recortar) Objetivo: recorta uno o varios archivos de imagen según el rectángulo especificado. Grupo de instalación: módulo de imágenes Requisitos previos: ninguno Propiedades Nombre Descripción Tipo de datos Información adicional Input Documento origen de la acción. doc La entrada debe estar en formato de imagen. Output Contiene el documento de salida generado por la acción. doc A esta propiedad sólo se puede acceder después de llamar al método Go(). Left El borde izquierdo (en píxeles) del rectángulo que se recortará de la imagen. int Top El borde superior (en píxeles) del rectángulo que se recortará de la imagen. int Right El borde derecho (en píxeles) del rectángulo que se recortará de la imagen. int Bottom El borde inferior (en píxeles) del rectángulo que se recortará de la imagen. int AllPages Recortar todas las páginas del documento de entrada. bool Primera página a recortar. int StartPage Valor predeterminado: TRUE El valor sólo se utiliza cuando AllPages está definido en FALSE. Valor predeterminado: 0 EndPage Última página a recortar. int El valor sólo se utiliza cuando AllPages está definido en FALSE. El valor 0 indica la última página del documento. Valor predeterminado: 0 Los nombres en negrita son propiedades obligatorias. Objetos de acción 130 Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 131 Notas: • Los valores de Right, Left, Top y Bottom dependen de la resolución de digitalización utilizada para adquirir el documento. Determine la resolución de digitalización necesaria, determine las posiciones de píxeles necesarias para delimitar el área y, a continuación, utilice la misma resolución de digitalización para todos los perfiles que usan el script. • La esquina superior izquierda de la página es 0,0 en coordenadas de píxeles. Los valores de Left, Top, Right y Bottom se deben especificar relativos a estas coordenadas. (0,0) Izquierda, Superior Derecha, Inferior Objetos de acción 132 ImageInvert (Imágenes: invertir) Objetivo: invierte una o varias imágenes. La acción de inversión le da a la imagen el aspecto de negativo fotográfico. Grupo de instalación: módulo de imágenes Requisitos previos: ninguno Propiedades Nombre Descripción Tipo de datos Información adicional Input Documento origen de la acción. doc La entrada debe estar en formato de imagen. Output Contiene el documento de salida generado por la acción. doc A esta propiedad sólo se puede acceder después de llamar al método Go. AllPages Invertir todas las páginas del documento de entrada. bool Valor predeterminado: Primera página a invertir. int StartPage TRUE El valor sólo se utiliza cuando AllPages está definido en FALSE. Valor predeterminado: 0 EndPage Última página a invertir. int El valor sólo se utiliza cuando AllPages está definido en FALSE. El valor 0 indica la última página. Valor predeterminado: 0 Los nombres en negrita son propiedades obligatorias. Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 133 ImageMerge (Imágenes: plantilla) Objetivo: combinar una imagen encima de otra. Grupo de instalación: módulo de imágenes Requisitos previos: ninguno Propiedades Nombre Descripción Tipo de datos Información adicional Input Documento origen de la acción. doc La entrada debe estar en formato de imagen. Output Contiene el documento de salida generado por la acción. doc A esta propiedad sólo se puede acceder después de llamar al método Go. Position Especifica la posición en la página donde se debe colocar el archivo de imagen. int (LDD Constant) Valores válidos: LDD_IMGMERGEPOS_TOPLEFT LDD_IMGMERGEPOS_TOPCENTER LDD_IMGMERGEPOS_TOPRIGHT LDD_IMGMERGEPOS_CENTERLEFT LDD_IMGMERGEPOS_CENTER LDD_IMGMERGEPOS_CENTERIGHT LDD_IMGMERGEPOS_BOTTOMLEFT LDD_IMGMERGEPOS_BOTTOMCENTER LDD_IMGMERGEPOS_BOTTOMRIGHT LDD_IMGMERGEPOS_CUSTOM Valor predeterminado: LDD_IMGMERGEPOS_TOPLEFT Offset La desviación (en píxeles) desde el borde de la página para colocar la imagen. int Este valor se ignora si la posición se ha definido en personalizada. Valor predeterminado: 0 MergeLeft MergeTop La coordenada X (en píxeles) de la esquina superior izquierda del área combinada en la imagen de salida. int La coordenada Y (en píxeles) de la esquina superior izquierda del área combinada en la imagen de salida. int Este valor sólo se utiliza si la posición se ha definido en personalizada. Valor predeterminado: 0 Este valor sólo se utiliza si la posición se ha definido en personalizada. Valor predeterminado: 0 Los nombres en negrita son propiedades obligatorias. Objetos de acción 134 Nombre Descripción Tipo de datos ImageFile El documento de una sola página que se colocará encima del documento de entrada. doc AllPages Combinar la imagen en todas las páginas del documento de entrada. bool Primera página a combinar. int StartPage Información adicional Valor predeterminado: TRUE El valor sólo se utiliza cuando AllPages está definido en FALSE. Valor válido: 0-32767 Valor predeterminado: 0 EndPage Última página a combinar. int El valor sólo se utiliza cuando AllPages está definido en FALSE. El valor 0 indica la última página. Valor válido: 0-32767 Valor predeterminado: 0 Los nombres en negrita son propiedades obligatorias. Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Notas: • La combinación de imágenes con una profundidad de color de 8 bits produce una salida con una profundidad de color de 24 bits. • Se pueden combinar imágenes de distintos tipos de archivo. Si ambos archivos tienen la misma profundidad de color, la salida tiene el mismo formato que la entrada. Si los archivos tienen profundidades de color distintas, la salida tiene el formato del archivo con la profundidad de color mayor. • La esquina superior izquierda de la página es 0,0 en coordenadas de píxeles. La posición se debe especificar relativa a estas coordenadas. Objetos de acción 135 • Los valores de Position dependen de la resolución de digitalización utilizada para adquirir el documento. Determine la resolución de digitalización necesaria, determine las posiciones de píxeles necesarias para colocar la imagen combinada en la ubicación correcta y, a continuación, utilice la misma resolución de digitalización para todos los perfiles que usan el script. • El documento especificado por ImageFile se coloca encima de la imagen de entrada durante la acción ImageMerge. • ImageMerge no se puede utilizar para crear una marca de agua. • En algunos casos, si ImageFile tiene formato de mapa de bits, aparce un rectángulo negro donde debería estar la imagen. Para corregirlo, convierta el formato de imagen de ImageFile a PNG y utilice la imagen convertida como ImageFile. Objetos de acción 136 Ejemplo: Este script imprime una copia de cada página digitalizada con un pequeño logotipo de empresa colocado en la esquina inferior derecha de cada página. El logotipo cubrirá lo que pueda haber en la esquina inferior derecha del documento original. El logotipo es un archivo TIFF con 300 ppp. Por lo tanto, este script se puede utilizar con un perfil que digitalizará a 300 ppp. doc MergeDoc doc MergePS doc Logo real LogoWidth,LogoHeight real MergeTop, MergeLeft // dimensiones del logotipo en píxeles // el logotipo es una imagen con formato TIFF digitalizada a 300 ppp LogoWidth = 600.0 LogoHeight = 186.0 // Estos cálculos se realizan como números reales porque // la dimensión del papel es de 21,59 cm (8,5 pulg.) MergeLeft = 8.50 * 300.0 - LogoWidth MergeTop = 11.0*300.0 - LogoHeight Logo.AddFile("c:\ebc\lexlogo.tif") // Colocar el logotipo en todas las páginas with ImageMerge .input=original.document .MergeLeft= MergeLeft.AsInt() .MergeTop=MergeTop.AsInt() .AllPages=TRUE .ImageFile=Logo .Go() MergeDoc=.output endwith // Crear archivo PostScript para la impresión with ConvertToDocument .input=MergeDoc .Format=LDD_DOCFORMAT_PS .PaperSize=LDD_PAPERSIZE_AUTO .Orientation=LDD_ORIENTATION_AUTO .PSResolution=LDD_RESOLUTION_AUTO .AllPages=TRUE .Go() MergePS=.output endwith // Imprimir el original con logotipo with PrintForm .input=MergePS .IPAddress=original.userip .PaperType=LDD_PAPERTYPE_DEFAULT Objetos de acción 137 .Copies=1 .Nup=LDD_NUP_OFF .NupBorder=TRUE .Duplex=LDD_DUPLEX_OFF .OutputBin=LDD_OUTPUTBIN_DEFAULT .Collate=FALSE .ConfidentialPrint=FALSE .WaitForCompletion=FALSE .Staple=FALSE .Go() endwith Objetos de acción 138 ImageRotate (Imágenes: girar) Objetivo: girar una imagen en incrementos de 90°. Grupo de instalación: módulo de imágenes Propiedades: Nombre Descripción Tipo de datos Información adicional Input Documento origen de la acción. doc La entrada debe estar en formato de imagen. Output Contiene el documento de salida generado por la acción. doc A esta propiedad sólo se puede acceder después de llamar al método Go. AllPages Gira todas las páginas del documento de entrada. bool Valor predeterminado: Primera página a girar. int StartPage TRUE El valor sólo se utiliza cuando AllPages está definido en FALSE. Valor predeterminado: 0 EndPage Última página a girar. int El valor sólo se utiliza cuando AllPages está definido en FALSE. El valor 0 indica la última página. Valor predeterminado: 0 RotatePages Indica las páginas del rango especificado que se deben girar. int (LDD Constant) Valores válidos: LDD_IMGROTATE_ALLPAGES LDD_IMGROTATE_ODDPAGES LDD_IMGROTATE_EVENPAGES Valor predeterminado: LDD_IMGROTATE_ALLPAGES RotationAngle Ángulo de giro en grados. int (LDD Constant) Valores válidos: LDD_IMGROTATE_90 LDD_IMGROTATE_180 LDD_IMGROTATE_270 Valor predeterminado: LDD_IMGROTATE_90 Los nombres en negrita son propiedades obligatorias. Objetos de acción 139 Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 140 ImageSeparate (Imágenes: separar en documento) Objetivo: separa un archivo de imagen multipágina en varios archivos de imagen de una sola página. El formato de archivo de salida es el mismo que el de entrada. Grupo de instalación: módulo de imágenes Requisitos previos: ninguno Propiedades: Nombre Descripción Tipo de datos Información adicional Input Documento origen de la acción. doc La entrada debe estar en formato de imagen. Output Contiene el documento de salida generado por la acción. doc A esta propiedad sólo se puede acceder después de llamar al método Go. AllPages Separa todas las páginas del documento de entrada. bool Valor predeterminado: StartPage TRUE Primera página a separar. int El valor sólo se utiliza cuando AllPages está definido en FALSE. Valor predeterminado: 0 EndPage Última página a separar. int El valor sólo se utiliza cuando AllPages está definido en FALSE. El valor 0 indica la última página. Valor predeterminado: 0 Los nombres en negrita son propiedades obligatorias. Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 141 ImageText (Imágenes: texto de plantilla) Objetivo: esta acción superpone el texto especificado encima de la imagen indicada por la entrada. El texto especificado se agrega al rango de páginas indicado del documento de entrada. El usuario especifica la fuente, el tamaño en puntos y la dirección del texto. Además, el usuario debe especificar la ubicación del texto en la página. Grupo de instalación: módulo de imágenes Requisitos previos: ninguno Propiedades: Nombre Descripción Tipo de datos Información adicional Input Documento origen de la acción. doc Documento donde se debe colocar el texto. El documento debe estar en formato de imagen (como TIFF, JPEG, BMP). Output doc Contiene el documento de salida generado por la acción. Text Texto que se agregará al documento. string Font Fuente que se utilizará para el texto. int (LDD Constant) Documento creado por la incorporación del texto. La fuente debe tener uno de los siguientes valores: • LDD_IMGTEXTFONT_ARIAL (Arial) • LDD_IMGTEXTFONT_COURIER (Courier New) • LDD_IMGTEXTFONT_TIMES (Times New Roman) Valor predeterminado: • LDD_IMGTEXTFONT_ARIAL Size Tamaño en puntos que se utilizará para el texto. int El valor debe estar entre 5 y 20 (incluidos). El valor predeterminado es 10. Color Color que se utilizará para el texto. int (LDD Constant) El color debe tener uno de los siguientes valores: • • • • LDD_IMGTEXTCOLOR_BLACK LDD_IMGTEXTCOLOR_RED LDD_IMGTEXTCOLOR_GREEN LDD_IMGTEXTCOLOR_BLUE Valor predeterminado: • LDD_IMGTEXTCOLOR_BLACK Los nombres en negrita son propiedades obligatorias. Objetos de acción 142 Nombre Descripción Tipo de datos Información adicional Bold Indica si el texto debe estar en negrita. bool Valor predeterminado: Indica si el texto debe estar subrayado. bool Indica si el texto debe estar en cursiva. bool Especifica la orientación del documento digitalizado. int (LDD Constant) Underline Italic Orientation FALSE Valor predeterminado: FALSE Valor predeterminado: FALSE La orientación debe tener uno de los siguientes valores: • LDD_ORIENTATION_PORTRAIT • LDD_ORIENTATION_LANDSCAPE Valor predeterminado: • LDD_ORIENTATION_PORTRAIT Direction Especifica la dirección del texto que se agregará a la imagen. int (LDD Constant) La dirección debe tener uno de los siguientes valores: • LDD_IMGTEXTDIR_HORIZONTAL • LDD_IMGTEXTDIR_VERTICAL_DOWN • LDD_IMGTEXTDIR_VERTICAL_UP Valor predeterminado: • LDD_IMGTEXTDIR_HORIZONTAL Position Especifica la posición en la página donde se debe agregar el texto. int (LDD Constant) Esta posición es relativa a la esquina superior izquierda de la página, (0,0). Debe ser uno de los siguientes valores: • • • • • • • • • • LDD_IMGTEXTPOS_TOPLEFT LDD_IMGTEXTPOS_TOPCENTER LDD_IMGTEXTPOS_TOPRIGHT LDD_IMGTEXTPOS_CENTERLEFT LDD_IMGTEXTPOS_CENTER LDD_IMGTEXTPOS_CENTERIGHT LDD_IMGTEXTPOS_BOTTOMLEFT LDD_IMGTEXTPOS_BOTTOMCENTER LDD_IMGTEXTPOS_BOTTOMRIGHT LDD_IMGTEXTPOS_CUSTOM Valor predeterminado: • LDD_IMGTEXTPOS_TOPLEFT Customleft int Si se especifica que la posición sea personalizada, hace referencia a la esquina superior izquierda de la página a la que se agregará el texto. Los nombres en negrita son propiedades obligatorias. Objetos de acción 143 Nombre Descripción Customtop Allpages Indica si el texto se debe agregar a todas las páginas del documento. Tipo de datos Información adicional int Si se especifica que la posición sea personalizada, hace referencia a la esquina superior de la página a la que se agregará el texto. bool Valor predeterminado: TRUE. Startpage int Si AllPages está definido en FALSE, se trata del número de la primera página a la que se agregará el texto. Endpage int Si AllPages está definido en FALSE, se trata del número de la última página a la que se agregará el texto. Los nombres en negrita son propiedades obligatorias. Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 144 Ejemplos de valores de dirección y posición Para un documento digitalizado verticalmente: Dirección: Vertical_Up Posición: Center Posición: Bottom Right Dirección: Vertical_Down Posición:TopLeft Dirección: Horizontal Posición: Center Objetos de acción 145 Posición: Bottom Right Dirección: Vertical_Down Posición: TopLeft Dirección: Horizontal Dirección: Vertical_Up Para un documento digitalizado horizontalmente: ImageToHTML (Imágenes: convertir a HTML) Objetivo: convierte las páginas especificadas del archivo de imagen a formato HTML. Propiedades: Nombre Descripción Tipo de datos Información adicional input Documento origen de la acción. doc El documento de entrada debe estar en formato TIFF, JPEG, PCX, DCX, PNG o BMP. output Documento en el que se escribe la salida de la acción. doc AllPages Especifica si se deben convertir todas las páginas del documento de entrada. bool Primera página a convertir. int StartPage Valor predeterminado: TRUE El valor sólo se utiliza cuando AllPages está definido en FALSE. Valor predeterminado: 0 EndPage Última página a convertir. int El valor sólo se utiliza cuando AllPages está definido en FALSE. Si AllPages está definido en FALSE, defina este parámetro en 0 para indicar la última página. Valor predeterminado: 0 TextType Texto que se ha utilizado en el documento de entrada. int (LDD Constant) Para obtener más información, consulte Tipos de texto en la página 149. Valores válidos: LDD_TEXTTYPE_NORMAL LDD_TEXTTYPE_TYPEWRITER LDD_TEXTTYPE_MATRIX LDD_TEXTTYPE_OCRA LDD_TEXTTYPE_OCRB LDD_TEXTTYPE_MICR Valor predeterminado: LDD_TEXTTYPE_NORMAL Los nombres en negrita son propiedades obligatorias. Objetos de acción 146 Nombre Descripción Tipo de datos Información adicional Language Idioma del documento que se va a convertir. int (LDD Constant) Valores válidos: LDD_LANG_DANISH LDD_LANG_DUTCH LDD_LANG_ENGLISH LDD_LANG_FINNISH LDD_LANG_FRENCH LDD_LANG_GERMAN LDD_LANG_ITALIAN LDD_LANG_NORWEGIAN LDD_LANG_PORTUGUESE LDD_LANG_SPANISH LDD_LANG_SWEDISH Valor predeterminado: LDD_LANG_ENGLISH Format Tipo de salida HTML que se generará. int (LDD Constant) Valores válidos: LDD_HTMLFORMAT_32: utiliza el estándar HTML 3.2 y conserva la mayor parte del diseño del documento. LDD_HTMLFORMAT_40: utiliza el estándar HTML 4.0, incluyendo hojas de estilo en cascada (CSS) para conservar toda la presentación del documento. Valor predeterminado: LDD_HTMLFORMAT_40 Layout Especifica qué parte int (LDD Constant) de la presentación del documento se conserva en la salida. Valores válidos: LDD_HTMLLAYOUT_TEXT: sólo se conservan los párrafos en el texto reconocido con el uso de la etiqueta <p>. LDD_HTMLLAYOUT_PARAGRAPHS: en el archivo HTML de salida se conservan los párrafos y las fuentes del texto reconocido. Se utiliza la etiqueta <p>. LDD_HTMLLAYOUT_FULL: se conserva la presentación completa de la página origen utilizando tablas. Valor predeterminado: LDD_HTMLLAYOUT_FULL KeepColor Especifica si se conservan los colores originales de texto y fondo. bool Valor predeterminado: TRUE Los nombres en negrita son propiedades obligatorias. Objetos de acción 147 Nombre Descripción Tipo de datos Información adicional KeepPictures Especifica si las imágenes se guardan con el archivo HTML. bool Si se escriben las imágenes, se guardarán en formato JPEG. Si no se escriben, también se omiten las referencias a ellas en los archivos HTML. Valor predeterminado: TRUE SeparatePages Si esta propiedad es bool TRUE y se van a convertir varias páginas, se inserta la etiqueta <HR> entre las páginas. Valor predeterminado: TRUE Los nombres en negrita son propiedades obligatorias. Métodos: Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 148 Tipos de texto La propiedad de tipo de texto especifica el tipo de texto que se va a reconocer. Si hay varios tipos en el documento, seleccione el que más predomine o utilice la acción ImageToText. Dicha acción permite separar zonas y tipos de texto de zona. En la tabla siguiente se describen los distintos tipos de texto admitidos. Nombre Descripción LDD_TEXTTYPE_NORMAL Se trata de un texto tipográfico común que producen las impresoras láser o que se encuentra en libros y revistas. LDD_TEXTTYPE_TYPEWRITER Se trata del texto producido por una máquina de escribir. LDD_TEXTTYPE_DOTMATRIX Se trata del texto producido por una impresora matricial. LDD_TEXTYPE_OCRA Se trata de una fuente monoespaciada diseñada para el reconocimiento óptico de caracteres. Los bancos y las empresas de tarjetas de crédito la utilizan habitualmente. Puede tener el siguiente aspecto: LDD_TEXTYPE_OCRB Se trata de una fuente diseñada para el reconocimiento óptico de caracteres. Puede tener el siguiente aspecto: LDD_TEXTTYPE_MICR Este valor corresponde a un juego especial de caracteres numéricos impresos con tintas magnéticas especiales. Los caracteres MICR (reconocimiento de caracteres de tinta magnética) se encuentran en muchos lugares, incluyendo los cheques personales. Puede tener el siguiente aspecto: Objetos de acción 149 ImageToPDF (Imágenes: convertir a PDF [se pueden realizar búsquedas]) Objetivo: convierte las páginas especificadas del archivo de imagen a formato PDF. Grupo de instalación: módulo de imágenes Requisitos previos: ninguno Propiedades: Nombre Descripción Tipo de datos Información adicional input Documento origen de la acción. doc El documento de entrada debe estar en formato TIFF, JPEG, PCX, DCX, PNG o BMP. output Documento en el que se escribe la salida de la acción. doc AllPages Especifica si se deben bool convertir todas las páginas del documento de entrada. Valor predeterminado: Primera página a convertir. El valor sólo se utiliza cuando AllPages está definido en FALSE. StartPage int TRUE Valor predeterminado: 0 EndPage Última página a convertir. int El valor sólo se utiliza cuando AllPages está definido en FALSE. Si AllPages está definido en FALSE, defina este parámetro en 0 para indicar la última página. Valor predeterminado: 0 TextType Texto que se ha utilizado en el documento de entrada. int (LDD Constant) Para obtener más información, consulte Tipos de texto en la página 153. Valores válidos: LDD_TEXTTYPE_NORMAL LDD_TEXTTYPE_TYPEWRITER LDD_TEXTTYPE_MATRIX LDD_TEXTTYPE_OCRA LDD_TEXTTYPE_OCRB LDD_TEXTTYPE_MICR Valor predeterminado: LDD_TEXTTYPE_NORMAL Los nombres en negrita son propiedades obligatorias. Objetos de acción 150 Nombre Descripción Tipo de datos Información adicional Language Idioma del documento que se va a convertir. int (LDD Constant) Valores válidos: LDD_LANG_DANISH LDD_LANG_DUTCH LDD_LANG_ENGLISH LDD_LANG_FINNISH LDD_LANG_FRENCH LDD_LANG_GERMAN LDD_LANG_ITALIAN LDD_LANG_NORWEGIAN LDD_LANG_PORTUGUESE LDD_LANG_SPANISH LDD_LANG_SWEDISH Valor predeterminado: LDD_LANG_ENGLISH Format Tipo de salida PDF que se generará. int (LDD Constant) Valores válidos: LDD_PDFFORMAT_TEXTONLY: el texto reconocido se guarda como texto y las imágenes como imágenes. Es posible que el diseño del documento original (marcado de fuente, fondo y presentación) no se conserve completamente. LDD_PDFFORMAT_TEXTONIMAGE: toda la imagen se guarda como una imagen. Las áreas de texto se guardan como texto sobre la imagen. LDD_PDFFORMAT_IMAGEONTEXT: toda la imagen se guarda como una imagen. El texto reconocido se coloca debajo; se conserva toda la presentación de la página y está disponible la búsqueda de texto completo. Valor predeterminado: LDD_PDFFORMAT_IMAGEONTEXT ReplaceUncertain Especifica si las palabras reconocidas se sustituirán por su imagen. bool Esta propiedad únicamente se utiliza si el formato es sólo texto o texto sobre imagen; se ignora para imagen sobre texto. Valor predeterminado: TRUE Los nombres en negrita son propiedades obligatorias. Objetos de acción 151 Nombre Descripción Tipo de datos Información adicional KeepColor Especifica si se conservan los colores originales de texto y fondo. bool Esta propiedad únicamente se utiliza si el formato es sólo texto; de lo contrario, se ignora. Valor predeterminado: TRUE PictureResolution Puntos por pulgada (ppp) utilizados para guardar imágenes. int PictureQuality int Calidad JPEG en porcentaje utilizada para guardar imágenes. Valor predeterminado: 72 Valor predeterminado: 50 Los nombres en negrita son propiedades obligatorias. Métodos: Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 152 Tipos de texto La propiedad de tipo de texto especifica el tipo de texto que se va a reconocer. Si hay varios tipos en el documento, seleccione el que más predomine o utilice la acción ImageToText. Dicha acción permite separar zonas y tipos de texto de zona. En la tabla siguiente se describen los distintos tipos de texto admitidos. Nombre Descripción LDD_TEXTTYPE_NORMAL Se trata de un texto tipográfico común que producen las impresoras láser o que se encuentra en libros y revistas. LDD_TEXTTYPE_TYPEWRITER Se trata del texto producido por una máquina de escribir. LDD_TEXTTYPE_DOTMATRIX Se trata del texto producido por una impresora matricial. LDD_TEXTYPE_OCRA Se trata de una fuente monoespaciada diseñada para el reconocimiento óptico de caracteres. Los bancos y las empresas de tarjetas de crédito la utilizan habitualmente. Puede tener el siguiente aspecto: LDD_TEXTYPE_OCRB Se trata de una fuente diseñada para el reconocimiento óptico de caracteres. Puede tener el siguiente aspecto: LDD_TEXTTYPE_MICR Este valor corresponde a un juego especial de caracteres numéricos impresos con tintas magnéticas especiales. Los caracteres MICR (reconocimiento de caracteres de tinta magnética) se encuentran en muchos lugares, incluyendo los cheques personales. Puede tener el siguiente aspecto: Objetos de acción 153 ImageToRTF (Imágenes: convertir a RTF) Objetivo: convierte las páginas especificadas del archivo de imagen a formato RTF. Lo puede utilizar Microsoft Word o cualquier otro programa de procesamiento de textos que use este formato. Grupo de instalación: módulo de imágenes Requisitos previos: ninguno Propiedades: Nombre Descripción Tipo de datos Información adicional Input Documento origen de la acción. doc El documento de entrada debe estar en formato TIFF, JPEG, PCX, DCX, PNG o BMP. Output Documento en el que se escribe la salida de la acción. doc AllPages Especifica si se deben convertir todas las páginas del documento de entrada. bool Primera página a convertir. int StartPage Valor predeterminado: TRUE El valor sólo se utiliza cuando AllPages está definido en FALSE. Valor predeterminado: 0 EndPage Última página a convertir. int El valor sólo se utiliza cuando AllPages está definido en FALSE. Si AllPages está definido en FALSE, defina este parámetro en 0 para indicar la última página. Valor predeterminado: 0 Los nombres en negrita son propiedades obligatorias. Objetos de acción 154 Nombre Descripción Tipo de datos Información adicional TextType Texto que se ha utilizado en el documento de entrada. int (LDD Constant) Para obtener más información, consulte Tipos de texto en la página 157. Valores válidos: LDD_TEXTTYPE_NORMAL LDD_TEXTTYPE_TYPEWRITER LDD_TEXTTYPE_MATRIX LDD_TEXTTYPE_OCRA LDD_TEXTTYPE_OCRB LDD_TEXTTYPE_MICR Valor predeterminado: LDD_TEXTTYPE_NORMAL Language Idioma del documento que se va a convertir. int (LDD Constant) Valores válidos: LDD_LANG_DANISH LDD_LANG_DUTCH LDD_LANG_ENGLISH LDD_LANG_FINNISH LDD_LANG_FRENCH LDD_LANG_GERMAN LDD_LANG_ITALIAN LDD_LANG_NORWEGIAN LDD_LANG_PORTUGUESE LDD_LANG_SPANISH LDD_LANG_SWEDISH Valor predeterminado: LDD_LANG_ENGLISH Los nombres en negrita son propiedades obligatorias. Objetos de acción 155 Nombre Descripción Tipo de datos Información adicional PaperSize Tamaño del papel que se utilizará para la salida generada. int (LDD Constant) Para obtener los mejores resultados, debe aproximarse lo máximo posible al tamaño del papel del documento de entrada. Valores válidos: LDD_PAPERSIZE_A3 LDD_PAPERSIZE_A4 LDD_PAPERSIZE_A5 LDD_PAPERSIZE_JISB4 LDD_PAPERSIZE_JISB5 LDD_PAPERSIZE_LEGAL LDD_PAPERSIZE_LETTER LDD_PAPERSIZE_11X17 Valor predeterminado: LDD_PAPERSIZE_LETTER KeepColor KeepPictures Especifica si se conservan los colores originales de texto y fondo. Bool Especifica si las imágenes se guardan con el archivo RTF. Bool Valor predeterminado: TRUE Si deben guardar las imágenes, se guardarán en el archivo RTF generado; no estarán en archivos independientes. Valor predeterminado: TRUE Los nombres en negrita son propiedades obligatorias. Métodos: Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 156 Tipos de texto La propiedad de tipo de texto especifica el tipo de texto que se va a reconocer. Si hay varios tipos en el documento, seleccione el que más predomine o utilice la acción ImageToText. Dicha acción permite separar zonas y tipos de texto de zona. En la tabla siguiente se describen los distintos tipos de texto admitidos. Nombre Descripción LDD_TEXTTYPE_NORMAL Se trata de un texto tipográfico común que producen las impresoras láser o que se encuentra en libros y revistas. LDD_TEXTTYPE_TYPEWRITER Se trata del texto producido por una máquina de escribir. LDD_TEXTTYPE_DOTMATRIX Se trata del texto producido por una impresora matricial. LDD_TEXTYPE_OCRA Se trata de una fuente monoespaciada diseñada para el reconocimiento óptico de caracteres. Los bancos y las empresas de tarjetas de crédito la utilizan habitualmente. Puede tener el siguiente aspecto: LDD_TEXTYPE_OCRB Se trata de una fuente diseñada para el reconocimiento óptico de caracteres. Puede tener el siguiente aspecto: LDD_TEXTTYPE_MICR Este valor corresponde a un juego especial de caracteres numéricos impresos con tintas magnéticas especiales. Los caracteres MICR (reconocimiento de caracteres de tinta magnética) se encuentran en muchos lugares, incluyendo los cheques personales. Puede tener el siguiente aspecto: Objetos de acción 157 ImageToText (Imágenes: convertir a texto) Objetivo: convierte las páginas especificadas del archivo de imagen a formato de texto. También se puede utilizar para convertir únicamente zonas de la imagen. Grupo de instalación: módulo OCR Requisitos previos: ninguno Propiedades: Nombre Descripción Tipo de datos Información adicional input Documento origen de la acción. doc El documento de entrada debe estar en formato TIFF, JPEG, PCX, DCX, PNG o BMP. output Documento en el que se escribe la salida de la acción. doc Si no se especifica ninguna zona, todo el documento de entrada se convertirá a texto y estará disponible. Si no se especifica ninguna zona, este documento estará vacío. AllPages Especifica si se deben convertir todas las páginas del documento de entrada. bool Valor predeterminado: Primera página a convertir. int StartPage TRUE El valor sólo se utiliza cuando AllPages está definido en FALSE. Valor predeterminado: 0 EndPage Última página a convertir. int El valor sólo se utiliza cuando AllPages está definido en FALSE. Si AllPages está definido en FALSE, defina este parámetro en 0 para indicar la última página. Valor predeterminado: 0 Los nombres en negrita son propiedades obligatorias. Objetos de acción 158 Nombre Descripción Tipo de datos Información adicional TextType Texto que se ha utilizado en el documento de entrada. int (LDD Constant) Si no se especifica ninguna zona, se trata del tipo de texto de todo el documento. Si se especifican zonas, se trata del tipo de texto predeterminado de cualquier zona que no tenga especificado uno. Para obtener más información, consulte Tipos de texto en la página 162. Valores válidos: LDD_TEXTTYPE_NORMAL LDD_TEXTTYPE_TYPEWRITER LDD_TEXTTYPE_MATRIX LDD_TEXTTYPE_OCRA LDD_TEXTTYPE_OCRB LDD_TEXTTYPE_MICR Valor predeterminado: LDD_TEXTTYPE_NORMAL Language Idioma del documento que se va a convertir. int (LDD Constant) Si no se especifica ninguna zona, se trata del idioma de todo el documento. Si se especifican zonas, se trata del idioma predeterminado de cualquier zona que no tenga especificado uno. Valores válidos: LDD_LANG_DANISH LDD_LANG_DUTCH LDD_LANG_ENGLISH LDD_LANG_FINNISH LDD_LANG_FRENCH LDD_LANG_GERMAN LDD_LANG_ITALIAN LDD_LANG_NORWEGIAN LDD_LANG_PORTUGUESE LDD_LANG_SPANISH LDD_LANG_SWEDISH Valor predeterminado: LDD_LANG_ENGLISH Los nombres en negrita son propiedades obligatorias. Objetos de acción 159 Nombre Descripción Tipo de datos Información adicional OneLine Especifica si cada párrafo de texto se exporta como una línea de texto. bool Si es FALSE, las líneas del texto del párrafo se conservan en líneas independientes. Si es TRUE, cada párrafo se exporta como una línea de texto. Esta propiedad se ignora si no se especifica ninguna zona. Valor predeterminado: FALSE SeparateParagraphs Especifica si se inserta una línea vacía entre párrafos. bool Esta propiedad se ignora si no se especifica ninguna zona. Valor predeterminado: FALSE PageBreaks AppendEOF Especifica si se insertan bool símbolos de salto de página (0x12) entre las páginas si hay varias en el documento de entrada. Especifica si se inserta el símbolo EOF al final del documento de entrada. bool Esta propiedad se ignora si no se especifica ninguna zona. Valor predeterminado: FALSE Esta propiedad se ignora si no se especifica ninguna zona. Valor predeterminado: FALSE ZoneResults Contiene los resultados de las áreas de texto de las zonas. stringarray Si se especifican zonas, después de ejecutar el método Go, el texto de cada una es un elemento de la matriz de cadenas. Si no se especifica ninguna zona, está vacía y no se debe utilizar. Los nombres en negrita son propiedades obligatorias. Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 160 Sintaxis Descripción void AddZone(int left, int top, int right, int bottom [, int lang, int texttype]) Agrega un rectángulo específico (zona) que se leerá del documento de entrada. Las coordenadas de la zona se indican en píxeles, siendo (0,0) la esquina superior izquierda del documento. Si no se especifica idioma o tipo de texto, los valores asignados a dichas propiedades de acción se utilizan para la zona. Los resultados están disponibles en la propiedad ZoneResults después de llamar al método Go. Parámetros: left: coordenada x superior de la zona en píxeles top: coordenada y superior de la zona en píxeles right: coordenada x inferior de la zona en píxeles bottom: coordenada y inferior de la zona en píxeles lang: idioma de la zona especificada; si se indica, es una constante LDD y debe ser una de las constantes de idioma definidas anteriormente. Si no se especifica, se utiliza el valor de la propiedad language. texttype: tipo del texto de la zona especificada; si se indica, es una constante LDD y debe ser una de las constantes de tipo de texto (texttype) definidas anteriormente. Si no se especifica, se utiliza el valor de la propiedad texttype. Devuelve: Nada void ClearZones() Elimina todas las zonas de la lista de zonas. Se puede llamar para forzar que se convierta toda la página. Parámetros: Ninguno Devuelve: Nada Objetos de acción 161 Tipos de texto La propiedad de tipo de texto especifica el tipo de texto que se va a reconocer. Si hay varios tipos en el documento, seleccione el que más predomine o utilice la acción ImageToText. Dicha acción permite separar zonas y tipos de texto de zona. En la tabla siguiente se describen los distintos tipos de texto admitidos. Nombre Descripción LDD_TEXTTYPE_NORMAL Se trata de un texto tipográfico común que producen las impresoras láser o que se encuentra en libros y revistas. LDD_TEXTTYPE_TYPEWRITER Se trata del texto producido por una máquina de escribir. LDD_TEXTTYPE_DOTMATRIX Se trata del texto producido por una impresora matricial. LDD_TEXTYPE_OCRA Se trata de una fuente monoespaciada diseñada para el reconocimiento óptico de caracteres. Los bancos y las empresas de tarjetas de crédito la utilizan habitualmente. Puede tener el siguiente aspecto: LDD_TEXTYPE_OCRB Se trata de una fuente diseñada para el reconocimiento óptico de caracteres. Puede tener el siguiente aspecto: LDD_TEXTTYPE_MICR Este valor corresponde a un juego especial de caracteres numéricos impresos con tintas magnéticas especiales. Los caracteres MICR (reconocimiento de caracteres de tinta magnética) se encuentran en muchos lugares, incluyendo los cheques personales. Puede tener el siguiente aspecto: Objetos de acción 162 LaunchExe (Iniciar otro programa) Objetivo: inicia un archivo ejecutable o un programa de procesamiento por lotes desde el servicio Document Server. Esta función se puede utilizar para proporcionar funcionalidad personalizada que no ofrecen los módulos suministrados. Por ejemplo, puede iniciar herramientas o utilidades anteriores utilizadas en una empresa. El módulo de inicio sigue las asociaciones de archivo si se especifica un documento en lugar de un archivo ejecutable. Grupo de instalación: Document Server • • Para iniciar una aplicación que no sea una aplicación de consola Win32, el servicio Document Server se debe configurar para conectarse con una cuenta de usuario que tenga los privilegios de red necesarios. Para iniciar una aplicación que requiera servicios de red, el servicio Document Server se debe configurar para conectarse con una cuenta de usuario que tenga los privilegios de red necesarios. Para configurar el servicio Document Server para conectarse como un usuario (debe conectarse como administrador para realizar este procedimiento): Windows NT: 1 Haga clic en Inicio Æ Configuración Æ Panel de control Æ Servicios. 2 Seleccione el servicio Lexmark Document Server y, a continuación, haga clic en Inicio. 3 Haga clic en Esta cuenta y seleccione el nombre del usuario que tiene los derechos de acceso deseados. Escriba la contraseña del usuario y confirme. 4 Haga clic en Aceptar. Nota: para que el servicio se conecte como el usuario especificado, debe detener e iniciar el servicio Document Server o reiniciar el ordenador. Windows 2000/XP: 1 Vaya a Inicio Æ Configuración Æ Panel de control Æ Herramientas administrativas Æ Servicios. 2 Haga doble clic en el servicio Lexmark Document Server. 3 Seleccione la ficha Iniciar sesión. 4 Haga clic en Esta cuenta y seleccione el nombre del usuario que tiene los derechos de acceso deseados. Escriba la contraseña del usuario y confirme. 5 Haga clic en Aceptar. Nota: para que el servicio se conecte como el usuario especificado, debe detener e iniciar el servicio Document Server o reiniciar el ordenador. Objetos de acción 163 – – Si necesita ver la interfaz gráfica de usuario de la aplicación que va a iniciar, conéctese como una cuenta de sistema local y seleccione Permitir al servicio interactuar con el escritorio. No inicie aplicaciones que requieran entrada de datos por parte del usuario. Document Server se ejecuta como un servicio, por lo que no hay disponible una interfaz para solicitar datos o acciones al usuario. La aplicación debe llevar a cabo una acción y salir sin solicitar datos al usuario. Propiedades: Nombre Descripción Tipo de datos Información adicional Input Documento origen de la acción. doc Output Contiene el documento de salida generado por la acción. doc A esta propiedad sólo se puede acceder después de llamar al método Go. CommandLine Línea de comandos que contiene la aplicación que se ejecutará. La aplicación se debe especificar con una ruta de acceso completa. string La línea de comandos puede incluir una de las cuatro macros que se expanden en tiempo de ejecución a las rutas de acceso de los documentos de entrada o de salida. Son las siguientes: %i %I %o %O Para obtener más información, Macros de entrada/salida en la página 166. Las macros van precedidas de un único carácter %. Escriba %% para especificar un carácter % literal. WorkingDirectory Directorio que contiene la aplicación a iniciar o los archivos relacionados que necesita la aplicación. string De forma predeterminada, está sin definir y sólo las variables de entorno del sistema y las rutas de acceso están disponibles para la aplicación. WaitUntilComplete Esperar a que finalice la aplicación iniciada antes de continuar el proceso de este trabajo. Puede resultar útil para aplicaciones que emplean mucho tiempo. bool Si el valor es FALSE, no se puede detectar ningún error de la aplicación iniciada. Los nombres en negrita son propiedades obligatorias. Objetos de acción 164 Valor predeterminado: TRUE Nombre Descripción Tipo de datos Información adicional Timeout Límite de tiempo en milisegundos para la finalización de la aplicación especificada. int Si la aplicación no termina en el tiempo especificado, se informa de un error. El valor 0 indica que no hay tiempo de espera. Valor predeterminado: 0 KillOnTimeout Termina la aplicación si no ha finalizado antes del límite del tiempo de espera. bool Sólo se utiliza si el parámetro Timeout tiene un valor mayor que 0. Si el valor es FALSE, la aplicación seguirá ejecutándose después del límite de tiempo de espera, pero el trabajo continuará el procesamiento con el siguiente script. Si se termina una aplicación, el sistema se puede volver inestable; por lo tanto, tenga precaución si la aplicación utiliza recursos del sistema. Valor predeterminado: FALSE ReturnValue Valor de devolución de la aplicación después de terminar. int Sólo está disponible si WaitUntilComplete se ha definido en TRUE y está accesible después de que vuelva el método Go. Los nombres en negrita son propiedades obligatorias. Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Nota: si la aplicación a iniciar tiene una ruta de acceso o un nombre de archivo largo, la línea de comandos se debe poner entre comillas. Con el fin de utilizar comillas en el parámetro CommandLine, se debe anteponer el símbolo ^ a las comillas. De este modo se indica que son comillas literales. De lo contrario, las comillas se interpretarían como parte de la línea de comandos. Por ejemplo: ^"C:\Archivos de programa\Nuevo software\Interesante aplicación.exe^" Objetos de acción 165 Macros de entrada/salida %i: inicia la aplicación especificada por cada archivo del documento de entrada. Esto permite que se procesen varios documentos y se pueden iniciar varias copias de la aplicación. Cada instancia de la aplicación utiliza los valores de espera de finalización, tiempo de espera y detección de errores. La macro %i se expande a cada nombre de archivo de documento, entre comillas. %I: inicia la aplicación especificada una vez, pasando todos los archivos que componen el documento de entrada en una sola línea de comandos. Los archivos del documento están entre comillas y separados por un único carácter de espacio. Esto resulta útil para aplicaciones MDI o para aplicaciones que tienen que procesar todo el documento como una sola unidad. %o: se puede utilizar junto con el indicador "%i" y crea un archivo de salida independiente en el documento de salida por cada uso de la aplicación iniciada. Esto resulta útil para el procesamiento por lotes del documento como un conjunto de entidades independientes. Se produce un archivo de salida por cada archivo de entrada. %O: reutiliza un único archivo de salida, sin importar el número de veces que la aplicación iniciada se ejecute para el documento actual. De este modo, la salida de un documento de varios archivos se puede clasificar en uno solo. Inicio de comandos de DOS o archivos por lotes Para iniciar un comando de DOS o un archivo por lotes con esta acción, se debe anteponer "cmd.exe /c". De este modo se inicia una nueva instancia del intérprete de comandos que ejecuta el comando de DOS o el archivo por lotes. Por ejemplo, "cmd.exe /c storeit.bat". Comprobación de los valores devueltos Para comprobar el código de devolución del programa iniciado, la propiedad WaitUntilComplete se debe definir en TRUE. El método Go no volverá hasta que el programa haya terminado. Cuando vuelva el método Go, se puede acceder al valor devuelto mediante la propiedad ReturnValue. Si la aplicación iniciada es un archivo por lotes, se puede definir el parámetro ERRORLEVEL para indicar su valor de devolución. Si el archivo por lotes llama a otros programas, no están disponibles los códigos de devolución de los programas llamados; sólo está disponible el código de devolución definido por el archivo por lotes. Consulte la documentación de Windows sobre los archivos por lotes para obtener más información sobre el uso de ERRORLEVEL. Para todos los demás tipos de aplicaciones, normalmente definen un código de devolución cuando terminan. Consulte la documentación del programa iniciado para determinar el tipo de valores devueltos que proporciona. Objetos de acción 166 MergeForm (Formularios: combinar en PDF) Objetivo: combinar los valores del dataset en un Formset y generar un PDF del formulario combinado. Requisitos previos: el formset se debe haber cargado mediante Document Producer y el dataset debe tener el formato correcto. Propiedades Nombre Descripción Tipo de datos Información adicional Input Datos que se combinarán en el formset. dataset Output Contiene el documento de salida generado por el documento. doc A esta propiedad sólo se puede acceder después de llamar al método Go. Este documento estará en formato PDF. printoptions Contiene las opciones de impresión especificadas en el formset. printoptions A esta propiedad sólo se puede acceder después de llamar al método Go. Los nombres en negrita son propiedades obligatorias. Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 167 Acciones de ODBC Introducción En general, las acciones de ODBC (conexión abierta de bases de datos) realizan lo siguiente: 1 Se establece una conexión a la base de datos utilizando el nombre de usuario/contraseña especificados. 2 Se consulta la base de datos para determinar los tipos y los tamaños de los datos de la columna especificada. 3 Si se especifica el modo de transacciones, se inicia una nueva transacción. 4 Se ejecuta cualquier operación de apertura personalizada. 5 Se realiza el cuerpo de la acción concreta (ODBCWrite u ODBCRead), incluyendo cualquier personalización o valores predeterminados internos. 6 Se ejecuta cualquier operación de cierre personalizada. 7 Se cierra cualquier transacción abierta. Las acciones de la base de datos pueden leer valores de todos los tipos de datos SQL (lenguaje de consulta estructurado) predefinidos, así como escribirlos en ellos. Según el tipo de datos, se utiliza el controlador ODBC para convertir los datos de formato binario o de carácter al tipo de destino. Las conversiones a tipos de datos específicos de la base de datos o definidos por el usuario se realizan siempre que el controlador admita una conversión de datos de caracteres o el tipo definido por el usuario se basa en un tipo SQL predefinido con una conversión existente. No se admite la sintaxis SQL específica de la base de datos, sino la sintaxis estándar de ODBC. Por lo tanto, los scripts escritos deben ser independientes de la base de datos utilizada. Las llamadas personalizadas permiten realizar prácticamente cualquier operación de base de datos desde la acción. Sin embargo, requieren estar bastante familiarizado con la sintaxis SQL y el uso de la base de datos. Para obtener información sobre los requisitos y la configuración de software, la compatibilidad de los documentos de base de datos e información relativa a las columnas de fecha y hora, Referencia de ODBC en la página 227. Objetos de acción 168 ODBCWrite (Base de datos ODBC: escribir) Objetivo: esta acción agrega una nueva fila a la base de datos y tabla especificadas. ODBCWrite admite columnas de todos los tipos de datos SQL estándar, además de tipos adicionales específicos de la base de datos y definidos por el usuario, siempre que la base de datos admita las funciones de conversión necesarias. Puede incrustar datos de documento en la base de datos, siempre que la base de datos admita objetos grandes binarios (BLOB) y el controlador ODBC correspondiente exponga esta funcionalidad. Se proporcionan valores de módulo avanzados para administradores de base de datos con el fin de volver a configurar el módulo para llamar a sus propios procedimientos almacenados personalizados. Grupo de instalación: ODBC Uso avanzado La operación predeterminada de ODBCWrite, insertar una única fila en una sola tabla, sólo resulta adecuada para los esquemas de base de datos más simples. Mediante la llamada a sentencias SQL personalizadas, como un procedimiento almacenado, el administrador de la base de datos puede salvar esta limitación. Por ejemplo, una transacción podría crear una tabla de base de datos temporal mediante una llamada a un procedimiento almacenado en OpenSQLCall. La operación predeterminada de la acción podría escribir una fila en esta tabla. A continuación, CloseSQLCall podría llamar a otro procedimiento avanzado que migrase las filas de la tabla temporal al cuerpo de la base de datos y, después, eliminar la tabla temporal (o, lo que resulta más eficaz, borrar todas sus filas para utilizarla posteriormente). Mediante el uso del modo de transacciones, la operación se realiza de modo automático y varios usuarios de la acción ODBCWrite no entran en conflicto al acceder a la tabla temporal. CustomSQLCall ofrece la flexibilidad más avanzada de esta acción. Si no se suministra CustomSQLCall, la acción ejecuta la siguiente sentencia SQL: INSERT INTO {nombre de tabla} ({lista de columnas}) VALUES (?, ?, .....?) donde la lista de columnas consta de los nombres de columna suministrados en las llamadas de AssignValue. Se utiliza el carácter "?" como marcador de parámetro de los valores correspondientes. Observe que los caracteres "?" están enlazados por la acción a los datos subyacentes con el fin de garantizar que en cada valor de datos se realiza la conversión correcta de tipo de datos y se transmite a la base de datos del modo más eficaz posible. Si desea escribir su propia propiedad CustomSQLCall, asegúrese de incluir exactamente el número correcto de marcadores de parámetro "?" en el orden especificado. Asimismo, asegúrese de especificar una tabla que contenga columnas de los tipos de datos correctos, incluso si su propiedad CustomSQLCall no se utiliza directamente en esa tabla. La propiedad CustomSQLCall de ODBCWrite no debe devolver datos, pero se identifican los errores generados por la llamada. Para escribir datos NULL, no especifique dicho nombre de columna en el script. Las columnas que no se especifiquen utilizarán los valores predeterminados de la base de datos. Objetos de acción 169 Propiedades Nombre Descripción Tipo de datos Información adicional DataSource Nombre del origen de datos ODBC al que se conectará. string El origen de datos se debe configurar en el subprograma Orígenes de datos ODBC del Panel de control. TableName Nombre de la tabla que se utilizará en el origen de datos. string Esta propiedad se requiere incluso si los valores de personalización avanzados utilizan una consulta o un procedimiento almacenado en lugar de una tabla física. La tabla señalada debe incluir las columnas correctas con los tipos de datos correctos. Para el uso básico, las operaciones de base de datos insertan o seleccionan filas en la tabla indicada. Para el uso avanzado, proporcione una tabla prototipo sin datos pero con nombres y tipos de datos de columna correctos. LogonName Identidad que utilizará el servidor cuando se conecte a la base de datos. string Se indica además de cualquier conexión de red requerida. Si no se especifica, se utiliza el valor predeterminado según lo indicado en el subprograma Orígenes de datos ODBC. LogonPassword Contraseña para conectarse a la base de datos. string Si no se especifica, se utiliza el valor predeterminado para el origen de datos según lo indicado en el subprograma Orígenes de datos ODBC. ExtraConnectionSettings (Avanzado) Especifica valores adicionales para configurar el origen de datos ODBC en tiempo de ejecución. string Los valores disponibles normalmente se enumeran en el panel avanzado del subprograma Orígenes de datos ODBC. Los valores especificados aquí anularán los valores predeterminados definidos en el origen de datos. Los nombres en negrita son propiedades obligatorias. Objetos de acción 170 Nombre Descripción Tipo de datos Información adicional OpenSQLCall (Avanzado) Especifica una llamada SQL, como un procedimiento almacenado, al que desea que llame la acción al comienzo de cada invocación de esta acción. string Permite preparar la base de datos para recibir los datos o realizar operaciones de seguimiento. Los procedimientos almacenados que se utilicen aquí no deben devolver datos. CustomSQLCall (Avanzado) Permite string especificar una llamada SQL, como un procedimiento almacenado, que se invoca en lugar de la predeterminada. Para obtener información sobre la personalización avanzada, Uso avanzado en la página 169. Si no se especifica ninguna llamada, se proporciona un valor predeterminado adecuado para cada una de las acciones que realiza una operación simple de inserción o selección. Las acciones de lectura y escritura tienen requisitos distintos para la sentencia SQL suministrada aquí. Para obtener información sobre la personalización avanzada, Uso avanzado en la página 169. Valor predeterminado: Insertar registros en la tabla especificada Los nombres en negrita son propiedades obligatorias. Objetos de acción 171 Nombre Descripción Tipo de datos Información adicional CloseSQLCall (Avanzado) Especifica una llamada SQL, como un procedimiento almacenado, que se invoca al final de cada invocación de esta acción. string Permite limpiar la base de datos después de recibir los datos (como fijar las tablas de normalización) o realizar operaciones de seguimiento. Los procedimientos almacenados que se utilicen aquí no deben devolver datos. Valor predeterminado: Ninguno UseTransactedMode Especifica si todas las llamadas SQL, incluidas las personalizadas, que realiza la acción se agrupan como una única transacción. bool De este modo se garantiza la integridad de los datos si se producen errores o si varios usuarios acceden a las entradas de la base de datos que está manipulando, pero con un coste importante en el rendimiento. No defina en TRUE esta opción si otros usuarios o aplicaciones requieren acceso en tiempo real a las tablas de base de datos que está manipulando. Defina esta operación si se requiere integridad de los datos, si es posible que varias aplicaciones, incluyendo diferentes trabajos del servidor, requieran acceso a los mismos datos y si su DBMS lo admite. Valor predeterminado: FALSE Los nombres en negrita son propiedades obligatorias. Objetos de acción 172 Métodos Métodos Comentarios bool Go() Define la acción en la operación. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. bool AssignValue(string columnName, int value) AssignValue() asocia la columna de base de datos especificada al valor indicado. Acepta bool AssignValue(string columnName, real value) las propiedades de "valor" de tipo entero, real, bool AssignValue(string columnName, string value) cadena, booleano o documento. La fila no se inserta realmente en la base de datos hasta que bool AssignValue(string columnName, bool value) se llama el método Go() de ODBCWrite. Su valor devuelto indica si la operación se ha realizado bool AssignValue(string columnName, doc value) correcta o incorrectamente (true o false). El método AssignValue() se puede llamar para tantas columnas como sea necesario para una determinada tabla y se debe llamar una vez como mínimo antes de llamar Go(). Notas: • Los nombres de columna que no existan se ignoran y las advertencias se escribirán en el archivo de registro del servidor. De este modo, los scripts son independientes del esquema de la base de datos. • Como mínimo se debe escribir una columna en una fila nueva; de no hacerlo, se producirá un error en la acción. La acción aplicará los valores predeterminados según lo definido en la base de datos para todas las columnas sin especificar. Los datos deben adherirse a todas las restricciones y referencias cruzadas de la base de datos. • La acción debe rellenar todas las columnas definidas como obligatorias en el esquema de tablas de la base de datos y que no proporcionen los valores predeterminados o los desencadenadores de la base de datos; de no hacerlo, se producirá un error. • La acción realiza conversiones de tipo adecuadas de los datos de entrada que coincidan con el tipo de datos del campo de destino. Si no hay disponible ninguna conversión de tipo relevante, se produce un error en la acción. Si es necesario truncar los datos para que quepan en un campo, se realiza el truncamiento y la acción escribe una advertencia en el archivo de registro. Objetos de acción 173 ODBCRead (Base de datos ODBC: leer) Objetivo: esta acción lee una fila, o varias filas, de la base de datos y tabla especificadas mediante ODBC. Admite campos de todos los tipos de datos SQL estándar, además de tipos adicionales específicos del origen de datos y definidos por el usuario, siempre que el DBMS admita las funciones de conversión necesarias. Puede leer datos de documento incrustados de la base de datos, siempre que el DBMS subyacente admita objetos grandes binarios (BLOB) y el controlador ODBC correspondiente exponga esta funcionalidad. Las filas se pueden seleccionar de la base de datos mediante compatibilidad completa de consultas SQL, ordenación y otros criterios de selección. Se pueden leer columnas determinadas de los resultados devueltos. Se proporcionan valores de módulo avanzados para administradores de base de datos con el fin de volver a configurar el módulo para llamar a sus propios procedimientos almacenados personalizados. Grupo de instalación: ODBC Uso avanzado La operación predeterminada de lectura de resultados de una única tabla con una única consulta SQL debe ser suficiente para los esquemas de base de datos simples. Se pueden realizar consultas avanzadas como parte de la cláusula WHERE, pero los resultados devueltos siempre deben proceder de una única tabla. Mediante la llamada a sentencias SQL personalizadas, como un procedimiento almacenado, el administrador de la base de datos puede salvar esta limitación. Por ejemplo, una transacción podría crear una tabla de base de datos temporal mediante una llamada a un procedimiento almacenado en OpenSQLCall y rellenar dicha tabla con los resultados de una consulta SQL complejo o unión de tablas. La operación predeterminada de la acción podría leer filas de esta tabla. A continuación, CloseSQLCall podría llamar a otro procedimiento almacenado que eliminara la tabla temporal (o, lo que resulta más eficaz, que borrara todas sus filas para utilizarla posteriormente). Mediante el uso del modo de transacciones, la operación se realiza de modo automático y varios usuarios de la acción ODBCRead no entran en conflicto al acceder a la tabla temporal. CustomSQLCall ofrece la flexibilidad más avanzada de esta acción. Si no se suministra CustomSQLCall, la acción ejecuta la siguiente sentencia SQL: SELECT {DISTINCT} {lista de columnas} FROM {nombre de tabla} {WHERE cláusula where} donde la lista de columnas es la lista de las columnas en el orden especificado por las propiedades DataColumns y DocumentColumns. DISTINCT es opcional; la cláusula WHERE es opcional pero normalmente se proporciona. Si desea escribir su propia propiedad CustomSQLCall, asegúrese de devolver conjuntos de filas que contengan las columnas especificadas en el orden adecuado y con los tipos de datos correctos. Asegúrese también de especificar una tabla que contenga columnas de los tipos de datos correctos, incluso si su propiedad CustomSQLCall no se utiliza directamente en esa tabla. La propiedad CustomSQLCall de ODBCRead debe devolver conjuntos de filas del mismo modo que la sentencia SELECT de SQL. Se identifican los errores generados por la llamada. Objetos de acción 174 Propiedades: Nombre Descripción Tipo de datos Información adicional DataSource Nombre del origen de datos ODBC al que se conectará. string El origen de datos se debe configurar en el subprograma Orígenes de datos ODBC del Panel de control. TableName Nombre de la tabla que se utilizará en el origen de datos. string Tenga en cuenta que esta propiedad se requiere incluso si los valores de personalización avanzados utilizan una consulta o un procedimiento almacenado en lugar de una tabla física. La tabla señalada debe incluir las columnas correctas con los tipos de datos correctos. Para el uso básico, las operaciones de base de datos seleccionan filas de la tabla indicada. Para el uso avanzado, la operación de base de datos proporciona una tabla prototipo sin datos pero con nombres y tipos de datos de columna correctos. LogonName Identidad que utilizará el servidor cuando se conecte a la base de datos. string Se indica además de cualquier conexión de red requerida. Si no se especifica, se utiliza el valor predeterminado según lo indicado en el subprograma Orígenes de datos ODBC. LogonPassword Contraseña para conectarse a la base de datos. string Si no se especifica, se utiliza el valor predeterminado para el origen de datos según lo indicado en el subprograma Orígenes de datos ODBC. ExtraConnectionSettings (Avanzado) Especifica valores adicionales para configurar el origen de datos ODBC en tiempo de ejecución. string Los valores disponibles normalmente se enumeran en el panel avanzado del subprograma Orígenes de datos ODBC. Los valores especificados aquí anularán los valores predeterminados definidos en el origen de datos. OpenSQLCall string Permite preparar la base de datos para recibir los datos o realizar operaciones de seguimiento. Los procedimientos almacenados que se utilicen aquí no deben devolver datos. (Avanzado) Especifica una llamada SQL, como un procedimiento almacenado, al que desea que llame la acción al comienzo de cada invocación de esta acción. Los nombres en negrita son propiedades obligatorias. Objetos de acción 175 Para obtener información sobre la personalización avanzada, Uso avanzado en la página 174. Nombre Descripción Tipo de datos Información adicional CustomSQLCall (Avanzado) Permite especificar una llamada SQL, como un procedimiento almacenado, que se invocará en lugar de la predeterminada. string Si no se especifica ninguna llamada, se proporciona un valor predeterminado adecuado para cada una de las acciones que realiza una operación simple de inserción o selección. Las acciones de lectura y escritura tienen requisitos distintos para la sentencia SQL suministrada aquí. Para obtener información sobre la personalización avanzada, Uso avanzado en la página 174. CloseSQLCall (Avanzado) Especifica una llamada SQL, como un procedimiento almacenado, que se invocará al final de cada invocación de esta acción. string Permite limpiar la base de datos después de recibir los datos (como fijar las tablas de normalización) o realizar operaciones de seguimiento. Los procedimientos almacenados que se utilicen aquí no deben devolver datos. Para obtener información sobre la personalización avanzada, Uso avanzado en la página 174. Valor predeterminado: Ninguno UseTransactedMode (Avanzado) Especifica si todas las llamadas SQL, incluidas las personalizadas, que realiza la acción se agrupan como una única transacción. bool De este modo se garantiza la integridad de los datos si se producen errores o si varios usuarios acceden a las entradas de la base de datos que está manipulando, pero con un coste importante en el rendimiento. No defina en TRUE esta opción si otros usuarios o aplicaciones requieren acceso en tiempo real a las tablas de base de datos que está manipulando. Defina esta operación si se requiere integridad de los datos, si es posible que varias aplicaciones, incluyendo diferentes trabajos del servidor, requieran acceso a los mismos datos y si su DBMS lo admite. Valor predeterminado: FALSE Los nombres en negrita son propiedades obligatorias. Objetos de acción 176 Nombre Descripción Tipo de datos Información adicional DataColumns Lista delimitada por comas de los nombres de las columnas que contienen los datos que se devolverán como una cadena. string Cada columna especificada debe existir en la tabla especificada y debe tener un formato de datos que permita la conversión de cadena. Se definirá una variable en el valor de cada columna. El nombre de la variable será el mismo que el nombre de columna. El valor predeterminado es no seleccionar columnas de datos, pero se debe especificar una columna como mínimo en los valores DataColumns o DocumentColumns. DocumentColumns Lista delimitada por comas de los nombres de las columnas que contienen los datos que se escribirán en archivos. string Cada columna indicada debe existir en la tabla especificada y debe tener un formato de datos que requiera la recuperación de archivos, como objetos binarios o texto de longitud arbitraria. Cada nombre de columna puede recibir una extensión opcional, especificando la extensión que se asignará a los archivos recién creados. Se definirá una variable para hacer referencia a un documento que contenga los datos de la columna. El nombre de la variable será el mismo que el nombre de columna. El valor predeterminado es no seleccionar columnas de documento, pero se debe especificar una columna como mínimo en los valores DataColumns o DocumentColumns. Los nombres en negrita son propiedades obligatorias. Objetos de acción 177 Nombre Descripción Tipo de datos Información adicional WhereClause Condición SQL, adecuada para incluirla en la cláusula WHERE de una sentencia SELECT, que especifica las filas de la base de datos que se devolverán. string La cláusula WHERE inicial no se incluye en la cadena. Una cláusula WHERE normalmente es una condición SQL simple como "last_name = 'Ruiz'". La condición puede incluir cualquier comparación SQL válida, como operadores aritméticos y coincidencia de patrones. El valor predeterminado es una cláusula WHERE vacía, que seleccionará todas las filas. (Avanzado) La cadena puede incluir cualquier elemento que siga a la palabra WHERE en una cláusula SELECT de SQL. En concreto, se pueden incluir palabras clave de SQL como GROUP BY, HAVIN, ORDER BY o COMPUTE. La cláusula puede incluir incluso subconsultas complejas. Distinct Especifica si sólo se deben devolver filas diferentes en el conjunto de filas devuelto. bool Los nombres en negrita son propiedades obligatorias. Objetos de acción 178 El valor predeterminado es FALSE, lo que significa que se devolverán todas las filas que coincidan con la cláusula WHERE, incluso si hay varias filas idénticas. Métodos Método Comentarios bool Go() Esta acción ejecuta la consulta; sin embargo, no se ha obtenido ninguna fila después de la ejecución de Go(). Para recuperar valores, debe llamar a GetNextRow para obtener una fila seguido de GetInt, GetReal, etc. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. bool GetNextRow() Este método intenta obtener la siguiente fila del conjunto de resultados de la consulta. Si se ha obtenido una fila, el método devuelve TRUE. Cuando ya no hay disponibles más filas en el conjunto de resultados, el método devuelve FALSE. int GetInt(string columnName) Los métodos Getxxx() intentan obtener el valor de la columna especificada de la última fila obtenida y devolverlo al script como el tipo de datos solicitado. El valor de la columna se debe poder convertir al tipo especificado; si no es así, se produce un error. Las columnas de fecha y hora se pueden recuperar mediante GetString() y devolver con el formato ODBC estándar AAAA-MM-DD HH:MM:SS[.FFFFFF]. real GetReal(string columnName) string GetString(string columnName) doc GetDoc(string columnName) bool Finished() Cierra el conjunto de resultados de la consulta y otros recursos utilizados por la acción. Notas: • Los datos de campo (nombres de columna) que no existan se ignoran y las advertencias se escriben en el archivo de registro del servidor. De este modo, los scripts son independientes del esquema de la base de datos. • Se debe leer al menos una columna mediante una consulta, por lo que DataColumns o DocumentColumns debe especificar como mínimo una columna válida de la tabla. • Si desea utilizar los datos de documento posteriormente en un script, debe conocer su tipo de datos. Los datos de documento normalmente se almacenan como datos binarios sin formato en la base de datos, sin información de comprobación de tipo. Por ejemplo, si la base de datos contiene una columna denominada 'historial' y sabe que el contenido de la columna son imágenes TIFF, debe especificar "historial.tif" como el nombre de columna en la variable DocumentColumns. • Si se produce un error en el servidor antes de obtener todas las filas del conjunto de resultados, el conjunto de resultados de la consulta contendrá TODAS las filas que cumplan los criterios de la consulta la próxima vez que se ejecute el trabajo. Es decir, el servidor no "recordará" las filas que se han procesado antes del error y se reanudará a partir de ahí una vez iniciado el servidor. Objetos de acción 179 PrintByDriver (Imprimir) Objetivo: imprime una o varias imágenes utilizando el controlador de Windows especificado. Grupo de instalación: módulo de imágenes Requisitos previos: un objeto de impresora para la impresora de la carpeta Impresoras de Document Server. Propiedades Nombre Descripción Tipo de datos Información adicional Input Datos origen de la acción. doc PrinterName Especifica el nombre de la impresora de Windows que se utilizará. string Debe ser el nombre exacto de un objeto de impresora de la carpeta Impresoras. Copies Número de copias que se imprimirán. int Valores válidos: 1–999 Valor predeterminado: 1 Collate ColorModel Si se especifican varias copias, indica si las copias se clasifican. bool Valor predeterminado: FALSE int (LDD Constant) En impresoras en color, esta propiedad indica si sólo se debe utilizar el cartucho negro de forma que la salida aparezca en negro/escala de grises en lugar de en color. Las impresoras monocromas ignoran esta propiedad. Valores válidos: LDD_PRINTER_DEFAULT LDD_COLORMODEL_CMYK LDD_COLORMODEL_BLACK Valor predeterminado: LDD_PRINTER_DEFAULT Duplex Indica el tipo de dúplex que se utilizará para este trabajo de impresión. int (LDD Constant) Si la impresora no admite la impresión dúplex, este valor se ignora. Valores válidos: LDD_PRINTER_DEFAULT LDD_DUPLEX_OFF LDD_DUPLEX_LONGEDGE LDD_DUPLEX_SHORTEDGE Valor predeterminado: LDD_PRINTER_DEFAULT Los nombres en negrita son propiedades obligatorias. Objetos de acción 180 Nombre Descripción Tipo de datos Información adicional Orientation Orientación que se utilizará para todo el trabajo. int (LDD Constant) Valores válidos: LDD_PRINTER_DEFAULT LDD_ORIENTATION_PORTRAIT LDD_ORIENTATION_LANDSCAPE Valor predeterminado: LDD_PRINTER_DEFAULT PaperSize Tamaño del papel que se utilizará para todo el trabajo. int (LDD Constant) Si no existe el tamaño del papel especificado, la impresora puede solicitarlo o seleccionar uno alternativo. Valores válidos: LDD_PRINTER_DEFAULT LDD_PAPERSIZE_11X17 LDD_PAPERSIZE_A3 LDD_PAPERSIZE_A4 LDD_PAPERSIZE_A5 LDD_PAPERSIZE_EXECUTIVE LDD_PAPERSIZE_FOLIO LDD_PAPERSIZE_JISB4 LDD_PAPERSIZE_JISB5 LDD_PAPERSIZE_LEGAL LDD_PAPERSIZE_LETTER LDD_PAPERSIZE_STATEMENT Valor predeterminado: LDD_PRINTER_DEFAULT Resolution Resolución de la imagen que se generará. int (LDD constant) Valores válidos: LDD_PRINTER_DEFAULT LDD_RESOLUTION_150 LDD_RESOLUTION_300 LDD_RESOLUTION_600 LDD_RESOLUTION_1200 Valor predeterminado: LDD_PRINTER_DEFAULT AllPages Imprime todas las páginas del documento de entrada. bool Los nombres en negrita son propiedades obligatorias. Objetos de acción 181 Valor predeterminado: TRUE Nombre Descripción Tipo de datos Información adicional StartPage Primera página a imprimir. int Para mantener la compatibilidad con scripts anteriores, se utilizará este valor si es distinto de cero, incluso cuando AllPages esté definido en FALSE. Valor predeterminado: 0 EndPage Última página a imprimir. int Para mantener la compatibilidad con scripts anteriores, se utilizará este valor si es distinto de cero, incluso cuando AllPages esté definido en FALSE. Valor predeterminado: 0 Los nombres en negrita son propiedades obligatorias. Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 182 PrintForm (Imprimir) Objetivo: imprimir un formulario PDF combinado que se haya generado mediante la acción MergeForm. Grupo de instalación: módulo de impresión Requisitos previos: ninguno Propiedades: Nombre Descripción Tipo de datos Información adicional Input Documento que se imprimirá. doc Debe estar en formato PDF. IPAddress Dirección IP o nombre de host DNS de la impresora o nombre de la cola de impresión de Windows. string Para especificar una cola de impresión de Windows, introduzca: "Q:" seguido del nombre de la cola. De lo contrario, introduzca la dirección IP o el nombre de host DNS. Para obtener más información, Uso de una cola de impresión de Windows en la página 185. PrinterType Especifica el tipo de impresora que se utilizará. int (LDD Constant) Valores válidos: LDD_PRINTERTYPE_LEXPS: impresora PostScript de Lexmark LDD_PRINTERTYPE_LEXIQPLUS: impresora Lexmark con soporte para PDF y formato de página LDD_PRINTERTYPE_LEXIQ: impresora Lexmark con soporte para PDF Valor predeterminado: LDD_PRINTERTYPE_LEXPS PrintOptions Opciones que se utilizarán al imprimir el formulario. printoptions Los nombres en negrita son propiedades obligatorias. Objetos de acción 183 Pueden ser las opciones de impresión de la salida de la acción MergeForm o se pueden configurar manualmente. Nombre Descripción Tipo de datos Información adicional WaitForCompletion Esperar a que termine el trabajo antes de continuar. bool Esta opción sólo la admiten las impresoras de Lexmark y se debe definir en FALSE para las demás impresoras. Si se define en TRUE, el método Go no volverá hasta que la impresión se haya realizado o se alcance el tiempo de espera especificado por WaitTimeout. Si se define en FALSE, el método Go vuelve inmediatamente después de enviar la solicitud de impresión. Valor predeterminado: FALSE WaitTimeout Número máximo de minutos que se esperará a que termine el trabajo. int Este valor se ignora si WaitForCompletion está definido en FALSE. Este valor debe dejar tiempo para que se imprima todo el trabajo y el tiempo de calentamiento que necesite la impresora. Valores válidos: 1 – 60 Valor predeterminado: 5 Los nombres en negrita son propiedades obligatorias. Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 184 Tipo de impresora Un impresora LEXIQ es una impresora Lexmark con una opción ImageQuick. Si sólo se especifican opciones de impresión por trabajo, éste es el modo más sencillo de imprimir el formulario combinado. El PDF se puede enviar directamente a la impresora sin tener que convertirlo a PostScript. Si se especifican opciones de impresión por página, el PDF se convertirá a PostScript y, a continuación, se enviará a la impresora. Una impresora LEXPS es una impresora PostScript de Lexmark. El PDF siempre se convertirá a PostScript para este tipo de impresora. Uso de una cola de impresión de Windows Al imprimir numerosos trabajos en la misma impresora, es más efectivo imprimir mediante una cola de impresión de Windows que directamente en la impresora. Esto también ofrece ventajas adicionales ya que permite administrar los trabajos de impresión, realizar una pausa en la cola, especificar una hora a la que se desea que se realicen los trabajos de impresión, etc. Para crear la cola de impresión que se va a utilizar con LDD, vaya a la carpeta Impresoras del ordenador donde reside Document Server. Cree un puerto TCP/IP estándar o un puerto de red de Lexmark con la dirección IP de la impresora a la que se deben enviar los trabajos. A continuación, agregue un objeto de impresora que se corresponda con la impresora a la que hace referencia el puerto TCP/IP estándar. El nombre asignado al objeto de impresora es el que se debe utilizar para el nombre de la cola. Esta cola ya se puede utilizar en un script LDD. Consulte Ejemplo 2: en la página 186, en el que se explica cómo se usa una cola. Ejemplo 1: En este ejemplo, se combinará un formulario con los datos procedentes de un flujo de impresión y la acción PrintForm utilizará las opciones de impresión generadas por la acción MergeForm. with MergeForm .input = original.dataset .Go() endwith with PrintForm .input = MergeForm.output .PrinterType = LDD_PRINTERTYPE_LEXPS .PrintOptions = MergeForm.printoptions .IPAddress = "miimpresora.miempresa.com" .WaitForCompletion = FALSE .Go() endwith Objetos de acción 185 Ejemplo 2: El ejemplo 1 ha enviado el formulario combinado directamente a una impresora. En este ejemplo, el formulario combinado se envía a una cola de impresión de Windows denominada LDD1. with MergeForm .input=original.dataset .Go() endwith with PrintForm .input=MergeForm.output .IPAddress="Q:LDD1" .PrinterType=LDD_PRINTERTYPE_LEXPS .PrintOptions=MergeForm.printoptions .WaitForCompletion=FALSE .Go() endwith Ejemplo 3: En este ejemplo, se combinará un formulario con los datos procedentes de un cliente de Document Portal para imprimir un formulario en blanco. La acción PrintForm utilizará las opciones de impresión enviadas por Document Portal. dataset ds ds.SetFormsetName("miformulario") with MergeForm .input = ds .Go() endwith with PrintForm .input = MergeForm.output .PrinterType = LDD_PRINTERTYPE_LEXIQ .PrintOptions = original.printoptions .IPAddress = original.printerip .WaitForCompletion = FALSE .Go() endwith Objetos de acción 186 Ejemplo 4: En este ejemplo, se combinará un formulario con los datos procedentes de un flujo de impresión. En esta ocasión, las opciones de impresión que utiliza PrintForm se definen manualmente. Se trata de un formulario multicopia y se imprimirá la página 1 desde la bandeja 1 y la página 2 desde la bandeja 2; a continuación, se grapará la salida. Debido a que se están definiendo opciones por página, el tipo de impresora será PostScript. with MergeForm .input = original.dataset .Go() endwith printoptions po po.SetJobOption(LDD_PRINTOPTION_STAPLE, LDD_STAPLE_ON) po.SetPageOption(LDD_PRINTOPTION_PAPERSOURCE, LDD_PAPERSOURCE_TRAY1, 1, 1) po.SetPageOption(LDD_PRINTOPTION_PAPERSOURCE, LDD_PAPERSOURCE_TRAY2, 2, 2) with PrintForm .input = MergeForm.output .PrinterType = LDD_PRINTERTYPE_LEXPS .PrintOptions = po .IPAddress = "miimpresora.miempresa.com" .WaitForCompletion = FALSE .Go() endwith Objetos de acción 187 PrintJob (Imprimir) Objetivo: esta acción elude el subsistema de Windows e imprime un archivo PostScript directamente en una impresora de red. Grupo de instalación: módulo de impresión Requisitos previos: ninguno Propiedades Nombre Descripción Tipo de datos Información adicional Input Documento que se imprimirá. doc IPAddress Dirección IP o nombre de host DNS de la impresora. string Copies Número de copias que se imprimirán. Int Debe estar en formato PostScript. Valores válidos: 1 – 999 Valor predeterminado: 1 PaperSource Origen del papel utilizado para imprimir todo el trabajo. int (LDD Constant) Si el origen del papel especificado no está disponible para la impresora, ésta seleccionará el origen del papel que se utilizará. Valores válidos: LDD_PRINTER_DEFAULT LDD_PAPERSOURCE_TRAY1 LDD_PAPERSOURCE_TRAY2 LDD_PAPERSOURCE_TRAY3 LDD_PAPERSOURCE_TRAY4 LDD_PAPERSOURCE_TRAY5 LDD_PAPERSOURCE_ENV_FEEDER LDD_PAPERSOURCE_MP_FEEDER LDD_PAPERSOURCE_MANUAL_ENV LDD_PAPERSOURCE_MANUAL_PAPER Valor predeterminado: LDD_PRINTER_DEFAULT Los nombres en negrita son propiedades obligatorias. Objetos de acción 188 Nombre Descripción Tipo de datos Información adicional PaperType Tipo de papel que se utilizará para todo el trabajo. int (LDD Constant) Si no existe el tipo de papel especificado, la impresora puede solicitarlo o seleccionar uno alternativo. Valores válidos: LDD_PAPERTYPE_PLAIN LDD_PAPERTYPE_COLOR LDD_PAPERTYPE_TRANSPARENCY LDD_PAPERTYPE_CARDSTOCK LDD_PAPERTYPE_LABELS LDD_PAPERTYPE_LETTERHEAD LDD_PAPERTYPE_PREPRINTED LDD_PAPERTYPE_BOND LDD_PAPERTYPE_ENVELOPE LDD_PAPERTYPE_CUSTOM1 LDD_PAPERTYPE_CUSTOM2 LDD_PAPERTYPE_CUSTOM3 LDD_PAPERTYPE_CUSTOM4 LDD_PAPERTYPE_CUSTOM5 LDD_PAPERTYPE_CUSTOM6 Valor predeterminado: LDD_PRINTER_DEFAULT Los nombres en negrita son propiedades obligatorias. Objetos de acción 189 Nombre Descripción Tipo de datos Información adicional PaperSize Tamaño del papel que se utilizará para todo el trabajo. int (LDD Constant) Si no existe el tamaño del papel especificado, la impresora puede solicitarlo o seleccionar uno alternativo. Valores válidos: LDD_PRINTER_DEFAULT LDD_PAPERSIZE_11X17 LDD_PAPERSIZE_A3 LDD_PAPERSIZE_A4 LDD_PAPERSIZE_A5 LDD_PAPERSIZE_ENV_10 LDD_PAPERSIZE_ENV_9 LDD_PAPERSIZE_ENV_734 LDD_PAPERSIZE_ENV_B5 LDD_PAPERSIZE_ENV_C5 LDD_PAPERSIZE_ENV_DL LDD_PAPERSIZE_ENV_OTHER LDD_PAPERSIZE_EXECUTIVE LDD_PAPERSIZE_FOLIO LDD_PAPERSIZE_JISB4 LDD_PAPERSIZE_JISB5 LDD_PAPERSIZE_LEGAL LDD_PAPERSIZE_LETTER LDD_PAPERSIZE_STATEMENT LDD_PAPERSIZE_UNIVERSAL Valor predeterminado: LDD_PRINTER_DEFAULT Orientation Orientación que se utilizará para todo el trabajo. int (LDD Constant) Valores válidos: LDD_PRINTER_DEFAULT LDD_ORIENTATION_PORTRAIT LDD_ORIENTATION_LANDSCAPE Valor predeterminado: LDD_PRINTER_DEFAULT Los nombres en negrita son propiedades obligatorias. Objetos de acción 190 Nombre Descripción Tipo de datos Información adicional Nup Especifica que se impriman varias páginas en una sola. int (LDD Constant) Valores válidos: LDD_NUP_OFF LDD_NUP_2UP LDD_NUP_3UP LDD_NUP_4UP LDD_NUP_6UP LDD_NUP_9UP LDD_NUP_12UP LDD_NUP_16UP Valor predeterminado: LDD_NUP_OFF NupBorder Especifica si se debe colocar un borde alrededor de cada página. bool Este valor se ignora si Nup está desactivado. Valor predeterminado: TRUE NupOrder int (LDD Constant) Este valor se ignora si Nup está desactivado. Valores válidos: LDD_NUP_ORDER_HORIZONTAL LDD_NUP_ORDER_VERTICAL LDD_NUP_ORDER_REV_HORIZONTAL LDD_NUP_ORDER_REV_VERTICAL Valor predeterminado: LDD_NUP_ORDER_HORIZONTAL NupOrientation int (LDD Constant) Este valor se ignora si Nup está desactivado. Valores válidos: LDD_NUP_ORIENTATION_AUTO LDD_NUP_ORIENTATION_PORTRAIT LDD_NUP_ORIENTATION_LANDSCAPE Valor predeterminado: LDD_NUP_ORIENTATION_PORTRAIT Los nombres en negrita son propiedades obligatorias. Objetos de acción 191 Nombre Descripción Tipo de datos Información adicional Duplex Indica el tipo de dúplex que se utilizará para este trabajo de impresión. int (LDD Constant) Si la impresora no admite la impresión dúplex, este valor se ignora. Valores válidos: LDD_DUPLEX_OFF LDD_DUPLEX_LONGEDGE LDD_DUPLEX_SHORTEDGE Valor predeterminado: LDD_DUPLEX_OFF Collate Staple HolePunch Si se especifican varias copias, indica si las copias se clasifican. bool Indica si se debe grapar este trabajo de impresión. bool Indica si se debe perforar este trabajo de impresión. bool Valor predeterminado: FALSE Valor predeterminado: FALSE Valor predeterminado: FALSE Los nombres en negrita son propiedades obligatorias. Objetos de acción 192 Nombre Descripción Tipo de datos Información adicional OutputBin Indica la bandeja de salida que se utilizará para este trabajo de impresión. int (LDD Constant) Esta opción sólo la admiten las impresoras Lexmark. Si se selecciona el valor predeterminado, se utilizará la bandeja de salida predeterminada seleccionada actualmente en la impresora. La bandeja de salida estándar hace referencia a la bandeja principal de la impresora; las bandejas de salida numeradas hacen referencia a las disponibles si se han conectado unidades de salida o un clasificador a la impresora. Si se selecciona una bandeja de salida no válida, se utilizará la predeterminada. Valores válidos: LDD_OUTPUTBIN_DEFAULT LDD_OUTPUTBIN_STANDARD LDD_OUTPUTBIN_1 LDD_OUTPUTBIN_2 LDD_OUTPUTBIN_3 LDD_OUTPUTBIN_4 LDD_OUTPUTBIN_5 LDD_OUTPUTBIN_6 LDD_OUTPUTBIN_7 LDD_OUTPUTBIN_8 LDD_OUTPUTBIN_9 LDD_OUTPUTBIN_10 Valor predeterminado: LDD_OUTPUTBIN_DEFAULT TonerSaver Indica si se debe activar el economizador de tóner para este trabajo de impresión. bool Valor predeterminado: FALSE Los nombres en negrita son propiedades obligatorias. Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 193 Sintaxis Descripción bool SetWaitTimeout(bool wait [, int minutes]) Activa o desactiva la confirmación de impresión para este trabajo de impresión. Si se activa, el método Go no volverá hasta que el trabajo de impresión haya finalizado o se alcance el tiempo de espera especificado. Si se desactiva, el método Go vuelve inmediatamente después de enviar la solicitud de trabajo de impresión. No se debe usar si se utiliza la impresión confidencial. Parámetros: wait: defínalo en TRUE para activar o en FALSE para desactivar timeout: si se activa, el número máximo de minutos que se esperará; debe estar entre 1 y 60. Devuelve: Un valor bool que indica si se han proporcionado valores válidos. void SetConfidentialPrint(bool enable [, string username, string jobname, string pin] ) Activa o desactiva la impresión confidencial para este trabajo de impresión. Si se activa, el trabajo de impresión se enviará a la impresora, pero no se imprimirá hasta que se introduzca un PIN. No se debe usar si se utiliza la confirmación de impresión. Parámetros: enable: defínalo en TRUE para activar o en FALSE para desactivar username: nombre de usuario que se mostrará en el panel del operador de la impresora después de que se introduzca el PIN jobname: nombre de trabajo que se mostrará en el panel del operador de la impresora después de que se introduzca el PIN pin: número de cuatro dígitos que se debe introducir en el panel del operador de la impresora para imprimir Devuelve: Un valor bool que indica si se han proporcionado valores. Notas: • El valor de origen del papel anula los valores de tipo y tamaño del papel. Se recomienda definir el origen del papel o el tamaño y/o tipo de papel. El tamaño y el tipo del papel se pueden definir al mismo tiempo. • La impresión confidencial y la confirmación de impresión no se deben utilizar a la vez. • La confirmación de impresión sólo la admiten las impresoras Lexmark. Si se activa para otras impresoras, siempre se informará que se ha agotado el tiempo de espera. • Aunque esta acción se puede utilizar con cualquier impresora conectada en red, algunas opciones sólo pueden funcionar correctamente con impresoras Lexmark. Objetos de acción 194 Confirmación de impresión Los valores de WaitForCompletion y WaitTimeout se pueden utilizar para confirmar que un trabajo se ha imprimido correctamente. Si se agota el tiempo de espera de un trabajo, el texto del panel del operador de la impresora (como Cargar papel bandeja 1) se agregará como mensaje de error a la página de confirmación. Después de corregir las condiciones de error de la impresora, el trabajo se puede imprimir incluso si se ha alcanzado el tiempo de espera. El tiempo de espera simplemente indica que se deje de esperar; no elimina ningún trabajo enviado a la impresora. En muy pocas ocasiones, es posible que para un trabajo que se haya imprimido correctamente no se envíe una alerta de finalización y, por lo tanto, se agote el tiempo de espera. Objetos de acción 195 PrintURL (Imprimir) Objetivo: esta acción envía la URL especificada (no la imagen) directamente a la impresora láser Lexmark. A continuación, la impresora se conecta al servidor Web que aloja la URL e imprime por descarga la página. Grupo de instalación: módulo de impresión Requisitos previos: una opción ImageQuick instalada en una impresora como mínimo y configurada correctamente para la impresión por descarga desde la Web. Es posible que necesite obtener los valores proxy y DNS de la impresora para establecer comunicación con Internet. La opción ImageQuick debe ser de la siguiente versión o superior. Familia de impresoras Versión de la opción ImageQuick Optra™ T 549 Optra W810 649 Optra C710 849 Nota: se admite cualquier versión de firmware para Lexmark C750, C910, T52x, T62x, W820 y C720. Propiedades Nombre Descripción Tipo de datos IPAddress Dirección IP o nombre de string host DNS de la impresora. URL URL que se imprimirá. Información adicional string Los nombres en negrita son propiedades obligatorias. Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Objetos de acción 196 SaveToFile (Guardar en archivo) Objetivo: guarda archivos en un sistema de archivos local o de red. Grupo de instalación: Document Server Requisitos previos: para guardar un archivo en un sistema de archivos local (por ejemplo, una unidad del equipo de Document Server), no es necesario realizar nada. Para guardar un archivo en un sistema de archivos de red, el servicio Document Server debe estar configurado para conectarse con una cuenta de usuario. Dicha cuenta de usuario debe tener permisos de archivo para escribir en el sistema de archivos de red. Para configurar el servicio Document Server para conectarse como un usuario (debe conectarse como administrador para realizar este procedimiento): Windows NT: 1 Haga clic en Inicio Æ Configuración Æ Panel de control Æ Servicios. 2 Seleccione el servicio Lexmark Document Server y haga clic en Inicio. 3 Haga clic en Esta cuenta y seleccione el nombre del usuario que tiene los derechos de acceso deseados. Escriba la contraseña del usuario y confirme. 4 Haga clic en Aceptar. Nota: para que el servicio se conecte como el usuario especificado, debe detener e iniciar el servicio Document Server o reiniciar el ordenador. Windows 2000/XP: 1 Haga clic en Æ Inicio Æ Configuración Æ Panel de control Æ Herramientas administrativas Æ Servicios. 2 Haga doble clic en el servicio Lexmark Document Server. 3 Seleccione la ficha Iniciar sesión. 4 Haga clic en Esta cuenta y seleccione el nombre del usuario que tiene los derechos de acceso deseados. Escriba la contraseña del usuario y confirme. 5 Haga clic en Aceptar. Nota: para que el servicio se conecte como el usuario especificado, debe detener e iniciar el servicio Document Server o reiniciar el ordenador. Objetos de acción 197 Propiedades Nombre Descripción Tipo de datos Input Datos origen de la acción. doc Path Ruta de acceso completa y nombre de archivo en el que se debe guardar el archivo. string Información adicional En el caso de un sistema de archivos local, se parecería a la siguiente: Unidad:\Ruta de acceso\nombre de archivo.ext En el caso de un sistema de archivos de red, se parecería a la siguiente: \\Ordenador\Nombre de recurso compartido\Ruta de acceso\nombre de archivo.ext No se pueden utilizar las unidades asignadas de red. Si se guarda en un sistema de archivos de red, consulte los requisitos previos. AppendTimeStamp Añade un sello de hora que contiene el año, mes, día y hora del día al nombre de archivo. bool Se puede utilizar para asegurarse de que el archivo que se va a escribir tiene un nombre único. Si se define en TRUE, el nombre de archivo nuevo se parecerá al siguiente: Unidad:\Ruta de acceso\nombre de archivo_sello de hora.ext Valor predeterminado: TRUE OverWrite Especifica si se sobrescribe cualquier archivo existente con el mismo nombre. bool Si se define en FALSE y ya existe un archivo con el mismo nombre, el método Go devolverá FALSE. Si se define en TRUE y AppendTimeStamp se define en FALSE, el archivo se sobrescribirá cada vez. Valor predeterminado: FALSE CreateDirectory Especifica si se creará el directorio de la ruta de acceso si no existe. bool Valor predeterminado: FALSE Los nombres en negrita son propiedades obligatorias. Objetos de acción 198 Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. Ejemplo 1: Valores de sello de hora El valor de ruta de acceso para cada ejemplo es: “C:\data\app.tif". Documento de entrada TimeStamp Archivos guardados Archivo único FALSE C:\data\app.tif Dos archivos FALSE C:\data\app-1.tif C:\data\app-2.tif Archivo único TRUE C:\data\app_MAR_20_2002_17_30_20_456.tif Dos archivos TRUE C:\data\app_MAR_20_2002_17_30_20_456-1.tif C:\data\app_MAR_20_2002_17_30_20_456-2.tif Cuando el documento de entrada tiene varios archivos, a cada uno se le añade un número al final de su nombre, con lo que se genera un archivo único. Si se añade un sello de hora y hay varios archivos, el número se añade después de dicho sello. Todas las acciones de un script que pueden añadir un sello de hora utilizan el mismo. El valor que se utiliza también está disponible mediante la propiedad usertime del objeto original (original.usertime). El formato del sello de hora es: _DD_MES_AAAA_HH_MM_SS_MSEG donde: • • • • • • • MES es la abreviatura de tres letras del mes DD es el día del mes AAAA es el año de cuatro dígitos HH es la hora con formato de 24 horas MM son los minutos SS son los segundos MSEG son los milisegundos Nota: observe que se coloca un carácter de subrayado delante del mes. Objetos de acción 199 Ejemplo 2: Valores de ruta de acceso Los valores de ruta de acceso para la acción SaveToFile se pueden introducir de modo que la acción cree la carpeta. with SaveToFile .input=original.document // Definir la ruta de acceso en C:\temp y el nombre de archivo en myfile.ps. Si la // carpeta temp no existe, esta acción creará una. .Path="C:\temp\myfile.ps" .AppendTimeStamp=FALSE .Overwrite=TRUE .CreateDirectory=TRUE .Go() endwith También se puede asignar un nombre a los valores de ruta de acceso de modo que la extensión de Windows para el archivo guardado pueda coincidir automáticamente con el formato del documento digitalizado: SaveToFile.Path="C:\temp\myfile."+original.document.GetDocumentType() Si el documento digitalizado es del tipo .TIF, la sentencia anterior crear el archivo myfile.TIF en la carpeta C:\temp del servidor. Objetos de acción 200 SharePoint Requisitos previos: 1 En el equipo host debe estar instalado el kit de Microsoft Data Access. Para Windows 2000, este componente se instala como parte del sistema operativo. El kit de Microsoft Data Access también está disponible como una descarga independiente desde http://www.microsoft.com. La instalación del kit de Microsoft Data Access requiere que el sistema disponga de una instalación completa de la compatibilidad con ActiveX (anteriormente, Automatización OLE). 2 El cliente de SharePoint debe estar instalado en el mismo ordenador que el servidor LDS. Esto permite la instalación desde el CD de integración de EDMS del conjunto Document Solution. Para que el servidor LDS interactúe con el cliente de SharePoint, el servicio del servidor LDS se debe configurar para conectarse como usuario de ese sistema. Para configurarlo con el fin de que permita la conexión como usuario para Windows 2000 y Windows XP: a Haga clic con el botón derecho del ratón en Mi PC. b Haga clic en Administrar. c Haga clic en Servicios y Aplicaciones. d Haga clic en Servicios. e Haga clic con el botón derecho del ratón en Lexmark Document Server en la lista Servicios. f Haga clic en Propiedades. g Haga clic en la ficha Iniciar sesión. h Seleccione el botón de radio de Esta cuenta. Elija una cuenta que tenga privilegios administrativos. i Introduzca el nombre de usuario y la contraseña. j Haca clic en Habilitar. k Haga clic en Aplicar. l Haga clic en Aceptar. m Aparecerá un cuadro de diálogo solicitando que reinicie el gateway de Lexmark Document Server. Haga clic en Aceptar. Aparecerá un cuadro de diálogo indicándole que se debe reiniciar el gateway de Lexmark Document Server. 3 Para crear scripts o insertar documentos en la carpeta de SharePoint Portal, el usuario debe tener privilegios de autor para dicha carpeta. La lectura de un documento desde SharePoint en LDD requiere que el usuario disponga, como mínimo, de privilegios de lector para el documento o la carpeta de la que se leerá el documento. 4 Para construir consultas de búsqueda de documentos, debe estar familiarizado con la sintaxis SQL de SharePoint. Objetos de acción 201 SharePointWrite (EDMS: introducir) Objetivo: introduce y publica documentos y los valores de perfil especificados en SharePoint Portal Server. Módulo de instalación: CD de EDMS Requisito previo: consulte los requisitos previos de SharePoint de la página 201. Propiedades: Nombre Descripción Tipo de datos Información adicional Input Documento que se insertará en SharePoint. doc No debe existir un documento con este nombre en la carpeta de destino. Si existe, se producirá un error en la acción. Server URL del servidor SharePoint Server. string UserName Identidad que utilizará LDD cuando se conecte a SharePoint. string Password Contraseña para conectarse a SharePoint. string Workspace Nombre del área de trabajo de destino en SharePoint. string Folder Carpeta de SharePoint de destino donde se insertará el documento. string Profile Nombre del perfil de SharePoint que se asociará a este documento. string Los nombres en negrita son propiedades obligatorias. Objetos de acción 202 Nombre Descripción Tipo de datos Información adicional CheckInLevel Esta propiedad se especifica como una constante LDD. int (LDD Constant) Los valores válidos son: LDD_SHAREPOINT_CHECKIN: introducir el documento en SharePoint, pero no hacer que esté disponible para que lo vean otros usuarios. LDD_SHAREPOINT_PUBLISH: introducir el documento y hacer que esté disponible para que lo vean otros usuarios de SharePoint. CheckInComment Comentario que se asociará al documento introducido. string Los nombres en negrita son propiedades obligatorias. Objetos de acción 203 Métodos Sintaxis Descripción bool Go() Después de definir todas las propiedades (consulte el método SetProperty() a continuación), el método Go() se utiliza para insertar un nuevo documento en la carpeta especificada por la propiedad Folder. void Reset() Reset() borra todas las propiedades de acción y todas las propiedades del perfil de SharePoint definidas mediante la llamada anterior a SharePointWrite. void SetProperty(string name, string value) Define el valor de la propiedad; los nombres de propiedad válidos se determinan mediante el perfil de SharePoint especificado en la propiedad Profile de esta acción. Este método se puede utilizar para definir propiedades de SharePoint del tipo: • Texto • Cuadro de comentarios • Lista (especifique los valores como una cadena delimitada por comas) • Lista de varios valores (especifique los valores como una cadena delimitada por comas) • Fecha (especifíquela utilizando el formato de fecha devuelto por original.usertime) Parámetros: name: nombre de la propiedad que se definirá value: valor de cadena en el que se definirá la propiedad Devuelve: Nada void SetProperty(string name, int value) Define el valor de la propiedad; los nombres de propiedad válidos se determinan mediante el perfil de SharePoint especificado en la propiedad Profile de esta acción. Este método se puede utilizar para definir propiedades de SharePoint de tipo numérico. Parámetros: name: nombre de la propiedad que se definirá value: valor de entero en el que se definirá la propiedad Devuelve: Nada Objetos de acción 204 Ejemplo: El siguiente ejemplo inserta un documento en SharePoint. El script también define varias propiedades que están incluidas en el perfil del documento. Para este ejemplo se ha definido un perfil de SharePoint denominado "Espec" para contener las siguientes propiedades: Nombre de propiedad Tipo de datos de SharePoint Author Texto VersionCount Número Created Fecha Title Texto Draft Texto Subject Texto Description Cuadro de comentarios Keywords Lista de varios valores Los valores de cualquiera de estas propiedades se podrían definir mediante datos introducidos por el usuario en la impresora multifunción, pero la mayoría se han definido como literales para mostrar los formatos de valores de los distintos tipos de datos de SharePoint. Observe que en el ejemplo el valor de la propiedad de lista de varios valores, como "Palabras clave", se ha especificado como una lista delimitada por comas. with SharePointWrite .input=original.document .server="http://tahoe.server.com" .workspace="ldd" .folder="/documentos/Espec" .profile="Espec" .username=userdata.username .password=userdata.password .checkinlevel=LDD_SHAREPOINT_PUBLISH .checkincomment="Ahí va." .SetProperty("Autor","Usuario LDD") .SetProperty("Creado",original.usertime) .SetProperty("ContadorVersión",2) .SetProperty("Título","Especificación del diseño del dispositivo") .SetProperty("Descripción","Describe la especificación del dispositivo.") .SetProperty("Asunto","Dispositivo") .SetProperty("Palabras clave","Dispositivo,diseño") .SetProperty("Borrador","Sí") .Go() endwith Objetos de acción 205 SharePointRead (EDMS: recuperar) Objetivo: recupera documentos y valores de perfil asociados al documento almacenado en SharePoint Portal Server que coinciden con los criterios especificados. Módulo de instalación: CD de EDMS Requisito previo: consulte los requisitos previos de SharePoint de la página 201. Propiedades: Nombre Descripción Tipo de datos Server URL del servidor SharePoint Server. string UserName Identidad que utilizará LDD cuando se conecte a SharePoint. string Password Contraseña para conectarse a SharePoint. string Workspace Nombre del área de trabajo de SharePoint de la que se recuperarán los documentos y/o metadatos. string StartFolder Representa el nombre string de la carpeta en la jerarquía de SharePoint a partir de la que comenzará la búsqueda actual. El comportamiento de búsqueda predeterminado es incluir esta carpeta y todas sus secundarias en el ámbito de búsqueda. Metadata Lista delimitada por comas de propiedades de documento que devolverá SharePoint. Consulte Abreviaturas de propiedad en la página 209 para obtener más información. WhereClause Define los criterios para Cadena de caracteres limitar el número de documentos devueltos por la consulta de SharePoint. CustomQuery string Esta propiedad de acción permite personalizar la consulta de SharePoint. string Los nombres en negrita son propiedades obligatorias. Objetos de acción 206 Información adicional Esta propiedad, cuando se especifica, representa toda la consulta de SharePoint y anula cualquier valor definido para las propiedades Metadata y WhereClause. Métodos Sintaxis Descripción bool Go() Ejecuta la acción. Devuelve TRUE o FALSE para indicar si la acción ha terminado correctamente. void Reset() Borra las propiedades actuales y les devuelve su valor predeterminado. bool GetNextRow() Obtiene la siguiente fila del conjunto de registros de la consulta. El método Go se llama para ejecutar la consulta; produce un conjunto de registros que contiene todos los documentos que coinciden con la consulta. A continuación, se llama a este método para obtener cada fila del registro una a una. Se produce un error en este método cuando no quedan más filas en el conjunto de registros. Parámetros: Ninguno Devuelve: Un valor bool para indicar si una fila se ha recuperado correctamente. string GetString(string propertyname) Obtiene el valor de la propiedad especificada en el parámetro propertyname de la fila actual en el conjunto de registros. Este método se llama después del método GetNextRow para obtener una propiedad de SharePoint del tipo: • Texto • Cuadro de comentarios • Lista (valores devueltos como una cadena delimitada por comas) • Lista de varios valores (valores devueltos como una cadena delimitada por comas) • Fecha (devuelta en el formato de SharePoint: DD/MM/AAAA HH:MM:SS AM) Si se utiliza este método para una propiedad de otro tipo o para una propiedad que no existe, se producirá un error. Parámetros: propertyname: nombre de la propiedad de la que se obtendrá el valor Devuelve: Una cadena que contiene el valor de la propiedad especificada. Objetos de acción 207 Sintaxis Descripción int GetInt (string propertyname) Obtiene el valor de la propiedad especificada en el parámetro propertyname de la fila actual en el conjunto de registros. Este método se llama después del método GetNextRow para obtener una propiedad de SharePoint del tipo: número. Si se utiliza este método para una propiedad de otro tipo o para una propiedad que no existe, se producirá un error. Parámetros: propertyname: nombre de la propiedad de la que se obtendrá el valor. Devuelve: Un entero que contiene el valor de la propiedad especificada. doc GetDoc () Obtiene el documento de la fila actual del conjunto de registros. Este método se llama después del método GetNextRow para obtener el documento de esta fila que coincide con los criterios de la consulta. Parámetros: Ninguno Devuelve: Un documento que contiene el documento asociado a la fila actual del conjunto de registros. bool Finished() Cierra el conjunto de registros de la consulta y libera otros recursos utilizados por la acción. Después de llamar a este método no hay acceso a los resultados de la consulta anterior. Parámetros: Ninguno Devuelve: Un valor bool que indica si se ha realizado correcta o incorrectamente. Objetos de acción 208 Abreviaturas de propiedad En general, las propiedades de SharePoint se identifican de forma única mediante su nombre de recurso uniforme (URN). Por ejemplo, el URN para la propiedad Author de un documento es "urn:schemas-microsoft-com:Office:Office#Author". La acción SharePoint de LDD permite utilizar una forma abreviada del URN cuando se asignan nombres de propiedad a la propiedad Metadata de la acción. En el caso de la propiedad Author, la versión abreviada simplemente sería "Author"; LDD agrega el prefijo "urn:schemas-microsoft-com:Office:Office#" para crear el URN completo antes de enviar la consulta a SharePoint. Si utiliza esta "abreviatura" al especificar los metadatos del documento, LDD le permite utilizar también esta misma abreviatura al especificar un valor en la propiedad WhereClause y al recuperar el valor de la propiedad mediante GetString() o GetInt(). Sin embargo, esta abreviatura no será válida si no aparece en la cláusula MetaData y se tendrá que hacer referencia a la propiedad mediante su URN completo. Si decide no utilizar la abreviatura de una propiedad, es perfectamente aceptable hacer referencia a las propiedades en la propiedad Metadata mediante su URN completo. SharePoint dispone de varias propiedades globales en las que se pueden realizar búsquedas y que se pueden recuperar junto con el documento. Son las siguientes: Propiedad global de SharePoint (URN) Descripción urn:schemas.microsoft.com:fulltextqueryinfo:crawlmodifiedtime Sello de hora cuando SharePoint Portal Server ha detectado que el documento es diferente y ha actualizado el índice. urn:schemas.microsoft.com:fulltextqueryinfo:description Descripción del resultado de la búsqueda. urn:schemas-microsoft-com:publishing:BestBetCategories Lista de las categorías Best Bet asociadas a un documento. urn:schemas-microsoft-com:publishing:BestBetKeywords Lista de las palabras clave Best Bet asociadas a un documento. urn:schemas-microsoft-com:publishing:Categories Lista de las categorías en las que aparece el documento. urn:schemas-microsoft-com:publishing:isdoclibrarycontent (Booleano) Indica si un determinado documento existe en un área de trabajo de SharePoint Portal Server. urn:schemas-microsoft-com:publishing:FriendlyVersionID (Cadena) La identificación (ID) de versión en formato descriptivo (es decir, "1.1", "3.0", etc.) urn:schemas-microsoftcom:publishing:issuggestedcategoryused (Booleano) Determina si el campo AutoCategories se utiliza para decidir que un documento está en una categoría, no si se ha clasificado automáticamente. Objetos de acción 209 Existen otras numerosas propiedades globales definidas por SharePoint, que podrá encontrar en http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spssdk/html/ _searchable_document_properties.asp. Muchas de estas otras propiedades se pueden utilizar para restringir los registros que devuelve la consulta de SharePoint; sin embargo, las consultas de SharePoint no pueden recuperar estas propiedades (es decir, no se pueden enumerar en la propiedad Metadata). Las propiedades enumeradas en esta tabla son propiedades que se pueden recuperar mediante la consulta. Las abreviaturas se pueden utilizar para los valores de esta tabla. Tenga en cuenta que, aunque estas propiedades se pueden recuperar en la consulta, pueden no ser siempre válidas para el documento concreto que se está recuperando y se deben recuperar teniendo presente este hecho. Objetos de acción 210 Ejemplo 1 El siguiente ejemplo utiliza el ID de autor introducido por el usuario para leer documentos de un servidor SharePoint Server e imprimirlos. Se utiliza un nombre de recurso uniforme (URN) para especificar el nombre de propiedad. SharePoint requiere que los URN estén entre comillas. Para especificar las comillas dentro de una cadena en LDD se debe anteponer el carácter de intercalación "^" a las comillas. Debido a que se van a recuperar varios documentos, la llamada a .GetDoc() estará dentro de un bucle y se utilizará el valor devuelto por .GetNextRow() para terminar el bucle. doc d with SharePointRead .server="http://tahoe.server.com" .workspace="ldd" .startfolder="/Documentos/Espec" .username=userdata.username .password=userdata.password .whereclause="^"urn:schmas-microsoft-com:office:office#AuthId^"='"+ userdata.authid+"'" .Go() repeat until (.getnextrow()==false) d = .GetDoc() // En primer lugar, convertir el documento a formato PostScript. ConvertToDocument.input = d ConvertToDocument.Format=LDD_DOCFORMAT_PS ConvertToDocument.PaperSize=LDD_PAPERSIZE_AUTO ConvertToDocument.Orientation=LDD_ORIENTATION_AUTO ConvertToDocument.PSResolution=LDD_RESOLUTION_300 ConvertToDocument.AllPages=TRUE ConvertToDocument.Go() // A continuación, imprimirlo. PrintJob.input=ConvertToDocument.output PrintJob.IPAddress=original.userip PrintJob.PaperType=LDD_PAPERTYPE_DEFAULT PrintJob.Copies=1 PrintJob.Nup=LDD_NUP_OFF PrintJob.NupBorder=TRUE PrintJob.Duplex=LDD_DUPLEX_OFF PrintJob.OutputBin=LDD_OUTPUTBIN_DEFAULT PrintJob.Collate=FALSE PrintJob.ConfidentialPrint=FALSE PrintJob.WaitForCompletion=FALSE PrintJob.Go() endrepeat .Finished() endwith Objetos de acción 211 Ejemplo 2 En este ejemplo se recuperan los nombres de varios documentos de SharePoint que pertenecen a un autor específico. Observe que se han utilizado las abreviaturas de propiedad para asignar un valor a .metadata y para recuperar el valor de dichas propiedades mediante .GetString(). Sólo las abreviaturas especificadas en la propiedad .metadata las pueden utilizar posteriormente los métodos de recuperación de valores, .GetString() y .GetInt(). Aunque se ha utilizado la abreviatura "Author" en la propiedad .metadata, se sigue utilizando el URN en la cláusula WHERE. Las abreviaturas no se pueden utilizar en la cláusula WHERE. string string string string title author address="[email protected]" docmsg docmsg = "Los siguientes documentos aún no están aprobados:^n^n" with SharePointRead .server="http://tahoe.server.com" .workspace="ldd" .startfolder="/Documentos" .username="Administrador" .password="VENUS" .metadata="Title,Author" .whereclause="^"urn:schemas-microsoft-com:office:office#Author^"='" +userdata.author+"'" .Go() repeat until (.getnextrow()==false) title = .GetString("Title") author = .GetString("Author") docmsg.Concatenate(title) docmsg.Concatenate("^t") docmsg.Concatenate(author) docmsg.Concatenate("^n") endrepeat .Finished() endwith with EmailSMTP .Server="servidor.correo.com" .To=address .From="[email protected]" .Subject="Documentos de SharePoint" .Message=docmsg .CharacterSet=LDD_SMTPCHARSET_US .Go() endwith Objetos de acción 212 7 Solicitudes El mecanismo de solicitudes de LDDScript 3.2 permite que los scripts interactúen con el usuario en la impresora multifunción o la estación de trabajo. Esta interacción permite realizar preguntas al usuario y utilizar las respuestas para configurar más preguntas o en el propio script. El formato del bloque prompt es el siguiente: prompt step "nombrepaso" ask(solicitud) nextstep "nombrepaso2" step "nombrepaso2" ask(solicitud2) laststep endprompt Las palabras clave prompt y endprompt se utilizan para designar el bloque de solicitudes. Todos los pasos y acciones que aparecen en este bloque se ejecutan antes de que se realice la digitalización en la impresora multifunción o antes de que el archivo se envíe desde la estación de trabajo. Sólo puede haber uno de estos bloques en el script y debe estar al principio antes de cualquier acción que necesite el documento digitalizado o enviado. En el bloque prompt son válidas las siguientes palabras clave: • step "nombrepaso": step se utiliza para indicar el principio de un grupo que contiene una o varias preguntas o acciones; nombrepaso es una cadena y el nombre asignado a la agrupación. El primer bloque step que se muestra será el primero que ejecute el bloque prompt. Cada bloque prompt debe tener un bloque step como mínimo. • ask(solicitud): ask se utiliza para mostrar la solicitud especificada en la impresora multifunción o la estación de trabajo. La solicitud es uno de los objetos de solicitud que permiten mostrar un mensaje, texto, contraseña, número, lista de selección única o lista de selección múltiple. En un bloque step puede haber varias sentencias ask. • nextstep "nombrepaso": nextstep se utiliza para identificar el siguiente bloque step que se tiene que ejecutar; nombrepaso debe coincidir con uno de los nombres asignados mediante la palabra clave step. Los nombres de paso no se tienen que utilizar en orden y se pueden usar varias veces. • laststep: laststep se utiliza para identificar el último bloque step del bloque prompt. Después de ejecutar este paso, finalizará la solicitud y se enviará la digitalización de la impresora multifunción o el archivo de la estación de trabajo. Todas las solicitudes utilizadas en el bloque prompt se deben definir antes de la palabra clave prompt. Mientras se está en el bloque prompt, se puede utilizar cualquier acción disponible en el servidor. Sin embargo, tenga en cuenta que el documento digitalizado real no está disponible hasta que termine la solicitud. Por lo tanto, original.document no está disponible. El resto de este capítulo describe los distintos objetos de solicitud que se pueden utilizar en el script. Solicitudes 213 Solicitud de activación El objeto de solicitud de activación se utiliza para solicitar al usuario una respuesta de "sí" o "no". El objeto de solicitud booleana se puede utilizar en cualquier parte de un script donde se pueda usar un valor bool. Una solicitud es de este tipo cuando se declara como: boolprompt. Cuando se utiliza este objeto, se muestra una casilla de verificación que el usuario puede activar o desactivar. Para definir un valor predeterminado para la casilla de verificación, asigne un valor a la solicitud booleana. boolprompt enable enable = TRUE Si se define la solicitud booleana en TRUE, la casilla de verificación aparecerá activada; si se define en FALSE, aparecerá desactivada. Después de realizar la solicitud, la solicitud booleana contiene el valor de lo que se ha seleccionado. Este objeto no tiene propiedades. Además de los métodos descritos a continuación, este objeto también tiene todos los métodos disponibles para un objeto booleano. Métodos Sintaxis Descripción void SetPromptText(string text) Define el texto o la pregunta que se mostrará para solicitar una respuesta al usuario. Parámetros: text: texto a mostrar Devuelve: Nada Solicitudes 214 Solicitud de mensaje El objeto de solicitud de mensaje se utiliza para mostrar mensajes de información o error al usuario. Una solicitud es de este tipo cuando se declara como: messageprompt. Este objeto no tiene propiedades. Cuando se utiliza este objeto, se muestra el mensaje al usuario y éste, a continuación, pulsa Aceptar para continuar. Métodos Sintaxis Descripción void SetPromptText(string text) Define el mensaje de información o error que se muestra al usuario. Parámetros: text: texto a mostrar Devuelve: Nada Solicitudes 215 Solicitud de número El objeto de solicitud de número se puede utilizar para solicitar al usuario un número o permitirle que seleccione un número de una lista. El objeto de solicitud de número se puede utilizar en cualquier parte de un script donde se pueda usar un entero. Una solicitud es de este tipo cuando se declara como: intprompt. Si no se agrega ningún elemento a la lista de selección, se muestra al usuario un cuadro de texto donde puede escribir la respuesta. Para definir un valor predeterminado para el cuadro de texto, asigne un valor a la solicitud de cadena. intprompt num num = 5 Si se ha agregado una o varias opciones a la lista de selección, se convierte en una lista de selección única donde el usuario puede elegir una (y sólo una) opción de la lista. Para definir un valor predeterminado para la lista, asigne el valor de uno de los elementos de la lista a la solicitud de cadena. intprompt resolution resolution =150 resolution.AddPromptOption(150) resolution.AddPromptOption(300) resolution.AddPromptOption(600) Después de realizar la solicitud, la solicitud de número contiene el valor de lo que se ha escrito o se ha seleccionado en la lista. Este objeto no tiene propiedades. Además de los métodos descritos a continuación, este objeto también tiene todos los métodos disponibles para un objeto de entero. Métodos Sintaxis Descripción void AddPromptOption(int option) Agrega un número al final de la lista de selección. Las opciones se muestran en el orden en que se agregan. Parámetros: option: número que se agregará a la lista Devuelve: Nada void ClearPromptOptions() Elimina todas las opciones de la lista de selección. Parámetros: Ninguno Devuelve: Nada Solicitudes 216 Sintaxis Descripción void ClearPromptRange() Elimina los valores mínimo y máximo de esta solicitud. Si no se define ningún rango, el usuario puede introducir cualquier número válido. Parámetros: Ninguno Devuelve: Nada void SetPromptRange(int min, int max) Define los valores mínimo y máximo permitidos. Al definir un valor para el parámetro min y el parámetro max en cero (0), se define un valor mínimo que se puede introducir sin definir un límite superior. Estos valores se ignoran si se va a utilizar como una lista de selección única. Parámetros: min: valor mínimo max: valor máximo Devuelve: Nada void SetPromptText(string text) Define el texto o la pregunta que se mostrará para solicitar una respuesta al usuario. Parámetros: text: texto a mostrar Devuelve: Nada Solicitudes 217 Solicitud de opciones (selección múltiple) El objeto de solicitud de opciones (selecciones múltiples) se puede utilizar para solicitar al usuario que seleccione uno o varios elementos de una lista o que no seleccione ninguno. Una solicitud es de este tipo cuando se declara como: arrayprompt. Cuando se utiliza este objeto, se muestra al usuario un cuadro de lista en el que puede seleccionar opciones. Puede haber elementos seleccionados previamente en la lista. Después de realizar la solicitud, se puede consultar la solicitud de opciones (selecciones múltiples) para determinar las opciones que ha seleccionado el usuario. Este objeto no tiene propiedades. Métodos Sintaxis Descripción void AddPromptOption(string option) Agrega una cadena al final de la lista de selección. Las opciones se muestran en el orden en que se agregan. Parámetros: option: cadena que se agregará a la lista Devuelve: Nada void ClearPromptOptions() Elimina todas las opciones de la lista de selección. Parámetros: Ninguno Devuelve: Nada bool GetCheck(int index) Devuelve el estado del elemento de la lista en el índice especificado. El primer elemento de la lista es 1. Si no existe el elemento especificado, se devuelve FALSE. Parámetros: index: índice del elemento de la lista cuyo estado de selección desea obtener Devuelve: TRUE si el elemento está seleccionado; de lo contrario, FALSE. Solicitudes 218 Sintaxis Descripción bool GetCheck(string option) Devuelve el estado del elemento de la lista que coincide con el texto proporcionado. El texto tiene que ser exactamente igual que una de las opciones. Si no se encuentra el elemento especificado, se devuelve FALSE. Parámetros: option: texto del elemento cuyo estado de selección desea obtener Devuelve: TRUE si el elemento está seleccionado; de lo contrario, FALSE. int GetOptionCount() Devuelve el número de elementos que se han agregado a la lista. Parámetros: Ninguno Devuelve: El número de elementos de la lista. string GetPromptOption(int index) Devuelve el texto del elemento de la lista en el índice especificado. El primer elemento de la lista es 1. Si no existe el elemento especificado, se devuelve una cadena vacía. Parámetros: Ninguno Devuelve: El texto del elemento de la lista en el índice especificado. intarray GetSelectedIndexes() Devuelve una matriz de enteros de todos los índices seleccionados. El índice de cada opción seleccionada será un elemento de la matriz. Los índices de elementos empiezan en 1. Si no hay seleccionado ningún elemento, se devuelve una matriz vacía. Parámetros: Ninguno Devuelve: Una matriz de enteros de las opciones seleccionadas. Solicitudes 219 Sintaxis Descripción stringarray GetSelectedOptions() Devuelve una matriz de cadenas que contiene el texto de todos los elementos seleccionados. Cada opción seleccionada será un elemento de la matriz. Si no hay seleccionado ningún elemento, se devuelve una matriz de cadenas vacía. Parámetros: Ninguno Devuelve: Una matriz de cadenas de las opciones seleccionadas. void SetCheck(int index, bool set) Define el estado del elemento de la lista en el índice especificado. El primer elemento de la lista es 1. Parámetros: index: índice del elemento de la lista cuyo estado de selección desea definir set: TRUE marca el elemento como seleccionado y FALSE como no seleccionado Devuelve: Nada void SetCheck(string option, bool set) Define el estado del elemento de la lista que coincide con el texto proporcionado. El texto tiene que ser exactamente igual que una de las opciones. Parámetros: option: texto del elemento cuyo estado de selección desea definir set: TRUE marca el elemento como seleccionado y FALSE como no seleccionado Devuelve: Nada void SetPromptText(string text) Define el texto o la pregunta que se mostrará para solicitar una respuesta al usuario. Parámetros: text: texto a mostrar Devuelve: Nada Solicitudes 220 Solicitud de opciones (selección única) El objeto de solicitud de opciones (selección única) se puede utilizar para solicitar al usuario que seleccione un elemento de una lista. Una solicitud es de este tipo cuando se declara como: stringprompt. Cuando se utiliza este objeto, se muestra al usuario un cuadro de lista en el que puede seleccionar lo que desee. Después de realizar la solicitud, se puede consultar la solicitud de opciones (selección única) para determinar la opción que ha seleccionado el usuario. Este objeto no tiene propiedades. Métodos Sintaxis Descripción void AddPromptOption(string option) Agrega una cadena al final de la lista de selección. Las opciones se muestran en el orden en que se agregan. Parámetros: option: cadena que se agregará a la lista Devuelve: Nada void ClearPromptOptions() Elimina todas las opciones de la lista de selección. Parámetros: Ninguno Devuelve: Nada bool GetCheck(int index) Devuelve el estado del elemento de la lista en el índice especificado. El primer elemento de la lista es 1. Si no existe el elemento especificado, se devuelve FALSE. Parámetros: index: índice del elemento de la lista cuyo estado de selección desea obtener Devuelve: TRUE si el elemento está seleccionado; de lo contrario, FALSE. Solicitudes 221 Sintaxis Descripción bool GetCheck(string option) Devuelve el estado del elemento de la lista que coincide con el texto proporcionado. El texto tiene que ser exactamente igual que una de las opciones. Si no se encuentra el elemento especificado, se devuelve FALSE. Parámetros: option: texto del elemento cuyo estado de selección desea obtener Devuelve: TRUE si el elemento está seleccionado; de lo contrario, FALSE. string GetPromptOption(int index) Devuelve el texto del elemento de la lista en el índice especificado. El primer elemento de la lista es 1. Si no existe el elemento especificado, se devuelve una cadena vacía. Parámetros: Ninguno Devuelve: El texto del elemento de la lista en el índice especificado. void SetCheck(int index, bool set) Define el estado del elemento de la lista en el índice especificado. El primer elemento de la lista es 1. Parámetros: index: índice del elemento de la lista cuyo estado de selección desea definir set: TRUE marca el elemento como seleccionado y FALSE como no seleccionado. Devuelve: Nada Solicitudes 222 Sintaxis Descripción void SetCheck(string option, bool set) Define el estado del elemento de la lista que coincide con el texto proporcionado. El texto tiene que ser exactamente igual que una de las opciones. Parámetros: option: texto del elemento cuyo estado de selección desea definir set: TRUE marca el elemento como seleccionado y FALSE como no seleccionado. Devuelve: Nada void SetPromptText(string text) Define el texto o la pregunta que se mostrará para solicitar una respuesta al usuario. Parámetros: text: texto a mostrar Devuelve: Nada Solicitudes 223 Solicitud de contraseña El objeto de solicitud de contraseña se utiliza para solicitar texto al usuario (normalmente una contraseña). Cuando el usuario escriba una respuesta, aparecerán asteriscos en lugar del texto real que se está escribiendo. El objeto de solicitud de contraseña se puede utilizar en cualquier parte de un script donde se pueda usar una cadena. Una solicitud es de este tipo cuando se declara como: passwordprompt. Cuando se utiliza este objeto, se muestra al usuario un cuadro de texto en el que puede escribir la respuesta. Aunque se puede asignar un valor predeterminado a esta solicitud, normalmente no se utiliza ya que sólo aparecen asteriscos en el cuadro de texto. Después de realizar la solicitud, la solicitud de contraseña contiene el valor de lo que se ha escrito. Este objeto no tiene propiedades. Además de los métodos descritos a continuación, este objeto también tiene todos los métodos disponibles para un objeto de cadena. Métodos Sintaxis Descripción void ClearPromptRange() Elimina la longitud de caracteres mínima y máxima de esta solicitud. Si no se define ningún rango, el usuario puede introducir una respuesta sin limitación de caracteres e incluso puede no introducir nada. Parámetros: Ninguno Devuelve: Nada void SetPromptRange(int min, int max) Define la longitud de caracteres mínima y máxima permitida. Si se define en cero (0), se permite al usuario no introducir nada. Al definir un valor para el parámetro min y el parámetro max en cero (0), se define un número mínimo de caracteres que el usuario debe introducir sin definir un límite superior. Al definir los parámetros min y max en el mismo valor, se requiere que el usuario introduzca un número exacto de caracteres. Parámetros: min: longitud de caracteres mínima max: longitud de caracteres máxima Devuelve: Nada void SetPromptText(string text) Define el texto o la pregunta que se mostrará para solicitar una respuesta al usuario. Parámetros: texto: texto a mostrar Devuelve: Nada Solicitudes 224 Solicitud de texto El objeto de solicitud de texto se puede utilizar para solicitar al usuario un texto o permitirle que seleccione un elemento de texto de una lista. El objeto de solicitud de texto se puede utilizar en cualquier parte de un script donde se pueda usar una cadena. Una solicitud es de este tipo cuando se declara como: stringprompt. Si no se agrega ningún elemento a la lista de selección, se muestra al usuario un cuadro de texto donde puede escribir la respuesta. Para definir un valor predeterminado para el cuadro de texto, asigne un valor a la solicitud de texto. stringprompt str str = "Valor predeterminado". Si se ha agregado una o varias opciones a la lista de selección, se convierte en una lista de selección única donde el usuario puede elegir una (y sólo una) opción de la lista. Para definir un valor predeterminado para la lista, asigne el valor de uno de los elementos de la lista a la solicitud de texto. stringprompt str str = "Rojo" str.AddPromptOption("Azul") str.AddPromptOption("Rojo") str.AddPromptOption("Verde") Después de realizar la solicitud, la solicitud de texto contiene el valor de lo que se ha escrito o se ha seleccionado en la lista. Este objeto no tiene propiedades. Además de los métodos descritos a continuación, este objeto también tiene todos los métodos disponibles para un objeto de cadena. Métodos Sintaxis Descripción void AddPromptOption(string option) Agrega una cadena al final de la lista de selección. Las opciones se muestran en el orden en que se agregan. Parámetros: option: cadena que se agregará a la lista Devuelve: Nada void ClearPromptOptions() Elimina todas las opciones de la lista de selección. Parámetros: Ninguno Devuelve: Nada Solicitudes 225 Sintaxis Descripción void ClearPromptRange() Elimina la longitud de caracteres mínima y máxima de esta solicitud. Si no se define ningún rango, el usuario puede introducir una respuesta sin limitación de caracteres e incluso puede no introducir nada. Parámetros: Ninguno Devuelve: Nada void SetPromptRange(int min, int max) Define la longitud de caracteres mínima y máxima permitida. Si se define en cero (0), se permite al usuario no introducir nada. Al definir un valor para el parámetro min y el parámetro max en cero (0), se define un número mínimo de caracteres que el usuario debe introducir sin definir un límite superior. Al definir los parámetros min y max en el mismo valor, se requiere que el usuario introduzca un número exacto de caracteres. Estos valores se ignoran si se va a utilizar como una lista de selección única. Parámetros: min: longitud de caracteres mínima max: longitud de caracteres máxima Devuelve: Nada Solicitudes 226 Referencia de ODBC Requisitos y configuración de software • • • En el equipo host se debe instalar Microsoft Data Access Components (MDAC). Para Windows 2000, estos componentes se instalan como parte del sistema operativo. Para Windows NT, requiere la instalación de software anterior que utilice ODBC, como Microsoft Office. MDAC también está disponible como descarga independiente en http://www.microsoft.com/data. Compruebe la instalación de ODBC verificando si el subprograma Orígenes de datos está en el Panel de control en Herramientas administrativas. Los controladores de base de datos ODBC necesarios se deben instalar para el sistema de administración de bases de datos (DBMS) requerido. MDAC debe instalar controladores para formatos de base de datos conocidos como: Access, dBase, Excel, FoxPro, Oracle, Paradox, texto delimitado, Visual FoxPro y SQL Server. Otros controladores están disponibles en Microsoft o proveedores de DBMS. Su controlador debe ser compatible con ODBC 3.0 como mínimo. En concreto, su base de datos debe admitir como mínimo cursores desplazables de sólo avance y traducciones de datos compatibles con SQL92. Para utilizar el modo de transacciones, debe verificar que el controlador ODBC es compatible con el nivel de entrada SQL92 como mínimo y que los procedimientos almacenados que escriba para la acción que se utilizará pueden ejecutarse dentro de una transacción. Se tiene que configurar un origen de datos ODBC para que lo utilice el servidor. Se puede realizar mediante el subprograma Orígenes de datos ODBC de Panel de control en el equipo servidor. Hay muchas formas de hacerlo: – Puede configurar un DSN de usuario, siempre que permita al servicio Document Server conectarse a Windows con un nombre de usuario especificado (consulte el subprograma Servicios de Panel de control). – Puede configurar un DSN de sistema, que no requiere que Document Server se conecte a Windows. – Puede configurar un DSN de archivo, que se puede utilizar para acceder a bases de datos remotas, pero normalmente requiere que el servicio Document Server se conecte a la red y tenga acceso al archivo destino. Si es necesario, cualquiera de estos orígenes de datos se pueden volver a configurar en tiempo de ejecución mediante una opción de acción. Referencia de ODBC 227 • • • La base de datos destino debe contener información de cuenta para el servidor. Para todas las bases de datos, excepto las más simples, se requiere un nombre de usuario y una contraseña de conexión para que el servidor edite la base de datos. El servidor requiere, como mínimo, derechos de consulta de estructura para las tablas a las que van a acceder sus scripts. También requiere acceso SELECT para las lecturas de base de datos y privilegios INSERT para las escrituras de base de datos, además de privilegios EXECUTE para los procedimientos almacenados que vaya a utilizar. El nombre de usuario y la contraseña se pueden suministrar como parte de la configuración del origen de datos ODBC o se pueden especificar en los valores de la acción. El servicio Document Server debe disponer de derechos de acceso a las bases de datos y/o repositorios de documentos que vayan a utilizar los scripts. Esto normalmente requiere que se concedan los privilegios necesarios para compartir a los recursos de la red y que el servicio Document Server se configure para conectarse a la red con un nombre de usuario y contraseña específicos. Consulte el subprograma Servicios de Panel de control de su ordenador para obtener información sobre cómo hacerlo. Para utilizar las características más avanzadas del módulo, debe estar familiarizado con ODBC, SQL y las peculiaridades de su DBMS. En concreto, debe estar familiarizado con la creación de procedimientos almacenados para la base de datos y conocer las implicaciones del bloqueo de filas, las transacciones en serie y la duplicación de bases de datos. Para obtener más información sobre cualquiera de estos requisitos previos, consulte la ayuda en línea de Administrador de ODBC y la documentación incluida con su DBMS. Compatibilidad de documentos de base de datos Un documento que se almacena en una base de datos se puede denominar genéricamente objeto grande binario (BLOB). No todas las bases de datos proporcionan compatibilidad BLOB y, por lo tanto, no admiten el almacenamiento de documentos en la base de datos. Oracle y Microsoft SQL Server son ejemplos de bases de datos que proporcionan compatibilidad con BLOB; por otro lado, Microsoft Access es un ejemplo de una base de datos que no proporciona dicha compatibilidad. Las bases de datos que no proporcionan compatibilidad con BLOB se pueden seguir utilizando para administrar documentos y trabajar con las acciones ODBCWrite y ODBCRead de Document Distributor. Para estas bases de datos, el script debe tener acceso a un directorio de red en el que se puedan almacenar los documentos. A continuación, el script puede utilizar la acción SaveToFile para escribir el documento de entrada en dicho directorio y almacenar la ubicación del archivo recién creado en la base de datos como una cadena. Del mismo modo, para recuperar el documento se puede obtener la ubicación del archivo almacenado de la base de datos como una cadena y, a continuación, utilizar el método AddFile() de una variable de documento para recuperarlo. Otras acciones del script pueden manipular y utilizar los documentos creados de este modo. Referencia de ODBC 228 Inserción de valores en columnas de fecha Document Distributor proporciona la fecha y hora actuales mediante original.usertime. Se trata de un valor de cadena con el siguiente formato: _DD_MMM_AAAA_HH_MI_SS_SSS. Los formatos de fecha/hora ODBC para los distintos tipos de datos SQL se muestran en la tabla siguiente. La transformación de original.usertime en el formato ODBC adecuado implica dividir original.usertime en sus componentes y volverlos a agrupar en el formato correspondiente aceptado por ODBC. En el caso de los scripts que crean filas nuevas en la base de datos, el valor de hora necesario en la base de datos es, con bastante probabilidad, la hora a la que se creó la fila y no la hora a la que se envió el documento a Document Distributor. En estos casos, resulta más fácil especificar un valor predeterminado en la base de datos para la columna de fecha/hora correspondiente en vez de suministrar el valor desde el script. En el caso de actualizaciones de fila, un desencadenador de la base de datos podría suministrar este valor (siempre y cuando la base de datos admita desencadenadores). Otra alternativa para analizar original.usertime en el script consiste en llamar a AssignValue(), especificando el nombre de columna como primer parámetro y una cadena vacía (" ") como el segundo. Esto indica a Document Distributor que llame a la función de hora de ODBC correspondiente al tipo de datos SQL de la columna. Esta correspondencia se muestra en la tabla siguiente con el valor resultante. Tipo de datos SQL Función ODBC Formato de hora SQL_TYPE_DATE CURDATE() AAAA-MM-DD SQL_TYPE_TIME CURTIME() HH:MM:SS[.dddddd] SQL_TYPE_TIMESTAMP NOW() AAAA-MM-DD HH:MM:SS[.ddddd] Referencia de ODBC 229 Referencia de códigos de barras Cada simbología de códigos de barras tiene sus propias reglas para la representación de caracteres, longitud, comprobación de errores y otras características. Difieren en el modo en que se representan los datos y los tipos de información que se pueden codificar: números, caracteres en mayúsculas, letras en minúsculas y puntuación. Para obtener más información sobre los códigos de barras, póngase en contacto con una organización de estándares del sector de códigos de barras como una de las siguientes: Organización de códigos de barras Sitio Web EAN International www.ean-int.org Uniform Code Council www.uc-council.org American National Standards Institute www.ansi.org En esta referencia se enumeran los códigos de barras que admiten las acciones BarcodeRead y BarcodeWrite. Cada tabla incluye una descripción del tipo de código de barras, los caracteres que admite, las restricciones de longitud, si requiere una suma de verificación, los distintos subtipos admitidos y los nombres por los que se conocen. También se proporciona información adicional que pueda resultar útil para leer o escribir los códigos de barras. Codabar Descripción Se utiliza habitualmente en bancos de sangre, bibliotecas, sistemas de paquetería y otras aplicaciones de procesamiento de información. Juego de caracteres Números: 0 – 9 Símbolos: guión (-), dos puntos (:), punto (.), signo de dólar ($), barra diagonal (/), signo más (+) Inicio/fin: A, B, C, D Longitud Variable Suma de verificación Ninguna definida Tipos admitidos LDD_BARCODE_CODABAR También se denomina USD-4, NW-7, 2 of 7 Code Referencia de códigos de barras 230 BarcodeRead Los datos devueltos por la acción incluyen los caracteres de inicio y fin. BarcodeWrite Los datos a codificar deben empezar con uno de los caracteres de inicio y terminar con uno de los caracteres de fin. Los caracteres de inicio y fin no tienen que coincidir. Code 2 of 5 Descripción Formato de código de barras antiguo; normalmente se utilizaba para numerar billetes de avión, acabado fotográfico e industrias de clasificación de almacenes. Juego de caracteres Sólo numéricos (0 – 9) Longitud Variable Suma de verificación Ninguna definida Tipos admitidos Industrial o estándar: LDD_BARCODE_C25_INDUSTRIAL Matrix: LDD_BARCODE_C25_MATRIX DataLogic: LDD_BARCODE_C25_DATALOGIC Airline: LDD_BARCODE_C25_AIRLINE También se denomina Code 25 Referencia de códigos de barras 231 Code 3 of 9 Descripción Utilizado habitualmente en muchos sectores. Formato de código de barras estándar para las especificaciones del gobierno de Estados Unidos. Juego de caracteres Letras en mayúsculas: A – Z Números: 0 – 9 Símbolos: espacio, guión (-), punto (.), signo de dólar ($), barra diagonal (/), signo más (+), signo de porcentaje (%) Longitud Variable (se recomienda un máximo de 25) Suma de verificación Opcional Tipos admitidos Sin suma de verificación: LDD_BARCODE_CODE39 Con suma de verificación: LDD_BARCODE_CODE39_CHK También se denomina USD-3, Code 39 Nota No se admite Code 39 Extended. Se recomienda el formato Code 128 en vez de éste porque codifica la información más eficazmente, lo que da como resultado una mayor densidad y capacidad. BarcodeRead Si se utiliza la suma de verificación, no se incluirá en los datos devueltos por esta acción. BarcodeWrite Si se utiliza la suma de verificación, se calcula automáticamente y se agrega al código de barras. No incluya la suma de verificación en los datos a codificar que se pasan a esta acción. Code 93 Descripción Formato compacto de Code 39; no se utiliza tanto como Code 39. Juego de caracteres Letras en mayúsculas: A – Z Números: 0 – 9 Símbolos: espacio, guión (-), punto (.), signo de dólar ($), barra diagonal (/), signo más (+), signo de porcentaje (%) Longitud Variable (se recomienda un máximo de 25) Suma de verificación Requerida Tipos admitidos LDD_BARCODE_CODE93 También se denomina USS 93 Nota No se admite Code 93 Extended. Referencia de códigos de barras 232 BarcodeRead La suma de verificación no se incluirá en los datos devueltos por esta acción. BarcodeWrite La suma de verificación se calcula automáticamente y se agrega al código de barras. No la incluya en los datos a codificar que se pasan a esta acción. Code 128 Descripción Se utiliza habitualmente en bancos de sangre, bibliotecas, sistemas de paquetería y otras aplicaciones de procesamiento de información. Juego de caracteres ASCII 0 – ASCII 127 Longitud Variable Suma de verificación Ninguna definida Tipos admitidos Code 128 A, Code 128 B, Code 128 C, Code 128 Autoswitch LDD_BARCODE_CODE128 También se denomina 128 EAN-8 Descripción Se utiliza en todo el mundo (excepto en Estados Unidos y Canadá) para la comercialización de productos al detalle. Es la forma comprimida de EAN-13 para su uso en productos con espacio de etiquetado pequeño. Juego de caracteres Sólo numéricos (0 – 9) Longitud 7 (6 de datos y 1 de suma de verificación) Suma de verificación Requerida Tipos admitidos Estándar: LDD_BARCODE_EAN8 Estándar + 2 dígitos complementarios: LDD_BARCODE_EAN8_PLUS2 Estándar + 5 dígitos complementarios: LDD_BARCODE_EAN8_PLUS5 Nota Este formato de código de barras sigue una estructura estricta según lo definido en UCC. Póngase en contacto con dicha organización para obtener la especificación más reciente de este código de barras. BarcodeRead La suma de verificación no se incluirá en los datos devueltos por esta acción. BarcodeWrite La suma de verificación se calcula automáticamente y se agrega al código de barras. La cadena de datos se debe codificar para que tenga exactamente 6 caracteres; no calcule la suma de verificación. Referencia de códigos de barras 233 EAN-13 Descripción Se utiliza en todo el mundo (excepto en Estados Unidos y Canadá) para la comercialización de productos al detalle. Juego de caracteres Sólo numéricos (0 – 9) Longitud 13 (12 de datos y 1 de suma de verificación) Suma de verificación Requerida Tipos admitidos Estándar: LDD_BARCODE_EAN13 Estándar + 2 dígitos complementarios: LDD_BARCODE_EAN13_PLUS2 Estándar + 5 dígitos complementarios: LDD_BARCODE_EAN13_PLUS5 Nota Este formato de código de barras sigue una estructura estricta según lo definido en UCC. Póngase en contacto con dicha organización para obtener la especificación más reciente de este código de barras. BarcodeRead La suma de verificación no se incluirá en los datos devueltos por esta acción. BarcodeWrite La suma de verificación se calcula automáticamente y se agrega al código de barras. La cadena de datos se debe codificar para que tenga exactamente 12 caracteres; no calcule la suma de verificación. ITF Descripción Código de barras compacto utilizado habitualmente en aplicaciones de almacenaje e industriales. Juego de caracteres Sólo numéricos (0 -9) Longitud Variable Suma de verificación Opcional (si se utiliza la suma de verificación, se debe codificar un número par de caracteres) Tipos admitidos Sin suma de verificación: LDD_BARCODE_ITF Con suma de verificación: LDD_BARCODE_ITF_CHK También se denomina Interleaved 2 of 5 BarcodeRead Si se utiliza la suma de verificación, no se incluirá en los datos devueltos por esta acción. BarcodeWrite Si se utiliza la suma de verificación, se calcula automáticamente y se agrega al código de barras. No la calcule. Asimismo, observe que al utilizar la suma de verificación se debe codificar un número par de caracteres. Referencia de códigos de barras 234 Patch Descripción Códigos especializados que se utilizan para separar trabajos de digitalización por lotes. Juego de caracteres N/D Longitud Variable Suma de verificación N/D Tipos admitidos LDD_BARCODE_PATCH BarcodeWrite No lo admite esta acción. PDF-417 Descripción Código de barras bidimensional que puede almacenar una gran cantidad de información. Este formato resulta muy útil en aplicaciones de flujo de trabajo que requieren que un documento transporte una gran cantidad de información. Juego de caracteres Todos los caracteres ASCII Longitud Variable Suma de verificación La corrección de errores incorporada en el formato no requiere una suma de verificación. Tipos admitidos LDD_BARCODE_PDF417 Referencia de códigos de barras 235 UCC 128 Descripción Versión especializada de Code 128 desarrollada por Uniform Code Council (UCC) que permite a las empresas intercambiar datos de códigos de barras en un formato común. Juego de caracteres ASCII 0–ASCII 127 Longitud Variable Suma de verificación Requerida Tipos admitidos LDD_BARCODE_UCC128 También se denomina EAN 128, UCC/EAN 128 Nota Este formato de código de barras sigue una estructura estricta según lo definido en UCC. Póngase en contacto con dicha organización para obtener la especificación más reciente de este código de barras. BarcodeRead La suma de verificación no se incluirá en los datos devueltos por esta acción. BarcodeWrite La suma de verificación se calcula automáticamente y se agrega al código de barras. No la incluya en los datos a codificar que se pasan a esta acción. UPC-A Descripción Se utiliza en Estados Unidos y Canadá para la comercialización de productos al detalle. Juego de caracteres Sólo numéricos (0 -9) Longitud 13 (12 de datos y 1 de suma de verificación) Suma de verificación Requerida Tipos admitidos LDD_BARCODE_UPCA Nota Este formato de código de barras sigue una estructura estricta según lo definido en UCC. Póngase en contacto con dicha organización para obtener la especificación más reciente de este código de barras. BarcodeRead La suma de verificación no se incluirá en los datos devueltos por esta acción. BarcodeWrite La suma de verificación se calcula automáticamente y se agrega al código de barras. La cadena de datos se debe codificar para que tenga exactamente 12 caracteres; no calcule la suma de verificación. Referencia de códigos de barras 236 UPC-E Descripción Se utiliza en Estados Unidos y Canadá para la comercialización de productos al detalle. Es la forma comprimida de UPC-A para su uso en productos con espacio de etiquetado pequeño. Juego de caracteres Sólo numéricos (0 -9) Longitud 7 (6 de datos y 1 de suma de verificación) Suma de verificación Requerida Tipos admitidos LDD_BARCODE_UPCE Nota Este formato de código de barras sigue una estructura estricta según lo definido en UCC. Póngase en contacto con dicha organización para obtener la especificación más reciente de este código de barras. BarcodeRead La suma de verificación no se incluirá en los datos devueltos por esta acción. BarcodeWrite La suma de verificación se calcula automáticamente y se agrega al código de barras. La cadena de datos se debe codificar para que tenga exactamente 6 caracteres; no calcule la suma de verificación. Referencia de códigos de barras 237 Referencia de metadatos A partir de la versión LDD 3.1, los scripts pueden anular la operación estándar de copia, fax e e-mail en las impresoras multifunción con pantalla táctil. Para la interfaz de usuario estándar permite que las funciones estén presentes en la pantalla táctil, pero cuando se pulsa el botón de inicio, en su lugar se ejecuta un perfil LDD. Si el script especifica que un documento que no es necesario se envíe, la impresora multifunción ejecutará la operación normal de copia/fax/e-mail y enviará los valores utilizados para finalizar dicha operación después de digitalizar la última página. Si el script especifica que es necesario un documento, los datos de imagen se envían a Document Server, junto con los valores solicitados del usuario. Para determinar si una impresora multifunción admite la función de anulación, agregue la impresora a Server Manager y visualice su bloc de notas. Si hay una ficha Pantalla de bienvenida, la admite. A continuación se muestra una lista de los valores que se envían según el tipo de función de anulación que se ofrece. En la última sección de esta referencia se explicará cómo acceder a estos valores desde un script. Opciones de digitalización Las opciones de digitalización se envían con cada trabajo. Se trata de los valores utilizados para digitalizar el documento; no indican la acción realizada con el documento. Estos valores se envían además de los valores disponibles con cada función de anulación concreta. Para acceder a cada valor: scanOptions.settingName Valores Valores válidos nUpBorder true Información adicional false n-Up 1-Up 2-Up Portrait 2-Up Landscape 4-Up Portrait 4-Up Landscape marginShift real Pulgadas para desplazar margen izquierdo xScale real Porcentaje para escalar la dimensión X yScale real Porcentaje para escalar la dimensión Y Referencia de metadatos 238 Valores Valores válidos Información adicional edgeErase.topMargin real Pulgadas para borrar el margen superior edgeErase.bottomMargin real Pulgadas para borrar el margen inferior edgeErase.rightMargin real Pulgadas para borrar el margen derecho edgeErase.leftMargin real Pulgadas para borrar el margen izquierdo bookOriginal 0 0 = activado; 1 = desactivado 1 bookWidth int Sólo válido si bookOriginal = 1; anchura en milímetros bookHeight int Sólo válido si bookOriginal = 1; altura en milímetros bookGutter int Sólo válido si bookOriginal = 1; medianil en milímetros contentType Text Combo Photo darkness Value from 1 to 9 depth 1 1 = Blanco y negro 8 8 = Escala de grises de 8 bits 24 24 = Color de 24 bits duplex Simplex Long Edge Bound Short Edge Bound Referencia de metadatos 239 Valores Valores válidos Información adicional mediaSize Unknown Tamaño de papel del documento digitalizado. Letter US A4 INTERNATIONAL Universal No Size Feeder Executive Letter Legal Tabloid A3 A4 A5 B4 JIS B4 B5 JIS B5 Folio Statement AutoSize Mixed orientation Landscape Portrait resolution 600 La resolución de la digitalización de un trabajo de anulación es siempre 600 ppp. Las siguientes opciones de digitalización sólo están presentes si el perfil especifica que no se va a enviar ningún documento: Valores Valores válidos Información adicional pagesScanned int Número de páginas digitalizadas scanCanceled true Indica si el usuario ha cancelado la digitalización antes de finalizarla. false Referencia de metadatos 240 Opciones de copia Las opciones de copia se envían cuando se anula la función Copia. Para acceder a cada valor: copyOptions.settingName Valores Valores válidos Información adicional outputBin Value from 0 to 20 0 = Salida estándar; 1 – 20 = Salida X holePunch true Indica si el usuario desea que se perfore la copia impresa. false booklet true Indica si el usuario desea que la copia impresa esté en formato de folleto. false orientation Landscape Indica la orientación solicitada de la copia impresa. Portrait mediaSource MPFEEDER Indica el origen del papel del que seleccionar el papel cuando se realiza la copia. MANUAL TRAY1 TRAY2 TRAY3 TRAY4 TRAY5 numberOfCopies int Entero que indica el número de copias que se va a realizar. messageOverlay None Indica si el usuario desea que se superponga un mensaje en la copia impresa. Urgent Confidential Copy Draft staple None Indica si el usuario desea que se grape la copia impresa. Top Left Portrait Double Left Portrait Top Left Landscape Referencia de metadatos 241 Valores Valores válidos Información adicional mediaSize Unknown Indica el tamaño de papel en el que el usuario desea realizar las copias. Letter US A4 INTERNATIONAL Universal No Size Feeder Executive Letter Legal Tabloid A3 A4 A5 B4 JIS B4 B5 JIS B5 Folio Statement AutoSize Mixed duplex Simplex Long Edge Bound Indica si el usuario desea que las copias estén en formato dúplex. Short Edge Bound collate true false dateTimeStamp true false Indica si el usuario desea que las copias se clasifiquen. Indica si el usuario desea que se agregue la fecha o el sello de hora a la copia impresa. Referencia de metadatos 242 Valores Valores válidos Información adicional mediaType NORMAL Tipo de papel en el que se realiza la copia impresa. TRANSPARENCY CARDSTOCK LETTERHEAD ROUGH LABELS BOND PREPRINTED COLOR COATED GLOSSY PHOTO CUSTOM1 CUSTOM2 CUSTOM3 CUSTOM4 CUSTOM5 CUSTOM6 separatorSheets true false outputBin Value from 0 to 20 Indica si el usuario desea hojas de separación entre las copias. 0 = Salida estándar; 1 – 20 = Salida X Referencia de metadatos 243 Opciones de fax Las opciones de fax se envían cuando se anula la función Fax. Para acceder a cada valor: faxOptions.settingName Valores Valores válidos Información adicional destinations.num<n> string Número de fax que se va a utilizar. Se aceptan varios números; se devuelven como destinations.num0, destinations.num1, etc. resolution Standard Fine Super Fine Ultra Fine time int Retraso al enviar el fax hasta la hora especificada. Valor 0 significa envío inmediato. De lo contrario, el valor es el retraso en el tiempo de envío menos el número de segundos desde el 1 de enero de 1970, 00:00:00 GMT. coverPageToField string Valor del campo Para que se va a utilizar en la portada. coverPageFromField string Valor del campo De que se va a utilizar en la portada. stationName string Nombre de la estación de fax. stationNumber string Número de teléfono de la estación de fax. faxMode analog Indica si la impresora multifunción está configurada para enviar el fax mediante una línea analógica o un mensaje de e-mail a un servidor de fax. faxServer Si faxMode es igual a faxServer, se incluirán las siguientes opciones de fax: Valores Valores válidos Información adicional fileFormat PDF Formato de archivo en el que se envía la imagen al servidor de fax. JPEG TIFF PS message string Cuerpo del mensaje de e-mail enviado al servidor de fax. replyAddress string Dirección de respuesta suministrada con el mensaje de e-mail enviado al servidor de fax. subject string Asunto del mensaje de e-mail enviado al servidor de fax. toField string Formato del campo Para enviado como parte del mensaje de e-mail al servidor de fax. El lugar donde se debe suministrar el número de teléfono aparece indicado por [#]. Se debe buscar este símbolo en el campo Para y sustituirse con cada uno de los destinos. Referencia de metadatos 244 Opciones de e-mail/FTP Las opciones de e-mail se envían cuando se anula la función de e-mail y se selecciona un destino de e-mail. Para acceder a cada valor: emailOptions.settingName Valores Valores válidos Información adicional destinations.num<n> string Dirección de e-mail que se va a utilizar. Se aceptan varias direcciones; se devuelven como destinations.num0, destinations.num1, etc. documentFormat.type PDF Formato de archivo con el que se debe enviar el anexo de e-mail. JPEG TIFF PS from string Dirección de origen del mensaje de e-mail subject string Asunto del e-mail message string Mensaje del e-mail primarySMTPGateway string Dirección IP del servidor SMTP principal primarySMTPPort int Puerto IP utilizado por el servidor SMTP principal secondarySMTPGateway string Dirección IP del servidor SMTP secundario secondarySMTPPort int Puerto IP utilizado por el servidor SMTP secundario SMTPTimeout int Tiempo de espera en segundos Las opciones de FTP se envían cuando se anula la función de e-mail y se selecciona un destino de FTP. Para acceder a cada valor: ftpOptions.settingName Valores Valores válidos Información adicional ftpDestination.logonID string ID de usuario utilizado para conectarse al servidor FTP ftpDestination.password string Contraseña utilizada para conectarse al servidor FTP ftpDestination.ftpServer string Dirección IP del servidor FTP ftpDestination.ftpPort int Puerto IP utilizado por el servidor FTP ftpDestination.filePath string Ruta de acceso al archivo en el servidor FTP ftpDestination.documentFormat.type PDF Formato con el que se debe guardar el archivo en el servidor FTP JPEG TIFF PS Referencia de metadatos 245 Acceso a los datos de anulación en un script Una vez que se transfiere la información de anulación a un script LDD, accede a él mediante la propiedad original.metadata. Esta propiedad es de asignación de tipo de datos. Una asignación consta de categorías; cada categoría puede contener subcategorías y/o pares de clave/valor. Con los valores anteriores, cualquier palabra con un punto (".") al final se considera una categoría. Por ejemplo, para acceder al número de copias solicitado por el usuario final: map copyopts = original.metadata.GetCategory("copyOptions") int numcopies = copyopts.GetValue("numberOfCopies").AsInt() Continuando con el ejemplo anterior, determine el número de páginas utilizado para copiar el documento asumiendo que se usan las opciones Símplex y que no se usa N en una: map scanopts = original.metadata.GetCategory("scanOptions") int numpages = scanopts.GetValue("pagesScanned").AsInt() int totalpages = numcopies * numpages Para acceder a los números de fax: map faxopts = original.metadata.GetCategory("faxOptions") map dests = faxopts.GetCategory("destinations") stringarray nums = dests.GetKeyList() string num int i loop (i from 1 to nums.GetSize()) num = dests.GetValue(nums[i]) endloop Referencia de metadatos 246 Lexmark y Lexmark con diamante son marcas comerciales de Lexmark International, Inc., registradas en los Estados Unidos y/o en otros países. © 2003 Lexmark International, Inc. 740 West New Circle Road Lexington, Kentucky 40550 www.lexmark.com