Académique Documents
Professionnel Documents
Culture Documents
MODI
ATG
Page 0
Preface
This document is a quick handbook for ATG interview preparation. This document contains interview
questions from all possible corners. Document contains questions with suitable answer. The target
audience of this document is ATG application developers & ATG architects.
This document can be used for internal grooming of teams. This document is a very good source of
information about ATG commerce package. Information shared in this document is as per my
experience and understanding.
In this document, I have covered questions for ATG Commerce, ATG Servlet Pipeline, ATG Repository,
ATG Order & Checkout, ATG Search, ATG Publishing, ATG Nucleus etc.
ATG
Page 1
Disclaimer
The purpose of this document is to assist you in interview preparation & to have quick check on your
ATG skills. This document is a quick review of ATG package. Objective behind this document is not to
encourage attrition. Also referring this document doesnt make you an ATG expert. This document is just
a quick check on your ATG knowledge.
Recommendation is to refer this document at the end of your homework. Also referring this document
may not change the verdict of your interview process.
Expectation from this document is to revise your ATG skills and to have a check on your ATG knowledge
over the time.
ATG
Page 2
Table of Contents
ABBREVIATION
ATG
Introduction
ATG Nucleus Questions
5
6
13
16
26
29
38
47
48
50
58
Others
61
Reference
62
ATG
Page 3
Abbreviation
DAS
DAF
DSS
DPS
DRP
GSS
LM
Load Manager
CM
Connection Module
RMI
DCC
SBS
UDP
User Datagram Protocol alternative protocol to TCP/IP, (usually used for broadcasting)
ATG
Page 4
ATG
Introduction
ATG is the worldwide leader in the E-commerce solutions. ATG product suite has enabled the vendors
to enable their e-commerce commercial capabilities.
ATG
Page 5
ATG
Page 6
visitor profiling
content targeting
Q. What is DSS?
Ans. The Scenarios module (Dynamo Scenario Server) adds advanced scenario-based personalization
features to the ATG Platform.
To know more about DSS, refer document ATG Framework & Component.
Q. What is ATG Portal?
Ans. ATG Portal provides a customizable framework for building personalized Web portals for specific
user communities.
Q. What is the Foundation layer in ATG architecture?
Ans. DAF (Dynamo Application Framework) is the foundation layer.
Q. What is port for DRP, RMI, DSS?
Ans. DSS=8850. RMI=8860, DRP=8870.
Q. What are the important components come with ATG package?
Ans. Core ATG components are as follow.
Also the following ATG components layered on top of above core components.
ATG
ATG Portal
ATG Commerce
ATG Publishing (Content Administration)
ATG Commerce Service Centre (CSC)
ATG Search
Outreach Campaign Optimizer
Knowledge Response Mgmt.
Page 7
Page 8
Q. What is layering in ATG & what is the effect of layering properties file in ATG or What is component
layering in ATG or What is configuration layering?
Ans. ATG give you freedom to define / override component (properties file) attributes at different layer.
If the same property value is defined in two files at different layer, the last value overrides previous
values. It is called configuration layering.
Q. If an application has duplicated same component at DPS level & local config level. Which one will be
used by nucleus at run time?
Ans. Component from local config level will be used by Nucleus.
Q. If a component has subject as a multivalue property with values as history & English, and it is
extended as subject+=Maths, What is the value of property subject at runtime?
Ans. Final value of property subject at run time will be history, English Maths.
Q. What is Campaign Optimizer?
Ans. ATG Outreach and Campaign Optimizer are used by the marketing people to create promotions,
scenarios etc to track visitor behavior and tune the commerce system accordingly.
Q. How many nucleus instances can run by ATG at the same time in same JVM?
Ans. Only single instance of Nucleus can run in same JVM. Nucleus is a container where components
resolves their dependencies and perform their job.
For more information about Nucleus refer document ATG component & Framework.
Q. What is DPS in ATG?
Ans. DPS in ATG stands for Dynamo Personalization System. It is driven by User Profile Data and Business
rules defined to deliver the right content to the right user.
There are three key elements of the ATG DPS personalization System.
ATG
Page 9
Page 10
Q. What is a Component?
Ans. Java bean and its configuration file together known as Component in ATG. A component is used to
initialize or set the properties of a bean class.
ATG
Page 11
ATG
Page 12
ATG
Page 13
ATG
Page 14
ATG
Page 15
Profile Management
Order Management
Pricing
Inventory
Customer Service
ATG
Page 16
required
requires_new
supports
not_supported
mandatory
ATG
Page 17
Q. In which component are the stages of the shopping process in ATG Commerce defined?
Ans. /atg/commerce/bp/ShoppingOrderConfiguration via property Name stageNames.
Q. The business requires that only three Items be shown on the page from a slot even though the slot is
populated with many more. What are two ways to do this?
Ans.
1. Limit the number of items served in the slot configuration.
2. Limit the number of items displayed in the properties passed to targeting droplets on the page.
Q. In context of Product Comparison, what are the two roles of the Tableinfo component?
Ans.
1. It provides the information needed to be displayed for comparison such as column header and
properties.
ATG
Page 18
Q. Which three pricing engines use the Qualifier class to determine the objects to which it should a
discount?
Ans. ItemPricingEngine, OrderPricingEngine and ShippingPricingEngine
Q. Each of the stock levels has a threshold associated with it. When a stork level reaches the threshold,
what is the default behavior?
Ans. An event is generated.
Q. Which Form Handler and Droplet are used to approve or reject an order that is in
PENDING_APPROVAL state?
Ans. ApprovalFormHandler, ApprovalRequiredDroplet
ATG
Page 19
Catalog B:
rootCategories = category3, category4
rootSubCatalogs = CatalogA
Ans. category1, category2, category3, catcgory4
Q. What is the likely outcome when a product's end date is set in the past?
Ans. ATG automatically stops showing the product when category.ChildProducts is invoked.
Q. What is the outcome when both the SiteScope and SiteIds properties are set on the component?
Ans. The siteScope property is ignored.
ATG
Page 20
Q. If you want to access the list of the customer's active and global promotions, which pricing will you
use?
Ans. PricingModelHolder
Q. Which three BASE form handlers that provide a clean mechanism to implement a custom form
handler?
Ans.
1. EmptyFormHandler
2. GenericFormHandler
3. TransactionaFormHandler
ATG
Page 21
Q. Your company would like to serve personalization content based on the last item viewed by the
customer. What is the highest level of scope (Global being highest) that the slot component can have?
Ans. Session
Q. Provide three key features of Oracle ATG Web Commerce Platform's B2C Commerce module.
Ans.
1. Abandoned Cart
2. Recovery Purchasing Workflow Management such as support for Purchase Orders and
Approvals.
3. Pricing and Order engines.
Q. What must be configured to share all gift lists across all sites?
Ans. set /atg/commerce/gifts/GiftlistManager.siteScope=all
Q. What must you configure for ATG to charge the payment on the first shipment?
Ans. Configure SettleOnFirstShipment on OrderFulfiller.
ATG
Page 22
ATG
Page 23
ATG
Page 24
ATG
Page 25
Page 26
ATG
Page 27
Q. How does the ATG's pipeline manager identify the next element in the pipeline to be executed within
a chain?
Ans. By using the component configuration of the pipeline manager component.
ATG
Page 28
ATG
SQL Repository
LDAP Repository
Composite Repository
Versioned Repository
Page 29
ATG
Page 30
xml-combine="replace"
xml-combine="remove"
xml-combine="append"
xml-combine="append-without-matching"
xml-combine="prepend"
xml-combine="prepend-without-matching"
ATG
Page 31
Page 32
xml-combine="replace"
xml-combine="remove"
xml-combine="append"
xml-combine="append-without-matching"
xml-combine="prepend"
xml-combine="prepend-without-matching"
No Caching
Simple Caching
Locked Caching
Distributed Caching
ATG
Page 33
Ans. Here insert is ignored for properties that use the attribute component item-type.
Q. How is the result set cached when a query returns repository items whose item descriptors enable
both item caching and query caching?
Ans. The query cache stores the repository IDs indexed by the given query and the item cache holds the
corresponding repository items indexed by the repository IDs.
Q. What is the resulting outcome when the statements below are executed without a transaction?
repositoryItem.setPropertyValue("name", "John");
repositoryItem.setPropertyValue("lastName", "Doe")
Ans. For each setProperty value, ATG begins a JTA transaction, calls setPropertyValue, and commits the
JTA transaction. At this point, SQL is issued and the changes are committed.
Q. What does the childProducts property of an Item category contain?
Ans. A union of fixedChildProducts and computedChildProducts of the category with possible duplicate
products.
Q. What is the result if addItem on the repository is never called after createItem call?
Ans. Item is not persisted in database.
Q. Name three methods provided by the Out of the Box Form handler RepositoryFormHandler?
Ans. Create, Delete and Update.
Q. In the item descriptor provided, what is the column book_index used for?
ATG
Page 34
Q. When using programmatic repository data access, each database operation is automatically wrapped
in transaction of which mode?
Ans. Supports mode.
ATG
Page 35
Q. Which three query types are NOT supported by the SQL repository?
a. includesAll
b. elementAt
c. indexOf
d. starts with
e. ignorecase
Ans. A, B and C
Page 36
ATG
Page 37
MVC2 Service to Worker (a push based MVC) design pattern is used for FormHandlers.
MVC2 Dispatcher View (a pull based MVC) design pattern is used by Dynamo Servlet Beans
(droplets).
Inversion of Control (Dependency Injection) design pattern is used by Nucleus to tie
components. This design pattern is used for inter-linking of components.
Page 38
ATG
Best practices for Component Resolution - The ATG Framework is very unique by its
architecture and component centric environment. The components are stored in the
Nucleus which is representing the components in a hierarchical structure and the
components are looked up using the request.resolveName(alias name) method. But this is
costly.
Page 39
2.
Best practices for Repository Caching - There are three cache modes i.e. Simple, Locked and
Distributed. Simple mode is better if the application is running on single JVM and is not
clustered across.
If the ATG applications are deployed on a cluster of servers, then we have to go in for either
Locked caching or Distributed Caching.
For repositories like ProfileAdapterRepository, where at the most one server alone will be
handling the updates, it is better to use Locked caching with proper configuration of
ClientLockManager and ServerLockManager.
Caching should generally be disabled when there is a possibility that the underlying data will
be changed by a non-Dynamo repository application.
3.
LiveConfig Settings - The settings in Dynamos base configuration layer are optimized for
application development, but may not be appropriate for a production environment.
When our application is ready for production environment, we should enable the settings in
the liveconfig configuration layer. This layer, which is disabled by default, overrides many of
the default configuration settings with values that are more appropriate for a deployed site.
ATG
Page 40
Logging Best Practice - Performance can also be improved by disabling the screen log and
having only the File log. The component /atg/dynamo/service/logging/ScreenLog are the
one which is logging to the screen by default, or it may also be a custom component like our
own formatting logger. We can disable logging to the screen by setting the loggingEnabled
property of the ScreenLog to false.
Also set the log level to minimum Info and not Debug as otherwise there will be large
number of log messages.
ATG
Page 41
ATG
TargetingArray differs from the others because it does not format the output of the
targeting operation. Instead, we have to use another servlet bean to format the output.
ATG
Page 43
Q. What is the best way to display the contents of an open parameter in a Custom Droplet?
Ans. Use the request.serviceParameter method to render the open parameter.
ATG
Page 44
To get an output of "Joe Bruin", What two methods should the droplet use in the code?
a. getLocalParameter("first") and getLocalParamter("last")
b. getParameter("first") and getLocalParameter("last")
c. getLocalParameter("first") and getParameter("last")
d. getPageParameter("first") and getParameter("last")
Ans. B
ATG
Page 45
ATG
Page 46
Industry-specific lexicons
To know more about ATG search, refer document ATG Framework & Components
ATG
Page 47
Page 48
Q. The default Task for a merchandiser in ATG workflow after production deployment is complete is___.
Ans. Verify Production Deployment
ATG
Page 49
Page 50
ShippingGroupCommerceItemRelationship
PaymentGroupCommerceItemRelationship
PaymentGroupShippingGroupRelationship
PaymentGroupOrderRelationship
To know more about these Relationships, refer document ATG Framework & Components
Q. What are the Address classed used during Checkout process?
Ans. The address classes used during checkout process is as follow.
atg.core.util.Address
atg.core.util.ContactInfo
Q. What is the important Business layer Components used during Checkout Process?
Ans. Important Business layer components used during checkout process are as follow.
ATG
OrderTools
Page 51
OrderManager
CommerceItemManager
ShippingGroupManager
HandlingInstructionManager
PaymentGroupManager
OrderQueries
SimpleOrderManager
ATG
Page 52
ATG
Page 53
Q. What are the steps to create a new commerce item type in the order repository definition?
Ans.
1. First in the orderReposiry.xml, create an item descriptor by extending the default commerce
item using inheritance concept such specifying super-type and sub-ty pe. And adding the new
properties with new table under this item descriptor.
2. Next we will create a new java bean by extending the CommerceItemImpl and adding setters
and getters for the properties created in the new commerce item itemdescriptor.
3. Next we will specify the new commerce item details in the OrderTools.properies. We will specify
commerceItemTypeClassMap and beanNameToItemDescriptorMap
Q. How do u create the newly created commerce item type into the order?
Ans.
1. We will setup a map of sku item types to the commerce item types in the Commerce
ItemManager.properties.
ATG
Page 54
Q. How do you update the quantity of a commerce item in the cart page?
Ans.
1. First we will set CheckForChangedQuantity of the CartModifierFormHandler to true in the JSP
page. And for the quantity field we will give the name as catalogRefId.
2. Finally, we will call handleSetOrder method of CartModifierFormHandler to update the quantity.
ATG
Page 55
Q. How do you set the shipping address to the order or shipping group?
Ans. We use the ShippingGroupDroplet to display all the available shipping addresses to user. The
ShiipingGroupDroplet will get the available addresses from the Profile shipingAddress and
secondaryAddresses properties. Then the user will select the shippingAddress from the list. Then the
selected address will be set the current shipping group by calling the handleApplyShipping Groups
method of ShippingGroupFormHandler.
We
can
also
create
a
shipping
group
manually
by
using
ShippingGroupManager.createShippingGroup by passing the address. After that we
ShippingGroupManager.addShippingGroupToOrder method to add this shippingGroup to order.
the
call
The user will also select the shipping method and set to the shipping group such as NextDay , Two Day
or Ground. We will use AvailableShippingMethods droplet which fetches all the shipping method names
from the Shipping calculators. Each Shipping Calculator has a property called shippingMethod.
ATG
Page 56
State Name
Description
APPROVED
The approval process for the order is complete, and the order has been
approved.
FAILED
FAILED_APPROVAL
The approval process for the order is complete, and the order has been rejected.
INCOMPLETE
NO_PENDING_ACTION
The order has been fulfilled, and processing of the order is complete. All
shipping groups in the order are in a NO_PENDING_ACTION or REMOVED state,
and order payment has been settled.
PENDING_APPROVAL
PENDING_CUSTOMER_A
CTION
Processing of the order requires the customers attention for some reason, such
as an incorrect customer address.
PENDING_CUSTOMER_R
ETURN
This is an unused state. It is placed in the list of states for the convenience of
those who might want to implement this state.
PENDING_MERCHANT_A
CTION
Processing of the order requires merchant attention for some reason, such as
the failure of a payment group in the order.
PENDING_REMOVE
A request was made to remove the order. The order is placed in this state until
all shipping groups in the order are set to a PENDING_REMOVE state.
PROCESSING
QUOTED
This is an unused state. It is placed in the list of states for the convenience of
those who might want to implement this state.
REMOVED
SUBMITTED
The order has completed the purchase process and has been submitted to
Fulfillment.
TEMPLATE
ATG
Page 57
Internal users are the users given access to ATG applications like BCC or CSC for administration
purpose. This user can be Merchandiser, Searchandiser or Call Center Agent
External users are the customers shopping on your commerce site.
ATG
Page 58
Q. What is the name of the property in the customer profile that contains a list of Promotion Status
Repository Items?
Ans. activePromotions
Q. Which three methods are recommended for removing a profile marker from the profile?
Ans.
1. The "deleteMarkers" method on the atg.markers.userprofiling.ProfileMarkerManager class
2. Use a scenario with tin-"Remove markers from profile" action.
3. Use the RemoveAllMarkersFromProfileDroplet.
ATG
Page 59
ATG
Page 60
Others
Q. Which two ASE tasks can be performed from the ACC but not the BCC?
Ans. Creating scenarios and Slots
Q. Identify three features of Oracle ATG Adaptive Scenario Engine that drive personalized customer
experience.
Ans. These are 3 features of ATG Adaptive Scenario Engine.
1. Rule based content targetingincluding personalized recommendations, offers,information
sells, up sells, promotions.
2. Business rule driven scenarios for delivering dynamic web pages.
3. Time & event based multistage scenarios.
Q. Based on the property definition below, what are the possible values returned by the transaction
Type property?
ATG
Page 61
Reference
http://www.scribd.com/doc/82574621/ATG-Framework-and-Components
http://www.scribd.com/doc/153449525/ATG-Auto-Complete-Type-Ahead
http://www.scribd.com/doc/111773014/Search-Engine-Optimization-SEO
ATG
Page 62