SI.QUERY

Created by Harry Lewis, Modified on Mon, 3 Mar at 6:00 AM by Grigorii Kosianenko

Applies to

  • Velixo NX
  • Sage Intacct

 

TABLE OF CONTENTS


Introduction

If you want to get the data from your ERP to your workbook, you can leverage the SI.QUERY function, which returns the contents of the specified Sage object.


Syntax

=SI.QUERY(ConnectionName, Object, Filter, Select, IncludeHeader, Settings, OutputColumns1, OutputColumns2, ... OutputColumnsN)


Parameters


Parameter

Required/Optional

Description

ConnectionName

Required

The name of the connection, as specified in the Connection Manager

Object

Required

Sage Intacct object name (e.g., GLACCOUNT, INVDOCUMENT).
Use "Object (Subtype)" to retrieve column definitions for a specific subtype.


Example

SI.OBJECTDEFINITION("Sage", "INVDOCUMENT (Adjustment Decrease Value)")


Use the SI.EXPANDOBJECTRANGE function to get the list of Sage Intacct objects.


Note

Although listed as a valid object, Sage Intact does not support querying the GLRESTRICTIONRELEASE object.

Filter

Optional

 

 


This parameter is
case-sensitive by default and must be enclosed within quote marks


SQL-like query based on fields on the object. The following operators are supported: <, >, >=, <=, =, like, not like, in, not in, IS NOT NULL, IS NULL, AND, OR

 

Including characters that are not allowed within XML must be properly encoded, and single quotes must be proceeded by a backslash:  ('Jane\'s Deli'). 

 

Joins are not supported.

Select

Optional

Comma-separated list of columns to be included in the resulting dataset. If this parameter is empty, all the columns from the object will be returned.


A column may come from:

  • The object itself
  • A related object (refer to Sage Intacct: Platform Services > Object for information about relationships)


Notes:

  • Columns from a related object must specify both the related object and the Column name, e.g., CUSTOMER.NAME 
  • It is also possible to return columns from multiple levels deep,
    e.g. MANAGER.EMPLOYEEPOSITION.NAME

IncludeHeader

Optional

TRUE or FALSE, indicating if should column headers be included in the dataset.

Settings

Optional

You can either enter a number to set how many rows you want or use a list of settings (key-value pairs) to specify advanced query settings.


  • Number. For example, 200. The rows are sorted by RECORDNO.
  • Two-dimensional array
    Pass one or more keys with their values. Each key controls a different setting:
    • Sort: A comma-separated list of columns to sort by. Add :DESC after a column name to sort it in descending order (for example, RecordNo:DESC).
      Columns without :DESC are sorted ascending.
    • Limit: The maximum number of rows. For example, 200.
    • Offset: The number of rows to skip from the start. This is useful for paging extensive results. We recommend sorting by a unique column (for example, RECORDNO) so the data appears in a predictable order.
    • CaseInsensitive: If set to FALSE, filters ignore uppercase or lowercase differences in the Filter (for example, “Sales,” “SALES,” or “sales” all match the same data). Default value: TRUE
    • ShowPrivate: If set to FALSE, excludes objects of private entities. Default value: TRUE

Example:
=SI.QUERY("Sage","TaxDetail","DESCRIPTION LIKE('%Sales%')", "RecordNo,DetailID,Description,TaxType,Value,Include,GLAccount,TaxAuthority,Status", HSTACK({"Sort";"Limit";"CaseInsensitive"}, {"RecordNo:DESC";200;TRUE}))

  • Sorts rows by RecordNo descending.
  • Returns up to 200 rows.
  • Ignores uppercase and lowercase differences in the filter.
OutputColumn1OptionalOptionally, specifies the cell on the worksheet where the data of the first column specified in the Select parameter is to be displayed as part of an Excel table.
OutputColumn2OptionalSpecifies the cell of the worksheet where the data of the second column specified in the Select parameter is to be displayed as part of an Excel table.

Note: Must be on the same row as OutputColumn1
...

OutputColumnNOptionalSpecifies the cell of the worksheet where the data of the  Nth column specified in the Select parameter is to be displayed as part of an Excel table.

Note: Must be on the same row as OutputColumn1 and every other OutputColumn.



Excel Online


Important: Loading large datasets with SI.QUERY() is not performant in Excel Online due to the limitations of the Excel platform in the browser.  If your dataset contains more than approximately 100,000 records, we strongly recommend using a desktop version of Excel 365 for Windows or Mac OS.



Querying subtypes of objects

The SI.QUERY function can retrieve data for specific subtypes of objects in Sage Intacct. This is particularly useful for template objects with multiple variations, such as:

  • SODOCUMENT (Contract Change Order, Project Contract Invoice)

  • PODOCUMENT (Purchase Order, Subcontract Invoice)

  • INVDOCUMENT (Adjustment Decrease, Inventory Receipt)


Examples

 

Example 1 - Top 10 records


SI.QUERY("Sage","GLBatch",,,,10)


Description: Returns the top 10 records returned by the GLBatch object.

 

Result:

  





Example 2 - Filter example 1



SI.QUERY("Sage","TaxSolution", "TaxMethod='VAT or GST'", "SolutionID,TaxMethod")

 

Description: 

Returns the SolutionID and TaxMethod fields from the TaxSolution object where the TaxMethod field is set to VAT or GST:

 

Result:

 




Example 3 - Filter example 2



=SI.QUERY("Sage","TaxDetail","DESCRIPTION LIKE('%Sales%')", "RecordNo,DetailID,Description,TaxType,Value,Include, GLAccount,TaxAuthority,Status")

 

Description: 

Returns the specified fields (in the order specified) from the TaxDetail object where the Description field contains the case-sensitive substring Sales 

 

Result:

 

 






=SI.QUERY("Sage", "Project", (PROJECTID='22-002'), 
"PROJECTID,NAME,MANAGER.EMPLOYEEPOSITION.NAME")


Description: 

This SI.QUERY example queries the PROJECT object and returns 3 columns for a single, specified ProjectID. 

The third specified field (NAME) originates from the EMPLOYEEPOSITION object that is related to the MANAGER object which is then related to the PROJECT object (demonstrating multi-level "lookups").



Notes: 

  • the above formula is equivalent to the formula in the screenshot, demonstrating the use of cell references for function arguments.
  • The query automatically understands which relationships to use when specifying prefixed column names with related object names.


Here are the relationships of the related objects for the above example:

  • From the PROJECT object, the Employee relationship relates to object: MANAGER


  • From the MANAGER object: the Employee position relationship relates to the EMPLOYEEPOSITION object
  • The field NAME is then used from the EMPLOYEEPOSITION Object to return the name of the Employee Position







Example 5 - Send output to an Excel table



This and other examples of creating Excel tables can be found in Table Mirroring.


=SI.QUERY("Sage","Project",,"RECORDNO,PROJECTID,PROJECTTYPE,NAME",TRUE,,A5,B5,D5,C5)


Description: 

Instead of displaying the results of the query starting in the cell containing the SI.QUERY function, the function Cell A2 displays the specified fields from the Project object in an Excel data table located in the cells specified by the OutputColumns parameters (cells A5, B5, D5, and C5)






Aggregation examples


The Velixo SI.QUERY function also supports the ability to perform aggregation of data.


Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article