Infor SyteLine

SyteLine SDK and API Reference Guide for Developers

The SyteLine SDK is the developer's gateway to the Mongoose platform. It provides .NET assemblies, API documentation, and utilities for building extensions, integrations, and custom applications against SyteLine. Despite its importance, the SDK is poorly documented by Infor, leaving developers to reverse-engineer APIs through decompilation and trial and error. This guide serves as a practical reference for the most critical SDK components.

Core SDK Assemblies and Namespaces

The SyteLine SDK is distributed as a set of .NET assemblies installed with the Mongoose application server. The essential assemblies are: Mongoose.IDO.dll containing the IDOExtensionClass base, IDOMethodContext, and event handler interfaces; Mongoose.Core.dll providing session management, configuration access, and utility classes; Mongoose.Forms.dll with form script base classes and UI component APIs; and Mongoose.WebServices.dll for programmatic web service client creation. Key namespaces include Mongoose.IDO (IDO development), Mongoose.IDO.Protocol (request/response serialization), Mongoose.Core.Configuration (application settings), and Mongoose.Core.Session (session and user context). Reference these assemblies in your Visual Studio project from the Mongoose Server bin directory. Use the same .NET framework version as the target SyteLine installation (typically .NET 4.7.2 or .NET 4.8 for SyteLine 10.x).

  • Mongoose.IDO.dll: IDOExtensionClass, IDOMethodContext, event handlers, and IDO protocol types
  • Mongoose.Core.dll: session management, configuration access, logging, and utility classes
  • Mongoose.Forms.dll: form script base classes, UI component APIs, and form interaction helpers
  • Target .NET Framework 4.7.2 or 4.8 matching the SyteLine 10.x Mongoose server runtime version

IDO Runtime API: LoadCollection, UpdateCollection, InvokeMethod

The IDO runtime API is the heart of SyteLine development. Within IDO extensions and event handlers, access it via this.Context.Commands. LoadCollection(idoName, propertyList, filter, orderBy, maxRows) retrieves data as an IDOCollection object with rows and properties. UpdateCollection(idoName, updateCollection) sends inserts, updates, and deletes as a batch. InvokeMethod(idoName, methodName, parameters) calls registered IDO methods. Each operation participates in the ambient TransactionScope. The propertyList parameter is critical for performance—always specify only the properties you need rather than using wildcard. The filter parameter accepts SyteLine filter syntax: "Status = 'R' AND OrderDate >= '2024-01-01'" with property names, not SQL column names. For complex queries, use the IDORequest class directly to build requests with multiple filter conditions, post-query filtering, and linked queries that join across IDOs in a single round-trip.

  • LoadCollection: retrieve data with idoName, propertyList, filter, orderBy, and maxRows parameters
  • UpdateCollection: batch insert/update/delete operations within the ambient transaction scope
  • InvokeMethod: call registered IDO methods with named parameter collections
  • Use IDORequest class for advanced scenarios: linked queries, post-filters, and multi-IDO joins

Web Service Client API and External Integration

For applications outside the Mongoose runtime that need to interact with SyteLine, the SDK provides the IDORequestClient class in the Mongoose.WebServices namespace. Instantiate it with the Mongoose web service URL, call CreateSession() with credentials to obtain a session token, then use the same LoadCollection, UpdateCollection, and InvokeMethod patterns as the server-side API. The client handles serialization, HTTP communication, and session token management. For non-.NET applications, use the raw REST API at /IDORequestService/MGRestService.svc/ with standard HTTP libraries. The REST API accepts JSON payloads structured as: {"IDO": "SL.SLCos", "Method": "LoadCollection", "Properties": "CoNum,CustNum,OrderDate", "Filter": "Status='O'", "MaxRows": 100}. For high-volume scenarios, the REST API supports batch requests that combine multiple operations in a single HTTP call, reducing round-trip overhead. Always implement connection pooling and reuse session tokens across requests rather than creating new sessions per call.

  • Use IDORequestClient class from Mongoose.WebServices for .NET external application integration
  • REST API JSON format: {IDO, Method, Properties, Filter, MaxRows} for LoadCollection requests
  • Implement batch requests for high-volume scenarios to reduce HTTP round-trip overhead
  • Reuse session tokens across requests and implement connection pooling for production integrations

Need SyteLine SDK expertise? Our developers have mastered the Mongoose API through years of enterprise development—connect with our team.