Inquiry Builder - Nioron07/Easy-Acumatica GitHub Wiki

This page documents the InquiryBuilder (formerly InquiryOptions) in easy-acumatica, a fluent builder for contract-based Acumatica generic inquiries.


1. Importing

from easy_acumatica.models.inquiry_builder import InquiryBuilder

2. The InquiryBuilder Class

Chain parameters and detail-expands in a single builder:

builder = InquiryBuilder()

2.1 Setting Parameters

Use .param(field, value) to add or overwrite a request parameter:

builder.param("InventoryID", "SIMCARD").param("WarehouseID", "YOGI")
  • Internally stored as:

    {"InventoryID": {"value":"SIMCARD"},
     "WarehouseID": {"value":"YOGI"}}
    

2.2 Expanding Details

Use .expand(*entities) to include one or more detail entities in the response:

builder.expand("Results", "Totals")
# query string: {"$expand":"Results,Totals"}

3. Extracting Query & Body

  • Query params: builder.to_query_params(){'$expand': 'Results,Totals'}
  • Request body: builder.to_body() → parameter map (empty if none set)
params = builder.to_query_params()
body   = builder.to_body()

4. Usage Example

from easy_acumatica import AcumaticaClient
from easy_acumatica.models.inquiry_builder import InquiryBuilder

client = AcumaticaClient(...)
svc    = client.inquiries

opts = (
    InquiryBuilder()
    .param("InventoryID", "SIMCARD")
    .param("WarehouseID", "YOGI")
    .expand("Results")
)
rows = svc.get_data_from_inquiry_form(
    "24.200.001",
    "InventorySummaryInquiry",
    opts
)
for row in rows:
    print(row)

5. Fluent Chaining

Methods return the same builder instance, enabling concise chains:

builder = (
    InquiryBuilder()
    .param("A", 1)
    .expand("X")
    .param("B", 2)
    .expand("Y")
)