Infor SyteLine

How to Build Custom IDOs in Infor SyteLine

Intelligent Data Objects (IDOs) are the core data access layer in Infor SyteLine and CloudSuite Industrial. Every form, report, and integration point communicates through IDOs to read and write data. Building custom IDOs lets you expose new business logic, custom tables, and specialized queries without modifying the standard SyteLine codebase.

IDO Architecture and Class Structure

A custom IDO in SyteLine consists of two parts: the IDO metadata registered in the IDO runtime and an optional .NET assembly containing extension class methods. The metadata defines which database table or view the IDO maps to, its properties (columns), and method signatures. The IDO runtime translates form requests into SQL via the IDO layer, applying security and business rules at each step. When you register a new IDO in the Application Database using the IDO Metadata form (IDOs), you specify the primary table, join relationships, and property-to-column mappings.

  • Register IDOs through the IDOs form under Application Configuration > IDO Metadata
  • Map IDO properties to columns in your custom table (e.g., Uf_CustomOrders) with correct data types
  • Set the primary table and define secondary joins using IDO Join definitions
  • Configure property-level attributes: ReadOnly, Required, DefaultValue, and DeriveFromParent
  • Deploy extension class DLLs to the IDOExtensionClasses folder on the utility server

Creating Your First Custom IDO Step by Step

Start by creating your database table in the SyteLine application database using SQL Server Management Studio. Follow SyteLine naming conventions, prefixing user-defined tables with Uf_ to avoid upgrade conflicts. Next, open the IDOs metadata form and create a new IDO record specifying the table name, IDO name, and base select query. Add properties for each column you want to expose, paying attention to data types and nullability. Finally, assign the IDO to an IDO collection and configure security permissions through the IDO Security form.

  • Create the backing table with Uf_ prefix: CREATE TABLE dbo.Uf_CustomEntity (Id INT IDENTITY, ...)
  • Register the IDO in the IDOs form with ClassName matching your .NET extension class if applicable
  • Add properties using IDO Properties form, mapping each to the correct table column
  • Test the IDO using the IDO Request Tester utility before binding it to any form
  • Version your IDO metadata export alongside code in source control for migration safety

Common Pitfalls and Deployment Checklist

The most frequent issues in custom IDO development stem from property-column mismatches, missing index definitions on custom tables, and forgetting to propagate IDO changes across SyteLine environments. Always validate your IDO in the development environment using LoadCollection calls with filter strings before deploying to test or production. Use the IDO Runtime Export/Import utility to move IDO definitions between environments, and verify that your extension class assembly targets the correct .NET Framework version for your SyteLine release.

  • Ensure your custom table has a clustered primary key and appropriate indexes for filter columns
  • Verify property data types match SQL column types exactly to avoid silent truncation
  • Export IDO metadata as XML for environment promotion rather than manual re-creation
  • Test with both LoadCollection and UpdateCollection operations before form binding
  • Check the SyteLine Event Log (SLAppServer.log) for runtime IDO errors during testing

Ready to accelerate your SyteLine IDO development? Netray AI agents can generate IDO scaffolding, validate property mappings, and catch configuration errors before deployment. Book a demo.