Saltar al contenido

Conector SDK tutorial escenario 3: Subir archivo

Introducción

Este escenario demuestra el uso de una actividad de Dropbox Subir Archivo donde un archivo se lee desde un servidor FTP y luego se sube (escribe) a Dropbox.

En este escenario, un script primero establece variables globales con una ruta de archivo y un nombre de archivo, leyendo desde un servidor FTP para establecer una variable global con el contenido del archivo. La transformación luego escribe esas variables en Dropbox utilizando una actividad de Dropbox Subir Archivo.

Nota

Similar al Escenario 2: Obtener archivo, el archivo se coloca como un archivo de texto en lugar de como un archivo XML con contenido y metadatos codificados.

Aquí está la operación completada:

image

Importante

Para completar esta operación y escenario, completa la configuración previa requerida en el tutorial del conector de Dropbox.

Deberías tener lo siguiente:

  • Acceso a una cuenta de Dropbox y a un servidor FTP.
  • Conectores de Dropbox y FTP configurados.
  • Acceso al directorio de datos de muestra del repositorio del conector de Dropbox.

1. Copiar archivo de muestra a Dropbox

Si no está presente, copia el archivo de muestra (customers.csv) del directorio de datos de muestra del conector de Dropbox a tu cuenta de Dropbox.

2. Agregar un script a una operación

Agrega un script a una nueva operación. Edita el script, estableciendo su nombre apropiadamente.

Establece el contenido del Script de Jitterbit como:

<trans>
$ftpPath = "/";
$ftpFilename = "customers.csv";
$ftpContents = ReadFile("<TAG>activity:ftp/FTP/ftp_read/Read</TAG>");

WriteToOperationLog("Read from path " + $ftpPath);
WriteToOperationLog("Read file " + $ftpFilename);
WriteToOperationLog("Read " + Length($ftpContents) + " bytes");

$dropboxPath = $ftpPath;
$dropboxFilename = CVTDate(Now(), "GeneralDate", "yyyy_mm_dd_HH_MM_SS")
    + "_" + $ftpFilename;
$dropboxFilepath = $dropboxPath + $dropboxFilename;
$dropboxContents = Base64Encode($ftpContents);

WriteToOperationLog("DropboxFilename: " + $dropboxFilename);
</trans>

Esto leerá y codificará utilizando Base64 el archivo en /customers.csv desde el servidor FTP. Ajusta los valores de las variables según sea necesario si tu archivo está en una ubicación o nombre diferente.

Cierra el script para regresar al flujo de trabajo.

3. Agregar una actividad de lectura FTP a la operación

Arrastra una actividad de Lectura FTP desde la paleta de componentes de diseño a la zona de caída de componentes en el lienzo de diseño para crear una instancia de una actividad de Lectura FTP en una nueva operación. Haz doble clic en la actividad para abrirla.

Configúralo como:

  • Nombre: Ingresa un nombre identificativo apropiado.
  • Ruta: Ingresa una variable global llamada [ftpPath]
  • Obtener Archivos: Ingresa una variable global llamada [ftpFilename]

image

Haz clic en Siguiente y luego en Finalizado para regresar al flujo de trabajo.

4. Agregar una actividad de carga de archivo de Dropbox a la operación

Arrastra un tipo de actividad de Cargar Archivo de Dropbox desde la paleta de componentes a la operación después de la actividad de Lectura FTP.

Configura el nombre del archivo como [dropboxFilename] y haz clic en Siguiente:

image

Haz clic en Finalizado para regresar al flujo de trabajo:

image

5. Agregar una transformación a la operación

Agrega una transformación antes de la actividad de Cargar Archivo de Dropbox.

Cuando se abra la transformación, asígnale un nombre y agrega scripts a los campos de destino ruta y contenido para mapear las variables globales dropboxFilepath y dropboxContents a cada campo respectivo.

Haz clic en el icono Cerrar para guardar la configuración de la transformación y regresar al flujo de trabajo:

image

6. Ejecutar la operación

Regresa al flujo de trabajo y despliega y ejecuta la operación. Una vez que la operación se haya completado y el archivo se haya cargado (escrito) en Dropbox, deberías ver mensajes de registro como estos en el registro de la operación, con el archivo copiado exitosamente desde el servidor FTP a Dropbox:

image

Variaciones

Puedes modificar este ejemplo para explorar problemas que los desarrolladores de conectores necesitan considerar.

Por ejemplo, podrías establecer el campo de ruta en la transformación como una cadena vacía, y luego en la actividad Subir Archivo de Dropbox proporcionar la ruta utilizando un valor codificado o utilizando una variable ya definida ($dropboxPath). Esto escribirá el archivo en la ubicación establecida por el script.

El código para el conector de Dropbox (put-file-request.xsd) requiere que la ruta esté definida, como se muestra por el [1] a la izquierda del nombre del campo en la transformación. Sin embargo, podrías requerir que se defina en la interfaz de usuario para la actividad Subir Archivo de Dropbox configurando el código (adapter.json) que describe la interfaz.

En el caso del conector de Dropbox, el código del conector (PutFileActivity.java) está escrito de tal manera que la definición dada en la actividad Subir Archivo de Dropbox, si se especifica, tiene prioridad sobre el valor que se especifica en la transformación.

El enfoque que utilices depende de cómo pretendas que se use o configure un conector.