Default Attached Files Folder

OVERVIEW

The 'Default Attached Files Folder' functionality can be used to 'Dump' files in a specified folder structure (as determined by the 'Default Attached Files Folder' control parameter) to be automatically attached to the matching record in Workbench.

SETUP

A Control Parameter called 'Default Attached Files Folder' must be configured. This is the Source location of filed to be attached, not to be confused with the 'File Store Location' which is the destination location. These two folders should be kept separate from on another, that can be located on the same drive (Recommended), but do not put one inside the other.

Once the 'Default Attached Files Folder' control parameter has been set to a valid path (and the 'File Store Location') , open Workbench and click the Paperclip icon on the menu bar.

 

Then close the 'Edit View File Attachments' Screen, opening this screen will trigger the Automated filing and create the necessary folder structure in the 'Default Attached Files Folder'.

Files must be placed in the correct subfolder within this structure. For Example files to be attached to a Purchase Order must be placed in the 'PurchaseOrder' folder within the 'Default Attached Files Folder' .

File Name Rules

Files placed in this structure will need to conform to the following naming conventions for the files to be attached to the correct record in Workbench.

'RelatedRecordID;Attached File Group Name;Description.xxx'

So for example if the destination Record Type is a Purchase Order and you’re attaching a .pdf file, the file name format would be:

'PONumber;Attached File Group Name;Description.pdf'

i.e: 1234;Scanned PO;PO 1234.pdf

Note that the Attached File Group Name and Description are optional so the following would also work:

1234.pdf

1234;;PO 1234.pdf

1234;Scanned PO.pdf

In addition, if the group name is invalid, the file will still be processed but without a group assigned.

File Name Rules for More Complex Related Record Types

The following Related Record Types have composite RelatedRecordID's

  • CashFlow
  • Forecast
  • SubContractorCetrtificationDetail
  • Timesheet

This means these Related Record Types have RelatedRecordID's that are made up of more than one part. When this happens the RelatedRecordID's parts are sepreated by a dot (.) (period or fullstop).

Some Example file names are:

Cashflow or Forecast: A pdf file to be attached to JobCode ABC123 Year 2000 Period 9, with a group name of 'Default Group' and a Description of 'Graph' would be named:

ABC123.2000.9;Default Group;Graph.pdf

Timesheet: A csv file to be attached to PersonID 1234 Timesheet Weekending Date 09/11/2012 , with no group name specified and a Description of 'Hours Worked' would be named:

1234.2000119;;Hours Worked.csv

The table below identifies what each part is and in the case of timesheets the format.

What RelatedRecordID is used for my file type?

The RelatedRecordID for each Related Record Type is Usually the PrimaryKey (ID field) of the RelatedRecord Table.

The list below shows the defaults (No Config.ini file) but can be overridden with the implementation of a Config.ini if required (More on this later in the Config.ini section).

This is a comprehensive list (at time of publishing):

Record Type RelatedRecordID format Table Validated Against
Action ActionID Actions
APCredit APInvoiceID APInvoices
APInvoice APInvoiceID APInvoices
APVoucher VoucherID APVoucher
ARCredit InvoiceNumber JobInvoices
ARInvoice InvoiceNumber JobInvoices
Asset AssetID Assets
Batch BatchNo BatchHeaders
CashFlow JobCode.YearNo.PeriodNo Forecasts
Company CompanyID Companies 
Contract ContractCode Contracts
Drawing DocID Documents
Estimate EstimateID Estimates
Forecast JobCode.YearNo.PeriodNo Forecasts
ForecastGainAndLoss WIPAdjustmentID WIPAdjustments
ForecastRiskAdjustment ForecastRiskID ForecastRisk
ForecastSubcontractRisk ForecastRiskID ForecastRisk
ForecastUncommittedAdjustment ForecastRiskID ForecastRisk
ForecastWIPAdjustment WIPAdjustmentID WIPAdjustments
Item ItemID Items
Job Jobs JobCode
JobTransaction JobTranID JobTransactions
Meeting MeetingID Meetings
MeetingItem MeetingItemID MeetingItems
Person PersonID People
Plant JobCode Jobs 
PlantPolicy QuoteID PlantPolicy 
PlantServiceOrder QuoteID PlantServiceOrders
PriceRequest PriceRequestID PriceRequestHeader
Prospect ProspectNo Prospect
PurchaseOrder PONumber PurchaseOrders
Quote QuoteID Quotations
ReturnVoucher VoucherID APVoucher
ServiceAgreement ID ServiceAgreement
ServiceDesk LogHeaderID LogHeader
SubContract SubContractCode SubContracts
SubContractorCetrtificationDetail APInvoiceID.PONumber SubcontractClaimValues
Timesheet PersonID.TimesheetDate Timesheets
WorksOrder PONumber PurchaseOrders

 Timesheet's RelatedRecordID has a Timesheet component, these need to be treated in the following way:

Format: yyyym(m)d(d)

As file names cannot contain slashes these have been removed. The year component is always 4 digits. The Month and Day component are variable length (One or two characters) as leading zeros are removed.

So a file being attached to PersonID 1234 for Week Ending 13/07/2012 would have a RelatedRecordID portion of the file name as:

1234.2012713

Rejected Files

Rejected files are files that could not be automatically attached for some reason.

Common causes are:

  • Files placed in the wrong subfolder.
  • Files that failed validation of the RelatedRecordID.
  • Files that have substituted the RelatedRecordID with another field, and that field is not unique for the value being looked up (More on this later in the Config.ini section).

These files are placed in a folder structure within the 'Default Attached Files Folder'. A 'Not Processed' folder is created when required, and the rejected file is placed in a subfolder (Matching its Related Record Type).

Note that in the event a file of the same name already exists in the 'Not Processed' folder structure the newly rejected file is renamed with a number in brackets i.e. 1234;Scanned PO;PO 1234(1).pdf

 These files will need to be manually attended to.

Config.ini

The Config.ini file is optional. If you are attaching files to record types in the standard manner and the file name's first 'field' the area of the file name before the first ; (semicolin) is the normal RelatedRecordID for that file type, then you wont need a Config.ini file.

The Config.ini is a TAB delimited file. However Commas cannot be used in this file, substituted for a pipe ( | ) character if required.

A reasonable knowledge of SQL is required to configure the Config.ini file correctly.

The Config.ini file is used to interpret another 'Unique' field on the related record type's table and resolve to the normal RelatedRecordID. For example when attaching files to a Person (People table) record the normal RelatedRecordID is PersonID, however you could use the Config.ini file to allow the PersonID in the file name to be replaced with another unique field from the People table such as Employee Number instead.

To do this example above a line in the Config.ini file would need to look like the following:

Person SELECT People.PersonID FROM People WHERE People.EmployeeNo = '{1}'

To use Employee Number on timesheets instead of PersonID as well, add the following line to the Config.ini file:

Timesheet SELECT People.PersonID FROM People WHERE People.EmployeeNo = '{1}' Null

The Config.ini file must be placed in the 'Default Attached Files Folder' if required.