ATG Concepts
ATG Concepts
ATG Concepts
0 More Next Blog»
ATG Concepts
My experiences
Thursday, 11 July 2013 Blog Archive
▼ 2013 (3)
ATG Basics ▼ July (1)
ATG Basics
ATG Nucleus
► May (2)
Nucleus is a component which organizes application components into a hierarchy, and assigns a name to each component, based on
its position in the hierarchy. Nucleus finds the component’s configuration file, creates the component based on the values in that
configuration file, and adds the component to the Nucleus namespace. About Me
itsmyway
In short, "Nucleus is a component/class which starts all the components required in dependency modules before it starts current
module components. It holds all the components started in its namespace and when ever we require its gets us instance of the View my complete pro
component".
Component here, is called as a combination of java class + properties file, where properties file defines the $class=<class name> and
$scope=request/session/global.
All nucleus components/classes extends GenericService
How Nucleus is injected in web.xml?
web.xml file in atg_bootstrap.war
<servlet>
<servlet-name>NucleusServlet</servlet-name>
<servlet-class>atg.nucleus.servlet.NucleusServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
Pipeline
Its a configuration defined with a series of servlets executed in a sequence on basis of each servlet's output.
Request handling Pipeline
JSP requests are handled by PageFilter which calls /atg/dynamo/servlet/dafpipeline/DynamoHandler to start the DAF servlet
pipeline.
Jhtml requests are handled by DynamoProxyServlet which calls DynamoHandler to start the DAS servlet pipeline.
DynamoHandler, is first pipeline servlet generates DynamoHTTPServletRequest (wraps HTTPServletRequest)
How PageFilter is injected in web.xml?
<filter>
<filter-name>PageFilter</filter-name>
<filter-class>atg.filter.dspjsp.PageFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PageFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
http://insideatg.blogspot.in/ 1/2
8/24/2016 ATG Concepts
Wednesday, 22 May 2013
ATG Development Issues and probable solutions
Issue 1,
atg.service.pipeline.RunProcessException: Chain [refreshOrder]: does not exist.
at atg.service.pipeline.PipelineManager.runProcess(PipelineManager.java:409)
at atg.commerce.order.OrderImpl.ensureContainers(OrderImpl.java:1269)
Solution,
Please check start up errors for PipelineManager component, you would have done some mistake in layered commercepipeline.xml
file changes.
Issue 2,
InvalidVersionException/
Order is out of date error in console and your pricing gets screwed in cart page :(
Solution,
Please cross verify your code where you would have set some variable at order level (means you would have changed the order
version) but you would have not updated order (means you would have not updated the repository version for it).
Update Order can be performed through updateOrder method of OrderManager.
Best practice: Always use synchronized block whenever you are playing with order.
Issue 3,
You found a global promotion is created in BCC which is getting applied for all the orders. Whenever user adds item to cart, goes to
cart page, promotional savings is shown to user instead of user being explicitly applying a coupon. And you wanted to disabled that
global promotion.
Solution,
To create a BCC project and disable the promotion.
Go to BCC, Go to merchandising commerce assets tab,
Go to Search, selection Promotions, in the filter select automatically applies to order is true and whose enabled value is true.
Filter displays all the global promotions which are enabled.
If you know the global promotion which you wanted to disable, select only that add to project, edit the enabled flag to false and
deploy the project. If you don't know the global promotion ???
Select all the promotions, add to project
Go to project tab, select all, add all to multiedit, and start changing each promotion's enabled flag to false and click "Save and Next"
Once all are saved.
Deploy the project to production.
Ajax in ATG
If you wanted to introduce Ajax calls in ATG, there are different ways to my understanding
1. Calling ajax methods on submit, atg form calls handle method to process request, response is set at form handler level, response
retrieved to a json object, and response flushed back from json object to html content.
2. Calling ajax methods on submit and using template invoker to flush content
First method is explained below,
Read more »
Home
Subscribe to: Posts (Atom)
Simple template. Powered by Blogger.
http://insideatg.blogspot.in/ 2/2