colaboraciones sumario condenadamente bueno!!! pdfatt.es/attnews/archivos/attitudes_298.pdf ·...

16
SUMARIO Colaboraciones Condenadamente bueno!!! PDF 2 Trabajar con columnas de identidad 6 Transferencia de archivos complejos 7 Timestamp en los archivos de stream 10 Novedades Acceso a bases de datos remotas 9 Secure FTP Server 16 Control y gestión de transferencias 15 COLABORACIONES Transferencia en los archivos de stream Condenadamente bueno!!! PDF Trabajar con columnas de identidad Información sobre Power Systems, incluidos AS/400, iSeries y System i Año 28 - Julio-Agosto 2014 Nº 298 Precio: 7 Euros Afortunadamente, el IBM i aporta un Sistema Integrado de Archivos (IFS - In- tegrated File System), en el que se puede almacenar cualquier clase de dato que se le antoje. También provee una API que sus programas pueden utilizar para recuperar información sobre los archivos stream en el IFS. Pero por desgracia, está API está enraízada con el mundo Unix. Por tanto, los Timestamps se almacenan de una ex- traña manera. Cuando desea saber algo a través de un programa sobre un archivo stream puede utilizar la stat API. Como muchas cosas en UNIX, stat es un poco idiosincrático, es- pecialmente en la manera en que informa sobre la última vez que un fichero fue ac- cedido, su contenido cambiado o su estado modificado. Estas horas se dan en formato epoch time. Epoch time es el número de segundos transcurridos desde 1 de Enero de 1970 UTC, sin contar los segundos de salto. Como se representa como un entero con signo de 4 bytes, el rango de datos permiti- dos va desde 13 de Diciembre de 1901 a 19 de Enero de 2038. (http://www.epochcon- verter.com) El siguiente ejemplo de la excelencia en programación ilustra el proceso por el que debe pasar para saber cuando un archi- vo fue accedido o modificado por última vez. Si tiene el sistema operativo IBM i 6.1 o posterior, tiene una gran alternativa de los archivos de spool a su disposición. Los PDF. Mostramos a continuación 4 sencillas maneras de añadir la generación de PDF a su programación. Puede hacer que sus programas RPG, Cobol u otros programas escriban directamente en archivos PDF. Si usted específica un directorio, el sistema inventará un nombre para el archivo stream generado. Si especifica un nombre de archivo stream, ese archivo stream no debe existir a la hora de ejecución. Utilizar una columna de identidad es una maravillosa manera de asegurarse de que cada fila de una tabla (registro de un archivo físico) tenga un identificador único. Es mucho mejor que almacenar el siguiente número (factura, transacción, etc…) en un área de datos o en un archivo de base de datos de un solo registro. Aquí están un montón de ideas a tener en cuenta al insertar filas (escribir registros) en una tabla que tiene una columna de identidad. Deje que el sistema asigne el valor a la columna de identidad. Esto se consigue especificando GENERATED ALWAYS o bien, omitiendo la opción GENERATED al crear la tabla. Sigue en página 10 Sigue en página 2 Sigue en página 6

Upload: others

Post on 31-Jan-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

  • SUMARIO

    Colaboraciones

    Condenadamente bueno!!! PDF 2 Trabajar con columnas deidentidad 6 Transferencia de archivoscomplejos 7 Timestamp en los archivos de stream 10

    Novedades

    Acceso a bases de datosremotas 9

    Secure FTP Server

    16

    Control y gestión de transferencias

    15

    COLABORACIONES

    Transferencia en los archivos de stream

    Condenadamente bueno!!! PDF

    Trabajar con columnas deidentidad

    Información sobre Power Systems, incluidos AS/400, iSeries y System i

    Año 28 - Julio-Agosto 2014 Nº 298 Precio: 7 Euros

    Afortunadamente, el IBM i aporta un Sistema Integrado de Archivos (IFS - In-tegrated File System), en el que se puede almacenar cualquier clase de dato que se le antoje. También provee una API que sus programas pueden utilizar para recuperar información sobre los archivos stream en el IFS. Pero por desgracia, está API está enraízada con el mundo Unix. Por tanto, los Timestamps se almacenan de una ex-traña manera.

    Cuando desea saber algo a través de un

    programa sobre un archivo stream puede utilizar la stat API. Como muchas cosas en UNIX, stat es un poco idiosincrático, es-pecialmente en la manera en que informa sobre la última vez que un fichero fue ac-cedido, su contenido cambiado o su estado modificado. Estas horas se dan en formato epoch time.

    Epoch time es el número de segundos transcurridos desde 1 de Enero de 1970 UTC, sin contar los segundos de salto. Como se representa como un entero con

    signo de 4 bytes, el rango de datos permiti-dos va desde 13 de Diciembre de 1901 a 19 de Enero de 2038. (http://www.epochcon-verter.com)

    El siguiente ejemplo de la excelencia en programación ilustra el proceso por el que debe pasar para saber cuando un archi-vo fue accedido o modificado por última vez.

    Si tiene el sistema operativo IBM i 6.1 o posterior, tiene una gran alternativa de los archivos de spool a su disposición. Los PDF. Mostramos a continuación 4 sencillas maneras de añadir la generación de PDF a su programación.

    Puede hacer que sus programas RPG, Cobol u otros programas escriban

    directamente en archivos PDF. Si usted específica un directorio, el

    sistema inventará un nombre para el archivo stream generado. Si especifica un nombre de archivo stream, ese archivo stream no debe existir a la hora de ejecución.

    Utilizar una columna de identidad es una maravillosa manera de asegurarse de que cada fila de una tabla (registro de un archivo físico) tenga un identificador único. Es mucho mejor que almacenar el siguiente número (factura, transacción, etc…) en un área de datos o en un archivo de base de datos de un solo registro. Aquí están un montón de ideas a tener en

    cuenta al insertar filas (escribir registros) en una tabla que tiene una columna de identidad.

    Deje que el sistema asigne el valor a la columna de identidad. Esto se consigue especificando GENERATED ALWAYS o bien, omitiendo la opción GENERATED al crear la tabla.

    Sigue en página 10

    Sigue en página 2

    Sigue en página 6

    http://www.att.es/producto/keyes_archive.html

  • COLABORACIONES

    2 Julio-Agosto 2014ATTITUDES Nº 298

    Si tiene el sistema operativo IBM i 6.1 o posterior, tiene una gran alternativa de los archivos de spool a su disposición. Los PDF. Mostramos a continuación 4 sencillas maneras de añadir la generación de PDF a su programación.

    Método 1 -Escribir directamente en PDF.Puede hacer que sus programas RPG, Cobol u otros

    programas escriban directamente en archivos PDF. Deberá especificar los valores apropiados en los mandatos:

    • Create Printer File (CRTPRTF)• Change Printer File (CHGPRTF)• Override with Printer File (OVRPRTF)

    para los siguientes parámetros:• Device type (DEVTYPE) debe ser *AFPDS• Workstation customizing object (WSCST) debe ser *PDF

    • To stream file (TOSTMF) debe ser un directroio válido o nombre de archivo

    Si usted específica un directorio, el sistema inventará un nombre para el archivo stream generado. Si especifica un nombre de archivo stream, ese archivo stream no debe existir a la hora de ejecución.

    A modo de ejemplo, consideremos un sencillo informe. En primer lugar, cree la impresora que generará el PDF. Condenadamente bueno!!

    PDF

    Si tiene el sistema operativo IBM i 6.1 o posterior, tiene una gran alternativa de los archivos de spool a su disposición. Los PDF. Mostramos a continuación 4 sencillas maneras de añadir la generación de PDF a su programación.

    Condenadamente bueno!!PDF

    Tel. 93 3191612 Fax 93 3191755 [email protected] www.att.es

    DECOMPILER

    Recuperación de programas fuente

    desde programas objeto

    Recuperación objetos:

    - RPG IV- RPG 36/38- RPG 400- COBOL 36/38- COBOL 400- CL- DDS

    En poco más del tiempo empleado en compilar un programa fuente, puede descompilar un programa objeto.

    - Proteja su inversión.

    - Simplifique las migraciones

    - Evite reprogramaciones.

     * To create: * * CRTPRTF FILE(MYLIB/QAD03320P) * SRCFILE(MYLIB/QDDSSRC) SRCMBR(QAD03320P) * DEVTYPE(*AFPDS) + * TOSTMF('/tmp/Customer-list.PDF') WSCST(*PDF) A REF(QCUSTCDT) A R DETAIL SPACEB(1) A CUSNUM R 1 A LSTNAM R +1 A INIT R +1 A CITY R +1

    http://www.att.es/producto/decompiler.html

  • COLABORACIONES

    3 Julio-Agosto 2014ATTITUDES Nº 298

    Escriba un programa RPG para construir el informe.

    Y ya está!

    Método 2: Copiar un archivo de spool a un PDFUtilizar el mandato CPYSPLF (Copy Spooled File)

    para copiar el archivo de spool a un PDF. Está técnica la he utilizado con archivos de spool SCS y AFPDS.

    Debe especificar el valor *TOSTMF en el parámetro TOFILE. Los parámetros TOSTMF y WSCST se comportan como en CRTPRTF. Puede especificar STMFOPT(*REPLACE) para crear un nuevo archivo sobre uno ya existente con el mismo nombre.

    Método 3 - Un método un tanto más largo para copiar un fichero Spool a PDF.

    Según me han dicho, el método 2 no funciona bajo la versión IBM i 6.1. Como no he trabajado nunca en 6.1, no he podido comprobarlo. Está es una variación del método

    anterior. Es un poco más largo. Requiere una copia del fichero de spool a un archivo de base de datos temporal y desde este a un archivo stream. Observe el uso del mandato de carácter de control del primer carácter.

    La desventaja de este método es que sólo sirve para ficheros de spool *SCS.

    Método 4 - Leer y reformatear el fichero de spoolLos métodos anteriores producen PDFs similares a sus

    informes. Si desea leer el informe, puede reformatearlo como quiera. A continuación muestro un programa RPG que lee un archivo de spool y construye un archivo stream.

    Nº ejemplares: 8.500Precio ejemplar: 7,00 euros (Anual 60 )Difusión: Andorra, Portugal, Italia y EspañaPublicidad: Tel. 93 319 17 23

    Edita: American Top Tools, S.L.Via Laietana, 2008003 Barcelona

    Tel. 93 319 16 12 - Fax 93 319 17 55E-mail: [email protected]

    Depósito Legal: B-18.455-1993 Imprime Graficas AltagrafPublicación: 10 ediciones

    Alcance: 00/58

     Fqcustcdt if e disk Fqad03320p o e printer /free *inlr = *on; dow '1'; read cusrec; if %eof(); leave; endif; write detail; enddo; return;

     CPYSPLF FILE(QPRTLIBL) TOFILE(*TOSTMF) SPLNBR(*LAST) + TOSTMF('Some-report.pdf') WSCST(*PDF)

     CRTPF QTEMP/REPORT RCDLEN(133) CPYSPLF FILE(QPRINT01) TOFILE(QTEMP/REPORT) + SPLNBR(*LAST) CTLCHAR(*FCFC) OVRPRTF FILE(QSYSPRT) DEVTYPE(*AFPDS) CTLCHAR(*FCFC) + TOSTMF('test-report.pdf') WSCST(*PDF) CPYF FROMFILE(QTEMP/REPORT) TOFILE(QSYSPRT)

  • COLABORACIONES

    4 Julio-Agosto 2014ATTITUDES Nº 298

     PROGRAMA RPG FSpoolIn if f 136 disk usropn FSpoolOut o f 132 printer oflind(*inof) F prtctl(prtctlds) F usropn

    D prtctlds ds 15 D pSpaceBefore 1 3 D pSpaceAfter 4 6 D pSkipBefore 7 9 D pSkipAfter 10 12 D pLineNbr 13 15

    D OutputData ds 132

    D InputDS ds D sSkipBefore 1 3 D sSpaceBefore 4 4 D InputData 5 136

    /free *inlr = *on; open SpoolIn ; open SpoolOut; dow '1'; read SpoolIn InputDS; if %eof(); leave; endif;

    OutputData = InputData;

    // make changes to OutputData as desired

    if sSkipBefore *blanks; pSkipBefore = sSkipBefore; else; pSkipBefore = *blanks; endif;

    if sSpaceBefore *blanks; %subst(pSpaceBefore:3:1) = sSpaceBefore; else; pSpaceBefore = *blanks; endif;

    write SpoolOut OutputData; enddo; return;

    http://www.att.es/producto/crypto_complete.html

  • COLABORACIONES

    5 Julio-Agosto 2014ATTITUDES Nº 298

    Este es el CL que lo maneja.

    El programa lee un archivo de base de datos, en el que previamente se ha copiado un fichero de spool y loescribe en un archivo stream.

    Este método utiliza una estructura de control de datos

    para impresora para gestionar el espaciado y saltos.

    Ahí lo tiene. Si desea integrar los PDF en su programa-ción es muy sencillo.

     PROGRAMA CL pgm dcl &Stmf *char 40 '/tmp/My-library-list.PDF' crtprtf qtemp/spoolout devtype(*afpds) + tostmf(&Stmf) wscst(*pdf) clrpfm qtemp/spoolin monmsg cpf3142 exec(do) crtpf qtemp/spoolin rcdlen(136) enddo cpysplf file(qprtlibl) tofile(qtemp/spoolin) + job(*) splnbr(*last) mbropt(*add) + ctlchar(*prtctl) /* Delete the stream file if it exists. */ rmvlnk objlnk(&Stmf) monmsg cpfa0a9 ovrdbf spoolin tofile(qtemp/spoolin) call qad03321r dltovr spoolin endpgm

    http://www.att.es/producto/ezprint_labels.html

  • COLABORACIONES

    6 Julio-Agosto 2014ATTITUDES Nº 298

    Utilizar una columna de identidad es una maravillosa manera de asegurarse de que cada fila de una tabla (registro de un archivo físico) tenga un identificador único. Es mucho mejor que almacenar el siguiente número (factura, transacción, etc…) en un área de datos o en un archivo de base de datos de un solo registro. Aquí están un montón de ideas a tener en cuenta al insertar filas

    (escribir registros) en una tabla que tiene una columna de identidad.

    1. Deje que el sistema asigne el valor a la columna de identidad. Esto se consigue especificando GENERATED ALWAYS o bien, omitiendo la opción GENERATED al crear la tabla.

    El sistema asigna el próximo valor a la columna de identidad ID.

    4. La combinación de dos tablas puede ser complicada. ¿Qué pasa si desea añadir todas las filas de la tabla SALES a la tabla de ventas histórica y ambas tablas tienen los mismos valores en las columnas de identidad?

    Simplemente añada a la sentencia OVERRIDING USER VALUE

    El sistema ignorará los valores de la columna ID de la tabla SALES y asignará nuevos valores a la columna ID cuando inserte las filas de SALES en la tabla SalesHistory.

    He escrito y utilizado mucho código que recupera el

    siguiente número secuencia de un área de datos o archivo físico, y no pienso cambiar ni una sola letra del que está en producción actualmente. Pero tampoco pienso volver a utilizar esa técnica en el futuro.

    La otra opción, GENERATED BY DEFAULT, permite asignar un valor de su elección a la columna de identidad. Es posible que exista alguna situación que requiera está opción, pero no me viene ninguna a la mente en este

    momento.

    2. Una manera de insertar una fila es listar las columnas (campos), omitiendo la columna de identidad.

    3. Si usted tiene un montón de columnas en una tabla (piense en docenas o quizás cientos de columnas), quizá

    no quiera listarlas. Si no lista las columnas, asigne el valor DEFAULT a la columna de identidad.

    de identidad (código de cliente, producto...)

     create table Sales ( ID integer generated always as identity, Invoice dec (9,0), Line dec (3,0), InvoiceDate date, Customer dec (7,0), Item char (12), Quantity dec (3,0), Price dec (5,2), primary key (ID))

    Or:

    create table Sales ( ID integer as identity, . . . etc . . .

     

     insert into Sales (Invoice, Line, InvoiceDate, Customer, Item, Quantity, Price) values (1001, 002, '2014-06-04', 6004, 'AB-221', 6, 5)

     insert into Sales values (default, 1001, 002, '2014-06-04', 6004, 'AB-221', 6, 5 )

     insert into SalesHistory overriding user value select * from Sales

    polarisImagen colocada

  • ¿Recuerda cuándo la gente hablaba del e-business y el gran impacto esperado sobre Internet? Las predicciones han resultado ser realidad e Internet hoy en día esta prácticamente en todas las actividades de las empresas. En este nuevo mundo de negocios on-line, los productos de transferencia de archivos gestionada (MFT-Managed File Transfer) se han convertido en las herramientas precisas para llevar a cabo esas tareas. La última versión de la solución MFT de Linoma Software, distribuida en España por American Top Tools, puede hacer todavía más.

    Las soluciones MFT han sido siempre herramientas FTP con una dosis de esteroides. Además de mover los archivos, estas soluciones pueden lanzar procesos en máquinas remotas, como lanzar un trabajo de informes en batch en un servidor Windows, tras recibir datos diarios desde un servidor IBM i. Si los datos son el corazón de la empresa y los archivos son el cómo se mueven los datos, entonces las soluciones MFT son indispensables en aras de la mayor productividad en un mundo de datos.

    Una reciente actualización del producto estrella de Linoma Software, la solución MFT GoAnywhere Director, lleva la automatización a una nueva dimensión. Para los iniciados, Linoma facilita a los usuarios la posibilidad de organizar y priorizar los trabajos batch dentro de las colas de trabajos propias ya personalizadas. Según Linoma, esto permite a los usuarios dar una mayor prioridad a ciertos trabajos para alcanzar y cumplir los acuerdos de nivel de servicio adquiridos con ciertos socios comerciales o interlocutores con los que intercambian información. Las colas de trabajo son de una única hebra, asegurando que las transferencias de archivos se ejecutan en el orden en que fueron sometidas.

    GoAnywhere Director 4.6 mejora la transformación de datos. En una transferencia de datos desde una tabla de base de datos a un formato de archivo XML, CSV, Excel o de texto de ancho fijo, GoAnywhere Director puede modificar los datos para ajustarse a los requisitos del los socios comerciales. También permite realizar este proceso durante la importación de un archivo o documento en una base de datos relacional.

    Linoma facilita a los usuarios de GoAnywhere Director un nuevo monitor de archivos que automáticamente escanea los servidores SFTP, FTP y FTPS. Cuando se detecte una actualización, entrada o borrado de archivo, el

    monitor ejecutará de forma automática el proyecto especificado. El producto utiliza un asistente gráfico para guiar al usuario en el proceso de configuración, incluyendo las carpetas que escaneara, el patrón del nombre de archivo y con qué frecuencia.

    Con esta versión, GoAnywhere puede ejecutar mandatos remotos en servidores habilitados con SSH, como los servidores SFTP. La tarea “Execute SSH Commands” (Ejecutar mandatos SSH) permite a los administradores pasar parámetros del mandato utilizando variables, y el output resultante del mandato puede ser redirigido al job log o a un archivo de salida.

    La actividad desarrollada en un servidor MFT, con la preponderancia de monitores, colas de trabajo, mandatos remotos y transferencias de archivos automatizadas, puede ser frenética. Por ello, Linoma, consciente de este problema, introduce una nueva herramienta de depuración para ayudar a detectar mejor los problemas en los flujos de trabajo de MF´T y ayudar a los usuarios a estar al tanto de lo que pasa. El nuevo depurador permite al administrador ir tarea tras tarea y ver o modificar el valor de las variables una vez se ha ejecutado la tarea.

    La seguridad y cumplimiento regulatorio viene siendo una parte básica y fundamental de cualquier herramienta MFT. GoAnywhere Director 4.6 proporciona la posibilidad de establecer carpetas que protegen los datos contenidos mediante encriptación AES-256. Para Linoma, es fundamental para poder cumplir con las provisiones de las políticas de protección de datos PCI, HIPAA y otras.

    GoAnywhere Director es el producto bandera de la línea GoAnywhere de Linoma, conformada por GoAnywhere Services y GoAnywhere Proxy. Los tres productos se ejecutan tanto en IBM i como en la mayoría de los principales sistemas operativos. Soportan los protocolos FTP, FTPS, SFTP, HTTP, HTTPS, SMTP, POP3 e IMAP. GoAnywhere Director fue diseñado originalmente para grandes organizaciones con necesidades de transferencia de archivos internas y ofrece características no incluidas en GoAnywhere Services, como la encriptación AES y PGP, conversión de archivos y de realizar conexiones de base de datos directas. Puede obtener más información en:

    www.att.es/producto/goanywhere.html

    COLABORACIONES

    7 Julio-Agosto 2014ATTITUDES Nº 298

    Linoma perfecciona su control de procesos de transferencia de archivos complejos

    http://www.att.es/producto/goanywhere.html

  • http://www.att.es/producto/rdb_connect.htmlhttp://www.att.es/producto/rdb_connect.htmlhttp://www.att.es/producto/rdb_connect.htmlhttp://www.att.es/producto/rdb_connect.html

  • Acceso SQL desde sus programas RPG y Cobol RDB Connect permite el acceso SQL total a distintas bases de datos remotas y realiza la

    actualización inmediata de la BD en tiempo real desde sus programas RPG o COBOL en su plataforma AS/400. Al mismo tiempo, consigue centralizar el mantenimiento de la mayoría de sus tareas de mantenimiento de archivos en diferentes plataformas sin tener que preocuparse de las características propias de cada base de datos con las que las aplicaciones tienen que comunicarse.

    Sincronización de datos RDB Connect permite sincronizar datos

    entre bases de datos, generar informes a partir de datos en sistemas diferentes y bases de datos remotas, eliminar transferencias de datos o la duplicación de entradas de datos así como leer, insertar, actualizar y borrar registros de manera programada y sin intervención manual.

    Comunicación total Un conjunto de funciones (APIs) y

    mandatos permiten el acceso de RDB Connect a nivel de registro a bases de datos remotas como MySQL, Microsoft SQL Server, Oracle, Postgre, Access, DB2 entre otras. Puede configurarse la conexión con cualquier base de datos con acceso ODBC o JDBC.

    Intercambia y optimiza la información

    alojada en múltiples plataformas.

    Acceso a bases de datos remotas desde IBM i-AS/400

    Deseamos realizar una Prueba Gratuita, en nuestra propia máquina para conocer las propiedades de la aplicación RDB Connect

    Nombre ….................................................................................................Tel. ( ) .............................. Empresa ….............................................................................................. Fax ( ) .............................. CP.............. Ciudad........................................................ E-mail .............................................................

    Soluciones para AS/400, iSeries, System i, IBM i y Power Systems

    Cada vez es más frecuente encontrar empresas que trabajan con diferentes sistemas y bases de datos. La comunicación, accesibilidad, coherencia y sincronización entre ellas y especialmente desde el sistema que conocemos mejor, el AS/400 - IBM i, es no ya una obligación, sino el primer objetivo a conseguir.

    Poder facilitar la configuración de dicha intercomunicación y poder acceder mediante consultas SQL desde los programas RPG y CL del AS/400 de que ya disponemos, e insertar datos en bases de datos como Oracle, DB2, MySQL, PostgreSQL, Access u otras, en distintas plataformas, sería el segundo. Establecer estas comunicaciones y mantenerlas requiere conocer en profundidad procesos de conexión de bases de datos, los distintos parámetros y características propias de cada base de datos y las diferentes plataformas que las alojan. Contar con una herramienta que agilice estas tareas y centralice su control permite ser más eficaz en todos los sentidos.

    http://www.att.es/producto/rdb_connect.htmlhttp://www.att.es/producto/rdb_connect.htmlhttp://www.att.es/envio_mailings.htm?producto=RDB%20Connect%20-%20Acceso%20BD%20remotashttp://www.att.es/producto/rdb_connect.html

  • COLABORACIONES

    10 Julio-Agosto 2014ATTITUDES Nº 298

    Afortunadamente, el IBM i aporta un Sistema Integra-do de Archivos (IFS - Integrated File System), en el que se puede almacenar cualquier clase de dato que se le antoje. También provee una API que sus programas pueden utili-zar para recuperar información sobre los archivos stream en el IFS. Pero por desgracia, está API está enraízada con el mundo Unix. Por tanto, los Timestamps se almacenan de una extraña manera.

    Cuando desea saber algo a través de un programa so-bre un archivo stream puede utilizar la stat API. Como muchas cosas en UNIX, stat es un poco idiosincrático, es-pecialmente en la manera en que informa sobre la última vez que un fichero fue accedido, su contenido cambiado o

    su estado modificado. Estas horas se dan en formato epoch time.

    Epoch time es el número de segundos transcurridos desde 1 de Enero de 1970 UTC, sin contar los segundos de salto. Como se representa como un entero con signo de 4 bytes, el rango de datos permitidos va desde 13 de Diciembre de 1901 a 19 de Enero de 2038. (http://www.epochconverter.com)

    El siguiente ejemplo de la excelencia en programación ilustra el proceso por el que debe pasar para saber cuando un archivo fue accedido o modificado por última vez.

    Interpretar los Timestampen los archivos de stream

     INICIO PROGRAMA…

     H dftactgrp(*no) actgrp(*new)H option(*srcstmt: *nodebugio) bnddir('QC2LE')

    D g_UTC_Offset s 10i 0

    D StmfInfo ds qualified inzD Mode 10u 0D ID 10u 0D 5u 0D 5u 0D UserID 10u 0D GroupID 10u 0D Size 10i 0D AccessTime 10i 0D ContentChangeTime...D 10i 0D StatusChangeTime...D 10i 0D 10u 0D BlockSize 10u 0D AllocationSize...D 10u 0D ObjectType 11aD 1aD CodePage 5u 0D CCSID 5u 0D DeivceID 10u 0D NumberOfLinks...D 10u 0D DeviceID 20u 0D FileSystemID 20u 0D 36aD Generation_ID...D 10u 0

  • COLABORACIONES

    11 Julio-Agosto 2014ATTITUDES Nº 298

    D stat pr 10i 0 extproc('stat')D path * value options(*string)D buffer likeds(StmfInfo)

    D StmfName s 256a varyingD FileStatus s 10i 0

    D AccessTime s zD ContentChangeTime...D s zD StatusChangeTime...D s z

    /free *inlr = *on; Get_UTC_Offset (); // UTC_Offset = -18,000 seconds

    StmfName = 'cdcatalog.xml'; FileStatus = stat (StmfName: StmfInfo);

    if FileStatus >= *zero; AccessTime = ToTime (StmfInfo.AccessTime); ContentChangeTime = ToTime (StmfInfo.ContentChangeTime); StatusChangeTime = ToTime (StmfInfo.StatusChangeTime); endif;

    return; /end-free * ==============================================================P Get_UTC_Offset bD pi

    D CEEUTCO pr extproc('CEEUTCO')D Hours 10i 0D Minutes 10i 0D Seconds 8fD FC 12a options(*omit)

    D UTC_Hours s 10i 0D UTC_Minutes s 10i 0D UTC_Seconds s 8f

    /free CEEUTCO (UTC_Hours: UTC_Minutes: UTC_Seconds: *omit); g_UTC_Offset = %int(UTC_Seconds); /end-freeP e * ===============================================================P ToTime bD pi zD inSeconds 10i 0 value *** localsD Epoch s z inz(z'1970-01-01-00.00.00') /free return Epoch + %seconds(inSeconds) + %seconds(g_UTC_Offset);/end-freeP

     …FIN PROGRAMA

     

  • COLABORACIONES

    12 Julio-Agosto 2014ATTITUDES Nº 298

    El programa llama en primer lugar a la API “Get Offset from Universal Time Coordinated to Local Time” (CEEUT-CO) para definir el offset del sistema como UTC en segundos.

     D g_UTC_Offset s 10i 0

    P Get_UTC_Offset b D pi

    D CEEUTCO pr extproc('CEEUTCO') D Hours 10i 0 D Minutes 10i 0 D Seconds 8f D FC 12a options(*omit)

    D UTC_Hours s 10i 0 D UTC_Minutes s 10i 0 D UTC_Seconds s 8f

    /free CEEUTCO (UTC_Hours: UTC_Minutes: UTC_Seconds: *omit); g_UTC_Offset = %int(UTC_Seconds); /end-free P e

    http://www.att.es/producto/axes.html

  • COLABORACIONES

    13 Julio-Agosto 2014ATTITUDES Nº 298

    La API CEEUTCO carga tres parámetros:

    • El número de horas hasta offset• El número de minutos adicionales de offset• El número total de segundos offset

    Ignoro un cuarto parámetro omisible. También ignoro los dos primeros parámetros. Sólo utilizo el tercero. Dado que mi empresa está en el huso horario Central Time

    Zone, que es 5 horas por detrás de UTC, CEEUTCO carga 18000 en el tercer parámetro. El programa copia este valor en una variable global g_UTC_Offset. Por norma, evito las variables globales, pero las variables globales son bue-nas para valores invariables tal y como éste.

    Ahora el programa ejecuta la stat API para recuperar información sobre un archivo stream.

     D StmfInfo ds qualified inz D Mode 10u 0 D ID 10u 0 D 5u 0 D 5u 0 D UserID 10u 0 D GroupID 10u 0 D Size 10i 0 D AccessTime 10i 0 D ContentChangeTime... D 10i 0 D StatusChangeTime... D 10i 0 D 10u 0 D BlockSize 10u 0 D AllocationSize... D 10u 0 D ObjectType 11a D 1a D CodePage 5u 0 D CCSID 5u 0 D DeivceID 10u 0 D NumberOfLinks... D 10u 0 D DeviceID 20u 0 D FileSystemID 20u 0 D 36a D Generation_ID... D 10u 0

    D stat pr 10i 0 extproc('stat') D path * value options(*string) D buffer likeds(StmfInfo)

    D StmfName s 256a varying D FileStatus s 10i 0

    /free StmfName = 'cdcatalog.xml'; FileStatus = stat (StmfName: StmfInfo);

    http://www.att.es/producto/goanywhere.html

  • COLABORACIONES

    14 Julio-Agosto 2014ATTITUDES Nº 298

    Ahora el programa debe convertir los tres timestamps del formato Epoch al tipo de dato timestamp.

    La siguiente tabla muestra los valores de timestamp para el archivo del ejemplo.

    Puede parecer algo raro almacenar timestamps de esta manera, pero si toda empresa del estado de Mississippi hubiera estado trabajando con máquinas Unix en lugar de

    Sistemas/34 en los años 80, yo estaría mucho más familia-rizado con la hora Epoch y lo consideraría normal.

     AccessTime = ToTime (StmfInfo.AccessTime);

    P ToTime b D pi z D inSeconds 10i 0 value *** locals D Epoch s z inz(z'1970-01-01-00.00.00') /free return Epoch + %seconds(inSeconds) + %seconds(g_UTC_Offset); /end-free P e

    La siguiente tabla muestra los valores de timestamp para el archivo del ejemplo. Field   Epoch  time   Timestamp  Access  time   1397513743   2014-‐04-‐14-‐17.15.43  Content  change  time   1380124596   2013-‐09-‐25-‐10.56.36  Status  change  time   1380125525   2013-‐09-‐25-‐11.12.05   Puede parecer algo raro almacenar timestamps de esta manera, pero si toda empresa del estado de Mississippi hubiera estado trabajando con máquinas Unix en lugar de Sistemas/34 en los años 80, yo estaría mucho más familiarizado con la hora Epoch y lo consideraría normal. ----- - - - - - - - - - - - - -

    COLABORACION

    Los retos de trabajar con columnas de identidad

    (código de cliente, producto…….)

    Utilizar una columna de identidad es una maravillosa manera de asegurarse de que cada fila de una tabla (registro de un archivo físico) tenga un identificador único. Es mucho mejor que almacenar el siguiente número (factura, transacción, etc…) en un área de datos o en un archivo de base de datos de un solo registro. Aquí están un montón de ideas a tener en cuenta al insertar filas (escribir registros) en una tabla que tiene una columna de identidad. 1. Deje que el sistema asigne el valor a la columna de identidad. Esto se consigue especificando GENERATED ALWAYS o bien, omitiendo la opción GENERATED al crear la tabla.

    AccessTime = ToTime (StmfInfo.AccessTime);

    P ToTime b D pi z D inSeconds 10i 0 value *** locals D Epoch s z inz(z'1970-01-01-00.00.00') /free return Epoch + %seconds(inSeconds) + %seconds(g_UTC_Offset); /end-free P e

    http://www.att.es/producto/crypto_complete.html

  • Recuperar correos de una cuenta, salvar los archivos adjuntos e importar el contenido a la base de datos

    Exportar registros a CSV, encriptar el archivo con Open PGP y enviarlo a un servidor FTP.

    Recuperar archivos de un servidor FTP, desencriptarlos e importar todo su contenido a una base de datos

    Conexiones Multiplataforma

    Las empresas intercambian información con sus clientes, bancos, distribuidores, proveedores, organismos públicos, etc. Ello supone la comunicabilidad de diferentes plataformas informáticas que requiere técnicas de seguridad y viabilidad adecuadas. Lo que a veces desconocen u olvidan es que este protocolo de transferencia abierto suele poner la información enviada en riesgo, especialmente a través de Internet. Además, el uso del protocolo FTP lleva a tener que gestionar y mantener cada vez más programas que requerirán más esfuerzos de programación.

    MultiplataformaSystem i, AIX, Unix, Linux Solaris, Windows y HP-UX.

    Navegación GráficaTrabaje desde su navegador de Internet preferido.

    FTP AutomatizadoEvita la programación de los envíos vía FTP.

    Transmisiones SegurasMétodos Encriptación FTPS SFTP, Open PGP y HTTPS.

    Racionalización RecursosComprime los envíos.

    Conectividad AbiertaConecta con servidores FTP, Email y HTTP.

    Replicación de DatosReplica bases de datos DB2, SQL, ORACLE y MySQL.

    GoAnywhere añade nuevas posibilidades.

    Deseamos realizar, GRATUITAMENTE, una prueba de la aplicación GoAnywhere en nuestro propio AS/400 o System i, para conocer sus propiedades y ventajas.

    Nombre ...........................................................................................Tel. ( ) ..............................Empresa ........................................................................................ Fax ( ) ..............................CP............. Ciudad.....................................................E-mail ........................................................

    Transformación de DatosLee/escribe Excel, XML, CSV y texto de ancho fijo.

    Recuperación de DatosIncluye asistente SQL.

    E-mail AutomatizadoAvisa de errores vía email. Envía y recibe archivos.

    Encriptación

    Incluye Gestor de claves y certificados.

    Control CentralizadoGestión de 5 funciones desde una sola aplicación.

    LoggingInformes detallados fácilmente comprensibles.

    Backup

    Facilita los Backup.

    Soluciones para AS/400, iSeries, System i, IBM i y Power Systems

    http://www.att.es/producto/goanywhere.htmlhttp://www.att.es/envio_mailings.htm?producto=GoAnywhere%20-%20Transferencia%20Segura%20y%20Controlada%20de%20Archivos%20Multiplataformahttp://www.att.eshttp://www.att.eshttp://www.att.es/form.htmlhttp://www.att.es

  • Transferencia segura de archivos con proveedores, clientes, empleados...

    Solicite una Prueba Gratuita en su propia máquina y conozca las propiedades de la aplicación GoAnywhere Services

    Aplicación Centralizada La empresa debe facilitar una herramienta que permita controlar, proteger y monitorizar las transferencias de archivos en general, así como el envío seguro de archivos por correo, el envío seguro de archivos a través del navegador y el acceso seguro a los archivos desde dispositivos móviles.

    Secure FTP Server GoAnywhere Services es una aplicación multiplataforma la cual permite a los usuarios internos y externos conectar con la empresa de manera segura para intercambiar archivos con una aplicación centralizada, administrable y auditable.

    Características Generales • Solución totalmente On‐Premise y multiplataforma • Servidores SFTP, FTPS, FTP, HTTPS, AS2 con autorización selectiva y configurables • Crear y administrar certificados SSL y claves SSH para autenticación • Archivos almacenados en su red privada sin necesidad de espacio en la nube • Control total de recursos,  usuarios y carpetas • Definición de roles, grupos de usuarios y permisos • Interfaz gráfico a disposición de los usuarios para compartir archivos accesibles 

    desde el navegador web ‐ Transferencias Ad Hoc 

    • Correo Seguro  a través del navegador o con plugin para Outlook con avisos de disponibilidad de enlace para descarga de  archivo a los destinatarios 

    • Procesar archivos subidos al servidor de forma automática en base a triggers • Control y registro de toda la actividad y conexiones realizadas 

    • Permitir a sus colaboradores subir archivos confidenciales a sus sistema de forma segura

    • Poner lista de precios actualizada a disposición de sus distribuidores en su carpeta privada

    • Los clientes pueden utilizar un portal web seguro para descargar y subir archivos desde su PC o móvil

    • Incorporar las ventas diarias subidas a la carpeta compartida por todas las tiendas actualizando la base de datos

    • Notificar por e-mail a un proveedor la disponibilidad de un archivo y ser notificado de su descarga

    • Facilitar el envío de un PDF de gran tamaño a la imprenta a través de enlaces de descarga seguros HTTPS

    • Enviar archivos confidenciales a través de Outlook con la máxima seguridad y control

    CASOS PRACTICOS

    Windows, Solaris, IBM i, AIX, Linux, Unix, HP‐UX Protocolos FTP, FTPS, SFTP, HTTP, HTTPS y AS2 Interfaz gráfico para intercambio de archivos Correo Seguro con enlaces de descarga segura  Aplicación centralizada en un único servidor 

    Los estudios realizados confirman que muchas empresas ignoran la seguridad en los procesos habituales de intercambio de archivos con sus clientes, proveedores, empleados y otros interlocutores con el fin de conseguir los objetivos en el menor tiempo posible. Dejan de lado aspectos tales como quién y cómo está enviando qué y a dónde, la adecuada

    protección de la información enviada, cuánto tiempo permanecen los archivos en el buzón de correo o que aplicaciones gratuitas online se utilizan en su empresa para transferir archivos. La solución propia conlleva ineficiencias, limitaciones y riesgos además de programas y códigos difíciles de controlar, especialmente en los entornos multiplataforma.

    Descripción GoAnywhere Services

    http://www.att.es/producto/goanywhere.htmlhttp://www.att.es/producto/goanywhere/att_archivos/GoAnywhere_Services_Info_General_140314.pdfhttp://www.att.es/envio_mailings.htm?producto=GoAnywhere%20-%20Transferencia%20Segura%20y%20Controlada%20de%20Archivos%20Multiplataformahttp://www.att.es/producto/goanywhere.htmlhttp://www.att.es/form.htmlhttp://www.att.eshttp://www.att.eshttp://www.att.es

    PORTADACOLABORACIONESCondenadamente bueno!! PDFTrabajar con columnas de identidad Transferencia de archivos complejos Interpretar los Timestamp en los archivos de stream

    NOVEDADESAcceso a bases de datos remotas desde IBM i-AS/400Control y gestión de transferenciasSecure FTP Server