Skip to Content

Scripting Example - Text File Creation

This plugin will create a text file, using values from a column (string) from a tableID as each line of text. tableIdstring is tableID GUID of Source Business Object "exportColumnName" is the column name which is source column for each line of text "fileName" is a column in Business Object running event with the desired name of file "exportFileName" is the full path and filename desired for created file.

// Sample binding… shows an example beneath it for a filter that can be used in similar manner a Vinyl bind would work on a link to a crystal report page to filter results of source Business Object.

Use Case

This could be used when the business needs to create a fixed-width or fixed format text file to be shared with ADP or another service by this means.

Plugin References

Column Data Type Description
tableIdstring Unique ID tableID GUID of Source Business Object
exportColumnName String column name which is source column for each line of text
fileName String column in BO running event with the desired name of file
exportFileName String full path and filename desired for created file

Text File Creation Script

using System;
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Vinyl.Sdk.Filtering;
// The TableId that points to the business object that will return the data we want to export
var tableIdString = "fdfa87fd-06df-4436-bcf4-1126525ab385";
// The column we are going to export - this could come from Action Row if desired
var exportColumnName = "String";
// This pulls in the filename for the Path from Event's BO
string fileName = Row["fileName"].GetValueAsString();
// The file we are writing out - this could come from Action Row if desired
var exportFileName = @"C:/Vinyl Files/DEBTS_PRL/" + fileName;
// read user/password from table and create token
var eventService = Services.GetService<IEventService>();
var tableId = new Guid(tableIdString); 
var filter = Services.GetService<FilterBuilder>()
    .From(tableId);
filter.Filter.Limit = 10000;
// Sample binding... 
// filter.Where("Country",ComparisonOperator.Equals,"USA");
var lines = new List<string>();
EventTable outputTable = await eventService.InvokeEventAsync(filter,"filter");
foreach(var row in outputTable.Rows)
{
   lines.Add(row[exportColumnName].Value.ToString()); 
}
System.IO.File.WriteAllLines(exportFileName,lines);