Identification of Whether a View Contains Vector Fields

The speed and throughput of an asynchronous analytical reporting API call depends on whether the view contains vector or non-vector fields.

If a view has a vector field, an asynchronous analytical reporting API call against it delivers a maximum of 5,000 records per ZIP file. If a view doesn’t contain vector fields, then an asynchronous analytical reporting API call against it delivers a maximum of 50,000 records per ZIP file.

Vector fields can be identified by the name format field.field in the selectFields section of the Metadata API response, as shown by the Commodity.Commodity and Organization.Organization fields in this example:

"selectFields" : [{
  "name": "Commodity.Commodity",
  "type": "Commodity0in",
  "size": null,
  "allowedValues": null,
  "isCustomField": false,
  "precision": null,
  "fieldName": "Commodity",
  "fieldDescription": "Commodity",
  "scale": null,
},
{
  "name": "Organization.Organization",
  "type": "Organization0in",
  "size": null,
  "allowedValues": null,
  "isCustomField": false,
  "precision": null,
  "fieldName": "Organization",
  "fieldDescription": "Organization",
  "scale": null,
}]

Similarly, if you use a predefined system view template, the selectAttributes object contains the allowed fields for the view template. For example, if you use the SourcingProjectFactSystemView, it contains several vector fields, as highlighted in this example:

"selectAttributes" : ["ContractMonths", "AllOwners.AllOwners", "LoadCreateTime", "Region.Region", 
"ProcessStatus", "Description", "DueDate", "AwardJustification", "Suppliers.Suppliers", "Origin", 
"DependsOnProject", "Process", "ProjectId", "Commodity.Commodity", "AclId", "EndDate", 
"PlannedEventType", "SourceSystem", "ActualSaving", "PlannedEndDate", "ContainerProject", 
"Status", "PlannedStartDate", "OnTimeOrLate", "ProjectReason", "ProjectInfo", 
"TargetSavingsPct", "SourcingMechanism", "IsTestProject", "ResultsDescription", 
"Owner", "Organization.Organization", "Duration", "BaselineSpend", "State", 
"EventType", "ContractEffectiveDate", "LoadUpdateTime", "ExecutionStrategy", 
"BeginDate"]

If the vector fields aren’t needed, you can improve performance by creating a custom view without the vector fields.