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. triggerAgent.sh vs agentServer.sh
  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 customer_overrides.properties 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 ?
          <Order>
             <OrderLine Node=”Node1″ Quantity=”10″ />
             <OrderLine Node=”Node1″ Quantity=”20″ />
             <OrderLine Node=”Node2″ Quantity=”10″ />
          </Order
          Need to print Node1=30 and Node2=10
         Answer : HashMap<String,Integer>
2. How to get only the unique node names ?
<Order>
<OrderLine Node=”Node1″ Quantity=”10″ />
<OrderLine Node=”Node1″ Quantity=”20″ />
<OrderLine Node=”Node2″ Quantity=”10″ />
</Order
Need to print Node1 and Node 2
Answer : Set<String>
SQL
Emp ID (PK) Employee Name Manager ID
1 James 2
2 Steve
3 Mark 2
Query to print Employee name and manager name
Answer :
CREATE TABLE EMP(
   EMP_ID INT,
   EMP_NAME VARCHAR (20),
   MANGER_ID INT,
   PRIMARY KEY( EMP_ID )
);
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
where
a.MANGER_ID = b.emp_id
and
a.MANGER_ID is not null;
Result:
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

71 thoughts on “IBM Sterling OMS Interview Questions

    1. ActiveKite-Admin

      Yes we are working on it will share soon. Pls register with us to get more updates

      Reply
      1. Balu

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

        Reply
        1. admin Post author

          Yes we are working on it. Will share soon. Thanks

          Reply
          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…

    Reply
    1. Active Kite Admin

      Aman,

      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.

      Regards
      Active Kite

      Reply
  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:
    Attribute=/Order/OrderLines/OrderLine/Item/@UnitOfMeasure
    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.

    Reply
    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.

      Reply
      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.

        Reply
  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.

    Reply
    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

      Reply
      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.

        Reply
  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.

    Reply
    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.

      Reply
      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.

        Reply
          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 ?

        Reply
        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 !!!

          Reply
      3. Vamshi

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

        Reply
        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 !!!

          Reply
        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.

          Reply
    1. admin Post author

      Aman,

      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 !!!

      Reply
      1. Aman

        Any alternet Api for syncLoadedInventory that increase performance?

        Reply
        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

          Reply
  5. Aman

    Sterling std behaviour is to look up the CustomerOverride.properties first and then look up its internal prop files like yfs.properties 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.

    Reply
    1. admin Post author

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

      Reply
  6. test

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

    Reply
    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 !!!

      Reply
      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?

        Reply
        1. admin Post author

          Vikranth

          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

          Reply
  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?

    Reply
    1. ravi

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

      Reply
      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 ?

        Reply
        1. lpsarathy76

          Hi,
          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.

          Thanks

          Reply
  8. Mohana Chandrababu

    Please include some topics on alerts

    Reply
    1. admin Post author

      Mohana

      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.

      Reply
  9. sandeep

    Hi ActiveKite team,

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

    Thanks
    Sandeep

    Reply
    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.

      Reply
  10. 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.

    Reply
    1. admin Post author

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

      Reply
      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.

        Thanks.

        Reply
  11. 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.

    Reply
    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.

      Reply
      1. lpsarathy76

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

        Reply
  12. 094Himanshu

    Hi Admin , Can you help me with this .How payment process handled in return order process ?

    Reply
    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

      Reply
  13. 094Himanshu

    Hi Admin, Can you tell us , how IBA works in Sterling ?

    Reply
    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 !!!

      Reply
      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.
        Thanks.

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

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

  16. 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

    Reply
  17. dilipsdil07@gmail.com

    Can onhand_safety_factor be applied at node level?

    Reply
    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.

      Reply
  18. 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?

    Reply

Leave a Reply

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