Use this skill together with the generic jigx skill. Read the generic Jigx references
for screen, form, datasource, tab, media, and PDF patterns. Use this skill only for
Acumatica-specific integration rules.
Workflow
- Read
references/recipe-index.md. - For a new integration, read
references/acumatica-discovery.mdfirst: find the customer's release from the instance build, pick the channel by job, and keep every session bounded by a logout. SOAP/UI probes are for agent-side discovery and Acumatica configuration only; Jigx mobile cannot execute SOAP calls and must use the discovered screen facts through Generic Inquiries/OData, contract REST, or an explicitly provided server-side bridge. - Before designing anything on a screen, read
references/acumatica-screen-logic.mdand usejigx-acumatica-kb. Reconcile with the live instance when a connection exists, and treat customer-added and unresolved fields as schema only. - Confirm whether the task is inbound lookup sync, local-first outbound sync, direct
submit, file upload, or retry/error handling. For any offline/batch create or
update, read
references/acumatica-sync.mdbefore designing tables or actions. - Confirm REST versus OData. Prefer REST when possible.
- Confirm required
$expandvalues before implementing lookups that need nested data. - Keep Acumatica config casing exact:
acumaticaURLandacumaticaOdataURL. - Use
accessTokenwith type/valueacuerp; do not hardcode access tokens. - Preserve local-first behavior unless the app explicitly uses direct submit.
- For every selector and every write, read
references/acumatica-selectors-and-cascades.mdandreferences/integration-verification.md. Resolve runtime-only selectors on the instance, round-trip lookup values through the writable endpoint, and run the hardening gauntlet before calling a write done. - Declare every list read per
references/acumatica-reads-and-sync-contract.md: inquiry-backed, delta by a modified field, row identity for join rows, and a required parameter for any read that needs an address or a parent.
Reference Map
-
references/recipe-index.md- when to read each Acumatica reference. -
references/acumatica-discovery.md- probing an instance, SOAP/UI probe boundaries for Jigx mobile, the three channels by job, release from build, session and licence discipline, reading Acumatica errors. -
references/acumatica-screen-logic.md- what the screen knowledge base carries, the release rule, reconciling with the live instance, provenance, what it cannot know. -
references/acumatica-selectors-and-cascades.md- the stored-column contract, owner selectors andContactID, finding cascades, diagnosing a rejected value, round-trip proof, the hardening gauntlet, value semantics, workflow actions. -
references/acumatica-reads-and-sync-contract.md- inquiries for lists, creating an inquiry, delta sync, addressed and parent-driven reads, row identity, the row cap. -
references/acumatica-endpoints-and-files.md- contract REST as fallback, detail collections, creating a missing endpoint, attaching files to a record. -
references/acumatica-rest.md- REST functions, parameters, payloads, errors. -
references/acumatica-sync.md- local-first sync, Remote states, command queue, parent-child search/replace, retry. -
references/acumatica-lookups-expands.md- lookup sync, OData/REST differences,$expand, force sync, dropdown fields. -
references/acumatica-files-submit.md- file uploads, PDF attachments, service order submit patterns. -
references/integration-verification.md- test app-populated data through the generated request, authorized live writes and remote readback.
Guardrails
- Never guess or default the Acumatica release. Derive it from the build or ask; a release the knowledge base does not cover is designed from the live schema, never from a neighbouring release.
- Never generate Jigx mobile code that executes SOAP, WSDL calls, or Acumatica SOAP sessions. Use SOAP/UI probes to understand and configure Acumatica, then implement the mobile integration with Generic Inquiries/OData, contract REST, files/actions, or an explicitly available server-side bridge.
- Never sync a large list through the screen API or contract REST. Lists go through a Generic Inquiry.
- Never leave an Acumatica session open. Login, work, logout, on failure too.
- Never invent a dropdown's rows, an enum value, or a cascade. Reproduce the row source, harvest enum values from the instance, and prove a cascade with a read.
- Never ship a lookup that has not round-tripped against the writable endpoint.
- Never feed a per-user field from a global sync of its table.
- Never write workflow status as a field; move it with the screen's action.
- Never treat a rejected selector value as bad data before checking the stored column and the population.
- Never publish a customization package without naming the environment and getting explicit agreement; validate first, test before production.
- Never hardcode Acumatica access tokens.
- Never change
acumaticaURLoracumaticaOdataURLcasing. - Never assume nested fields are present without
$expand. - Never send Jigx internal fields to Acumatica.
- Never build queued Acumatica payloads in the screen save action; pass identifiers and build the body from local tables when the queue drains.
- Never create a separate same-entity queue table for local-first create/update unless
the business flow explicitly needs a different table. Use the entity's local table
plus
Remote: "new" | "dirty" | "remote"as the default. - Never lose failed commands. Use command queue retry or explicit error records.
- Never overwrite local IDs in child records without replacing queued references when the queue still contains temporary IDs.