IBM Sterling OMS Interview Questions

By | 07/03/2017

IBM Sterling OMS Interview Questions : Basic Level

In this post we collected Sterling OMS interview questions from different sources and consolidated for people who preparing for Sterling OMS interview. You might have good experience in Sterling OMS but when it comes to interview you should know exact terminology well. Hope these question helps.

Here is few commonly asked IBM Sterling Order Management interview questions.

  1. What is difference between schedule and release transactions ?
  2. Have you used Defaulting Component in OMS ? How and when it will be useful ?
  3. How inventory get Sync in your project ?
  4. What is the use of EOF during inventory Sync ?
  5. How Item Master loaded into OMS ?
  6. How communication happens with OMS, WMS and Websphere ?
  7. In your project does OMS maintains the inventory ?
  8. What are all the different Order Monitor Process used in your project ?
  9. Different Order types you had worked with ?
  10. Can you please talk about Sales Order pipeline and various status involved ?
  11. Can you please talk about Return Order pipeline and various status involved ?
  12. How payment process handled in return order process ?
  13. Sterling Agent and Integration server architecture ?
  14. How to write custom agent server? What are all the different way to implement ?
  15. How to start Integration Server?
  16. How Agent Server works?
    • When same agent server started 2 times what will happen ?
    • What is trigger message?
    • Agent Server with multi-thread? Which method takes care of running in thread getJobs() or executeJobs()
  17. vs
  18. How to add new status and modify the pipeline with new status?
  19. How task_q based transactions works?
  20. Reservation API ?
  21. What is different between custom table and hang-off table ?
  22. What process followed to create custom table in OMS ?
  23. Can you talk about payment process implemented in your project ?
  24. What is difference between GetOrderDetails vs GetOrderList API ?
  25. How RTAM implemented in your project (Real Time Inventory Monitor) ?
  26. How tracking information get updates from WMS to OMS ?
  27. Difference between advance exchange order vs exchange order ?
  28. How to create custom order number instead of YNumber in OMS ?
  29. How to apply custom order number creation only for Sales order ?
  30. Order Monitor how integrated with external monitor system ?
  31. Payment Processing Why not used in your application ?
  32. Association /Competitive Association /Cross Sell/Up Sell /Alternative
  33. Same item available in different organization with different item id ? How you allow user to search ?
  34. How and when orders given to external carrier ?
  35. How external carrier can update the order status ?
  36. What are all the modules involved/worked in OMS ?
  37. Build and deploying process ?
  38. Process for adding custom/external jar into configuration related files ?
  39. How to access newly added column from database ?
  40. How to implement dynamic condition in OMS ?
  41. How to create custom transactions in OMS ?
  42. Hub rule and what is the use of HUB rule ?
  43. Can you talk about CDT (Configuration Deployment Tool) ?
  44. Item Based Allocation (IBA) ?
  45. Sourcing
    1. How sourcing configuration performed in your project ?
    2. Smart Sourcing ?
    3.  Landed Cost ?
  46. Purge Process
    1. Any Custom Purge implemented in your project ?
    2. Which Criteria Order will be ready for Purge process ?
  47. How does reprocess configured and works ?
  48. Delivery services, Provided services and Special services ?
  49. How to override values using file ?
  50. When Composite Service should be used ? What is the advantage of using Composite Service ?

Basic Java interview questions

  1. You have order with 300 lines how to find the unique node name along with sum of order qty using Java? Which Data Structure can be used ?
             <OrderLine Node=”Node1″ Quantity=”10″ />
             <OrderLine Node=”Node1″ Quantity=”20″ />
             <OrderLine Node=”Node2″ Quantity=”10″ />
          Need to print Node1=30 and Node2=10
         Answer : HashMap<String,Integer>
2. How to get only the unique node names ?
<OrderLine Node=”Node1″ Quantity=”10″ />
<OrderLine Node=”Node1″ Quantity=”20″ />
<OrderLine Node=”Node2″ Quantity=”10″ />
Need to print Node1 and Node 2
Answer : Set<String>
Emp ID (PK) Employee Name Manager ID
1 James 2
2 Steve
3 Mark 2
Query to print Employee name and manager name
Answer :
insert into emp values (‘1′,’James’,’2′);
insert into emp values (‘2′,’Steve’,”);
insert into emp values (‘3′,’Mark’,’2′);
select a.emp_name as emp_name,b.emp_name as manager_name from emp a, emp b
a.MANGER_ID = b.emp_id
a.MANGER_ID is not null;
James Steve
Mark Steve
General Questions
1. Any experience on SOAP ?
2. Any experience on REST web services ?
3. How about JSP and servlets ?
4. Scope variable in JSP page ?
If you have more question or know answers to question please comment on this page. This will help people who are preparing for Sterling Order management interview questions.
You can also read

95 thoughts on “IBM Sterling OMS Interview Questions

      1. Balu

        Can you please add answers as it will help. Thank you .

          1. Harsha

            Where can i get all answers to above interview questions?

  1. Aman

    when answer will be posted for this.. Please Post as soon as possible so that we can learn…

    1. Active Kite Admin


      You can give each question answer in separate comment. We will add more information each question using reply option. If you don’t know answer to any question let us know. we will post answer.

      We are in the processing preparing but takes lot of time. Thanks lot for all your support & effort. Keep going.

      Active Kite

  2. Aman

    1 .What is difference between schedule and release transactions ?
    Schedule is the process that determines if a node or nodes have sufficient inventory or capacity to fulfill an order or service request. Release is the process of sending the demand quantiy to nodes for fulfillment against the order line.
    2.Have you used Defaulting Component in OMS ? How and when it will be useful ?
    Defaulting Component
    This component applies defaulting based on configured properties and invokes a class to apply additional overrides. It can also be used to localize data in the XML.
    The input to this component is an XML and the output is the same XML with the defaults applied. The properties of this component define the XML attributes to which the defaults are applied. The attributes themselves are defined through the notation used in other service components.
    For example, in the createOrder() API assume the unit of measure on the element in the node needs to be defaulted. The component property is defined as:
    Default Value = “EACH”
    Overrride = Y
    If the input XML is:

    A UnitOfMeasure attribute is added with a value of EACH to the Item element. The override property indicates if the attribute in the input XML needs to be overridden irrespective of the existence of the attribute.
    The configuration properties for the defaulting component defined in the following table are optional.
    Property Description
    General Tab
    Defaulting Template Enter the path for the defaulting template. This template consists of a set of attributes and their default values. For example:

    Note that the attribute path is an XPath variable.

    1. Active Kite Admin

      Additional Information
      1 .What is difference between schedule and release transactions ?
      Schedule – soft allocation of inventory
      Release – hard allocation of inventory
      Using Item Based allocation (IBA) soft allocated inventory can be assigned to different order request.

      1. Active Kite Admin

        Additional Information
        2.Have you used Defaulting Component in OMS ? How and when it will be useful ?
        When this Defaulting Component useful ?
        To fix some of the production issue (by defaulting some values based on condition match) quickly and with out code change/deployment/outage.

  3. Aman

    What is the use of EOF during inventory Sync ?

    When an EOF message is received by the Integration Server, the server first checks if there are any reprocessable messages for this service with the same YantraMessageGroupID. If there are any pending error messages to be reprocessed, then the EOF message is marked as a reprocessable error message and inserted into the YFS_REPROCESS_ERROR table.

    1. Active Kite Admin

      Additional information :

      When EOF message received ? Will get applied directly ?
      No, record get stored into PLT_EOF_STATUS table after N minutes (Default 300 seconds; 5 minutes) this message removed and inventory updated into Supply table.

      How much time takes record to be processed ?
      300 seconds; 5 min; Can override using customer override property

      1. lpsarathy76

        The Inventory first inserted into YFS_INVENTORY_SUPPLY_TEMP table and then the “syncLoadedInventory” process compares the Inventory between YFS_INVENTORY_SUPPLY_TEMP and YFS_INVENTORY_SUPPLY table. This process also takes into consideration records in YFS_INVENTORY_SUPPLY_ADDNL. The difference is updated into YFS_INVENTORY_SUPPLY table.

  4. Aman

    How inventory get Sync in your project ?

    In our Project We received file with the Name of Innnnnyyyymmdd.INV On FTP server

    Below are details:-
    the file name starts with the capital letter I
    followed by the supplier number as provided by Client
    padded out with leading zeros. nnnnn
    followed by a datestamp in the format yyyymmdd
    followed by the file name extension .INV

    Then This will become YantraMessageGroupID for particular set of Inventory Update Innnnnyyyymmdd,
    Now The loadInventoryMismatch API is used for inserting inventory supply information into the YFS_INVENTORY_SUPPLY_TEMP table to be processed by the syncLoadedInventory API during the inventory synchronization process.
    Note: if the same inventory supply already exists for the same YantraMessageGroupID in the YFS_INVENTORY_SUPPLY_TEMP table, it will not be inserted.

    After that The syncLoadedInventory API is used for comparing and applying differences between the inventory supply information in the YFS_INVENTORY_SUPPLY_TEMP table (loaded by the loadInventoryMismatch API) and the inventory supply kept within the system, which stores in the YFS_INVENTORY_SUPPLY table. If there are any records in the YFS_INVENTORY_SUPPLY_ADDNL table with the processing node, the API will consolidate them into the YFS_INVENTORY_SUPPLY table before retrieving and applying differences. Inventory differences can be automatically applied and inventory supplies in the YFS_INVENTORY_SUPPLY table will be adjusted based upon the differences.
    The ON_INV_MISMATCH event will be raised to publish the inventory differences for each item. During the synchronization process, unsuccessful inventory updates will be collected as unprocessed differences. Lastly, the ON_INV_SYNC_SUCCESS will be raised at the end of the synchronization process and publish any unprocessed differences if any.

    Now If you want to check the activity of updated Inventory and order inventory then you can check in yfs_inventory_audit Table using below query for particular item and date.

    select * from yfs_inventory_audit where inventory_audit_key like ‘20170805%’ and ITEM=’8295843′;

    Thanks Please correct me and add somethings if i have missed.

    1. admin Post author

      Hi Aman,

      Couple more points.

      Scenario 1:
      a. Lets assume Item_A had quantity of 5 for Node1
      b. XML message received with Item_A with Quantity as 5 for Node1
      c. loadInventoryMismatch api called

      What is expected here ?
      Option 1: No record created in YFS_INVENTORY_SUPPLY_TEMP
      Option 2: Record inserted into YFS_INVENTORY_SUPPLY_TEMP
      Option 3: Exception

      Answer : Option 2, record gets insert into supply temp table. But when syncLoadedInventory called no inventory mis-match found. So inventory not added.

      1. admin Post author

        You should understand how/when syncLoadedInventory api called using EOF.
        next you should understand about data purge for supply temp table.

        Soon will have post covering all these.

          1. admin Post author

            Yes will share the post soon on Load and Sync

      2. Vamshi

        Can we use adjustInventory API for syncing the inventory instead of calling multiple apis ?

        1. admin Post author

          adjustInventory API can be used to update near real time inventory update. For example when one item sold in one store. So we can use adjustInventory API to update this information into OMS. LoadSync process is for full store inventory update.

          Usually this process if faster than adjustInventory. Hence to load full store inventory we need to go with LoadSync process.

          Hope this helps !!!

      3. Vamshi

        Can we use adjustInventory API instead of calling multiple apis for syncing inventory ?

        1. admin Post author

          adjustInventory API can be used to update near real time inventory update. For example when one item sold in one store. So we can use adjustInventory API to update this information into OMS. LoadSync process is for full store inventory update.

          Usually this process if faster than adjustInventory. Hence to load full store inventory we need to go with LoadSync process.

          Hope this helps !!!

        2. lpsarathy76

          In simple terms, adjustInventory API used to update the delta changes and loadInventoryMismatch & syncLoadedInventory API calls are used for Full Sync.

          As we have 3 levels of Inventory sync in OMS :
          (a) EventBased
          (b) ActivityBased
          (c) FullInventory
          For (a) & (b), we can used adjustInventory API and for FullSync, we can use the above 2 API as it is timetaking and daily sync process.

          Hope this helps.

    1. admin Post author


      Basically this question related to how manageItem API been called using Integration Agent Server. Some system will be holding
      SKU (master item details for company). So any new item added or modified notification should be shared with OMS. So that new Item can be loaded into OMS.

      In manangeItem api Organization CD/ Item ID/ UOM is unique identifier.
      Action attribute used to specify operation create/modify/delete item.
      Status attribute has 2 values published (3000), Held (2000)

      Hope this helps !!!

      1. Aman

        Any alternet Api for syncLoadedInventory that increase performance?

        1. ActiveKite-Admin

          adjustInventory API also helps to achieve the same but not effective way of doing. Some other people may have reason why we can not use adjustInventory API

  5. Aman

    Sterling std behaviour is to look up the first and then look up its internal prop files like etc
    it is a handle for the customer (the retail organization using Sterling OMS) to override the default props and not to disturb the base properties files of stelring
    This file is not delivered with the product; you must create it the first time you have a need for it. \

    Please add if i have missed other important info.

    1. admin Post author

      Yes Abhi. We will work on it. First we are trying to cover basic before going to advanced topics.

  6. test

    Can you explain this question. When Composite Service should be used ? What is the advantage of using Composite Service ?

    1. admin Post author

      50) Composite Service

      This component available part of SDF (Service Definition Framework). This component is useful when you have one input xml which needs to passed to two or more services.

      Input XML – Service 1 – Service 2 : In this example if composite not used output of Service 1 will be passed as input to Service 2

      if we need same input XML to be passed to Service 1 and Service 2 we need to use composite service. if service 1 throws exception service 2 will not be executed. if service 2 fails and throw exception entire transaction will be rollback.Meaning both service gets executed and commit occurs in database (So do all or nothing)

      If any of service does drop message to Queue, this can not be rollback. This component execute the services in same order which is displayed in the configuration.

      Hope this helps !!!

      1. Vikranth

        hi admin,

        What would be the output xml from the composite service.?
        whether it will be the output of service 1 or service 2?

        1. admin Post author


          Composite service will have output XML will be same as input XML. You dont have response of service1 or service2. Hope this helps !!! Thanks for asking. Happy Learning

  7. Suneetha

    what is the difference between cancel order line using cancelOrder API and cancel order line using changeOrder API by passing Action=”Cancel” at order line level?

    1. ravi

      cancelOrder Api is not in sterling and we are doing cancel using ChangeOrder API by passing Action=”Cancel” at order line level.

      1. Priyank

        cancelOrder API is not in sterling. Can you please explain this because I can see cancelOrder API in java docs.
        Also, let;s say if an order has an orderline with 4 quantity and I want to cancel 3 quantity using cancelOrder API. Is this achievable ? Or do we have to use changeOrder API for partial cancellation ?

        1. lpsarathy76

          Your scenario is achievable using cancelOrder API. You need to pass “3” as a value for the field “QuantityToCancel” under the OrdeLine element.

          Using changeOrder API is for simplicity per se. You can use the same API for Line / partial qty or even modify any other attributes. I dont see any other major reason beyond this.


    1. admin Post author


      Yes we will work on alerts and keep you posted. Please share comments on each post. So that we can improve our self. Keep learning.

  8. sandeep

    Hi ActiveKite team,

    Great work. Please include some information on sourcing and scheduling as well.


    1. admin Post author

      Thanks for your question. Yes we will include sourcing and scheduling soon. But these topic needs lot of information and configurations; hence need time.

  9. Vikranth

    9. Different Order types you had worked with ?
    These are the different types of orders i have worked on in my project,

    1. Web order – Orders received from website.
    2. Phone order – orders received from Call Center application.
    3. Store order – These are Direct to Customer orders received from store.

    1. admin Post author

      Web/Phone/Store orders comes under Sales Order. Different Order Type are Sales Order (0001), Return Order, Purchase Order, Transfer Order. Keep Learning !!

      1. lpsarathy76

        Also, the Web Order , Phone Order , Store Orders are called Ordering Channels. This answer is apt if you are asked what are the Channels used in your implementation.


    2. Indra

      We can include: a) Purchase Order and c) Sales Order too

  10. Jyothi

    What is trigger message?
    Agent can be set to be triggered automatically. To accomplish this, you need to configure the Schedule Trigger Message property in the agent’s runtime properties. When you select Schedule Trigger Message, a corresponding text box is enabled in which you need to enter an interval value in minutes. When configured, the agent will be triggered automatically.

    1. Rajhesh

      Just an additional info.

      If the agent ( WaveAgents) needs to be triggered at different time intervals, cron job should be set specifying the time. For such agents, “Schedule Trigger Message” txt box is usually not enabled.

      1. lpsarathy76

        What I have seen in large 3PL implementation is different Wave is defined based on Delivery Methods like SameDay, NextDay Air, International etc.

    1. admin Post author

      Hi thanks for the query. First we working on covering basic topic. Surely will cover this topic soon. Thanks again. Keep sharing and learning

    1. admin Post author

      IBA – Item Based Allocation

      Lets assume simple example :
      IPhone 10 getting released on 01-Dec-2018. Each store can take pre-order for 100 Qty from 01-Nov-2018
      On 01-Nov-2018 Store X received 50 pre-order in total
      On 02-Nov-2018 Store X received 40 pre-order in total
      On 03-Nov-2018 Store X received 10 pre-order in total

      So all these pre-orders taken for 100 Qty and all these orders been scheduled and inventory allocated. Now one high value customer comes and orders 1 Qty.
      IBA allows to take this order and remove 1 Qty from scheduled inventory and allocate the same inventory high value (VIP) customer. Basically this override the basic eCommerce rule first come first serve.

      Schedule : Soft allocation of inventory (Any time inventory can be reallocated to some one)
      Release : Hard allocation of inventory (Inventory can not reallocated, order given to warehouse management system)

      Hope this helps !!!

      1. lpsarathy76

        I would like to add few points :

        Scenario : You have an on-hand qty 5 and On-order 5 Qty. Assume the on-order is expected to receive in 7 days from today. Customer A places the Order for 5 Qty and expected the shipment in 10 days from today. OMS schedules the Customer A’s order against the On-hand Qty. Customer B places an order for 3 Qty and he/she needs the item within 4 days.

        As the On-hand is already allocated for customer A, Customer B has to wait for 7 days for the stock to come, though he wants the item in 4 days. The IBA re-allocates the inventory to Customer B from the On-hand stock and schedule the On-order inventory for Customer A (because it will be still within his expectation of 10 days from today). This way, business can meet both sales.

        Few more scenarios are exist like this.

      2. Vamshi

        Hello Admin,

        One question on this – How will IBA knows about the “high value customer(VIP )” and perform soft allocation, do we need to define customer as VIP anywhere ?

        1. admin Post author

          We can use any attribute which is part of createOrder xml and use the same for IBA configuration. For example createOrder xml has PriorityCode attribute. this can be used part of IBA configuration.

  11. Pingback: Sterling OMS Writing First XSL Program - Learn IBM Sterling Order Management System

  12. Pingback: Sterling OMS Writing First Java Program - Learn IBM Sterling Order Management System

  13. Char234

    Can you please share answers to the below questions:

    1. The most important tables in Sterling
    2. What are order returns?
    3. How does demand and supply change through diff stages of order lifecycle?
    4. What is the difference between TO and PO
    5. How do orders tendered through POS flow in OMS?
    6. What are in-flight orders?

    Would appreciate your quick response and any other material that can help me learn it

    1. Anurag

      yes, go to giv inventory node type and add your node type. make sure scheduling rules and supply both have this safety factor configured in order to have it worked.

  14. Nikitha

    Hi ,
    How can we configure Node level and Group level inventory monitoring for RTAM?
    Will Distribution group be poupulated in the RTAM message for node level monitoring?

  15. Laura

    Hi, could you please tell me what will happen in the following situation?
    – An order is about to get released (so it has a Release entry in YFS_TASK_Q).
    – Before it got released, we go ahead and cancel the order.
    So my question is… when cancelling the order, will the Release entry in YFS_TASK_Q get removed?
    If yes, OK. If no, when will this entry get removed?
    Thank you.

    1. admin Post author

      When order is cancelled YFS_TASK_Q entry gets removed automatically. Same apply to when order moved to scheduled or release status automatically. But we user performs schedule or release manually task_q entry does not get removed. We have manageTaskQ API to remove the entry from task_q table. Please read registerTaskComplete API also.

  16. aswin

    I saw a sterling training link on this site but I didn’t understand how to register for it. Is the training course yet to be started? is it not ready yet?

    1. Krishna Nand Pandey

      If there is no inventory or suppose store wants to reserve some qty for an item for a certain time of period then that item node combination is marked dirty so that order for that item is not sourced to that store for that time period.

    2. TD

      When a node doesn’t have inventory and hence an item node combination gets blocked so that its not available for sourcing anymore is called Dirty node. The node is not made available for sourcing until it gets a positive inventory supply or the hold is removed from it using InventoryNodeControl API.

  17. 094Himanshu

    Hi Admin,

    If I dont want to schedule the Order immediately after Order Creation but rather wait for 5 hrs to Schedule .

    Like Updating the Available_Date Column to sysTime+ 5 hrs in ygs_task_q table .

    How can I achieve this by configuration.


    IBM Sterling Version 9.5 :
    Which API creates EOF message ?
    Does OOB creates it ?
    And Is it the output of LoadInventoryMismatch API ?

    1. admin Post author

      EOF message end of message. This is usually created by external system or middleware to tell EOF for store inventory. Lets assume store had 5000 records of inventory. We can request middleware to process 1000 records per message. So middleware creates 5 messages in total with same YantraMessageGroupID. then it should create another message called with same YantraMessageGroupID. This is the way we can tell the process that this store does not have any more inventory message. Will write new blog on this topic. Hope this helps for now.

  19. Mukesh

    HI Admin ,

    you have any PDF document for the entire sterling OMS . if yes could please attached here .


    1. admin Post author

      Sorry we dont have any PDF doc. Mostly you can search in google with pattern filetype:pdf will show you IBM pdf documents

  20. Mounica


    Can you please let me know how Schedule Order(any task based transactions) will pick the records from YFS_TASK_Q table?


  21. Lakku

    Hi Admin,

    May i know about how Item Master loaded into OMS ?

    1. admin Post author

      In real scenario, When new product added, MDM (Master data management) system publish message to middleware system (TIBCO)
      Middleware converts the incoming data to Sterling XML format and drop into OMS queue
      Integration server read message from queue and calls manageItem API to create product.
      Hope this helps !!!

  22. V

    Do we certainly need JAVA experience for Sterling OMS jobs & even for Support projects?

    1. admin Post author

      Not exactly. Basic java knowledge (Method/Class) is good enough if you want to become developer. If you are part of testing or BA role java is not needed.

  23. R

    Can Database extended APIs be called via API tester?

    1. admin Post author

      When new table created (Custom table), We need to create sync service and select Extended Database API option. Then you will be able to call via API tester. If you add new column in database, with help of template you can test in API tester.


Leave a Reply

Your email address will not be published. Required fields are marked *