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
Was this topic helpful?
Document Information
Modified date:
16 June 2018
UID
swg21562693