Developer ToolsFree generatorPDF, Excel, Word exportInfor SyteLineAll Infor SyteLine (CloudSuite Industrial) tools

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.

Generated code
Download:

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.

Was this tool useful?

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.

ArchRay builder
Design the on-prem AI stack for Infor SyteLine: model, GPUs, RAG pipeline, guardrails
See memory, speed and cost as you swap parts, then export the diagram. Free, in your browser.
Open the builder

Keep exploring

Free tools

ERP fixes and how-tos

Guides

Software