Wednesday 22 November 2017

Interview Preparation | ATG BCC


1.    What are the areas you have worked on in ATG BCC?

2.    What is difference between Content Repositories and Version Repositories?
Unversioned
  • a)     Resides in CA Environment.
  • b)    Instance of GSA Repository.
  • c)     No modifications are required in Unversioned Repository Definitions.
  • d)    No Extra properties are required.
  • e)     'this' attribute is not applicable here     


Versioned
  • a)    Resides in Production Environment.
  • b)    Instance of Version Repository
  • c)    Needs modifications in Versioned Repository Definition, e.g.: Remove Foreign key relationships, Remove unique attribute if   used.
  • d)    Other versioning properties, such as asset_version, is_head etc. are automatically added to Item definition  by CA server.
  • e)    Set versionable attribute to specify which assets needs Versioning. By default all asset are versionable.

SQL Content Repositories

A content repository is a collection of repository items that correspond to documents maintained in a hierarchical name space. A content repository typically serves as a source of content items to be displayed to a user, directly or as an element in a page. An SQL repository implemented through the Generic SQL Adapter connector can act as a content repository, storing content items that are displayed in pages. Because the GSARepository class implements both the atg.repository.Repository interface and theatg.repository.content.ContentRepository interface, and a repository can contain multiple repository item types, a single repository can contain both content repository items (arranged in a hierarchical structure with folders that can contain repository items and other folders) and non-content repository items (arranged in a flat structure). You can use a content repository to serve targeted content, as described in the Creating Rules for Targeting Content and Setting Up Targeting Services chapters of the ATG Personalization Programming Guide. A product catalog in a commerce application is also typically a content repository, as described in the Using and Extending the Default Catalog chapter of the ATG Commerce Programming Guide.
Note that the essential feature of a content repository is that it represents a hierarchical structure of folders and repository items, like a directory structure. The repository items themselves do not necessarily represent content that is displayed in a Web application, although in most cases they do. What is significant is whether the repository items are maintained in a hierarchical structure.
You can define one or more item descriptors in an SQL repository to be a content item descriptor that defines a type of ContentRepositoryItem. When you retrieve one of these items by calling any Repository methods, the repository item implements the atg.repository.content.ContentRepositoryItem interface. You can have other item descriptors in the same repository that do not implement this interface and do not define content items.
The Repository Loader is a utility that handles the work of creating and updating content repository items from documents on your file system. The repository template can be configured so the loader assigns the values of your content repository item’s properties from selected portions of these documents while still allowing access to the entire document. These properties include metadata about the document file such as its length and the time it was last modified. The Repository Loader can be configured to periodically scan the file system and synchronize it with the repository representation, adding, updating and deleting content repository items as necessary. See the Repository Loader chapter for more information.

Content Repository Example

This section demonstrates the design and configuration of a simple repository. For another example, see the Repository Loader Example in the Repository Loader chapter. In this example, the repository supports a Web site that talks about books. Each book has an author, a title, a cover illustration, and a descriptive text.
The book as a business entity has a corresponding repository item type in this example. Its attributes are maintained as properties of the book item type. The book item type is defined in the example repository definition file with this item descriptor element:
<item-descriptor name="book"
                 display-property="title"
                 content="true"
                 content-property="bookcover_image"
                 content-path-property="filePath"
                 folder-id-property="parentFolder">
 
  <table name="book_info" id-column-name="id" type="primary">
          <property name="filePath" data-type="big string"/>
          <property name="parentFolder" item-type="book_folder"/>
          <property name="title" data-type="big string"/>
          <property name="author" data-type="big string"/>
  </table>
 
  <property name="bookcover_image"
            property-type="atg.repository.FilePropertyDescriptor"/>
</item-descriptor>

Book Item Type Properties

The book item descriptor contains the following properties:
·         author and title are strings, with one-to-one relationships between books and authors and books and titles. More complex relationships are possible, of course.
·         bookcover_image is defined outside the <table> tag, which indicates that the property is transient and maintained outside the database. The property is defined as a file type, maintained on the file system, as follows:
property-type="atg.repository.FilePropertyDescriptor"
As described in the Storing Content on a File System section, this property type indicates that the repository should use the property’s path name and convert it to ajava.io.File object.

See: Book Example Repository Definition File

Accessing Items in the Content Repository

After you have set up a content repository, you can use it to serve targeted content, as described in the Creating Rules for Targeting Content and Setting Up Targeting Serviceschapters of the ATG Personalization Programming Guide. You can also search for text in content items as described in the Text Search Queries section of the SQL Repository Querieschapter.
You can also get repository items programmatically, given a repository ID:

// repository id of the item we want to get
   String id = "1001";
 
   // name of item descriptor describing the type of item we want
   String descriptorName = "book";
 
   // get the item from the repository
   RepositoryItem item = pRepository.getItem(id, descriptorName);
 
   // make sure we have an item
   if (item == null)
     {
       pln("Item not found, descriptor=" + descriptorName +
           ", id=" + id);
       return;
     }
 
   // get the author property of the item
   String author = (String)item.getPropertyValue("author");
Versioning a repository in ATG CA
Hope you have already created the Versioned module with specifying the appropriate ATG Content Administration modules (Publishing.base) in the ATG-Required property of the versioned module’s manifest file.
When creating the versioned module’s manifest, list ATG Content Administration modules before the source module:
ATG-Required: Publishing.base source-module-name
Versioning a repository is needed when you want to manage your custom repository data through BCC (Merchandising).  Versioned repositories keep track of the asset versions and the history, as they have additional columns used to manage versioning. The VersionManagerService component manages the versioning of assets (repository assets and file-based assets).
Here I am listing the various steps to be performed in order to version a repository. Follow the series of steps to register your repository in BCC.
a)   Place the RDF (Repository Definition File) in BCC Module.
b)   Modify the Repository Configuration
This is done in order to configure a VersionRepository instance. Place the Component file in BCC Module with following Contents in it.
Path: /my/Library.properties

$class=atg.adapter.gsa.GSARepositoryatg.adapter.version.VersionRepository
$scope=global
repositoryName=Library

# database access- for Publishing Schema, use JTDataSource
dataSource=/atg/dynamo/service/jdbc/SwitchingDataSourceJTDataSource
transactionManager=/atg/dynamo/transaction/TransactionManager

# our XML definitionFile
definitionFiles=/my/library.xml

# XML parsing
XMLToolsFactory=/atg/dynamo/service/xml/XMLToolsFactory

# id generation
idGenerator=/atg/dynamo/service/IdGenerator

#Add Following two.
versionManager=/atg/epub/version/VersionManagerService
versionItemsByDefault=true
Note that the class is changed from GSARepository to VersionRepository to support versioning. The dataSource should be pointing to JTDataSource (so as to connect to publishing schema), instead of SwitchingDataSource or JTDataSource_production.
c)   Create the Production and Staging Components (Staging not needed, if you have only Production Workflow)

Path: /my/Library_production.properties 

$class=atg.adapter.gsa.GSARepository

$scope=global
repositoryName=Library_production

# database access- use SwitchingDataSource
dataSource=/atg/dynamo/service/jdbc/SwitchingDataSource
transactionManager=/atg/dynamo/transaction/TransactionManager

# our XML definitionFile
definitionFiles=/my/library.xml

# XML parsing
XMLToolsFactory=/atg/dynamo/service/xml/XMLToolsFactory

# id generation
idGenerator=/atg/dynamo/service/IdGenerator

lockManager=/atg/dynamo/service/ClientLockManager_production
foreignRepositoryMapper=/atg/repository/ProductionRepositoryMapper


Path: /my/Library_staging.properties 

$class=atg.adapter.gsa.GSARepository

$scope=global
repositoryName=Library_staging

# database access- use JTDataSource_staging
dataSource=/atg/dynamo/service/jdbc/JTDataSource_staging
transactionManager=/atg/dynamo/transaction/TransactionManager

# our XML definitionFile
definitionFiles=/my/library.xml

# XML parsing
XMLToolsFactory=/atg/dynamo/service/xml/XMLToolsFactory

# id generation
idGenerator=/atg/dynamo/service/IdGenerator

lockManager=/atg/dynamo/service/ClientLockManager_staging


d)   Register the Versioned Repositories with ATG Content Administration
Add the versioned repositories to the list property initialRepositories of the component /atg/registry/ContentRepositories, as shown below:

# /atg/registry/ContentRepositories

initialRepositories+=\
      /my/Library

e)   Create Versioned tables in CA (Publishing) schema.
Modify the DDLs to support Versioning, based on the following rules.
·         For all type of tables (primary, auxiliary and multi) remove unique indexes from all columns, remove unique constraints from all columns, remove foreign key references.
·         For each primary table add 8 new columns including ‘asset_version’. For more details on the additional columns please see Appendix A below.
·         For each auxilary or multi tables, add 1 new column ‘asset_version’.
·         Change all primary keys to composite primary keys composed of the original primary key column(s) and the asset_version column.
·         Create indexes for the ‘workspace_id’ and ‘checkin_date’ columns.
For sample DDL, please see Appendix B below.

Now your repository is versioned. Start deploying the data from BCC. Hey wait, Did I tell you to update the deployment topology in BCC to add the new repository mapping? :)
Appendix A: Additional columns that are required for all primary tables
asset_version           INT NOT                  NULL – a counter that specifies the version number of the asset.
workspace_id           VARCHAR(40) NOT NULL – ID of the workspace in which the asset version was initially created.
branch_id                VARCHAR(40) NOT NULL –
is_head                   NUMERIC(1)   NOT NULL – a flag that determines if a version is the head branch
version_deleted        NUMERIC(1)   NOT NULL –
version_editable       NUMERIC(1)   NOT NULL
pred_version            INT               NULL
checkin_date            TIMESTAMP   NULL – the date the checked in version of an asset was created.
Appendix B: Sample DDL
For example, if the original DDL for table ‘store_sample’ is as follows:
create table store_sample (
    sample_id VARCHAR(16) NOT NULL,
    name VARCHAR(128) NULL,
    sample_ref_id VARCHAR(16) NULL,
    FOREIGN KEY (type_y_ref_id) REFERENCES dcs_sku (sku_id),
    PRIMARY KEY (sample_id)
);
Then the modified DDL for table store_sample, to be run on the CA schema, shall be like this:
create table store_sample (
    sample_id VARCHAR(16) NOT NULL,
    name VARCHAR(128) NULL,
    type_y_ref_id VARCHAR(16) NULL,
    asset_version INT NOT NULL,
    branch_id VARCHAR(40) NOT NULL,
    is_head NUMERIC(1) NOT NULL,
    version_deleted NUMERIC(1) NOT NULL,
    version_editable NUMERIC(1) NOT NULL,
    workspace_id VARCHAR(40) NOT NULL,
    pred_version INT NULL,
    checkin_date TIMESTAMP NULL,
    PRIMARY KEY (sample_id, asset_version)
);

create index store_sample_workspace_id on store_sample (workspace_id);
create index store_sample_workspace_id on store_sample (checkin_date);
Note:  Assets in a Non-Versioned repository can also be managed using BCC.  Updating the User (External & Internal Profile) information is an example. in this case there is no deployment happening and the changes made in BCC are directly saved on the Production schema. 
3.    Define topology and process of creating topology?
The DeploymentServer requires information about the production and staging targets where assets are to be deployed. In order to provide this information you Define the Deployment Topology—that is, deployment targets and their individual servers where agents are installed. Before you do so, however, knowledge of the topology is required for several earlier steps in the deployment configuration process. For this reason, you should plan the deployment topology as the first step towards deployment setup.
You define a deployment topology in these steps:
c)    Plan Deployment Agent Responsibilities—for example, determine whether a given agent deploys repository or file assets.
4.    What is project?
Many of the items you create within the Business Control Center, such as segments, targeters, and content groups, as well as assets such as product images, price lists, and SKUs from applications such as Oracle ATG Web Commerce Merchandising, must be published to your live sites along with any other items necessary for running the sites. These necessary items include individual pieces of content, images, style sheets, and the Web pages themselves. The process of publishing assets from a development environment to a live site is managed by ATG Content Administration. The following are some key ATG Content Administration terms that you need to be familiar with when you create and edit items in the Business Control Center:

·         Project: ATG Content Administration controls the lifecycle of items that are published to your Web sites through an entity called a project. A project contains a set oftasks that define the stages of the creation and publishing lifecycle. Typically, tasks include authoring, approval, and deployment. Tasks can be completed by different users. For example, the approval task could be completed by a supervisor, and the deployment task could be performed by a Web site administrator.
Often, a project represents a logical grouping of items related to a particular business goal. For example, you could have a project called “New home page” that contains all the items you need to create a home page on a site. Another example might be a project called “Executive bios” that you use to deploy updated versions of executive biographies to your corporate information pages. Any number of items can be managed and deployed by a single project.

·         Asset: In ATG Content Administration, any item that you create, edit, and deploy is referred to as an asset. Different ATG applications have their own types of assets. For example, Merchandising assets include products, SKUs, and price lists. ATG Personalization assets include user segments, targeters, and content groups. In several places in the Business Control Center interface, “asset” is used as a generic term for these items.

·         Versioning: As well as managing the creation and deployment of assets, ATG Content Administration performs a type of source control, called versioning, on each asset. When you create an asset, the system gives it the number 1. When you or another user edits the asset, a second version is created, and versions 1 and 2 are both stored in the system. This behavior has two purposes: it prevents conflicts when two or more people edit the same asset, and it allows you to recover from errors by reverting to a previous version of an asset at any time.

For detailed information on any of these terms, or for more information about versioning and deployment, refer to the ATG Content Administration Guide for Business Usersand the ATG Content Administration Programming Guide.

Creating a Project

As described for targeting assets in later chapters of this guide, the first step when you create an asset is to specify the project that will manage the creation, versioning, and deployment of the item. The following image shows the fields you use to create a project. This dialog box appears after you select the Targeting and Segmentation option on the Home page.
To complete this screen, follow the steps below:

a)    Enter a name and description for the project. The name is used to identify the project in various places in the UI, for example in the To Do list on the Home page. Making this name distinctive is recommended so that you and other users can distinguish it from other projects in your system. Project names do not have to be unique, however. The description is optional but can be helpful where many projects have similar names.

b)    Click Continue when you have finished.

At this point, the project’s Author task becomes active, and you can start creating assets. For targeting items, the creation process is described in detail in later chapters of this guide:

·         User Segments
·         Content Groups
·         Content Targeters

For other types of assets, refer to the documentation for the ATG application that manages them. For more detail on projects, refer to the ATG Content Administration Guide for Business Users.

Adding Assets to a Project

Most assets that you create or edit in the Business Control Center must be added to a project so that they can be versioned and deployed. To see the assets that have been added to the current project, display the Project tab, as shown below:
When you create an asset, for example a user segment, the asset is automatically added to the current project, and the label “NEW!” appears next to the asset in the Project tab. The new asset also appears in the Browse tab for this project. The asset will be published to the live Web site when the project is deployed. The asset is also added to the versioning system.
Adding or Changing Existing Assets
You can also add an existing asset to a project. To do so, locate the asset in the Browse tab, check the box to select it, and then click the Add to Project icon. The asset appears in the Project tab and will be published to the live site when the project is deployed.
You can make changes to an existing asset if necessary. To do so, highlight the asset in the Browse tab so that its details appear in the General and Rules tabs on the right. Make any changes you need, and click Save. The asset is automatically added to the project, and a new version of the asset will be added to the versioning system when the project is deployed.
Note: When you create an asset as part of a project, the asset will not appear in the Browse tab for other projects until the asset is checked in to the versioning system. Check-in typically occurs when the project is deployed (the Deploy task is completed). For more information, see the ATG Content Administration Guide for Business Users.

5.    What is Asset?
An asset is an object that forms part of an ATG application. An asset often represents a piece of content that you need to create or edit for display on a Web site—for example, a JPEG image, or a file containing press release text. A project can include personalization assets, such as scenarios and slots.
Always use Site Administration to edit site configurations. For more information, see the Multisite Administration and Configuration Guide.
Use ATG Content Administration to edit the content of file assets, slots, and scenarios. Always use the Merchandising user interface to edit the following assets:

·         All other personalization assets such as targeters and content groups
·         All commerce assets such as price lists, product catalogs, and promotions
·         ATG Search Merchandising assets such as facets
The following default asset types are created directly in the Business Control Center:
·         Simple text files
·         Segments (profile groups) for use in ATG Adaptive Customer Outreach campaigns
·         Commerce assets (via Merchandising)
·         Content groups and content targeters

Other asset types are created elsewhere (in the ACC or in a third-party application such as a graphics editor). They can then be added to ATG Content Administration through the Asset tab interface in the Business Control Center.
The following table shows where you create, edit, and add different types of ATG Content Administration assets.

Note: Your system might include custom asset types not shown here.

Kind of Asset
Example
Create and Edit
Add to Projects
Simple text files
.txt files, HTML files
Business Control Center
Business Control Center
Personalization assets
Profile groups (user segments), content groups, content targeters
Business Control Center
Business Control Center
Scenario assets
Scenarios, slots
ACC
Business Control Center
Image files
JPEGs
Third-party application
Business Control Center
Commerce assets
Catalogs, price lists, promotions
Merchandising
Merchandising

Note: Nested content groups and profile groups are not supported by ATG Content Administration, as the deployment system cannot detect that the “containing” group depends on the “contained” group and so deploys them together.

Asset Types

The following table lists the asset types that appear by default for ATG Content Administration. Additional asset types customized for your environment might also appear in the Business Control Center.

Asset types
Use for
WWW Binary File Asset
Any file except a text file. Examples: Image files, .zip files, video files. See Binary File Assets.
WWW Text File Asset
Any file that contains simple text. Examples: Plain text files, HTML files, JSPs. See Text File Assets.
Folder
Lets you add a folder to the asset hierarchy.
Targeter
Content group
Profile group
Segment
Slot
Scenario
Items corresponding to each asset type shown; for example, Targeter is an ATG Personalization content targeter. Most are not commonly added to projects by business users.
For more information on targeters and content groups, see the Business Control Center User’s Guide.
For more information on user segments, slots, and scenarios, see User Segment Assets andScenario and Slot Assets.
ATG Commerce asset types. For example:
Product
SKU
Price
Items corresponding to each asset type shown; for example SKU is an ATG Commerce SKU stored in the product catalog versioned repository. See the ATG Merchandising Guide for Business Users for more information.
The following sections provide details about adding and editing assets of each type shown above.
·         Binary File Assets
·         Text File Assets
·         User Segment Assets
·         Scenario and Slot Assets

Project Asset Lifecycle

The following diagram shows how a project uses an asset. In this example, the base versions of assets A and B are revised in a project and deployed to a site. The deployed version of each asset becomes version 2 of the asset in the repository.
The following list describes the stages in the lifecycle of an asset.

a)    Add assets to a project
When you add an asset to a project, a working version of the asset is automatically created. If the asset is new, it exists only as a working asset; no checked-in version exists, and it is visible only within the project.
b)    Edit the project asset
An asset is accessible only from a project, where it can be viewed, edited and saved. Changes that you save to a working version are visible only within the project, and are not accessible to other projects.
c)    Deploy and check in project assets
Project assets are checked in to the versioned repository after deployment to the target site is complete and verified. The checked-in asset becomes the latest version that is available to projects and users. For more information, see Versioning Assets.

View Project Assets

The Assets tab lists all project assets and provides summary information about each one. It also lets you access the pages where you create and edit assets.
To display the Assets tab for a specific project:
a)    Select the project from the Home page or the Available Projects page.
b)    Click the Assets tab.
The Assets tab contains the following information about project assets:
·         Asset Name: The name of the asset that was specified when it was added to the project. The name is also a link; clicking it displays the asset details page.
·         Type: The asset type. For possible values, see Asset Types.
·         Base Version: The version number of the asset that was used to create the working version in the project. The base version is the latest checked-in version. If there is no number in this column, the asset is new (in other words, it was created as part of this project), and only a working version exists.
·         Current Version: The number of the working version of this asset.
·         Status: Shows the status of the asset within the project:
o    Created: The asset is new. A working version exists, but there is no checked-in version.
o    Modified: At least one checked-in version of this asset already exists (in other words, the asset has been used in another project).
o    Deleted: The asset is in the process of being deleted, either through the ATG Control Center or through the Browse tab in the Business Control Center. (Note that no changes, including deletion, can be made to an asset unless the asset is in a project.) Assets do not appear as Deleted if you simply remove them from a project. For more information, see Deleting Assets from the System.
Asset display in the Business Control Center is configured through the View Mapping system. For more information, see Customizing Asset Display in the ATG Content Administration Programming Guide.

Asset Version Numbering

The versioning system maintains two types of version numbers:
·         Base version number: The latest checked-in version of the asset. When an asset is created, its initial base version number is 1.
·         Potential version number: The version number that is conditionally assigned to each checked-out version of an asset.
When you add an asset to a project, the system assigns it a potential version number. When the project checks in its asset, the system converts the potential version number to the new base version. If another project checked in the same asset earlier, the system assigns the next available number to the new base version.
For example:
a)    John adds the asset ExecProfiles to his project. ExecProfiles is new to the versioned repository, so it has base version number 1. When John adds ExecProfiles to his project, the system assigns his working version potential version number 2.
b)    While John is editing ExecProfiles, Susan also adds this asset to her own project, which gets potential version number 3.
c)    Susan deploys her project and its assets are checked in, including ExecProfiles. The system uses its potential version number and renumbers the base version number as 3.
d)    John gets an alert that tells him a conflict exists between his version of ExecProfiles and the new base version that Susan checked in. John can resolve this conflict either by overriding the base version, or by merging the two conflicting versions (see Resolving Asset Conflicts).
e)    John deploys his project and its assets are checked in. The system increments the base version number of ExecProfiles to 4.
To view an asset’s version number, display the Assets tab and examine the Base Version and Current Version columns. For more information, see View Project Assets.
More detailed information about an asset’s version history is available in the Assets > History tab. For more information, refer to Viewing an Asset’s History.

6.    How do we create an asset inside content Administration?
When you use ATG Merchandising, you build a catalog by creating assets that display in it, such as products and categories, or support the assets that display in it, such as media assets and promotions. This section describes how to create individual assets. Note that catalog and catalog folder assets are available only when you are using custom catalogs.
You can create assets from all tabs, although you should be aware of a few restrictions. The Browse tab contains views, each of which lets you create assets from a subset of types. The procedures below inform you of the appropriate Browse tab view for the type of assets you are creating. When using the Search tab, you can create assets only of the type you’ve recently searched for. The Project tab permits you to create all assets. Note that your administrator can specify additional limitations.
Refer to the following sections for instructions:
·         Creating Catalog Folders
·         Creating Catalogs
·         Creating Categories
·         Creating Products
·         Creating Media Folders
·         Creating Promotions
·         Creating Coupons
·         Creating SEO Tags
·         Creating Facets
·         Creating SKU Links
·         Creating Configuration Options

Commerce Asset
A commerce asset is any versioned item that you use to build a commerce Web site. Commerce assets include:
— catalogs
— catalog folders
— categories
— products
— SKUs
— promotions
— price lists
— media assets
— media folders
Some commerce assets, such as products, SKUs, and promotions, display on your live Web site, while others, such as catalog folders and media folders, are used to organize assets in your development environment.
In technical terms, commerce assets are repository items provided by ATG Commerce and managed in the versioning environment provided by ATG Content Administration. Unlike assets in ATG Content Administration, all commerce assets are repository assets, meaning they reside in a versioned database, even though some assets, such as categories, products, and SKUs, live in a SQL repository while other assets, such as media assets, live in a content repository.

Creating New Assets

This section provides an overview for creating commerce assets. The chapters that follow this one describe how to create and manage each type of asset Merchandising supports, including catalog folders, catalogs, categories, products, SKUs, search facets, promotions, pricing, coupons, media folders, and media items.
To create a new asset:
a)    In a Manage Commerce Assets project, use the Browse panel to navigate to the catalog asset that will be the new asset’s parent. For example, to create a new product, navigate to the category where you want to create the product.
See Using the Navigation Pane for more information.
b)    Click the Create button in the toolbar and select the type of asset you want to create.
The list of asset types of you see depends on the following:
·         The permissions associated with your user profile. Talk to your administrator if you have questions about your permissions.
·         Where you are in the catalog hierarchy in the left-hand Navigation pane.
For example, in the Browse panel, at the top level of a catalog, you can create a catalog or a category. If you drill down one more level, into a category, you can create a catalog, category, or product. See Browse Panel for more information.
c)    Fill in the property fields in the Details pane. Required fields are marked with a star icon. See Working with Asset Properties to learn how to use the different types of Merchandising property editors.
d)    Click Create.

Creating Assets from the Find Panel

In addition to creating assets within a hierarchy on the Browse panel, you can also create assets from the Find panel. In the Find panel, you can create whatever type of asset is currently selected in the For dropdown menu.
Unlike assets you create by selecting a parent in the Browse panel, most assets you create from the Find panel do not automatically have a parent asset specified in the Details pane. Unless you specify a parent, Merchandising creates the asset in a default location that may not be where you expect. See the chapters that follow this one for information about the default location for each type of newly created asset.

7.    How do we create tabs in BCC?
Add new link to the left navigation bar in BCC home page:
The ActivityManager (/atg/bizui/activity/ActivityManager) component configures the left-side navigation panel on the BCC home page. Each section of the panel is defined by an element of the ActivityManager’s activitySources array. New sections can be added to the panel by appending ActivitySource to this array.
An activity source controls the links on the left nav on the BCC home screen. All activity sources are registered with the ActivityManager component (/atg/bizui/activity/ActivityManager). When rendering the home page, the ActivityManager cycles through all the registered ActivitySource components and displays left navigation links for each of them on the BCC home page.
OOTB ActivitySource components used in BCC:
a)    Content Administration – /atg/bizui/activity/PublishingActivitySource
b)    Search Administration – /atg/bizui/activity/SearchingActivitySource
c)    Personalization – /atg/web/personalization/activity/PersonalizationActivitySource
d)    Merchanding – /atg/commerce/web/CommerceActivitySource
Each ActivitySource is associated with a sub-panel containing links to “generic activities”, which use specific URLs, and “workflow activity” links, which always present a page that allows the user to create a CA project that uses a workflow of a specific type. Each link is subject to access control, which is determined using activity configuration settings or workflow ACL settings.
To add a new link to the left navigation bar in BCC home page, follow the three steps, which are explained below:-
a)    Define A Custom Activity Source component
b)    Define the Generic Activity Definition File
c)    Register this new custom Activity Source with ActivityManager component

Step–1:  Define custom ActivitySource
Create a component that implement the atg.bizui.activity.ActivitySource interface. Here we use the OOTB atg.bizui.activity.PortalActivitySource class.

# /com/activity/SampleActivitySource       

$class=atg.bizui.activity.PortalActivitySource     
# The name and description for the entry that appears on the left side of the home page
activitySourceResourceBundle=org.com.webui.WebAppResources
activitySourceNameResource=activitySourceName
activitySourceDescriptionResource=activitySourceDescription

# Generic activity definitions
genericActivityDefinitionFiles=/com/activity/genericActivities.xml
genericActivityFileModificationInterval=every 300 seconds

securityConfiguration=/atg/dynamo/security/SecurityConfiguration
XMLToolsFactory=/atg/dynamo/service/xml/XMLToolsFactory
scheduler=/atg/dynamo/service/Scheduler

defaultCreateWorkflowURL=/atg/bcc/process?successURL=/AssetManager/assetManager.jsp

# Default URL for the main project page.
defaultProcessURL^=/atg/bizui/activity/PublishingActivitySource.defaultProcessURL

# Default URL for the workflow task page. All tasks use the AssetManager UI.
defaultTaskURL=/AssetManager/assetManager.jsp
fallbackPriority=2

Step – 2: Define the Generic Activity Definition File
Now we need to create the genericActivities.xml file which is specified in the genericActivityDefinitionFiles property of the new ActivitySource component.
The genericActivities.xml file specifies the links on the left nav used for browsing repositories.
#/com/activity/genericActivities.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE gsa-template
PUBLIC "-//Art Technology Group, Inc.//DTD General SQL Adapter//EN"
"http://www.atg.com/dtds/activitymanager/activitymanager_1.0.dtd">

<!-- This adds activity links to the "Non Versioned" section of the BCC home page -->
 <generic-activities>
 <!-- Add a link named "Edit My Sample Repository Items" -->
 <activity>
<id>editSampleItems</id>
 <resource-bundle>org.com.webui.WebAppResources</resource-bundle<display-name-resource>editSampleItems.displayName</display-name-resource>
 <description-resource>editSampleItems.description</description-resource>
 <destination-page>
<!-- This link takes the user to the AssetManager UI -->
<url>/AssetManager/assetManager.jsp</url!-- The clear-context flag clears any active Content Administration project references out of the user's session. -->
<clear-context>true</clear-context>
<!-- The ACL is optional. This ACL limits the visibility of this link to people with any of the epub roles. -->
<acl>Profile$role$epubAdmin:read;Profile$role$epubSuperAdmin:read;Profile$role$epubManager:read;Profile$role$epubUser:read</acl>
</destination-page>
</activity>
 </generic-activities>

Step – 3: Register this new Activity Source with ActivityManager
The path of the OOTB component is /atg/bizui/activity/ActivityManager

#/atg/bizui/activity/ActivityManager
 activitySources+=/com/activity/SampleActivitySource

8.    Define work flow?
Merchandising uses ATG Content Administration to manage and deploy versioned commerce assets. In order to use the ATG Content Administration mechanisms, Merchandising requires users to create and manage assets within a project.
The project enables a merchandiser to control the following aspects of asset management:
·         Creating, editing, and maintaining versioned commerce assets
·         Tracking the project’s assets through the review and approval processes
·         Deploying the project’s assets to a live web site
Merchandising includes the following project type selections on the Business Control Center Operations list:
·         Manage Commerce Assets

A merchandiser uses this project type to create, add, modify, organize, and delete commerce assets.

·         Administer Commerce Search (ATG Search is required)

An administrator uses this project type to configure Search Merchandising, including creating the search configuration tree and adding properties for property prioritization.
When you are logged in to the Business Control Center as a merchandiser, your Merchandising project can include and manage assets in the following categories. These appear as selections in the drop-down menu above the Browse pane:
·         Merchandising
·         Search Merchandising
·         SEO Tags
·         Price Lists
·         Site Administration (if your site is configured for the Site Administration utility)
·         Targeting and Segmentation
See the chapter Creating and Managing Projects in the ATG Content Administration Guide for Business Users, for basic information about projects, workflows, and versioned assets in ATG Content Administration. See Creating and Organizing Assets in the ATG Merchandising Guide for Business Users for information about creating merchandising assets.

Creating and Managing Projects

All business user activities for ATG Content Administration are conducted as part of a project. A project serves two complementary purposes:
·         Acts as a container of related assets
·         Controls the flow and assignment of asset management tasks. Project tasks typically include content creation, editing, review, approval, and deployment.
When you create a project, you specify the project type to use. Each project type has a workflow that determines the project tasks and their order of execution. For more technical information on workflows, see the ATG Content Administration Programming Guide.
When a project is complete, its assets are checked in to the ATG Content Administration versioned repository. The checked-in assets become the latest versions. Project assets are checked in only after project deployment to the production site is complete and the project is marked as complete.
This chapter describes how to use ATG Content Administration to manage and configure your projects. It includes the following sections:
·         Project Type and Workflow
·         Displaying Projects
·         Creating Projects
·         Adding Notes to a Project
·         Deleting Projects
·         Using the Properties Tab

Project Type and Workflow

Each project is driven by a workflow that acts as a template for the project, specifying various stages in its lifecycle. These stages include the tasks that Business Control Center displays for each project.
By default, ATG Content Administration provides one workflow that you can associate with project types. Depending on how ATG Content Administration is configured on your site, this workflow conforms to one of the following models:
·         Production-Only supports deployment to a single target.
·         Staging/Production supports deployment to two targets: first a staging target, then a production target.
Production-Only
The production-only workflow contains these tasks:
Task
Required action
Author
Add or edit project assets.
Content review
Sign off on asset changes.
Approve for production deployment
Approve deployment of project assets. You can specify immediate deployment, or defer until later. If deferred, actual deployment is started by the RecurringDeploymentService or an administrator.
Wait for production deployment completion
No action required.
Verify production deployment
Accept the deployment of assets to production. All assets are checked in and the project is marked as complete.
Staging/Production
The staging/production workflow contains these tasks:
Task
Required action
Author
Add or edit project assets.
Content review
Sign off on asset changes.
Approve for staging deployment
Approve deployment of project assets to the staging site. You can specify immediate deployment of assets, or defer deployment to action by the RecurringDeploymentService or an administrator.
Wait for staging deployment completion
No action required.
Verify staging deployment
Accept the deployment of assets to the staging site.
Approve for production deployment
Approve deployment of project assets to the production site. You can specify immediate deployment of assets, or defer deployment to action by the RecurringDeploymentService or an administrator.
Wait for production deployment completion
No action required.
Verify production deployment
Accept the deployment of assets to production. All assets are checked in and the project is marked as complete.
By default, the Home page only displays one project type, ATG Content Administration Project. If your product suite includes other ATG applications, for example Merchandising, additional project types appear.
There is usually is no relationship between a project’s workflow and project assets. Any type and number of assets can be added to any type of project workflow.
You can ascertain a project’s type on its Project page, at the top of any tab:
For detailed information about the workflows used in ATG Content Administration, see the ATG Content Administration Programming Guide.

Displaying Projects

The Home page displays a To Do list that lets you view and access active projects. Alternatively, the Available Projects page provides a comprehensive list of projects, and lets you search for and display projects that meet specific criteria.

Managing Tasks

Tasks represent the steps that users perform during a project’s lifecycle: for example, authoring, approving content, and deploying to a production site. A project’s workflow determines its tasks and their sequence.

Viewing Tasks

You can view tasks in two ways:
·         View all active tasks, either assigned to you or to all users, from the To Do list on the Home page.
·         View all tasks—complete, active, and pending—for a given project via its Tasks tab.
The Tasks tab for a project displays all project tasks and their status:
From this tab, you can:
·         Assign tasks to yourself or to other users.
·         Change the status of tasks assigned to you, and of unassigned tasks.
Project Workflow And Tasks
The set of project tasks and their sequence is determined by the project’s underlying workflow, which is associated with the project type. In order to modify this task list, you must edit the workflow in the ACC, or create a project type that uses a different workflow. However, you must not change the workflow of any active projects; doing so disassociates the workflow from the project and makes the project inaccessible. For information on editing workflows, see the ATG Personalization Guide for Business Users.
Task Assignment
The Owner column shows who is assigned to the current task. Some tasks represent steps in the workflow that are executed by the system and do not require an owner. In these cases, no dropdown list appears in the Owner column. See Assigning Tasks for information on how to change the owner of a task.
Task Actions
The current task contains a dropdown list in the Actions column, with several task-specific options for completing this task. For more information, see Completing Tasks.

View Project Assets

The Assets tab lists all project assets and provides summary information about each one. It also lets you access the pages where you create and edit assets.
To display the Assets tab for a specific project:
a)    Select the project from the Home page or the Available Projects page.
b)    Click the Assets tab.
The Assets tab contains the following information about project assets:
·         Asset Name: The name of the asset that was specified when it was added to the project. The name is also a link; clicking it displays the asset details page.
·         Type: The asset type. For possible values, see Asset Types.
·         Base Version: The version number of the asset that was used to create the working version in the project. The base version is the latest checked-in version. If there is no number in this column, the asset is new (in other words, it was created as part of this project), and only a working version exists.
·         Current Version: The number of the working version of this asset.
·         Status: Shows the status of the asset within the project:
o    Created: The asset is new. A working version exists, but there is no checked-in version.
o    Modified: At least one checked-in version of this asset already exists (in other words, the asset has been used in another project).
o    Deleted: The asset is in the process of being deleted, either through the ATG Control Center or through the Browse tab in the Business Control Center. (Note that no changes, including deletion, can be made to an asset unless the asset is in a project.) Assets do not appear as Deleted if you simply remove them from a project. For more information, see Deleting Assets from the System.
Asset display in the Business Control Center is configured through the View Mapping system. For more information, see Customizing Asset Display in the ATG Content Administration Programming Guide.

Workflows

A Merchandising project associates a workflow with a set of assets. The workflow specifies the number and sequence of tasks that determine the project’s life cycle.
Tasks such as the following are part of a typical workflow:
·         Create an asset, revise asset content, or delete an asset
·         Review new or changed content
·         Approve the project for deployment
·         Accept the deployment
The workflow also specifies whether to deploy only to a production target, or to a staging target as well. See Processes and Projects in the ATG Content Administration Programming Guide. The chapter Setting Up Deployment in the same manual contains instructions to define the deployment topology.
Workflow Security
The administrator can set access rights on a workflow and on its individual task elements. For information about this configuration, see the Managing User Access and Securityand Project Workflows chapters in the ATG Content Administration Programming Guide.
Customizing Workflows
By default, Merchandising projects use the common workflow that is found in:
<ATG10dir>/Publishing/base/config/atg/registry/data/epubworkflows/Common/commonWorkflow.wdl
The business requirements at your site may require a custom workflow, with additional steps such as an email notification or an extra authorization step.
If you need to create a custom workflow, consider these cautions:
·         It is preferable to copy an existing workflow and modify the copy than to create a completely new workflow.
·         Adhere as closely as possible to the original workflow, especially with respect to the elements that handle deployment and check-in.
·         Do not change the check-in model on a workflow. Asset check-in prior to project deployment (“early check-in”) is no longer supported. Assets are checked in immediately after a project is deployed and the deployment is verified/accepted (“late check-in”).
Important: All the workflows in use must use the same deployment model:
·         Production-only
·         Staging and production
For information about the workflows that are included with ATG Content Administration, see the Project Workflows chapter of the ATG Content Administration Programming Guide. In the same manual, the section Workflow Action Elements contains a list of workflow action elements.
The ACC provides the user interface for viewing, editing, and creating workflows. The application developer must create the custom workflow elements for your organization. For more information, see the following:
·         Using Workflows in the ATG Personalization Guide for Business Users
·         Creating and Configuring Workflows in the ATG Personalization Programming Guide
For information about modifying the user interface to accommodate workflow display, see Customizing the UI for Specific Tasks and Activities in the ATG Business Control Center Administration and Development Guide.

See: Creating Project Workflows

9.    Define snapshot? How to resolve snapshot mismatch error in BCC?
SnapShot are maintained against the each deployment server. A Successful deployment is treated as Snapshot.
Few Basics - Before Explaining the Root Cause :

·         For each successful deployment BCC creates snapshot ID & update it against each agent.
·         Snapshot ID should be same for all agents in a particular target - Production or Staging.
·         In BCC, for maintaining deployment status - each deployment agent (a server instance) maintains a dep-stat* file at"dataDirectory".
·         dataDirectory is configured in "DeploymentAgent" component.
·         ATG creates a dataDirectory if you explicitly don't define any path.
·         dept-stat file keep various information including the latest snapshot ID.
·         Whenever deployment agent(server instance) re-starts it takes the latest dep-stat file & update the snapshot ID from it.

Snapshot mismatch Error:

A snapshot mismatch is easy to see – the deployment will be halted and the following error message will be displayed below:

“Cannot perform a incremental deployment on target,  Check for snapshots mismatched on agents.”
This occurs when something has interrupted the publishing process and the DeploymentTarget (on the target we’re trying to publish to) has failed to update its latest snapshot id.  The snapshot id allows the DeploymentTarget to know what version of content it has received which in turns means the publishing process can verify if a project has already been published. Each snapshot id is mapped to a target and a project in the BCC server’s database schema.


BCC Snapshot ID is not valid:
Snapshot issue occurs during following scenarios.
a)    Previous deployment wasn't successful
b)    No installed snapshots found against server (DB Change).
c)    This issue will arise when you try to force the invalid snapshot id, or deleted snapshot id.

Steps for Solution:
a)    Open <BCC Domain>/dyn/admin (i.e. <host>/dyn/admin). Enter credential required and click on “JDBC Browser” link.
 
 
b)    Click on Execute query link.
 
c)    In query box write this below query and then execute:
 
Select * from EPUB_PRJ_TG_SNSHT ORDER BY to_number(SNAPSHOT_ID) DESC
 
 
You will see this below page which shows two targets (i.e. tar64 and tar66) repeatedly one target_id will be for Staging and second will be for Production, in just few next sections you will get to know how you can identify the environment’s target id.
 
d)    Fetch the recent snapshot for the corresponding server (Staging or Production) & copy the snapshot ID against it.
 
 
 
e)    Click on admin link then Click on “Component Browser” link and search the DeploymentServer component of atg.
http://<your_host>:<bcc_port>/dyn/admin/nucleus/atg/epub/DeploymentServer
http://<publishing server IP address>:<Pub-port>/dyn/admin/nucleus/atg/epub/DeploymentServer/
 
 
f)    You will see your targets & a text box "Force snapshot ID".
Upon clicking the above component link you will get this below page which is showing snapshot id for both environment (i.e. Staging and Production). according to the environment where you are getting snapshot mismatch issue please copy SNAPSHOT_ID from ResultSet screen and paste it into the corresponding Force snapshot id entry box and click on Init button next the box, i e.g. tar64 for production and tar66 for staging.
 
 
g)    Check BCC, if snapshot is updated or not.
h)    Resume your deployment. Again start the deployment you will be able to solve the snapshot mismatch general error.
Note: Similar steps, if the snapshot issue occurs for Production server.

10. What is difference between TODO and plan?

11. Define targeter, scenario and slot?
Any ATG application uses a common approach to personalizing its content.  It uses a combination of targeters, slots, and scenarios.
·         Targeters determine what type of content to show to individual customers.
·         Slots are the placeholders in web pages to store the customized content.
·         Scenarios are used to create the link between slots and targeters.
Scenarios create the link between slots and targeters in the following way:
·         When a customer accesses a JSP page that has a slot, the slot requests content.
·         The slot’s content request initiates a scenario.
·         The scenario contains rules that tell it which targeter to run.
·         The targeter determines the appropriate content for the customer.
·         The scenario returns the content to the JSP page and the slot is populated. Note that slots only store content. Other logic must exist on the JSP page to present the content:


12. When to use scenarios and when to use targeters?
·         Scenarios are triggered by events. If you want to personalize content as a result of a site visitor’s doing something specific (for example, logging in), use a scenario. Targeters are not event based.
·         The business rules you can set up through targeters are more flexible in some cases than scenarios. For this reason, if you need to set up highly complex rules to match content to visitors, use targeters.
·         Scenarios use a feature called slots to display dynamic content. Slots provide some powerful advantages over targeters (for example, you can set up empty slots that generate their own requests for content).
·         The reporting features of the Scenarios module rely on scenarios to supply data. If you want to use reports to track and analyze business information, you must set up appropriate scenarios.
·         As described above, scenarios are time aware. If you want to set up a long-term approach to content and visitor management, use scenarios.

Scenarios and targeters are, however, complementary features. You can use a combination of targeters and scenarios to achieve the results you want.