SyteLine IDO SOAP Web Service Client Generator
This generator produces a C# console client and a PowerShell script for the Mongoose IDO SOAP web service used by on-premises SyteLine 8, 9 and 10. It covers the three calls most integrations need: get a session token, load rows and call an IDO method.
Fill in
Confirm the .asmx path on your utility server; open it with ?WSDL to check.
1. C# console client (service reference named IDOWebService)
// Add a service reference to http://utilserver/IDORequestService/IDOWebService.asmx?WSDL with namespace IDOWebService.
using System;
using System.Data;
using System.ServiceModel;
class Program
{
static void Main()
{
// Use BasicHttpSecurityMode.Transport when the URL is https.
var binding = new BasicHttpBinding(BasicHttpSecurityMode.None) { MaxReceivedMessageSize = 10485760 };
var client = new IDOWebService.DOWebServiceSoapClient(binding, new EndpointAddress("http://utilserver/IDORequestService/IDOWebService.asmx"));
string password = Environment.GetEnvironmentVariable("SL_PASSWORD");
string token = client.CreateSessionToken("svc_integration", password, "CSI_PROD");
// Session token, IDO, properties, filter, order by, post-query method, record cap
DataSet ds = client.LoadDataSet(token, "SLItems", "Item, Description, UM", "Item LIKE 'PN-%'", "Item", "", -1);
DataTable table = ds.Tables[0];
foreach (DataRow row in table.Rows)
{
foreach (DataColumn col in table.Columns)
{
Console.Write(col.ColumnName + "=" + row[col] + " ");
}
Console.WriteLine();
}
// CallMethod: parameters travel as XML, in method order. ByRef='Y' marks output parameters.
// XML-escape any value that can contain < > & or quotes.
string parms = "<Parameters>"
+ "<Parameter ByRef='N'>PN-48213</Parameter>"
+ "<Parameter ByRef='N'>MAIN</Parameter>"
+ "<Parameter ByRef='Y'/>"
+ "<Parameter ByRef='Y'/>"
+ "</Parameters>";
object rc = client.CallMethod(token, "UETItemChecks", "UETItemReorderCheckSp", ref parms);
Console.WriteLine("Return value: " + rc);
Console.WriteLine("Parameters after call: " + parms);
}
}2. PowerShell equivalent (Windows PowerShell 5.1)
# New-WebServiceProxy exists in Windows PowerShell 5.1, not in PowerShell 7. $svc = New-WebServiceProxy -Uri 'http://utilserver/IDORequestService/IDOWebService.asmx?WSDL' $cred = Get-Credential -UserName 'svc_integration' -Message 'SyteLine password' $token = $svc.CreateSessionToken($cred.UserName, $cred.GetNetworkCredential().Password, 'CSI_PROD') $ds = $svc.LoadDataSet($token, 'SLItems', 'Item, Description, UM', "Item LIKE 'PN-%'", 'Item', '', -1) $ds.Tables[0] | Format-Table -AutoSize $parms = "<Parameters><Parameter ByRef='N'>PN-48213</Parameter><Parameter ByRef='N'>MAIN</Parameter><Parameter ByRef='Y'/><Parameter ByRef='Y'/></Parameters>" $ref = [ref]$parms $rc = $svc.CallMethod($token, 'UETItemChecks', 'UETItemReorderCheckSp', $ref) "Return value: $rc" "Parameters after call: " + $ref.Value
Signatures follow the Mongoose IDO web service documentation: CreateSessionToken(user, password, configuration), LoadDataSet(token, IDO, properties, filter, order by, post-query method, record cap) and CallMethod(token, IDO, method, ref XML parameters). Verify the .asmx path on your server, check parameter names and order against the WSDL, and confirm the client class name Visual Studio generates from it (DOWebServiceSoapClient is typical for the DOWebService class). The default method is the custom example from the companion stored procedure generator; replace it with a real method on your IDO.
Check your SOAP integration
Send the generated client and your SyteLine version; we will confirm the service path, token handling and method parameters.
Optional. The tool and every export work without this. No spam.
How to use it
Point the service URL at the IDO web service on your utility server and open it with ?WSDL in a browser to confirm the path. In Visual Studio add a service reference to that WSDL with the namespace IDOWebService, which generates the DOWebServiceSoapClient class used in the code. Fill in the user, configuration, IDO, properties and filter, and keep the password in an environment variable or a secrets store, never in code. Run the load first with a small record cap, then try the method call against a test configuration.
- Record cap -1 returns 200 rows, 0 returns all rows, a positive number returns that many.
- Filters are SQL-style expressions on IDO properties.
- The post-query method argument is usually an empty string.
What each call does
CreateSessionToken validates the user, password and configuration and returns a token string that every later call takes as its first argument. LoadDataSet runs the IDO's LoadCollection and returns a System.Data.DataSet, so results drop straight into a DataTable, a grid or a CSV writer. CallMethod invokes an IDO method; its parameters are an XML string of Parameter elements in method order, each with ByRef set to Y or N, and the same string comes back filled in with output values, which is why it is passed by ref. SaveDataSet, not generated here, handles inserts, updates and deletes from a DataSet.
Worked example
With the defaults, LoadDataSet returns up to 200 items whose number starts with PN-, printing Item, Description and UM for each. The CallMethod block calls UETItemReorderCheckSp on UETItemChecks with PN-48213 and MAIN; after the call, the third Parameter element holds the quantity short and the fourth holds any message, and the return value is 0 on success. If the method fails, the return value is non-zero and the message parameter explains why, just as it would on a form.
Version notes
The SOAP service is the older integration path. On SyteLine 10 / CSI 10 the IDO REST service is easier to call from modern tools, and cloud tenants go through ION API instead. Session tokens expire, so long-running services should request a new token when a call fails with an authentication error rather than caching one forever. PowerShell 7 removed New-WebServiceProxy; use Windows PowerShell 5.1 or the C# client. Use a dedicated integration user whose groups only allow the IDOs the integration needs.
Frequently Asked Questions
Where is the SyteLine IDO web service?
On-premises it is hosted by the IDO Request Service on the utility server, typically under the IDORequestService virtual directory. Browse to the .asmx path with ?WSDL to confirm it responds; if it does not, check the IIS application and the configuration on that server before debugging your code.
What does record cap -1 mean in LoadDataSet?
Per the Mongoose documentation, -1 retrieves 200 records, 0 retrieves all records and a positive integer retrieves that many. Use -1 or a small number while testing and a filter that limits rows in production, because loading all rows of a large IDO through SOAP is slow and memory heavy.
How are output parameters returned by CallMethod?
The parameter XML is passed by reference. Mark output parameters with ByRef='Y'; after the call, the same XML string contains their values. Parse it with an XML reader and read the Parameter elements in order. The method's own return value comes back as the CallMethod result.
Should I use SOAP or REST for a new integration?
For new work on SyteLine 10 / CSI 10, the IDO REST service is usually simpler, works with any HTTP tool and is the path Infor develops further. SOAP remains fine for existing .NET integrations and for older SyteLine versions where REST is not available.
If you would rather have your team ask SyteLine questions in plain English than maintain SOAP scripts, we can set up a private, read-only assistant on your own servers.
Related Tools
SyteLine Mongoose .NET Client Generator
Generate an external C# program that logs on through the Mongoose .NET client library and loads SyteLine IDO data, with custom load and nested load options.
Developer ToolsSyteLine ION API IDO Request Generator
Turn a .ionapi backend service file into working PowerShell and curl calls that load SyteLine IDO data through ION API, including bookmark paging.
Developer ToolsSyteLine IDO REST Request Generator
Fill in host, configuration, IDO, properties and filter to get ready-to-use REST calls for loading, updating and invoking methods on SyteLine IDOs.
Developer ToolsSyteLine Custom Stored Procedure IDO Method Generator
Build a SyteLine-style stored procedure with typed parameters, @Infobar messaging and a severity return code, then test it and publish it as an IDO method.
More Developer Tools tools
See all- SyteLine SQL Query Generator for Item, Job and Order Tables
- SyteLine SQL Blocking and Long Running Query Script Generator
- SyteLine Custom Table CREATE Script Generator
- SyteLine Mongoose Framework Events Reference
- SyteLine Event Action Types Reference
- SyteLine Event Action Parameter Functions Reference
- SyteLine WinStudio Standard Form Events Reference
- SyteLine Mongoose API Options Reference
- SyteLine SQL User-Defined Data Types Reference
Keep exploring
Free tools
- SyteLine Mongoose .NET Client GeneratorGenerate an external C# program that logs on through the Mongoose .NET client library and loads SyteLine IDO data, with custom load and nested load options.
- SyteLine ION API IDO Request GeneratorTurn a .ionapi backend service file into working PowerShell and curl calls that load SyteLine IDO data through ION API, including bookmark paging.
- SyteLine IDO API Security Hardening ChecklistAccounts, transport, tokens, request hygiene and monitoring checks for exposing the SyteLine IDO request service (REST and SOAP) to integrations and scripts.
ERP fixes and how-tos
- How to Call SyteLine IDOs from an External ApplicationHow the SyteLine IDO SOAP web service works, how to authenticate and call Load, Update, and Invoke from external code, and where it commonly fails.
- Diagnosing and fixing SyteLine session timeout errorsSyteLine session timeouts (client or web) usually trace to IIS/app pool settings, IDO session limits, or load balancer idle timeouts. Here is where each timeout is configured and how to diagnose which one is firing.
- Fixing SyteLine's 'Object reference not set to an instance of an object' errorSyteLine throws 'object reference not set to an instance of an object' when a form or IDO method hits a null value. Here is how to trace it to the field, IDO method or customization that is missing data, with real fixes.
Guides
- SyteLine Web Service Creation and Integration GuideCreate and consume web services in SyteLine. IDO-based REST APIs, SOAP endpoints, authentication, and integration patterns for CloudSuite Industrial.
- SyteLine SOAP Web Services Integration GuideConfigure SOAP web services for Infor SyteLine IDO access. Set up WCF bindings, WSDL endpoints, and secure SOAP communication for legacy system integration.
- SyteLine Client vs Server Script Architecture GuideUnderstand SyteLine client vs server script execution. Form scripts, IDO methods, execution context, and when to use each for optimal performance.