Infor SyteLine4 min readNetray Engineering Team

How to Create Custom Processes in SyteLine

Custom processes in SyteLine enable automated batch operations that run in the background without user interaction. These processes handle tasks like data synchronization, mass updates, report generation, and integration processing. Built using the SyteLine process framework and IDO method calls, custom processes can be scheduled to run at specific intervals or triggered by business events, providing reliable automation for repetitive operational tasks.

Designing a Custom Process Definition

SyteLine processes are defined through Application Development > Process Definitions, where you configure the process name, description, execution parameters, and the IDO methods to invoke. Each process definition specifies a primary IDO and method that contains the processing logic, along with input parameters that control the process behavior. Design your process to accept configurable parameters such as date ranges, item filters, and processing modes so the same process definition can serve multiple use cases. The process framework handles execution logging, error capture, and status reporting automatically, allowing you to focus on the business logic implementation.

  • Navigate to Application Development > Process Definitions and create a new entry with a unique ProcessID, descriptive name, and category assignment
  • Specify the target IDO and method name that contains the batch processing logic, such as SLItems.RunCustomItemUpdate
  • Define input parameters with names, data types, and default values to make the process configurable without code changes
  • Set the ProcessType to Background for non-interactive execution or Interactive for processes that require user input during operation

Implementing Process Logic in IDO Extension Classes

The core logic for custom processes is implemented in IDO extension class methods decorated with the [IDOMethod] attribute. Your process method receives input parameters, executes the batch operation against the database, and returns status information. Use the LoadCollection method to retrieve the set of records to process, iterate through them applying your business logic, and call UpdateCollection to persist changes. Implement progress reporting by calling the SetProcessProgress method at regular intervals, providing completion percentage and status messages that display in the Process Monitor. Include comprehensive error handling with try-catch blocks to prevent a single record failure from aborting the entire batch.

  • Implement the process method in your IDO extension class with [IDOMethod] attribute, accepting input parameters as method arguments
  • Use LoadCollection with filter expressions to retrieve the target record set, processing records in batches of 100-500 for optimal performance
  • Call SetProcessProgress(percentComplete, statusMessage) at regular intervals to provide real-time progress visibility in Process Monitor
  • Wrap record-level processing in try-catch blocks, logging failures to the process log while continuing with remaining records

Scheduling and Monitoring Custom Processes

Once your custom process is defined and tested, configure its execution schedule through Application Development > Process Scheduler. Set the frequency to run daily, weekly, or at custom intervals using cron-style expressions. The scheduler supports time windows to restrict execution to off-peak hours, preventing batch processing from impacting interactive user performance. Monitor running and completed processes through the Process Monitor form, which displays execution status, progress percentage, start and end times, and any error messages. Configure email notifications for process completion and failure to keep administrators informed of batch operation results.

  • Open Application Development > Process Scheduler and assign your process definition with a schedule frequency: Daily, Weekly, Monthly, or Custom cron expression
  • Configure execution time windows such as 22:00-06:00 to restrict batch processing to off-peak hours and minimize impact on interactive users
  • Monitor execution through Application Development > Process Monitor, viewing real-time progress, execution logs, and error details for active processes
  • Set up email notifications for process completion and failure events by configuring the NotifyOnComplete and NotifyOnError properties in the schedule definition

Frequently Asked Questions

How long can a SyteLine custom process run?

SyteLine custom processes do not have a hard runtime limit, but the default application pool recycle interval in IIS is 29 hours. Long-running processes should be designed to handle interruptions gracefully by implementing checkpointing and restart logic. Most well-designed batch processes complete within 1-4 hours. If your process regularly exceeds 4 hours, consider breaking it into smaller incremental runs or optimizing the database queries to reduce processing time by 40-60%.

Can custom processes run in parallel in SyteLine?

Yes, SyteLine supports parallel process execution, but you must design your processes to handle concurrent access safely. Avoid having multiple processes modify the same records simultaneously to prevent deadlocks and data corruption. The Process Scheduler allows configuring the maximum concurrent instances per process definition, typically set to 1 for data modification processes and 2-4 for read-only reporting processes. Use database-level locking hints or application-level semaphores for critical sections.

How do I troubleshoot a failed custom process?

Start by opening Process Monitor and reviewing the error log for the failed execution, which shows the error message, stack trace, and the record being processed when the failure occurred. Check the SyteLine application event log for additional details. Common failures include database deadlocks (30% of cases), network timeouts to external systems (25%), and data validation errors (20%). Enable verbose IDO tracing temporarily to capture detailed execution flow, but remember to disable it after troubleshooting to avoid 10x log volume increases.

Key Takeaways

  • 1Designing a Custom Process Definition: SyteLine processes are defined through Application Development > Process Definitions, where you configure the process name, description, execution parameters, and the IDO methods to invoke. Each process definition specifies a primary IDO and method that contains the processing logic, along with input parameters that control the process behavior.
  • 2Implementing Process Logic in IDO Extension Classes: The core logic for custom processes is implemented in IDO extension class methods decorated with the [IDOMethod] attribute. Your process method receives input parameters, executes the batch operation against the database, and returns status information.
  • 3Scheduling and Monitoring Custom Processes: Once your custom process is defined and tested, configure its execution schedule through Application Development > Process Scheduler. Set the frequency to run daily, weekly, or at custom intervals using cron-style expressions.

Need custom batch processing solutions for SyteLine? Netray builds reliable, high-performance custom processes that automate your most time-consuming operations.