IBM Support

How does one fine-tune a findInventory call?

Question & Answer


Question

How does one fine-tune a findInventory call?

Answer

The findInventory API takes in a set at attributes through the input xml and forwards the same to the solver/ Promising engine. This evaluates all the possible options based on the constraints and conditions applied through the various configurations. This solution only points to a few of the many possible situations (examples) which will help in providing a brief idea of the procedure.
One needs to understand that MaximumRecords is an important attribute in the findInventory input XML. After thorough research and testing, this attribute is set to 5, as this value meets most of the scenarios in use. Therefore, when many options are available, it might not be always possible to choose the best option, as it might not come up in the 5 iterations of the solver. One can increase the value of MaximumRecords to any high value to get the best option. However, doing so will affect the performance of the findInventory API. Therefore, one needs to test with different values comprehensively to decide on the optimum value of MaximumRecords to ensure that findInventory gives the best options without degradation in performance.
For ScheduleOrder, however, this might not be a possible solution, as one cannot adjust the value of MaximumRecords.
In the present versions, 8.x and below, to ensure that the best option comes within the 5 iterations of the solver modify the input appropriately.
Example1: Use infinite Inventory beyond lead-time and unplanned inventory at the same time.
Such a scenario is unnecessary in most of the cases, as one of them is sufficient to give the required functionality. Using both would actually make it difficult for the solver as the options available would be huge and to choose the best within 5 iterations would be a difficult task. To resolve this, choose one of the flags based on use case.
Example 2: When the date range is already known - that is, the dates between which options has to be searched
If one knows the date range, then pass the ReqStartDate and ReqEndDate, so that it cuts down many other options that are outside the date range.
In addition, pass all the mandatory attributes, missing some of them might not throw an exception/error, but passing the mandatory attributes improves the performance and effectiveness of the API. One such important attribute is the LineID and not passing this might affect the performance.

[{"Product":{"code":"SS6PEW","label":"IBM Sterling Order Management"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Component":"Not Applicable","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Historical Number

HTG2424

Document Information

Modified date:
16 June 2018

UID

swg21562693