Textdateiimport im Jitterbit App Builder
Dieses C#-Plugin nimmt eine txt-Datei und fügt jede Zeile als Datensatz in eine Staging-Tabelle als Zeichenfolge in der Zielspalte ein.
C:\
ist das lokale Quellverzeichnis, in dem die txt-Datei vorhanden ist. importTableIDText verwendet eine GUID zur TableID, in die der Text geleitet wird. „FileName“ ist der Spaltenname im BO-Ereignis, das ausgeführt wird, um eine bestimmte Datei im lokalen Quellverzeichnis auszuwählen. „Import“ ist der Spaltenname in der Zieltabelle. Jede Zeile wird als neuer Datensatz mit einer Zeichenfolge ihres Inhalts in dieser Spalte gespeichert.
Anwendungsfall
Dies kann verwendet werden, wenn das Unternehmen eine Textdatei mit fester Breite oder festem Format hat, die importiert werden muss, um die Daten in App Builder in eine Staging-Tabelle, bevor zusätzliche Geschäftslogik verwendet wird, um die Daten in geeignete Felder für spätere Geschäftsprozesse zu zerlegen.
Plugin-Referenzen
Spalte | Datentyp | Beschreibung |
---|---|---|
C: | String | lokales Quellverzeichnis |
importTableIDText | Unique ID | verwendet eine GUID zur TableID, in die der Text geleitet wird |
FileName | String | Spaltenname im Business Object-Ereignis wird ausgeführt, um eine bestimmte Datei im lokalen Quellverzeichnis auszuwählen |
Import | String | Spaltenname in der Zieltabelle. Jede Zeile wird als neuer Datensatz mit einem String ihres Inhalts in dieser Spalte gespeichert. |
Script zum Importieren von Textdateien
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);
}