Agent skill

Mendix Bulk Oql Dml

by mendixlabs in mendixlabs/mxcli

Run set-based INSERT, UPDATE and DELETE against Mendix entities through OQL statements, which the runtime supports and Studio Pro cannot author.

Apache-2.0Auto-check passedBackend & APIs

Install Mendix Bulk Oql Dml

skills CLI
$ npx skills add mendixlabs/mxcli --skill mendix-bulk-oql-dml -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mendixlabs/mxcli mendix-bulk-oql-dml --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/packs/mendix-bulk-oql-dml .claude/skills/mendix-bulk-oql-dml && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
mendix-bulk-oql-dml
GitHub stars
128
Token cost
~1.4k tokens
SKILL.md length
715 words
Files
5 (incl. references)
Skills in repo
72
Repo updated
First seen
Licence
Apache-2.0

At a glance

Run set-based INSERT, UPDATE and DELETE against Mendix entities through OQL statements, which the runtime supports and Studio Pro cannot author.

  • Works in 3 steps: The screen has a small non-persistent… → The grid's datasource is a database… → The action ends with commit $Context…
  • A microflow would otherwise retrieve a large list and loop — applying rules across a table
  • SKILL.md covers What this is, Check the version first, When to use it, and when not and Making the result visible, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Mendix Bulk Oql Dml is an agent skill from mendixlabs/mxcli. Run set-based INSERT, UPDATE and DELETE against Mendix entities through OQL statements, which the runtime supports and Studio Pro cannot author. Use when a microflow would otherwise retrieve a large list and loop — applying rules across a table, copying a year of records, staging and promoting an import, archiving, backfilling a column — or when a nested retrieve-loop-commit is the reason a screen or a scheduled job is slow.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `pack.yaml`, `references/gotchas.md` and `references/patterns.md`).

It sits in Backend & APIs, covering Background jobs. The repository describes itself as: Mendix cli tool, a headless way to work with Mendix projects. Enables Mendix projects for use with 3rd party agentic coding tools like Claude Code and Copilot. Includes a… The licence is Apache-2.0.

When your agent uses it

  • A microflow would otherwise retrieve a large list and loop — applying rules across a table
  • Copying a year of records
  • Staging and promoting an import
  • Backfilling a column —

Example prompts

  • “/mendix-bulk-oql-dml”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. The screen has a small non-persistent context object.
  2. The grid's datasource is a database source constrained on that object
  3. The action ends with commit $Context refresh;.

What it can do on your machine

Read from SKILL.md and the folder at commit 20a6c89. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are java and bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Mendix Bulk Oql Dml loads about 1.4k tokens when it runs, and up to ~4.2k if it reads all its reference files. Until then it costs about 112 tokens; SKILL.md has 715 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~112
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mendixlabs/mxcli at commit 20a6c89, republished under its Apache-2.0 licence (© mendixlabs). 715 words, ~1,384 tokens.

Download SKILL.mdSave it as .claude/skills/mendix-bulk-oql-dml/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
mendix-bulk-oql-dml
description
Run set-based INSERT, UPDATE and DELETE against Mendix entities through OQL statements, which the runtime supports and Studio Pro cannot author. Use when a microflow would otherwise retrieve a large list and loop — applying rules across a table, copying a year of records, staging and promoting an import, archiving, backfilling a column — or when a nested retrieve-loop-commit is the reason a screen or a scheduled job is slow.

Bulk DML through OQL statements

What this is

The Mendix runtime executes OQL statements, not just queries. Three calls, all in com.mendix.public-api.jar:

java
com.mendix.core.Core.createOqlStatement(String)   // -> OqlStatement
OqlStatement.setVariable(name, value)             // -> OqlStatement, chainable
OqlStatement.execute(IContext)                    // -> int rows affected

Studio Pro has no activity for this, so the only way to reach it is a Java action. mdl/oql-dml-actions.mdl is three of them, authored in MDL with inline Java, ready to apply to any project:

ActionUse
OQL_Execute(Statement)One statement, no variables. Returns rows affected, throws on failure.
OQL_ExecuteWith(Statement, Name/Value/Type ×4)Same, with up to four bound, typed variables.
OQL_Try(Statement)Returns OK rows=N or ERR … instead of throwing. For probing, not for production paths.
bash
mxcli exec .claude/skills/mendix-bulk-oql-dml/mdl/oql-dml-actions.mdl -p MyApp.mpr

Check the version first

Each statement type arrived in a different runtime release, and the last one is recent enough that "it works on my app" is not transferable:

StatementAvailable from
DELETE11.1.0
UPDATE11.3.0 — associations 11.4.0
INSERT … SELECT11.6.0 — associations 11.7.0
INSERT … VALUES11.13.0

Pin the runtime version deliberately before building on this.

When to use it, and when not

Use it when the work is a set and nobody is looking at the rows: applying rules over a table, copying a year of records, promoting a staged import, archiving, backfilling a new column. One statement replaces a retrieve of every match into memory, a loop, and a commit per object.

Do not use it for a single object a user is editing. And know what it skips — this is the thing to say out loud before choosing it:

A statement runs in the database, inside the calling microflow's transaction. It does not pass through the object cache, so no event handlers fire, no validation rules run, an object already retrieved keeps its old values, and a client holding one is not refreshed.

If the entity's correctness depends on a before-commit handler, either move that logic into the statement or do not use a statement.

Making the result visible

A grid over rows a statement just rewrote keeps showing the old ones, because nothing told the client. The pattern that fixes it, used on both screens in this project:

  1. The screen has a small non-persistent context object.
  2. The grid's datasource is a database source constrained on that object (where [Batch = $currentObject/Batch]).
  3. The action ends with commit $Context refresh;.

Refreshing the context re-runs the grid's query. Without step 3 the screen is quietly wrong, which is worse than obviously wrong.

Show full SKILL.md (325 more words)Show less

Patterns that work

Full statements, from three working use cases, are in references/patterns.md:

  • First-match-wins rules — one UPDATE per rule, in order. The precedence lives in the WHERE clause: each statement only touches rows still unclaimed, so a later rule cannot take a row an earlier one took. No flags, no loop.
  • Copy a year — INSERT … SELECT per month. Idempotent by deleting the target window first, in the same transaction.
  • Stage and promote — land rows in a loader entity, validate them where they landed with one UPDATE per check stamping a reason on the failures, then promote the survivors with a single INSERT … SELECT. The rejects stay behind with their reason, which is the whole argument for a loader table.

Before writing a statement

Read references/gotchas.md. Four things cost real time here, and one of them wrote bad data:

  1. An association compared to null in a WHERE matches nothing — in both spellings, with no error. A validation written that way passes every row.
  2. Alias every column in an INSERT … SELECT. Two association paths both end in /id and collide as Duplicate column name: ID, naming a column that is not in your statement.
  3. Association columns must be module-qualified — Ledger.Order_Customer, not Order_Customer.
  4. No substring. String surgery has to be done by the caller, which is why "copy a year" is twelve statements rather than one.

Probing safely

The grammar is not discoverable from the model, so find out by running. Use OQL_Try with statements whose WHERE cannot match, from a microflow that logs each result, and read the log. Sixteen statements in one pass is what mapped the matrix in references/patterns.md.

Two warnings if you use the after-startup microflow as the harness, both learned the hard way: a statement that throws there takes the whole app down, and the action is one transaction, so a failure at the end rolls back everything before it — including work whose log lines already said it succeeded.

© mendixlabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (references) in .claude/skills/packs/mendix-bulk-oql-dml of mendixlabs/mxcli.

  • SKILL.md
  • mdl/oql-dml-actions.mdl
  • pack.yaml
  • references/gotchas.md
  • references/patterns.md

Open the folder on GitHubat commit 20a6c89

Compare with similar skills

Mendix Bulk Oql Dml next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Mendix Bulk Oql Dml compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Mendix Bulk Oql Dml this skillmendixlabs/mxcli128—~1.4kAutomated safety check: PassApache-2.0
Trigger.dev Configurationpapermark/papermark9.2k—~1.2kAutomated safety check: PassCustom licence
FoundatioFoundatioFx/Foundatio2.1k—~3.9kAutomated safety check: PassApache-2.0
AI Model NodejsTencentCloudBase/CloudBase-AI-Toolkit1.1k3 repos~5kAutomated safety check: PassMIT
Trigger.dev Realtimepapermark/papermark9.2k—~1.7kAutomated safety check: PassCustom licence
NubaseOtterMind/Nubase623—~2.2kAutomated safety check: NotesApache-2.0

Similar skills

  • Trigger.dev Configuration

    papermark/papermark

    Configures Trigger.dev projects through trigger.config.ts, with build extensions for Prisma, Playwright, Puppeteer, FFmpeg, Python and system packages.

    9.2k GitHub stars~1.2k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Foundatio

    FoundatioFx/Foundatio

    A skill your agent uses when working with Foundatio infrastructure abstractions for .NET -- caching, queuing, messaging, file storage, distributed locking, or background jobs.

    2.1k GitHub stars~3.9k tokensUpdated today
    Backend & APIsAuto-check passed
  • AI Model Nodejs

    TencentCloudBase/CloudBase-AI-Toolkit

    A skill your agent uses for Node.js backend AI via @cloudbase/node-sdk (=3.16.0) — cloud functions, CloudRun, Express/Koa/NestJS, serverless APIs, scheduled jobs, LLM proxies, agent orchestration.

    1.1k GitHub starsUsed in 3 repos~5k tokens
    Backend & APIsAuto-check passed
  • Trigger.dev Realtime

    papermark/papermark

    Shows how to subscribe to Trigger.dev task runs from the backend and from React for progress indicators, live dashboards, AI response streams and approval waits.

    9.2k GitHub stars~1.7k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Nubase

    OtterMind/Nubase

    A skill your agent uses when the user mentions Nubase broadly, wants a backend for an AI-generated app, or needs to deploy/publish generated code online — across Database, Auth, Storage, Assets…

    623 GitHub stars~2.2k tokensUpdated 9 days ago
    Backend & APIsAuto-check: notes
  • Trigger.dev Background Tasks

    papermark/papermark

    Guides building durable background tasks, scheduled jobs and queues with Trigger.dev, including retries, waits, idempotency and concurrency limits.

    9.2k GitHub stars~2.1k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed

More from mendixlabs/mxcli

All 72 skills in this repo
  • Mendix Odata Pushdown

    mendixlabs/mxcli

    Push OData query options into the SQL of a Mendix resource served by a read microflow, so $filter, $orderby, $top, $skip, $count and the key lookup reach the database instead of being silently…

    128 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Mendix Vega Charts

    mendixlabs/mxcli

    Chart a Mendix app with Vega-Lite through a pluggable widget that takes the specification and the data as separate properties, so the model emits rows and never assembles a chart payload.

    128 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Agents

    mendixlabs/mxcli

    Author Mendix AI agent documents in MDL — Model, Knowledge Base, Consumed MCP Service and Agent, with variables, tools and multi-line prompts.

    128 GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check passed
  • Business Events

    mendixlabs/mxcli

    Define event-driven APIs over Kafka with Mendix business event services — publish and subscribe contracts, CREATE/DROP/DESCRIBE.

    128 GitHub starsUsed in 1 repo~1.3k tokens
    Auto-check passed
  • Catalog Search

    mendixlabs/mxcli

    Search the Mendix Catalog platform service registry (catalog.mendix.com) from the CLI to find services published across an organisation.

    128 GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check passed
  • Mock REST APIs

    mendixlabs/mxcli

    Stand up an HTTP endpoint you control instead of a live third-party API, and point the Mendix app at it — Prism from an OpenAPI contract, a constant swap, or a forward proxy.

    128 GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed

Categories

Questions about Mendix Bulk Oql Dml

What does Mendix Bulk Oql Dml do?

Run set-based INSERT, UPDATE and DELETE against Mendix entities through OQL statements, which the runtime supports and Studio Pro cannot author. Mendix Bulk Oql Dml is an agent skill from mendixlabs/mxcli. Run set-based INSERT, UPDATE and DELETE against Mendix entities through OQL statements, which the runtime supports and Studio Pro cannot author.

When should I use Mendix Bulk Oql Dml?

Mendix Bulk Oql Dml fits situations like: A microflow would otherwise retrieve a large list and loop — applying rules across a table; copying a year of records; staging and promoting an import; backfilling a column —.

How do I install Mendix Bulk Oql Dml in Claude Code?

Run `npx skills add mendixlabs/mxcli --skill mendix-bulk-oql-dml -a claude-code`. Or copy the skill folder (.claude/skills/packs/mendix-bulk-oql-dml in mendixlabs/mxcli) into .claude/skills/mendix-bulk-oql-dml in your project. Claude Code loads it when a task matches its description.

How do I install Mendix Bulk Oql Dml in Codex?

Run `npx skills add mendixlabs/mxcli --skill mendix-bulk-oql-dml -a codex`. Or copy the skill folder (.claude/skills/packs/mendix-bulk-oql-dml in mendixlabs/mxcli) into .agents/skills/mendix-bulk-oql-dml in your project. Codex loads it when a task matches its description.

Can I use Mendix Bulk Oql Dml in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mendixlabs/mxcli --skill mendix-bulk-oql-dml -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mendix-bulk-oql-dml, .gemini/skills/mendix-bulk-oql-dml, .github/skills/mendix-bulk-oql-dml and .opencode/skills/mendix-bulk-oql-dml in your project.

What does Mendix Bulk Oql Dml need to run?

SKILL.md names no scripts, command-line tools or credentials: Mendix Bulk Oql Dml is instructions for the agent only.

Does Mendix Bulk Oql Dml access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Mendix Bulk Oql Dml safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Mendix Bulk Oql Dml use?

Mendix Bulk Oql Dml is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Mendix Bulk Oql Dml use?

About 1.4k tokens (SKILL.md is roughly 5.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.8k tokens, read only when the agent opens those files.

What are the alternatives to Mendix Bulk Oql Dml?

Skills that share tags, products or a category with Mendix Bulk Oql Dml: Trigger.dev Configuration (papermark/papermark, 9.2k stars), Foundatio (FoundatioFx/Foundatio, 2.1k stars), AI Model Nodejs (TencentCloudBase/CloudBase-AI-Toolkit, 1.1k stars) and Trigger.dev Realtime (papermark/papermark, 9.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Mendix Bulk Oql Dml?

mendixlabs (a GitHub organization) maintains it in mendixlabs/mxcli, which has 128 GitHub stars. The repository holds 72 skills in this directory. The repository was last updated on October 7, 2026.

Source: mendixlabs/mxcli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.