UiPath Documentation
industry-department-solutions
latest
false
  • Inventory management solution release notes
    • 2026
      • June 2026
      • May 2026
      • April 2026
  • Commercial pricing solution release notes
  • Merchandising solution release notes
      • June 2026
      • May 2026
      • April 2026

Supply Chain & Retail Solutions release notes

June 2026

June 3, 2026

New: Integration walkthrough

A new Integration walkthrough page in the API Guide walks customer IT teams, solution engineers, and support engineers through the four stages of integrating with the Data Ingestion API: extract, transform, align field names, and batch + send. Each stage has the relevant API calls embedded inline — GET /api/v2/schema/solutions to confirm what's rolled out, POST /api/v2/objects/{objectName} for ingesting batches (with a dryRun variant), and POST /api/v2/schema/{objectName}/add-attribute for adding tenant-specific columns — alongside Snowflake COPY INTO and Redshift UNLOAD recipes for the extract step. Designed as a single one-stop guide rather than scattered references.

Bulk-ingest guide: folder-load sort order spelled out

The Historical data ingestion guide's "File or folder?" section now spells out the folder-load sort-order rules. Lexicographic sort gives the right order when filenames encode order as zero-padded numbers (part-0001.csv) or ISO-style date prefixes (2024-06-01.csv) — both forms warehouse exports produce by default. It gives the wrong order for non-padded part numbers, DD-MM-YYYY or MM-DD-YYYY date names, or month-name files like January_report.csv. The doc now lists each failure case in a comparison table and recommends the safe naming pattern.

June 2, 2026

Markdown & Promotions API guide aligned with the canonical schema

The Markdown & Promotions pages in the API Guide have been brought fully in line with the canonical schema. The visible changes:

  • Three previously-undocumented tables now have their own pages: Sale Extra (variant-level sales), Stock Extra (variant-level stock), and Currency Conversion (exchange rates for cross-region normalisation). All three are reachable from the sidebar under Markdown & Promotions.
  • Location: added two columns the page was missing — currency and updated_at.
  • Tax: the primary key now includes created_at (so it's product_id + location_id + created_at), matching the schema and allowing successive tax updates for the same product/location pair to be distinct rows.
  • All non-PK columns on every page are now marked Required to match the schema's actual validation rules. Whether the value can be null is now shown separately as Nullable: Yes/No — see the next entry.
  • Type annotations across the API Guide use timestamp for date-time fields (matching the canonical schema name), replacing the previous datetime labelling.
  • The Markdown and Promotions Data Model Tables Summary now includes the three new tables, and the tax primary key row is corrected.

Pipelines preparing data against the previous documentation may need to add the columns that were missing from location, update their primary-key generation for tax, and add data flows for sale_extra / stock_extra / currency_conversion if those are needed for the use case.

Historical data ingestion guide

A new guide covers loading large historical datasets (millions to billions of rows) into the Data Ingestion API. It explains the design considerations for at-scale loads — streaming, dynamic batching, rate-limiting, foreign-key ordering, checkpointing, and failed-row handling — and provides a self-contained Python reference script you can configure and run. See Historical data ingestion.

Bulk-ingest script

The Python reference script in the historical-data-ingestion guide:

  • Loads one table per run with a minimal CONFIG block (csv_path, object_name, solution_name, operation_type, parallel). To load several tables, run the script once per table.
  • Accepts a folder of CSV part-files as the source, in addition to a single CSV file. Chunked exports are loaded in sorted filename order.
  • Reads gzip-compressed CSVs transparently, detected from the .gz extension.
  • Recognises both empty string (Redshift UNLOAD default) and \N (Snowflake COPY INTO default) as null markers.
  • Fails fast if a CSV row has more cells than the header, instead of silently shifting data into the wrong columns.
  • Tolerates uncastable cells (e.g. "abc" in an integer column) by passing them through to the API as raw strings, so one bad cell becomes one rejected row, not a stopped load.
  • Exposes a parallel toggle for UPSERT loads where a primary key can appear more than once in the source.

The guide also includes warehouse-specific UNLOAD / COPY INTO recipes for Snowflake and Redshift, and a section on re-running the script (resume behaviour, where checkpoint and failed-row files live, how to start fresh).

Operation type guidance

The API guide now frames the choice between APPEND and UPSERT around what the downstream solution needs from the data — current state vs full history — rather than around data type. The solution-specific guides state the recommended operation per table where it matters.

Per-table pages now show Nullable alongside Required

Every per-table page in the API Guide now includes a Nullable column next to Required. The two flags are independent:

  • Required: Yes — the column's key must appear in every ingest payload. This is the case for every column in the standard schema, so the value is Yes throughout.
  • Nullable: Yes — the value may be sent as null when no data is available for the row.
  • Nullable: No — a non-null value must be sent for every row.

This makes it possible to distinguish "I must send the key but the value can be null" from "I must send a non-null value" at a glance per column. See Schema definition structure for the underlying validation rules.

Add-column endpoint: nullability guidance

The Add a new column section now has a Controlling required-ness and nullability on the new column subsection. It documents that required and nonNull are independent validators in the add-column path and lays out the four valid combinations as a small table. It also calls out the API-enforced mutual exclusion of defaultValue and nonNull — sending both returns 400 Bad Request with the exact error message the API produces.

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated