# How to Create a Generic Inquiry in Acumatica

> Source: https://netray.co/erp-help/acumatica-how-to-create-generic-inquiry
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: ERP Help

## Short answer

Generic Inquiries (GI) are Acumatica's no-code query builder for joining tables, adding filters, and exposing the result as an inquiry screen, dashboard data source, or API endpoint. Open System > Customization > Generic Inquiry, add your base table, define joins and conditions, then run and save. No SQL or customization project is required.

## Kind

how-to

## System

small-erp

## Erp

Acumatica Cloud ERP

## Module

System > Customization > Generic Inquiry

## Query

how to create a generic inquiry in Acumatica

## Alternate Queries

- Acumatica generic inquiry tutorial
- Acumatica GI builder how to join tables
- how to build a report screen in Acumatica without code

## Applies To

Acumatica ERP 2021 R1 through 2024 R2, all editions

## Steps

### Build and publish a Generic Inquiry

**Items:**

- Go to System > Customization > Generic Inquiry (screen ID SM208000).
- Click Add New Record, enter an Inquiry Title, and give it a unique Inquiry Name - this becomes the internal name, for example MyCustomerBalance.
- On the Tables tab, click Add Table and choose the primary DAC (Data Access Class), such as Customer.
- Add each related table with Add Table, then open the Relations tab and set how it joins an existing table - Inner Join or Left Outer Join.
- On the Results Grid tab, add the fields to expose, set captions, data types, and sort order.
- Use the Conditions tab for fixed filter logic, or the Parameters tab to expose fields as prompted, user-entered filters.
- Click View Inquiry to run the result set and confirm the rows and columns are correct before saving.
- Save the GI, then use Grant Access Rights to control which roles can see it, and check Expose via OData if it needs to be reachable from outside Acumatica.

## Sections

### Why Generic Inquiry instead of a custom report

**Body:**

SSRS reports and BQL-based custom pages both require a customization project, deployment, and a publish cycle. A Generic Inquiry is built and changed live in the production or a test instance, by anyone with access to the Customization workspace, and takes effect immediately. That makes it the right tool for one-off operational questions, ad hoc dashboards, and lightweight API endpoints that do not justify a full extension.

The tradeoff is that a GI is read-oriented. It can join, filter, and sort existing data, but it cannot write records back or run business logic. For anything that needs validation, calculations against multiple related documents, or posting, a processing screen or a generic inquiry paired with a Business Process Automation (BPM) workflow is the better fit.

### Joining tables and picking the right relation type

**Body:**

The Relations tab decides whether rows survive the join. An Inner Join only returns rows where both sides match - join Customer to SalesOrder with Inner Join and any customer with zero orders disappears from the result entirely. A Left Outer Join keeps every row from the left table and fills unmatched right-side fields with null, which is almost always what you want when the report needs to show all customers, all items, or all periods regardless of activity.

Acumatica infers the join key from the DAC relationships already defined in the schema (foreign keys such as BAccountID or InventoryID), so in most cases you only pick the two tables and the join type, not the individual columns. When a table has more than one possible relationship to another (for example, an order linked to both a bill-to and a ship-to customer), the GI wizard prompts you to choose which relationship to use.

### Exposing a GI as an API endpoint (OData)

**Body:**

Checking Expose via OData on a saved Generic Inquiry publishes it as a read-only feed reachable at a URL under /entity/ once the inquiry is added to an endpoint version, or more simply consumed directly by the built-in OData v4 endpoint that Acumatica maintains per GI. External tools such as Power BI, Excel Power Query, or a scheduled export job can then pull the same result set the GI screen shows, filtered with OData query parameters.

This is the fastest way to get a specific Acumatica answer into a spreadsheet or BI tool without asking for a full SuiteApp-style customization. It is still subject to the Grant Access Rights configured on the GI, so the credentials used to call the endpoint need the matching role.

### Using a GI as a dashboard or Business Event data source

**Body:**

Any saved Generic Inquiry can be dropped into a Dashboard widget (chart, grid, or scorecard) or set as the trigger source for a Business Event, which then fires an email, a generic inquiry-based notification, or a BPM process whenever the underlying condition becomes true - for example, a GI that returns open sales orders past their promise date feeding a daily late-order alert.

### Troubleshooting slow Generic Inquiries

**Body:**

GIs that join five or more large tables, or that filter on a non-indexed field, can time out or run slowly once real data volume builds up. Check the Conditions tab for filters on fields that are not part of the table's primary key or an existing index, reduce the number of joined tables where possible, and prefer Parameters (user-supplied filters applied before the query runs) over Conditions that scan the full result set after the fact.

## Pitfalls

- Leaving the default Inner Join on a table that should be optional (like an order's ship-to) silently drops valid rows from the result.
- Renaming the Inquiry Name after other screens, dashboards, or Business Events already reference it breaks those links.
- Exposing a GI via OData without reviewing Grant Access Rights can surface financial or customer data to roles that should not see it.
- Joining too many large tables in one GI causes timeouts under real transaction volume, even though it runs fine on a small test dataset.
- Using Conditions instead of Parameters for filters that should be user-entered forces Acumatica to evaluate the condition against the full joined result every time.

## Ai Angle

Most of the time spent building a Generic Inquiry is picking the right base table, the correct join type, and the field that actually holds the answer - not typing into the wizard. An assistant like Netray's ERPray, grounded in the live Acumatica schema and existing GI library, can answer the underlying business question directly (open AR balance by customer, late purchase orders this week) without a GI ever being built, or draft the table list, joins, and filter conditions for a new GI so the Customization workspace step is a five-minute confirmation instead of a from-scratch build.

## Faq

### Can a Generic Inquiry update or insert records?

**Answer:** No. A Generic Inquiry is read-only by design - it selects and joins data but cannot write back to the database. For record updates you need a processing screen, an import scenario, or a customization with business logic attached to it.

### How is a Generic Inquiry different from a Pivot table (PXRS) in Acumatica?

**Answer:** A GI defines the underlying query - tables, joins, filters, fields. A Pivot Table or chart widget is a presentation layer built on top of a GI's result set. You typically build the GI first, then create a pivot or dashboard widget that points at it.

### Why does my Generic Inquiry show fewer rows than I expect?

**Answer:** Almost always an Inner Join on a table that should be a Left Outer Join, which drops any row without a match on the joined side. Check the Relations tab for each added table and switch to Left Outer Join where the related record may not always exist.

### Can I use a Generic Inquiry inside a BPM (Business Process Automation) condition?

**Answer:** Yes. GIs are a common data source for BPM conditions and for Business Events, letting you trigger notifications or workflow steps when the GI's filtered result set changes, without writing a custom C# condition.

## Search terms

acumatica generic inquiry, acumatica GI builder, how to create report in acumatica, acumatica no code query, acumatica OData endpoint, acumatica dashboard data source, acumatica table join relation, acumatica business events GI, acumatica system customization, acumatica reporting without SSRS

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
