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 sich die TXT-Datei befindet. „importTableIDText“ verwendet eine GUID zur TableID, in die der Text eingefügt 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 einem String ihres Inhalts in dieser Spalte gespeichert.
Anwendungsfall
Dies kann verwendet werden, wenn das Unternehmen über eine Textdatei mit fester Breite oder festem Format verfügt, die importiert werden muss, um die Daten in eine Staging-Tabelle im App Builder zu bringen, bevor zusätzliche Geschäftslogik verwendet wird, um die Daten in geeignete Felder für spätere Geschäftsprozesse zu analysieren.
Plugin-Referenzen
Spalte | Datentyp | Beschreibung |
---|---|---|
C: | String | lokales Quellverzeichnis |
importTableIDText | Unique ID | nimmt 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 einer Zeichenfolge 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);
}