SyteLine IDO Custom Property and Method Creation
Custom IDO properties and methods are the building blocks of SyteLine extensions. Properties expose data from custom columns or calculated values through the IDO layer, while methods provide callable business logic accessible from forms, web services, and integrations. Mastering their creation is essential for any SyteLine developer extending the platform beyond its base capabilities.
Custom IDO Properties: Types and Mapping
IDO properties in SyteLine are defined through the IDO Properties form (Menu Path: Application > IDO > IDO Properties). There are three property types: mapped properties that bind to a SQL view column, expression properties that compute values from other properties using SQL-like expressions, and unmapped properties that exist only in memory for temporary storage during form interactions. To add a custom mapped property, first add the column to the underlying SQL view (or create a new view and associate it via the IDO Collection form), then create the property record specifying the IDO name, property name, SQL view column, data type, and read/write permissions. Expression properties use the SyteLine expression engine with syntax like 'CASE WHEN [Status] = ''R'' THEN ''Released'' ELSE ''Pending'' END'. For user-defined fields, SyteLine provides the Uf01 through Uf10 columns on most standard tables, which are already mapped to IDO properties and avoid the need for custom view modifications.
- Define properties in Application > IDO > IDO Properties with type: mapped, expression, or unmapped
- Mapped properties require corresponding columns in the IDO's underlying SQL view
- Expression properties use SQL syntax with property references in square brackets: [PropertyName]
- Use built-in Uf01-Uf10 user-defined fields when possible to avoid custom view modifications
Custom IDO Methods: Stored Procedure and .NET Approaches
Custom IDO methods are registered through the IDO Methods form (Menu Path: Application > IDO > IDO Methods). Each method specifies the IDO it belongs to, the method name, the method type (stored procedure or .NET assembly), and the parameter definitions. Stored procedure methods are simpler to create: write a T-SQL procedure that follows the SyteLine naming convention (e.g., MySp_CustomValidation), register it in IDO Methods with parameter names matching the procedure's parameter names exactly, and Mongoose will handle the invocation and result mapping. For .NET methods, create an IDO extension class with a method decorated by [IDOMethod], where the method accepts an IDOMethodContext parameter. The context provides access to input parameters via context.GetParameter<T>("paramName"), the current session via context.SessionInfo, and output via context.SetOutputParameter(). Choose stored procedures for data-intensive operations and .NET methods for logic requiring external system calls, complex algorithms, or access to the Mongoose runtime APIs.
- Register methods in Application > IDO > IDO Methods with method type SP or .NET assembly
- Stored procedure parameter names must exactly match the names defined in the IDO Methods form
- NET methods use IDOMethodContext for parameter access: context.GetParameter<T>("paramName")
- Choose SP methods for data operations and .NET methods for external integrations and complex logic
Testing and Validation of Custom IDO Components
Testing custom IDO properties and methods requires a layered approach. First, validate property mappings by using the IDO Request Tester utility (available in the Mongoose Admin Console) to execute LoadCollection requests against your IDO with the custom property in the property list—verify the returned values match expected data. For methods, use the IDO Request Tester to execute InvokeMethod calls with test parameters and examine both the return value and any output parameters. Test edge cases: null inputs, boundary values, concurrent invocations, and maximum payload sizes. For automated testing, write integration tests that call your IDO methods through the Mongoose web service API (IDORequestService) and assert on the response. Performance test methods under realistic load by simulating concurrent calls using a load testing tool against the web service endpoint. Monitor the Mongoose application log and SQL Profiler during testing to identify slow queries, excessive memory allocation, or connection pool issues caused by your custom code.
- Use the IDO Request Tester in Mongoose Admin Console for interactive property and method testing
- Test edge cases including null inputs, boundary values, and concurrent invocation scenarios
- Write automated integration tests calling methods through the IDORequestService web service
- Monitor Mongoose logs and SQL Profiler during load tests to identify performance bottlenecks
Extending SyteLine with custom IDOs? Our developers create robust, tested IDO components for enterprise manufacturers—reach out for expert guidance.
Related Resources
SyteLine Mongoose IDO Development Guide
Master SyteLine IDO development with Mongoose. IDO architecture, custom methods, stored procedures, and IDL best practices for CloudSuite Industrial.
Infor SyteLineSyteLine .NET Customization Patterns and Best Practices
Master SyteLine .NET customization patterns. IDO extensions, form scripts, assembly deployment, and upgrade-safe development practices for developers.
Infor SyteLineSyteLine Client vs Server Script Architecture Guide
Understand SyteLine client vs server script execution. Form scripts, IDO methods, execution context, and when to use each for optimal performance.