Skip to content

Scheduling Optimization Configuration

To integrate IFS Cloud with IFS Planning & Scheduling Optimization (PSO) the broadcast settings, PSO settings, and authentication settings are required to be set. It's possible to have multiple configurations, e.g. to allow communicating with different PSO accounts from the same IFS Cloud instance.

This page only contains the configurations for IFS Cloud to connect with a PSO account. For the full integration to work, the relevant PSO account must also be configured to connect back to the IFS Cloud instance. The IFS Optimization Framework Configuration Assistant can configure both IFS Cloud and the relevant PSO account from a single place.

To use IFS Optimization Framework Configuration Assistant, please use Add New Configuration / Change Configuration commands on this page.

Read more about Scheduling Optimization.

Database Process Settings

The Database Process Settings are shared by all configurations.

Start IntervalSpecifies how frequently the background processes should run to transfer data from datasets that support immediate change transfer to PSO. The default interval is every 10 seconds.
ProcessesDefines the number of background processes used for transferring data changes from datasets that support immediate change transfer to PSO. This functionality ensures real-time synchronization of data changes between IFS Cloud and PSO.

The default value for this setting is 1, meaning a single background process handles all immediate data transfers unless otherwise configured.

Initialization and Configuration

  • Database processes are automatically initialized when the Enabled flag is set to 'Yes'.
  • The number of database processes can be increased dynamically (i.e., while the system is running), allowing for real-time scalability based on workload demands.
  • However, reducing the number of processes is only permitted when the target processes are idle (i.e., not currently processing any datasets). Attempting to reduce the number of active processes during ongoing transfers may result in configuration errors.

Behavior and Assignment

  • Database processes are dynamic and not statically bound to specific datasets.
  • Any process can handle data changes for any enabled dataset, but a dataset is always processed by only one process at a time.
  • This ensures:
    • Sequential processing per dataset.
    • Prevention of data conflicts or out-of-sync issues due to concurrent updates.

Limits and Recommendations

  • Maximum number of database processes: 99
  • Performance recommendation: For optimal performance, configure the number of database processes to match the number of enabled datasets, or slightly fewer if the number of datasets is large. This balances throughput with system resource utilization.
EnabledEnable or disable the background processes responsible for transferring data changes from datasets that support immediate change transfer to PSO. This functionality ensures real-time synchronization of data changes between IFS Cloud and PSO.

Batch Queue Settings

The Batch Queue Settings are shared by all configurations.

Parallel Batch QueuesDefines the number of additional batch queues configured for the parallel processing of background jobs per dataset in Scheduling Optimization.

By default, no additional batch queues are configured (i.e., the setting is empty), and all background jobs are handled sequentially through a single queue.

Initialization and Configuration

When a value is specified for the number of parallel batch queues, the system automatically initializes the corresponding number of queues. While it is technically possible to adjust this number dynamically (increase or decrease), it is strongly recommended to make such changes only during periods of minimal or no dataset activity. This is because the re-initialization process may reassign datasets to different batch queues, potentially impacting performance or job execution consistency.

Behavior and Assignment

  • Each batch queue services a predefined subset of datasets.
  • Upon initialization—or when new datasets are enabled—the datasets are automatically assigned to the available batch queues.
  • The assignment follows an alphabetical, round-robin approach:
    • Datasets are assigned one by one to each batch queue in alphabetical order.
    • If the number of datasets exceeds the number of queues, the assignment wraps around and continues from the first queue.
This approach ensures a balanced distribution of datasets across all configured queues.

Limits and Recommendations

  • Maximum number of Parallel Batch Queues: 50
  • Performance recommendation: For optimal performance, it is recommended to set the number of parallel batch queues equal to the number of enabled datasets. This ensures that each dataset is processed by a dedicated queue, maximizing parallelization and minimizing job contention.

Log Settings

The Log Settings are shared by all configurations.

Log LevelControls the level of logging for IFS Optimization Framework. See Scheduling Optimization Logs for more information regarding the log levels.

Configurations

Configuration IDA unique identifier for the configuration.
PSO Account IDThe Account ID (Organization ID) in the PSO installation that this IFS Cloud instance is configured to. The default PSO account is 'Default'.

The substitution variable #IFS_REALM_NAME# can be used to automatically retrieve the value from the corresponding System Parameter 'Namespace', converted to upper case.
Synchronize Users and PermissionsSynchronize relevant user accounts and permissions in IFS Cloud with PSO. This will activate the corresponding Users dataset for this configuration in Scheduling Optimization Datasets. Read more about the Users Integration.
PSO User Permission SetPermission set for PSO Workbench users to be synchronized with the Users dataset for this configuration. Read more about the Users Integration.
PSO Administrator Permission SetPermission set for PSO Workbench Administrator users to be synchronized with the Users dataset for this configuration. Read more about the Users Integration.
Client IDClient ID of a service account which has the access to SchedulingServices projection granted. This client account will be used by the Scheduling Broadcast Manager in PSO to communicate with IFS Cloud, and also by IFS Cloud to communicate with the PSO RESTful Gateway.

Client ID can be created manually from the IAM Client page or by using the IFS Optimization Framework Configuration Assistant.

NOTE: This client must be a non-public client with a service account user attached to it. The connected service account user must have FNDSCH_WEBSERVICE permission set granted.

NOTE: The service account user for this client requires to be added as a user in the relevant PSO account and given access to the group IntegrationUsers (for PSO versions below 6.15 this group does not exist and instead access is required to the permission ViewAllDatasets).

NOTE: The IFS Optimization Framework Configuration Assistant will automatically create a service account user with the required grants and also add the user to the PSO account.
Client SecretClient secret of the client used in Client ID field. This value can be obtained from IAM Clients page in IFS Cloud.

A Client ID can be created from IAM Client page or using IFS Optimization Framework Configuration Assistant. When Client is manually created its secret can be found in IAM Client page. If the configuration is done using IFS Optimization Framework Configuration Assistant this value will be set automatically.
PSO Profile IDThe Profile ID used in PSO. The profile can be used to define a specific set of parameters in PSO to be used together with specific Scheduling models.

The Profile ID is defined both on dataset level and configuration level. If the Profile ID is left blank on the dataset it will use the Profile ID from the configuration. Read more about Scheduling Optimization Datasets.

The Profile ID is also passed in the Users integration as some parameters (e.g. for the PSO Workbench) are set for the user, and not for the specific dataset. The same logic as above is applied when retrieving the Profile ID to use here. Read more about the Users Integration.
PSO Client IDThe IAM Client ID that is used when PSO authenticate with IFS Cloud. This value will be set to the parameter OpenIdClientId in PSO when using the configuration assistant.

This client can be created from IAM Client page or using IFS Optimization Framework Configuration Assistant.

NOTE: This client must be a public client, with the URL of the PSO server added to its Redirect Uri list in the format:
https://<pso hostname>/*

NOTE: If created using the assistant, it will automatically add the URL of PSO server into the Redirect Uri list.
PSO Workbench URLThe URL for launching the PSO Workbench.

The following configurations depend on whether PSO is installed in the same Kubernetes namespace as IFS Cloud** or if PSO is installed outside the Kubernetes namespace of IFS Cloud.

&ast;&ast; NOTE: Installing PSO in the same Kubernetes namespace as IFS Cloud is not supported currently.

PSO Installed in the same Kubernetes namespace as IFS Cloud**PSO Installed outside the Kubernetes namespace of IFS Cloud
PSO RESTful Gateway URLThe RESTful Gateway URL of the PSO installation.http://ifs-pso-srgThe RESTful Gateway URL of the PSO installation.

Examples:-

PSO installed in Kubernetes:-
https://<pso hostname>/pso/gateway
This is the default value when setting up the initial 'DEFAULT' configuration. When setting up additional configurations the default value will be fetched from the 'DEFAULT' configuration.

PSO installed locally or in Azure VM:-
https://<pso hostname>/IFSSchedulingRESTfulGateway

NOTE: The <pso hostname> place holder needs to be exchanged with the actual hostname. The path after the domain may depend on the setting used when installing PSO.
IFS Cloud Callback URLThe URL of the server that hosts the SchedulingServices projection. Application will use it to infer the URL of the projection.

NOTE: Saving a new value for this field will also update Authentication Token URL field with a new autogenerated value. It should be changed if the autogenerated value is not valid for the specific installation.
http://ifsapp-odata:8080The URL for accessing the IFS Cloud server from the PSO server.

In most cases this will be the URL defined in System Parameter 'System Url' or 'Secondary Url (external proxy URL)', depending on where the PSO server is located in the network relative to IFS Cloud.

The substitution variables #SYSTEM_URL# and #SECONDARY_URL# can be used to automatically retrieve the value from the corresponding System Parameter.
IFS Cloud Callback URL ThumbprintThe certificate thumbprint for the IFS Cloud Callback URL. The parameter is optional but it may be required if using a non-trusted certificate.

This value will be sent in the Broadcast Parameter url_cert_thumbprint to be used when PSO is returning data back to IFS Cloud.

See section on Certificate Thumbprints in the Administration Guide in the PSO documentation for more information.
Authentication Token URLThe URL of the token endpoint for validating client credentials and obtaining authentication tokens.

NOTE: Value for this field will be automatically set when saving a new value for IFS Cloud Callback URL field. Manual change is not required unless the autogenerated value is not valid for the specific installation.
http://ifsapp-proxy/auth/realms/<security realm>/protocol/openid-connect/token

The <security realm> placeholder should be replaced with the correct security realm of the installation.
<ifs cloud callback url>/auth/realms/<security realm>/protocol/openid-connect/token

In most cases <ifs cloud callback url> will be the URL defined in System Parameter 'System Url' or 'Secondary Url (external proxy URL)', depending on where the PSO server is located in the network relative to IFS Cloud.

The <security realm> placeholder should be replaced with the correct security realm of the installation.
Authentication Token URL ThumbprintThe certificate thumbprint for the Authentication Token URL. The parameter is optional but it may be required if using a non-trusted certificate.

This value will be sent in the Broadcast Parameter auth_token_url_cert_thumbprint to be used when PSO is returning data back to IFS Cloud. It will also be set to the parameter OpenIdAuthorityThumbprint in PSO when using the configuration assistant.

See section on Certificate Thumbprints in the Administration Guide in the PSO documentation for more information.

Activities in Scheduling Optimization Configuration

Header

Detail

Initialize Parallel Batch Queues

Initializes additional batch queues to be used for processing Scheduling Optimization Datasets in parallel. The number of parallel batch queues are defined in the Batch Queue Settings section.

Add New Configuration

Connect a PSO account to the IFS Cloud instance with a new Configuration ID using IFS Optimization Framework Configuration Assistant.

Change Configuration

Connect a PSO account to the IFS Cloud instance using an existing Configuration ID using IFS Optimization Framework Configuration Assistant. This action is allowed only when the PSO account that is currently specified in the configuration is not connected to an IFS Cloud instance.

Disconnect Configuration

Disconnect the currently connected PSO account from the IFS Cloud instance. After disconnecting it can be re-configured using the Change Configuration command.

Test Connection

Test if the connection to the configured PSO account is working.

PSO Workbench

This command will open the PSO Workbench in a separate window/tab based on the configured PSO Workbench URL and PSO Account ID.