Non-versioned Repositories in BCC
This section explains about managing the non-versioned repositories (Orders, Inventory) in BCC. It includes series of steps, in which we will be updating the OOTB files as well as creating custom files too.
BCC HomePage |
Inventory HomePage |
Step 1: Create custom GenericActiviy in following path.
/config/my/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">
<generic-activities>
<!-- Add a link named "Edit Inventory" -->
<activity>
<id>editInventory</id>
<resource-bundle>my.webui.WebAppResources</resource-bundle>
<display-name-resource>editInventory.displayName</display-name-resource>
<description-resource>editInventory.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>
<!-- Add a link named "Edit Order" -->
<activity>
<id>editOrder</id>
<resource-bundle>my.webui.WebAppResources</resource-bundle>
<display-name-resource>editOrder.displayName</display-name-resource>
<description-resource>editOrder.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 2: Define custom ActivitySource.
/config/my/activity/ActivitySource.properties
$class=atg.bizui.activity.PortalActivitySource
# The name and description for the entry that appears on the left side of the home page.
activitySourceResourceBundle=my.webui.WebAppResources
activitySourceNameResource=activitySourceName
activitySourceDescriptionResource=activitySourceDescription
# Generic activity definitions
genericActivityDefinitionFiles=/my/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
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 3: Register your ActivitySource to OOTB ActivityManager.
/config/atg/bizui/activity/ActivityManager.properties
activitySources+=/my/activity/ActivitySource
Step 4: Create ViewConfiguration for Inventory and Order.
/config/my/web/assetmanager/InventoryViewConfiguration.properties
$class=atg.web.assetmanager.configuration.FilterableBrowseListViewConfiguration
# The path to the repository from which to draw the items
repositoryPath=/atg/commerce/inventory/InventoryRepository
# The type of items to display
assetTypeName=inventory
# Types the user is allowed to create in this view
createableTypesList=inventory
# Number of items to show per page
itemsPerPage=50
/config/my/web/assetmanager/OrderViewConfiguration.properties
$class=atg.web.assetmanager.configuration.FilterableBrowseListViewConfiguration
# The path to the repository from which to draw the items
repositoryPath=/atg/commerce/order/OrderRepository
# The type of items to display
assetTypeName=order
# Types the user is allowed to create in this view
createableTypesList=order
# Number of items to show per page
itemsPerPage=50
Step 5: Configure the Tabs and Buttons to TaskConfiguration.
/config/atg/web/assetmanager/configuration/taskConfiguration.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE task-configuration
PUBLIC "-//Art Technology Group, Inc.//DTD Asset Manager Task Configuration//EN"
'http://www.atg.com/dtds/web/assetmanager/taskConfiguration_1.0.dtd'>
<task-configuration>
<!-- Define an activity for editing the inventory repository -->
<activity id="editInventory" inherit-from="assetManager.defaultEdit">
<activity-name>editInventory</activity-name>
<!-- Configure the buttons on the toolbar -->
<operations>
<operation>create</operation>
<operation>delete</operation>
</operations>
<!-- Define tabs for the left pane -->
<tabs>
<tab-order>
<tab-id>browse</tab-id>
<tab-id>search</tab-id>
</tab-order>
<initial-tab>browse</initial-tab>
<!-- Configure the Browse tab with a list view of inventory items -->
<tab id="browse">
<display-name-resource>assetManager.tab.browse</display-name-resource>
<page>/browse/browseTab.jsp</page>
<views>
<view-order>
<view-id>editInventory.inventory</view-id>
</view-order>
<initial-view>editInventory.inventory</initial-view>
<view id="editInventory.inventory">
<resource-bundle>my.webui.WebAppResources</resource-bundle>
<display-name-resource>editInventory.browseTab.view.inventory</display-name-resource>
<configuration>/my/web/assetmanager/InventoryViewConfiguration</configuration>
<page>/browse/list.jsp</page>
</view>
</views>
</tab>
<!-- Configure the Search tab to allow searching for inventory items -->
<tab id="search">
<display-name-resource>assetManager.tab.search</display-name-resource>
<page>/search/searchTab.jsp</page>
<views>
<initial-view>form</initial-view>
<view id="form">
<page>/search/searchForm.jsp</page>
<item-types>
<item-type>/atg/commerce/inventory/InventoryRepository:inventory</item-type>
</item-types>
</view>
<view id="results">
<page>/search/searchResults.jsp</page>
</view>
</views>
</tab>
</tabs>
</activity>
<!-- Define an activity for editing the order repository -->
<activity id="editOrder" inherit-from="assetManager.defaultEdit">
<activity-name>editOrder</activity-name>
<!-- Configure the buttons on the toolbar -->
<operations>
<operation>create</operation>
<operation>delete</operation>
</operations>
<!-- Define tabs for the left pane -->
<tabs>
<tab-order>
<tab-id>browse</tab-id>
<tab-id>search</tab-id>
</tab-order>
<initial-tab>browse</initial-tab>
<!-- Configure the Browse tab with a list view of inventory items -->
<tab id="browse">
<display-name-resource>assetManager.tab.browse</display-name-resource>
<page>/browse/browseTab.jsp</page>
<views>
<view-order>
<view-id>editOrder.order</view-id>
</view-order>
<initial-view>editOrder.order</initial-view>
<view id="editOrder.order">
<resource-bundle>my.webui.WebAppResources</resource-bundle>
<display-name-resource>editOrder.browseTab.view.order</display-name-resource>
<configuration>/my/web/assetmanager/OrderViewConfiguration</configuration>
<page>/browse/list.jsp</page>
</view>
</views>
</tab>
<!-- Configure the Search tab to allow searching for inventory items -->
<tab id="search">
<display-name-resource>assetManager.tab.search</display-name-resource>
<page>/search/searchTab.jsp</page>
<views>
<initial-view>form</initial-view>
<view id="form">
<page>/search/searchForm.jsp</page>
<item-types>
<item-type>/atg/commerce/order/OrderRepository:order</item-type>
</item-types>
</view>
<view id="results">
<page>/search/searchResults.jsp</page>
</view>
</views>
</tab>
</tabs>
</activity>
</task-configuration>
Step 6: Create services for Inventory and Order.
/config/my/remote/controlcenter/service/inventory.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE application-configuration
PUBLIC "-//Art Technology Group, Inc.//DTD BCC Application Configuration //EN"
"http://www.atg.com/dtds/application-configuration/application-configuration_1.0.dtd">
<applications>
<application id="editInventory">
<resource-bundle>my.webui.WebAppResources</resource-bundle>
<display-name-resource>editInventory.displayName</display-name-resource>
<destination-page>
<url>/AssetManager/assetManager.jsp</url>
<query-parameter key="project" value="-1" />
<query-parameter key="activity" value="editInventory" />
</destination-page>
<acl>Profile$role$epubAdmin:read;Profile$role$epubSuperAdmin:read;Profile$role$epubManager:read;Profile$role$epubUser:read</acl>
<initializer>
</initializer>
<sort-priority>30</sort-priority>
<category>yourProjectExtras</category>
</application>
</applications>
config/my/remote/controlcenter/service/order.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE application-configuration
PUBLIC "-//Art Technology Group, Inc.//DTD BCC Application Configuration //EN"
"http://www.atg.com/dtds/application-configuration/application-configuration_1.0.dtd">
<applications>
<application id="editOrder">
<resource-bundle>my.webui.WebAppResources</resource-bundle>
<display-name-resource>editOrder.displayName</display-name-resource>
<destination-page>
<url>/AssetManager/assetManager.jsp</url>
<query-parameter key="project" value="-1" />
<query-parameter key="activity" value="editOrder" />
</destination-page>
<acl>Profile$role$epubAdmin:read;Profile$role$epubSuperAdmin:read;Profile$role$epubManager:read;Profile$role$epubUser:read</acl>
<initializer>
</initializer>
<sort-priority>30</sort-priority>
<category>yourProjectExtras</category>
</application>
</applications>
Step 7: Register your custom services to ApplicationConfigurationManager.
/config/atg/remote/controlcenter/service/ApplicationConfigurationManager.properties
applicationFiles+=/my/remote/controlcenter/service/inventory.xml,\
/my/remote/controlcenter/service/order.xml
Step 8: Add resource bundle.
/src/my/webui/WebAppResources.properties
editInventory.displayName=Manage Inventory
editInventory.description=Manage Inventory
editInventory.browseTab.view.inventory=inventory
assetManager.tab.browse=Browse
assetManager.tab.search=Search
activitySourceName=Non-Versioned
activitySourceDescription=Non-Versioned
editOrder.browseTab.view.order=Order
editOrder.displayName=Manage Order
editOrder.description=Manage Order
Step 9: Override the componets of Order and Inventory and point datasource to Non_versioned DB (Production Core)
dataSource=/atg/dynamo/service/jdbc/JTDataSource_production
Hi Iranna,
ReplyDeleteI am trying to do something similar to what you have posted, very useful information by the way Thank you.
But I am facing an issue with the resource bundle, for some reason the genericActivities.xml is not able to see the resource bundle and throws an exception.
Do you recall having an issue with the resource bundle?
Regards,
Obed
the title of for the source is added http://i.imgur.com/a6WVxsW.png but when I click on it it throws this exception:
Deletejavax.servlet.jsp.JspException: An error occurred while evaluating custom action attribute "value" with value "${activity.displayName}": An error occurred while
getting property "displayName" from an instance of class atg.bizui.activity.GenericActivity (java.util.MissingResourceException: Can't find resource for bundle j
ava.util.PropertyResourceBundle, key emanageLoyaltyProgram.displayName)
meaning that my genericActivities.xml file is not able to read the properties file.
Any suggestion?
Regards,
Obed
Hi, I finally made it, it was a typo that I was not seeing.
ReplyDeleteThank you.
Regards,
Obed
Hi, Where was the typo error? I mean in which file?
DeleteHi,
ReplyDeleteCool. Good wishes.
Regards,
Iranna
Hi Iranna,
ReplyDeleteI want to accomplish something like this:
http://i.imgur.com/CPS1IWV.jpg the list property just display as follows: http://i.imgur.com/Ff9PRMG.png Do you know if there is an easy way to do this on the viewMappingRepository? or I will need to create a custom .jsp to make this possible?
Regards,
Obed
Hi Obed,
ReplyDeleteSorry for the delay in response. I got your requirement. You can achieve it by doing below things.
1. You cannot have multiple properties in list level, so break down the list to relation and maintain multiple properties at relation level.
2. Create custom JSP for the page. (You can refer "Price" tab of sku)
3. Create Custom Formhandler to Update Item in BCC, and that formhandler should create relational item and store it in DB.
Let me know, if above information helps. Or let me know, if you have found other way to achieve the same.
Regards,
Iranna
This comment has been removed by the author.
ReplyDelete• Nice and good article. It is very useful for me to learn and understand easily. Thanks for sharing your valuable information and time. Please keep updatingAzure Online course
ReplyDeleteIt's nice to read article about cxml, it will definitely help me in future.
ReplyDeleteCommerce XML?
nice to read this article and learn.
ReplyDeleteMicrosoft Windows Azure Training | Online Course | Certification in chennai | Microsoft Windows Azure Training | Online Course | Certification in bangalore | Microsoft Windows Azure Training | Online Course | Certification in hyderabad | Microsoft Windows Azure Training | Online Course | Certification in pune
Hi ,
ReplyDeletei followed the instruction and its 11.3.2 ATG but some how listView is not coming under browse section.
Number of item is showing in down count area.
Could you pls suggest for the same.