Optimize API

The Optimize API is used to automatically optimize or run MRP on the LiveScenario, or specified scenario, using the system (shared) optimize settings.

Examples in this guide reference code from the APS Web Service Client Sample project with a web service proxy configured. If you are just getting started with the APS Web Services APIs, please see our client sample.

API Function

The Optimize API is used to automatically optimize or run MRP on the LiveScenario or specified scenario using the system (shared) optimize settings.

API Parameters

The Optimize API uses the following 5 parameters:

  • Username (string) - the user's username performing the call
  • Password (string) - the user's related password. An empty string will be used if this parameter is not included in the request.
  • TimeoutDuration (TimeSpan) - the time to wait when trying to connect to Extra Services or getting a data lock. If this parameter is not included in the request, a default value of 30 seconds will be used.
  • ScenarioId (long) - Id of the scenario to Optimize on. The live scenario is chosen by default if this parameter is not provided
  • MRP (bool) - whether to run MRP

API Call

Once the typed Request is created, the API call can be made using the following format:

//Sending a request
ApsWebServiceResponseBase resp = client.Optimize(optimizeRequest);

API Request

This API request inherits from ApsWebScenarioRequest. Check out our KB article on the API Request Base classes to learn more: Basic API Structure

To use the API, you must create a typed Request using the Request Data Contract. The related web client will use this Request to trigger the process.

  • Data Contract
public class OptimizeRequest : ApsWebServiceScenarioRequest
[DataMember(IsRequired = false)]
public bool MRP { get; set; }

      Optimize API Request  Example

      //Create an Optimize request
      APSWebServiceRef.OptimizeRequest optimizeReuqest = new OptimizeRequest() {
      MRP = false,

      //Request Base
      optimizeRequest.UserName = username;
      optimizeRequest.Password = pwd;
      optimizeRequest.TimeoutDuration = TimeSpan.FromMinutes(5);

      //Scenario Request
      optimizeRequest.ScenarioId = long.MinValue;

      API Response

      All API calls return a Response object to help determine the result of the call. Check out our Basic API Structure KB article for more information.

      Response Example

      //Sending a request
      start = DateTime.Now;
      ApsWebServiceResponseBase resp = client.Optimize(optimizeRequest);
      Console.WriteLine($"Response received after '{DateTime.Now.Subtract(start)}'");

      //Display results
      if (!a_response.Exception)
      Trace($"Completed with Zero Errors");
      Trace($"Completed with Errors");

      Related APIs

      When a scenario name or Id is specified, the GetScenarios API is used to validate the input. When a specified scenario does not exist—and the CreateScenarioIfNew is true—the CopyScenarios API creates a new scenario from the LiveScenario.