ATG Interview FAQ

1,009 views
Skip to first unread message

Ami

unread,
Jun 12, 2007, 3:10:57 PM6/12/07
to ATG_Tech, shori...@yahoo.com, samarji...@yahoo.co.uk, vikash....@polaris.co.in
Hi ATG Techies,
You will find these questions very useful for ATG Interview:-
======================= ATG Repositories ============================
PRIMARY && AUXILIARY:-Each item descriptor must have one and only one
primary table(1-1 relationship)
<item-descriptor name="user">
<table name="dps_user" type="primary" id-column-names="id">
<property name="login" data-type="string"/>
</table>
<table name="dps_address" type="auxiliary" id-column-names="id">
<property name="address1"/>
</table>
</item-descriptor>

1 to many : 1 Book - many Authors relationship
data-type - Array, Set, Map, List
if data-type == collection of primitive datatype then define
component-data-type
if data-type == collection of repository items then define component-
item-type
<item-descriptor name="book">
<table name="book" type="primary" id-column-names="id">
<property name="id" data-type="string"/>
<property name="bookname" data-type="string"/>
</table>
<table name="author" type="multi" id-column-names="id" multi-column-
name="seq_num">
<property name="authorName" column-name="author" dtat-type="array"
component-data-type="string"/>
</table>
</item-descriptor>

CREATE TABLE book (
id VARCHAR(32) not null,
bookname VARCHAR(32) null,
primary key(id)
);
CREATE TABLE author (
id VARCHAR(32) not null references usr_tbl(id),
seq_num INTEGER not null,
authorName VARCHAR(32) null,
primary key(id, seq_num)
);

many 2 many :- book, author_book, author

item descriptor inheritance :- Coat && Short==>> common propert in
"clothing"
use super-type="clothing"

<!-- The "clothing" item type, a base type -->
<item-descriptor name="clothing" sub-type-property="type">
<!-- This is the primary table that holds clothing data -->
<table name="clothing" type="primary" id-column-names="id">
<property name="type" data-type="enumerated">
<option value="coat"/>
<option value="shorts"/>
</property>
<property name="name"/>
<property name="description"/>
<property name="size"/>
</table>
</item-descriptor>

<!-- The "coat" item type, now a subclass of "clothing" -->
<item-descriptor name="coat" super-type="clothing" sub-type-
value="coat">
<table name="coat" type="auxiliary" id-column-names="id">
<property name="season"/>
</table>
</item-descriptor>
<!-- The "shorts" item type, now a subclass of "clothing" -->
<item-descriptor name="shorts" super-type="clothing" sub-type-
value="shorts">
<table name="shorts" type="auxiliary" id-column-names="id">
<property name="pleated" data-type="boolean"/>
</table>
</item-descriptor>

Advtantages: no duplicate data, code re-use, can fire a common query
on both tables
No multiple inheritance is allowed.

Derived Properties:- feature enables one repository item to derive
property values from another repository item or from another property
in the same repository item.
example of spending limit : emp, deptt, divesion for empSpendingLimit

Repository Filtering : allows you to filter database read operations.
<item-descriptor name="article">
<rql-filter>
<rql>name starts with "n"</rql>
</rql-filter>
<table name=".........


Query Caching :
1. No Caching (disabled)
2. Simple Caching (caching is handled separately in each VM, with no
invalidation events to synchronize updates from different server
instances)for read-only repositories e.g product catalogs where all
changes are made on a staging server and not a live server
3. Locked Caching (read and write locks are used to synchronize the
caches) 4 user profile repository. for conten
4. Distributed Caching (caching with cache invalidation events).
where items will be cached frequently and modified infrequently.


Lock Manager:-
ServerLockManager<D6dir>/home/servers/derrida/localconfig/atg/dynamo/
service/Initial.propertiesinitialServices+=ServerLockManager

Feom component Browser:
<query-items item-descriptor="users">username="Marty"</query-items>


Repository :- A repository is a data access layer that defines a
generic representation of a data store


1 Through QueryBuilder(built using Query Expression) we can fire query
on RepositoryView.
2 MutableRepository. createItem(), addItem(), removeItem(),
updateItem().

try {
RepositoryItem user = ... // get a reference to the user you want to
update
MutableRepository mutableRepository =
(MutableRepository)user.getRepository();
MutableRepositoryItem mutableUser =
mutableRepository.getItemForUpdate(user.getRepositoryId(),
user.getItemDescriptor().getItemDescriptorName());
mutableUser.setPropertyValue("name", "bob");
mutableUser.setPropertyValue("age", new Integer(26));
mutableRepository.updateItem(mutableUser);
}
catch(RepositoryException exc) {
// deal with exception
}

Dynamo includes three classes that provide useful methods for dealing
with repository items:
atg.repository.servlet.RepositoryFormHandler
atg.userprofiling.ProfileForm
atg.userprofiling.ProfileFormHandler

======================== Scenario && Slots ========================

Slotes:- Slots are nucleus component that we can use to display and
manage dynamic content of our site. We use targeting servlet beans to
include slots in your site's pages. And we use scenario to fill them
with content.

Slots have better caching capabilities, which can make displaying
content faster
1.Create the slot component
2.Add an appropriate targeting servlet bean (for example,
TargetingForEach) to the page or pages where you want the slot to
appear. In the Targeter property of the bean, specify the slot
component.
3.Create a scenario that specifies the content you want to display in
the slot and defines the circumstances in which the content appears.
How to create a Slot? :-
$Class=atg.scenario.targeting.RepositoryItemSlot
$scope=session
itemDescriptorName=media-desc
repositoryName=ProductCatalog


Scenario:- A scenario(Sequence of actions) anticipates and tracks the
actions of the people who visit our Web site and responds
appropriately by, for example, tailoring the content of the site,
offering price promotions, or sending targeted e-mail messages.
triggered by events
Scenario event : LoginEvent, LogoutEvent, RegisterEvent,
StartSessionEvent, EndSessionEvent.
Represented in ATG by flow chart that describe targeted customer
interactions as a series of "if...then" triggers and responses.

For example, If a customer registers, but doesn't log in within two
weeks, then send them a reminder e-mail offering a 10% discount toward
their first purchase.
By analyzing the data collected from scenarios, we can fine-tune our
business initiatives and the site's overall design to best meet the
needs of our customers

A scenario anticipates and tracks the actions of the people who visit
our Web site and responds appropriately by, for example, tailoring the
content of the site, offering price promotions, or sending targeted e-
mail messages. Provide control over the timing of certain actions.
Events are instances of site visitor behavior
Actions are instances of system behavior
Conditions are filters that qualify the previous event element in a
scenario.

Scenario Definition Files:-located at the Nucleus path /atg/registry/
data/scenarios as a file with the extension .sdl.

===================== ATG Publishing ========================

ATG Publishing (Content):- ATG Publishing is a Content Management
System (CMS Software). Most content management systems include two
pieces:
one part that manages the content creation and editing process and
one part that manages the delivery of that content to the web site.
create and edit content, version content, manage content approval
process, deliver content to the web site, preview site content, manage
business rules and ATG Scenarios, and handle dynamic assets such as
price lists and catalogs.
Asset:- An asset is the most basic component of ATG Publishing. e.g
image files, folders, scenarios and targeters (Personalization
assets), promotions and price lists (Commerce assets), text files,
HTML files, and binary files. A repository asset OR A file asset
Version:- All assets have an associated version number. Every time an
asset is added to a project and checked in, the checked in asset is
assigned a new version number
Base version:- of the asset is the version of the asset that was used
to create a new version of an asset.
Latest version:- of an asset is the version of the asset that was most
recently checked in and is always used when creating a new version of
an asset
Project:- A project holds a set of additions, changes and deletions to
some set of assets. Projects move through a workflow, typically
starting with asset creation and editing and ending with project
review and approval.
Each project independently moves through a workflow, typically
starting with development, proceeding through Staging/QA and
ultimately ending in live deployment of the project's assets.
Zone:- An area of functionality within ATG Publishing. A zone might be
a group of projects or an administrative function, such as the
Deployment Zone.
View:- Views make up the pages of a zone, asset, or project. The View
bar at the top of the screen allows you to change between views.
Workflow:- Workflows are set up by an administrator to control what
happens during the lifecycle of a project
Task:- A task is a step in a workflow, such as Authoring or Approval.
Check in:- The last step in a project's lifecycle is check in.
Checking in a project indicates that the assets in the project are
complete. When you check in a project, all the assets in the project
become the "latest" version of the asset in the ATG Publishing Center.
Deployment: Deployment(only after approval) is the process of copying
the assets in a project to other servers, including your production
web site.
Asset Types:- contain information about how to display an asset. When
the asset is opened, ATG Publishing uses the asset type associated
with the asset to determine how to present the asset
Project Type:- The project type provides the template for a project's
look and functionality. Every project has a type.
Action:- Actions appear as buttons in a zone. Clicking on the button
executes the associated action. There are four types of actions
Generic actions, Workflow actions, Preview actions, and Custom
actions. How the action is configured and invoked depends on the type
of action.
Versioning:- Development/staging/production servers work with specific
versions of assets, rather than relying on physical storage
conventions to pick up the right content. The ability to tag versions
allows the correct set of versioned assets for a given server to be
determined automatically
Edition:- An edition is a snapshot of content in the Publishing module
that's deployed to staging or production servers. An edition contains
one or more completed projects
Create Proj -> Add asset to Proj -> Ready 4 Review -> Review ->
Approve/Reject Asset -> New version of Asset saved -> Confirm
Deployment -> Deploy -> New Version of asset copied to site.

ATG PUBLISHING ENVIRONMENT Vs ARG PRODUCTION ENVIRONMENT :-
uses versioned schema. Not uses versioned schema.
The deployment of assets from the publishing environment to the
production environment is managed via agents that run on your "target"
servers.
There are two types of agents:-
ATG Publishing Agents, which run on the ATG servers in a deployment
target. These agents are configured to manage the deployment of
repository and file
ATG Publishing Web Agents, which run on the Web servers in a
deployment target. These agents are configured to manage the
deployment of file assets to the Web server
=======================================================================================

======================== ATG Commerce ==========================
The ATG Commerce:- application serves as the foundation for the online
store.
Contains everything needed to manage our product database, pricing,
inventory, fulfillment, merchandising, targeted promotions, and
customer relationships.
ATG Commerce is available in two versions.:-
for "B2C" online stores.
for "B2B" uses
Features of B2C:-
Profile management, Product Catalog, Product catalog display
templates.
Catalog navigation & Product/SKU Comparison, Setting Pricing models.
Shopping carts, Orders management like cancelling,viewing orders.
Inventory, Merchandising(promotions, coupons, gift certificates)

Product Catalog:- is a collection of repository items (categories,
products, media, etc.) that provides the organizational framework for
a commerce site.


Please add more if u find useful!!!

Regards,
Amitesh
ATG Certified Relationship
Management Developer (ATG Dynamo 6.0.0)

Ami

unread,
Jul 18, 2007, 7:08:38 PM7/18/07
to ATG_Tech
Hi,
Plz add more, if u feel.

Regards,
Ami

Reply all
Reply to author
Forward
0 new messages