Skip to main content

DATA_ProductUom

DATA_ProductUom: TvxClientDataSet

Example

procedure ScriptEvent(var Value: variant);
begin
CreateData(DATA_ProductUom, ['ProductNum,integer', 'Code,string,100', 'Uom,string,20', 'UomUnits,integer']);
DATA_ProductUom.Append;
DATA_ProductUom['ProductNum'].AsInteger := 1001;
DATA_ProductUom['Code'].AsString := 'CASE';
DATA_ProductUom['Uom'].AsString := 'EA';
DATA_ProductUom['UomUnits'].AsInteger := 12;
DATA_ProductUom.Post;
Value := DATA_ProductUom.RecordCount;
end;

Usage

DATA_ProductUom provides the independent friendly dataset conventionally used for VxData product/UOM conversion and packaging data.

Conventional VxData context

The current Product_Uom table requires a product reference and can reference a UOM type. It stores code, GTIN, UOM, units per UOM, descriptions and manufacturer identifiers, dimensions and weight, unit price/cost, hashes and audit fields. Its product foreign key currently cascades on product deletion; the client dataset itself does not enforce that database rule.

This convention guides queries and field names; it is not a runtime schema contract. Custom SQL, configuration and customer extensions may return a different subset, aliases or additional columns. Use FindField for optional fields and validate types at the integration boundary.

Behaviour, lifecycle and side effects

  • Velox loads all returned rows into memory and preserves fetched string whitespace. Large results can use substantial memory.
  • Navigation, filtering, indexing and edits mutate the shared object. Closing or recreating it invalidates retained fields, bookmarks and record positions.
  • Post updates the client dataset; it does not prove an external database write or transaction commit. Persistence belongs to the function or SQL used for that purpose.
  • Data helpers commonly catch and log SQL or creation failures, potentially leaving the object inactive or reset. Invalid field, conversion and dataset-state operations can still raise.
  • Action cleanup closes friendly datasets. Velox owns the object; scripts must not free it or rely on its records surviving another action execution.
  • The mutable dataset and cursor are not thread-safe. Do not pass the reference to asynchronous work or allow nested code to reposition it without an explicit contract.

Additional Technical Info

DATA_ProductUom is an action-owned friendly dataset intended for the role described below. It is a live TvxClientDataSet reference; its name does not load data, select a connection, execute SQL or impose a field layout.

Runtime binding and identity

Velox constructs the object with the action and binds DATA_ProductUom to TvxActionMan.FData66. Its diagnostic dataset name is DATA_ProductUom.

The dataset begins inactive and without fields. CreateData, Data query helpers and load methods can each replace its schema and records. Every script using the action observes the same live cursor, filters, indexes and edits until it is closed or repopulated.

Implementation and naming cautions

This is independent from both DATA_Product and DATA_UOM; Velox does not load, join or synchronise those objects automatically. UomUnits is a configured conversion quantity, not evidence that dimensions, prices or partner GTINs use the same basis.

The friendly suffix does not validate record type, authenticate a user or party, enforce application/tenant scope, apply foreign keys or prevent reuse for unrelated data.

Related entries

External references

Created 2026-07-15