Saltar al contenido

Importación de Archivos de Texto

Este complemento de C# toma un archivo txt e inserta cada línea como un registro en una tabla de preparación como una cadena en la columna de destino.

C:\es el directorio local de origen donde existe el archivo txt importTableIDText toma un GUID para el TableID al que se dirigirá el texto "FileName" es el nombre de la columna en BO El evento se ejecuta para seleccionar un archivo particular en el directorio local de origen "Import" es el nombre de la columna en la tabla de destino Cada línea se guardará como un nuevo registro con una cadena de su contenido en esta columna.

Caso de Uso

Esto se puede usar cuando la empresa tiene un archivo de texto de ancho fijo o formato fijo que necesita importarse para incorporar los datos. App Builder a una tabla de preparación, antes de utilizar lógica comercial adicional para analizar los datos en campos apropiados para procesos comerciales posteriores.

Referencias de Complementos

Columna Tipo de datos Descripción
C: String directorio local de origen
importTableIDText Unique ID toma un GUID para el TableID al que se dirigirá el texto
FileName String El nombre de la columna en el evento de objeto comercial se ejecuta para seleccionar un archivo particular en el directorio local de origen
Import String nombre de la columna en la tabla de destino cada línea se guardará como un nuevo registro con una cadena de su contenido en esta columna

Secuencia de Comandos de Importación de Archivos de Texto

using System;
using System.IO;
using Vinyl.Sdk.Events;
using Vinyl.Sdk.Filtering;
// the directory to read files from
const string directory = @"C:\";
// the tableid to import the data into
const string importTableIDText = "cfeb9762-10c8-4832-ba9d-446ba0b39e8a";
// File to be imported
// This column should be present in the data object triggering this plugin
string fileName = Row["FileName"].GetValueAsString();
Guid importTableId = new Guid(importTableIDText);
var tableService = Services.GetService<ITableService>();
var eventService = Services.GetService<IEventService>();
// Creates EventTable (2.6 is missing a function to go from Table
// to EventTable w/o using an event, so we limit to 0 rows to avoid
// wasting time bringing rows we don't need)
var importTableFilter = tableService.GetTable(importTableId).CreateFilter();
importTableFilter.Limit = 0;
var importTable = await eventService.InvokeFilterEventAsync(importTableFilter);
foreach (string line in File.ReadLines(Path.Combine(directory,fileName)))
{
    // Creates a new row in the staging table
    EventRow row = await eventService.InvokeNewEventAsync(importTable);
    // Pull the desired values
    row["Import"].Value = line;
    // Inserts (persists) that row
    await eventService.InvokeInsertEventAsync(row);
}