Legato
Legato

GoFiler Legato Script Reference

 

Legato v 1.5d

Application v 5.25a

  

 

Chapter Twenty-oneEDGARView Integration (continued)

21.12 EDGAR Data Access Class (EDAC)

21.12.1 Overview

The EDGAR Data Access Class (EDAC) is designed to give direct access to EDGAR data fields for various forms and support modules. EDAC allows GFP, XML and EIS files to be opened directly, modified and saved without using the application user interface. In addition, a new form can be created and modified.

Because groups of EDGAR XML forms vary dramatically, various modules have been created to handle each type. For example, the Form ATS-N series contains a large number of yes/no and textual disclosure questions while the Form N-PORT series contains many tables with complex structure. Each of these modules has a separate and distinct XML schema with a wide variety of element names. As such, the XML schema type directly related to the internal file type (see Section 6.10 File Types for more information), when can be used to reference specific form type modules.

The EDAC has five main components: new, open, save, get and set. To start with, an EDAC Object must be created by either opening or create a new form. A handle is returned and is used in subsequent called to access the form.

To create a new form, the file type is used to dispatch to the correct module using the EDACCreateObject function. Once created, a handle is returned for later access. Open operates in a similar manner via the EDACOpenFile function except the XML content is read to determine the file type and then appropriately dispatched.

Once open, data can be accessed or modified using the EDACGetItem and EDACSetItem, respectively. It is important to note that except for field size, the EDAC does not validate the data set into the form. In many cases, invalid values will result in schema violations when the form is eventually submitted to the SEC. In addition, the contextual nature of certain fields is not checked. This may also result in schema violation errors and can lead to data not being saved. For example, if a descriptive field is dependent on a yes/no answer on a related field, the save function will not save the related textual data unless its corresponding element is set to the correct state.

21.12.2 Supported Modules

The following table represents the supported forms groups (functionality will be expanded in future releases):

  Group   File
Support
  Basic
Data
Support
  Full
Data
Support
  Comment  
  EDGAR XML   x   x     Covers general EDGAR forms.  
  Form 13F-HR   x   x     Setup for GFP to XML only. form 13F-HR also has specific access functions to access the Info Table within an open view.  
  Form 13H   x   x     Setup for GFP to XML only.  
  Form 17A   x   x     Setup for GFP to XML only.  
  Form 17H   x   x     Setup for GFP to XML only.  
  Form 24F-2   x   x   x   Complete form access.  
  Form ATS-N   x   x   x   Complete form access.  
  Form C   x   x     Setup for GFP to XML only.  
  Form D†   x   x     Does not contain confirming copy information. EDAC operates only with XML files.  
  Form MA   x   x     Setup for GFP to XML only.  
  Form N-CEN   x   x     Setup for GFP to XML only.  
  Form N-MFP†   x   x     Setup for GFP to XML only.  
  Form N-PORT   x   x   x   Complete form access.  
  Form SDR   x   x     Setup for GFP to XML only.  
  Form TA   x   x     Setup for GFP to XML only.  
  Regulation-A   x   x     Setup for GFP to XML only.  
  Section 16   x   p     Setup for GFP to XML only.  

† Non-project view.

 

21.12.3 Data Types

There are four basic data types: string, ordinal value, integer and boolean. All are communicated via string data type requiring the caller to make appropriate adjustments.

Most strings have limits that are set by the specific field, as limited by the associated EDGAR XML schema. Ordinal values are translated to their respective schema selection. For example, if the schema allows the enumerated values N-1/A, N-2, etc., adding a value not in the schema will return an error from the EDACSetItem function.

Integer values are translated to decimal string values. These are not used very often.

Finally, boolean values are returned as “0” and “1”, false and true, respectively. They can be set in all forms allowed as in the IsTrue function. Any string not matching a true condition will set the value to false.

When writing a field that is part of a list or tables, the composite name will set the array or table depth. The depth is not adjusted during reading,

21.12.4 Named Field

Fields on forms are by and large addressed by a name made up of the schema name, index and context. In addition, all forms allow for access of common EDGAR data via basic keywords. The keywords are as follows:

  Name   Comment  
  _ccc   Filer CCC. On all forms except Section 16.  
  _cik   On all forms. For Section 16 this is the issuer CIK.  
  _confirming_copy_file_number   On most forms. If allowed, the confirming copy flags will also be available.  
  _confirming_copy_flag   On most forms. If allowed, the confirming copy file number will also be available. On some forms, this is referred to as a “temporary hardship.”  
  _contact_email   On most forms. Note that many forms also have notification emails.  
  _contact_name   On all forms.  
  _contact_telphone   On all forms.  
  _file_number   On some forms. In many cases, this is the same as the confirming copy file numbers. In many cases, this field is only used when the confirming copy flag is set.  
  _form_type   On all forms. Note that changing the form outside the scope of the specific module is not allowed. Further, changing the form will not clear or adjust conflicting data.  
  _live_flag   In most cases, this is LIVE or TEST, but with some modules it is boolean, true for live.  
  _notify_via_website   On most forms.  
  _period   On most forms.  

 

When accessing form specific fields, a specific name syntax is employed:

context[index]:element

or

context[index]:context[index]...:element

Where (not that the brackets do not indicate optional items):

  elementis the base data named by the schema.
  contextis one or more optional contexts in which the element appears.
  indexis a zero-based value specifying an option element number in the context.

For example:

txNMSStockATSName

part1Item7PrimarySite:zip

secondarySiteI7[001]:street1 

The first is a direct reference while the section is a reference within a context. The last reference has a context referencing the second item in the list.

21.12.5 Extended Error Codes

Certain functions will return ERROR_CONTEXT combined with a subcode. These are as follows:

  SDK Define   Subcode   Description  
  EDAC_ERR_CON_NA   0x1001   Context Not allowed  
  EDAC_ERR_CON_CNT   0x1002   Incorrect number of contexts  
  EDAC_ERR_CON_ERR   0x1003   Incorrect/wrong Context  
  EDAC_ERR_CON_INVALID   0x2001   Invalid Condition  
  EDAC_ERR_PRIMARY_NAME_NOT_SUPPORTED   0x2002   Main Token Not Supported  
  EDAC_ERR_NAME_NOT_IN_SET   0x2003   Specified Name is Not in Data Set  
  EDAC_ERR_INVALID_ACCESS_POINT   0x2004   Specified Name Cannot be Accessed  

 

21.12.6 Functions