IBM Sterling Commerce interview question and answer related to OMS implementation. . .
This page lists down the common interview question and answers on OMS
implementation by IBM Sterling Commerce. It has question related to
basic customization and advanced business requirment implementation.
Main objective of this page is to guide you to answer interview
questions and provide detail usnderstanding on IBM Sterling OMS
implementation. Here I documented question and answer from my OMS
implementation experience. Many question asked from the project where
you have worked on. So go-through your project implementation documents
and try to give a thought why those design and implementation decision
were taken. You need to read the api documentation and IBM Knowledge
centre documentation.
Support
Whatsapp No. 7439236696 for any question / suggestion |
Questions and Answers:
101).
What is inventory synchronization? How it is
used
102).
What is inventory Consideration? How it is
used
103).
What is inventory Adjustment? In how many
ways you can do inventory adjustment
104).
What are apis are there to check the
availability of an item?
105).
How inventories are tracked in IBM Sterling
Commerce?
106).
How inventories are tracked in IBM Sterling
Commerce?
107).
What is ATP rule? How it us used?
108).
How to modify the fulfillment type an
orderline? what are the challenges you faced in modifying fulfillment
type of an order line
109).
Have you used splitLine api? Any challenges
faced on implementation
110).
What is backordered from node. How it is
different from normal backorder.
111).
What is order modification rule? how they
are used? How to know what are modification rule applicable for an
order. How it is different from normal backorder.
112).
How to add custom backorder reasons.
113).
What are the differences between
Instructions and Notes.
114).
Have you implemented pre-order? do we need
to have seperate scheduling rule for pre-order?.
115).
What is Fulfillment Rule?.
116).
What is chain order consolidation template?
How to enable it?
br>
117).
How to create a custom agent. Please share
the how custom agent works,and some sample code .
Agent:
Agent is a backend java process which does batch processing. It pull a
chunk of records (bydefault chunk/batch size is five thousand). There
are couple of out of the box proudct agent. Such as schedule order
agent, release order agent, purge agent, close order agent, shipment
monitor agent. Implement of this agent is there in the product code. But
for your customer business requirement, you can create custome agent.
To create a custom agenet you need to do two thing.
- Write a java class. I will explain below how write a java
class for an agent
- Once java class is ready, configure a new transaction in
application manager(configurator). Agents are time-triggered
transaction. So while configuring mark it as a time-trigger
transaction and point to your java class. Add criteria and criteria
parameters. One agent server can run with multiple criteria.
- Running an agent is two steps process:
- Start the agent server. there is a product sh file to start
the agent server. Pass your agent server name in the argument
- Triggering the agent. Once agent server is up, you can
trigger the agent for a criteriaID just invoking another script.
triggerAgent Criteria_ID. Or you can mark the agent to trigger after
every certain interval (say 15 min)
Agents are two types- Task based and Non-task based. You can write
custome agent which can be task based or non task based depending
customer needs
- Task based agent - It extends TaskBasedAgent java class
- Non Task based agent - It extends BaseAgent java class
Agent will have two methods. getJobs() and executeJobs().
Task Based Agent:
It works on TaskQ table. it means it pull records from TaskQ table of
database based on the transaction id, available date and prepare jobs in
getJobs mehtod. Execute jobs method just process all jobs one by one
prepared by getJobs method. As taskbaed agent works on the TaskQ table,
we DO NOT need to provide the implementation for getJobs method(Do not
need to write code for getJobs method). Task based agent extends
TaskBasedAgent class of product library. GetJobs method implementation
has been provided by the product.
Non-Task Based Agent:
It extends BaseAgent class. we need to provide implementaion for both
the getJobs and executeJobs mehtods. In the getJObs mehod we need to
write the code to prepare the jobs (One job is nothing but a small XML
message which is passed to executeJob mehtod).
In excuteJobs mehtod implementation, it's our custom logic how we want
to perform the job/task. Job(XML message) prepared in getJobs method are
passed to executeJobs method. In exefute Job mehtod normally we do some
api call to update some records
Key Points:
- For task baed agent need to extends TaskBasedAgent java calss
and proivde the implementation of executeJob() method only.
- For non-task baed agent need to extends BasedAgent java calss
and proivde the implementation of both getJobs() and executeJob()
method .
- getJobs() method invoked multiple times unless it return null
or empty message. Its NOT one time
- When you are implementing getJobs() method, think of how same
agent can be run with multiple box simultaniuously with out
interfaering each other.
- You have noticed certain product agent(e.g. schedule order
agents) runs from two or more boxes in production in the same time.
How they manage cuncurrency.
- Agents are efficient thnn integration servers as they process
record bach wise. In one read they pull 5000 records. So reading time
per record is very less for agents
- For the task based agent, its previous transaction in the
pipeline insert the record in the TaskQ table.
Subsequent Question:
- What is the role of queue in Sterling agent framework? Why do
we need a physical queue just to create an agent though agent does
batch processing based on some underlying database table records?.
- Difference between starting an agent and triggering an agent.
In case of Integration server, we just need to start the
process(Integration server).
- At what point (end of getJObs or end of executeTask) records
get deleted from TASK Q table .
- At what point (end of getJObs or end of executeTask) records
get deleted from TASK Q table .
- You have noticed if we stop the agent in middle of processing
and start it again, there is no record (job/task) loss. How it is
achieved?.
- You have creating an agent how do you make sure that same
record is not getting processed again and again.
- Suppose you are running an agent from two linux boxes. Can the
getJobs methods run concurrently from two JVMs? If not how its handled
Note:
To know the answers of the Subsequent questions, you may join
our training courses.
118).
Can you please add how to configure
monitoring rule and how it works?
Monitoring:
Lest take an example. Customer has given us following requirement.
- If any order line(item) goes to backordered (item not
available in any store or DC) and if it remains in backordered status
for 24 hrs, company wants to send an email to their customer
- Company wants to inform customer that item is reaching soon
wnen order line moved to shipped status
- If order does not moved to shipped status within the requested
ship date, company would would like to send an regret SMS to their
customer .
Now question is how would we fulfill this customer requirement.?
To implement above requirments, we can use Enhanced Order Monitor
(earlier it was know as Order Monitor) agent. Enhance order monitor is
an out of the box agent.
How order montior works ane how to use it?
- Agent: Enhance order monitor is an OOB agent. If its
not enabled in your environment, need to enabled it. Enabling an this
agent process is same as like other agents
- Monitoring Rule:Enhance order monitor works based on
monitoring rule. Monitoring rules are defined per pipeline. To
implement above requirement, monitoring rule needs to be defined on
sales order pipeline. To add monitoring rule to a pipeline, open the
pipeline in application manager. select the pipeline in the left panel
and right click on it. You will get option.
There are 4-5
types of monitoring rule. For requirement 1. you should select the
monitoring rule type "Order Line In a Status". Monitoring rule can be
defined with conditions also. You need to open the configuration and
check what are the types of monitoring rule are available in OMS
- Monitoring Event: To define a monitoring rule you need
to have an Monitoring Event. This event will be raised by the agent if
rule satisfies for any order. To add a monitoring event, you need to
go to DOM > Sales Order Document > Monitoring Event
- Service: To define a monitoring event you need to have
an Service. You need to define the service (SDF service) in the sales
order process type. When event will be raised by the monitoring agent,
this service will be invoked. Inside the service we can write any
custom logic. Or we can have just have a email component inside the
service to send email to customer. This event will be raised by the
agent if rule satisfies for any order. To add a monitoring event, you
need to go to DOM > Sales Order Document > Monitoring Event
Key Points / Subsequent Questions:
- One order has 5 lines(Customer ordered 5 items). Two lines
went to backorder status and remained on backorder for 24 hrs. In this
case will the monitoring agent will send two email or one email?
- When we will be sending the email to customer, we need to send
the status of all the items of the order in the email. Not just the
status of two items which are on backorder now?
- When we will be sending the email to customer, we need to send
the status of all the items of the order in the email. Not just the
status of two items which are on backorder now. How you achieve that?
- When we will be sending the email to customer, we need to send
the status of all the items of the order in the email. Not just the
status of two items which are on backorder now. How you achieve that?
- After 24 hours if order remains on backorde company wants to
send email to their customer in every next 7 hrs ? How would you
implement this requirment
Note:
You need to practice montoring rule implementation in your environment.
Just reading it you will not be able remember it and explain the
interviewer.
Above examples are given for order monitoring. Similar way we
can monitor Shipment and Inventory. There are out of the box Shipment
monitor and Reat Time inventory monitor, Exception Monitor, WorkOrder
Monitor agent.
In Monitoring Context there are two more
important topic for study. They are given below. Its difficult to
explain everything here:
119).
What is LOS(Level Of Service)? SCAC and
Carrier Service Code? What is their important for order fulfillment?
SCAC :
Is the carrier which can be used to transport the item to customer
address. It's typical values are FedEX, UPS. You can pass SCAC attribute
in the created order XML
Carrier Service Code:
Each Carrier (SCAC. e.g FexEx) provide multiple services. Example. UPS
may provide 3 type of service - Air-NextDay, Taxi-SameDay,
Ground-Standard. There will be carrierService code for each service
provided by the carrier. And for each carrier serivce code, you can
define/configure(in Logistic Management > CrossAppication >
CarrierService) Minimum Trasit Day, how many miles(distance) it can
travel/cover in sigle day.
Based on this configuration, promise date (ExpectedDeliveryDate) is
calculated if CarrierServiceCode is passed in the input of the Promising
APIs (e.g. getStoreAvailability). Rather when ExpectedDelivery date is
calculated, this parameter are consider.
LOS (Level Of Service)(DOM > CrossAppication >
LevelOfService):
Example -Indicates the level of service required for the order. Its a
order header level attribute. You can configure level of service for
your order and for your level of service(LOS) you can define node
transfer schedule, Transit Time and give the node notification time.
Those parameters will be consider if there is a tranfer (e.g. store to
store transfer) requried to fulfill the order and in promise date
calculation those values will be used.
Suppose you need to implement same day delivery. To support same day
delivery you may define a level of service as "SAMEDAY"
120).
What is Landed cost and how its used to for
determining procurement node?
121).
What is node transfer schedule and how you
define it?
122).
How do you setup cut-off time for a node
transfer schedule?
123).
In how many ways you can setup node transfer
relationship?
124).
What is idle asset and how its used to
determine procurement node?
125).
One US retailer ship their product from
their only one warehouse located at BOSTON. They have near about 1000
stores all over US. They do not ship item from store. They only ship
item from their Boston Warehouse. But when warehouse does not have
inventory company wants to procure the item from nearest store to
warehouse and then ship it to customer home address from warehouse? How
would you configure procurement rule so that it alwyas procure from
nearest store.
126).
One What are the differences between
Schedule and Release Transactions? Can we have Schedule & Release
together?
127).
How payment process happens or how customer
get refund when customer returns few items?
128).
One Difference between agent and integration
server?
129).
One What is difference between
GetOrderDetails vs GetOrderList API ?
130).
What is RTAM ? Have you used it?
131).
Have you used payment processing?
132).
Have you used payment processing?
133).
What is exchange order? what is even
exchange and non-even exchange?
134).
What is item with variation? Have you used
such items.?
135).
How to add custom/external(3rd party) jar
into configuration related files ?
136).
How to create and test dynamic condition ?
137).
What is abstract Transaction ?
138).
How to create A custom transactions in OMS
?
139).
How to create custom status ? Can it be
added to pick uo and drop status of any transaction
140).
What is Hub rule and how to use it?
141).
Have you faced any challenge in using
condition in Hub rule?
142).
What is Item Based Allocation (IBA) ?
143).
What is Smart Sourcing? Have you used it
144).
What is Purging? One customer reported their
most of the aged orders are not getting purged. What could be the
reason for order not being purged
145).
What is Landed Cost? Have you used it
146).
How to search order from history table?
147).
What is reprocessing? How does it configured
and works ?
148).
What are the differneces Delivery services,
Provided services and Special services ?
149).
How to override any property value or add
custom property?
150).
What is composite service? When Composite
Service should be used ? What is the advantage of using Composite
Service ?
Support
Whatsapp No. 7439236696 for any question / suggestion |