Ir para o conteúdo

Importação de Arquivo de Texto

Este plugin C# pega um arquivo txt e insere cada linha como um registro em uma tabela de preparação como uma string na coluna de destino.

C:\é o diretório local de origem, o arquivo txt existe em importTableIDText pega um GUID para o TableID, o texto será direcionado para "FileName" é o nome da coluna no BO Event é executado para selecionar um arquivo específico no diretório local de origem "Import" é o nome da coluna na tabela de destino, cada linha será salva como um novo registro com uma sequência de seu conteúdo nesta coluna.

Caso de Uso

Isso pode ser usado quando a empresa tem um arquivo de texto de largura fixa ou formato fixo que precisa ser importado para trazer os dados para App Builder para uma tabela de preparação, antes de usar lógica de negócios adicional para analisar os dados em campos apropriados para processos de negócios posteriores.

Referências de Plugins

| Coluna | Tipo de dados | Descrição |TABLEROWEND| ...TABLEROWEND | C:| String| diretório local de origem | | importTableIDText| Unique ID| pega um GUID para o TableID no qual o texto será direcionado | | FileName| String| nome da coluna no evento do objeto de negócios é executado para selecionar um arquivo específico no diretório local de origem | | Import| String| nome da coluna na tabela de destino cada linha será salva como um novo registro com uma sequência de seu conteúdo nesta coluna |

Script de Importação de Arquivo 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);
}