<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>betweenGo &#187; ATG</title>
	<atom:link href="http://betweengo.com/category/atg/feed/" rel="self" type="application/rss+xml" />
	<link>http://betweengo.com</link>
	<description>We make Ruby on Rails easy.  We make ATG easy.</description>
	<lastBuildDate>Tue, 06 Dec 2011 14:03:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Adding a New Link to a Commerce Pipeline</title>
		<link>http://betweengo.com/2011/06/22/adding-a-new-link-to-a-commerce-pipeline/</link>
		<comments>http://betweengo.com/2011/06/22/adding-a-new-link-to-a-commerce-pipeline/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 21:22:06 +0000</pubDate>
		<dc:creator>Frank Kim</dc:creator>
				<category><![CDATA[Commerce]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://betweengo.com/2011/06/22/adding-a-new-link-to-a-commerce-pipeline/</guid>
		<description><![CDATA[Only as strong as the weakest link. Part 2 by David&#8217;n'Sheila To add new links to a commerce pipeline you need to override the default definition for the appropriate commerce pipeline.&#160; Commerce pipelines are defined in XML so you use ATG’s XML combining feature to accomplish this. For example if you want to add a [...]
Related posts:<ol>
<li><a href='http://betweengo.com/2009/11/12/the-dangers-of-custom-atg-repository-ids/' rel='bookmark' title='The Dangers of Custom ATG Repository ID&rsquo;s.'>The Dangers of Custom ATG Repository ID&rsquo;s.</a></li>
<li><a href='http://betweengo.com/2009/09/08/update-profile-in-atg-commerce/' rel='bookmark' title='Update Profile in ATG Commerce'>Update Profile in ATG Commerce</a></li>
<li><a href='http://betweengo.com/2010/01/12/combining-xml-in-atg/' rel='bookmark' title='Combining XML in ATG'>Combining XML in ATG</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/afferent/461165947/"><img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Only as strong as the weakest link. Part 2 | Flickr" alt="Only as strong as the weakest link. Part 2 | Flickr" src="http://farm1.static.flickr.com/196/461165947_ae3cdcca07.jpg" /></a></p>
<p align="center"><a title="Only as strong as the weakest link. Part 2 | Flickr" href="http://www.flickr.com/photos/afferent/461165947/">Only as strong as the weakest link. Part 2</a> by <a title="Flickr: David&#39;n&#39;Sheila&#39;s Photostream" href="http://www.flickr.com/photos/afferent/">David&#8217;n'Sheila</a></p>
<p>To add new links to a commerce pipeline you need to override the default definition for the appropriate commerce pipeline.&#160; Commerce pipelines are defined in XML so you use <a title="Combining XML in ATG « betweenGo" href="http://betweengo.com/2010/01/12/combining-xml-in-atg/" target="_blank">ATG’s XML combining feature</a> to accomplish this.</p>
<p>For example if you want to add a new link to the ProcessOrder chain in the /atg/commerce/commercepipeline.xml you would create the following commercepipeline.xml in your local config.</p>
<pre>&lt;pipelinemanager&gt;
  &lt;pipelinechain name=&quot;processOrder&quot; xml-combine=&quot;append&quot;&gt;
    &lt;pipelinelink transaction=&quot;TX_MANDATORY&quot; name=&quot;authorizePayment&quot; xml-combine=&quot;replace&quot;&gt;
      &lt;processor jndi=&quot;/atg/commerce/order/processor/AuthorizePayment&quot; /&gt;
      &lt;transition returnvalue=&quot;1&quot; link=&quot;updateInventory&quot; /&gt;
    &lt;/pipelinelink&gt;
    &lt;pipelinelink name=&quot;updateInventory&quot; transaction=&quot;TX_MANDATORY&quot;&gt;
      &lt;processor jndi=&quot;/betweengo/commerce/inventory/processor/ProcUpdateInventory&quot; /&gt;
      &lt;transition returnvalue=&quot;1&quot; link=&quot;updateGiftRepository&quot; /&gt;
    &lt;/pipelinelink&gt;
&lt;/pipelinemanager&gt;</pre>
<p>In this example we added the new updateInventory link which is inserted between the authorizePayment and updateGiftRepository links.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fbetweengo.com%2F2011%2F06%2F22%2Fadding-a-new-link-to-a-commerce-pipeline%2F&amp;title=Adding%20a%20New%20Link%20to%20a%20Commerce%20Pipeline" id="wpa2a_2"><img src="http://betweengo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://betweengo.com/2009/11/12/the-dangers-of-custom-atg-repository-ids/' rel='bookmark' title='The Dangers of Custom ATG Repository ID&rsquo;s.'>The Dangers of Custom ATG Repository ID&rsquo;s.</a></li>
<li><a href='http://betweengo.com/2009/09/08/update-profile-in-atg-commerce/' rel='bookmark' title='Update Profile in ATG Commerce'>Update Profile in ATG Commerce</a></li>
<li><a href='http://betweengo.com/2010/01/12/combining-xml-in-atg/' rel='bookmark' title='Combining XML in ATG'>Combining XML in ATG</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://betweengo.com/2011/06/22/adding-a-new-link-to-a-commerce-pipeline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Specifying the Calculator per Promotion</title>
		<link>http://betweengo.com/2011/03/07/specifying-the-calculator-per-promotion/</link>
		<comments>http://betweengo.com/2011/03/07/specifying-the-calculator-per-promotion/#comments</comments>
		<pubDate>Mon, 07 Mar 2011 16:00:00 +0000</pubDate>
		<dc:creator>Frank Kim</dc:creator>
				<category><![CDATA[Commerce]]></category>

		<guid isPermaLink="false">http://betweengo.com/2011/03/07/specifying-the-calculator-per-promotion/</guid>
		<description><![CDATA[(Photo: calculator by ansik) ATG’s documentation, as far as I can’t tell, does not document how to specify the calculator for a promotion.&#160; Promotion’s have a repository property called pricingCalculatorService.&#160; In the ACC you won’t see it by default but you will see it if you show expert-level information.&#160; Also you can see it configured [...]
Related posts:<ol>
<li><a href='http://betweengo.com/2007/12/07/creating-buy-n-get-m-free-promotions/' rel='bookmark' title='Creating Buy N Get M Free Promotions'>Creating Buy N Get M Free Promotions</a></li>
<li><a href='http://betweengo.com/2009/12/15/nullpointerexception-in-atg-orderdiscountcalculator/' rel='bookmark' title='NullPointerException in ATG OrderDiscountCalculator'>NullPointerException in ATG OrderDiscountCalculator</a></li>
<li><a href='http://betweengo.com/2007/11/17/date-and-timestamp-repository-data-types/' rel='bookmark' title='Date and Timestamp Repository Data Types'>Date and Timestamp Repository Data Types</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://www.flickr.com/photos/ansik/304526237/"><img title="calculator on Flickr" alt="calculator on Flickr" src="http://farm1.static.flickr.com/109/304526237_6d1acf58bb.jpg" /></a></p>
<p align="center">(Photo: <a title="calculator on Flickr" href="http://www.flickr.com/photos/ansik/304526237/">calculator</a> by <a title="Flickr: ansik&#39;s Photostream" href="http://www.flickr.com/photos/ansik/">ansik</a>)</p>
<p>ATG’s documentation, as far as I can’t tell, does not document how to specify the calculator for a promotion.&#160; Promotion’s have a repository property called <tt>pricingCalculatorService</tt>.&#160; In the ACC you won’t see it by default but you will see it if you <a title="Viewing Expert-Level Information in the ACC" href="http://betweengo.com/2007/12/06/viewing-expert-level-information-in-the-acc/">show expert-level information</a>.&#160; Also you can see it configured in the Promotion repository (<tt>/atg/commerce/pricing/Promotions</tt>).</p>
<p>Having a repository property for each promotion allows you to specify different calculators for different promotions.&#160; But typically you will probably specify the same one for the same class of promotion, e.g. <tt>/betweengo/commerce/pricing/calculators/ItemDiscountCalculator</tt>.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fbetweengo.com%2F2011%2F03%2F07%2Fspecifying-the-calculator-per-promotion%2F&amp;title=Specifying%20the%20Calculator%20per%20Promotion" id="wpa2a_4"><img src="http://betweengo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://betweengo.com/2007/12/07/creating-buy-n-get-m-free-promotions/' rel='bookmark' title='Creating Buy N Get M Free Promotions'>Creating Buy N Get M Free Promotions</a></li>
<li><a href='http://betweengo.com/2009/12/15/nullpointerexception-in-atg-orderdiscountcalculator/' rel='bookmark' title='NullPointerException in ATG OrderDiscountCalculator'>NullPointerException in ATG OrderDiscountCalculator</a></li>
<li><a href='http://betweengo.com/2007/11/17/date-and-timestamp-repository-data-types/' rel='bookmark' title='Date and Timestamp Repository Data Types'>Date and Timestamp Repository Data Types</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://betweengo.com/2011/03/07/specifying-the-calculator-per-promotion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ATG Confirm Password Bug in ProfileFormHandler</title>
		<link>http://betweengo.com/2010/11/22/atg-confirm-password-bug-profileformhandler/</link>
		<comments>http://betweengo.com/2010/11/22/atg-confirm-password-bug-profileformhandler/#comments</comments>
		<pubDate>Mon, 22 Nov 2010 11:07:00 +0000</pubDate>
		<dc:creator>Frank Kim</dc:creator>
				<category><![CDATA[Personalization]]></category>

		<guid isPermaLink="false">http://betweengo.com/2010/11/22/atg-confirm-password-user-in-profileformhandler/</guid>
		<description><![CDATA[Long-billed Curlew birds by mikebaird Hi ATG Support, I noticed a bug in how ATG’s ProfileFormHandler (ATG Java API) handles confirm passwords when creating a new profile.  Note that this bug happens only if you persist anonymous profiles. During registration when you call handleCreate it calls createProfileItem and then updateProfileAttributes. In updateProfileAttributes it checks if [...]
Related posts:<ol>
<li><a href='http://betweengo.com/2008/04/23/changing-a-users-password/' rel='bookmark' title='Changing a user&#8217;s password'>Changing a user&#8217;s password</a></li>
<li><a href='http://betweengo.com/2006/08/22/eclipse-serial-version-uid-bug/' rel='bookmark' title='Eclipse Serial Version UID Bug'>Eclipse Serial Version UID Bug</a></li>
<li><a href='http://betweengo.com/2006/10/30/howto-stop-being-prompted-for-password-in-tortoisesvn/' rel='bookmark' title='HOWTO Stop Being Prompted For Password in TortoiseSVN'>HOWTO Stop Being Prompted For Password in TortoiseSVN</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/mikebaird/3011987508/"><img style="display: block; float: none; margin-left: auto; margin-right: auto;" title="Long-billed Curlew (Numenius americanus) birds on Morro Strand State Beach during a golden sunset. Also characteristic of Montana de Oro area to the south. | Flickr" src="http://farm4.static.flickr.com/3031/3011987508_fd91020b98.jpg" alt="Long-billed Curlew (Numenius americanus) birds on Morro Strand State Beach during a golden sunset. Also characteristic of Montana de Oro area to the south. | Flickr" /></a></p>
<p><a title="Long-billed Curlew (Numenius americanus) birds on Morro Strand State Beach during a golden sunset. Also characteristic of Montana de Oro area to the south. | Flickr" href="http://www.flickr.com/photos/mikebaird/3011987508/">Long-billed Curlew birds</a> by <a title="mikebaird's photostream | Flickr" href="http://www.flickr.com/photos/mikebaird/">mikebaird</a></p>
<blockquote><p>Hi ATG Support,</p>
<p>I noticed a bug in how ATG’s <a href="http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG9.0/apidoc/atg/userprofiling/ProfileFormHandler.html">ProfileFormHandler (ATG Java API)</a> handles confirm passwords when creating a new profile.  Note that this bug happens only if you <a title="Persistent Cart for Anonymous Users | betweenGo" href="http://betweengo.com/2010/05/03/persistent-cart-for-anonymous-users/">persist anonymous profiles</a>.</p>
<p>During registration when you call <a title="ProfileForm.handleCreate (ATG Java API)" href="http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG9.0/apidoc/atg/userprofiling/ProfileForm.html#handleCreate(atg.servlet.DynamoHttpServletRequest, atg.servlet.DynamoHttpServletResponse)">handleCreate</a> it calls <a title="ProfileForm.createProfileItem (ATG Java API)" href="http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG9.0/apidoc/atg/userprofiling/ProfileForm.html#createProfileItem(atg.servlet.DynamoHttpServletRequest, atg.servlet.DynamoHttpServletResponse)">createProfileItem</a> and then <a title="ProfileForm.updateProfileAttributes (ATG Java API)" href="http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG9.0/apidoc/atg/userprofiling/ProfileForm.html#updateProfileAttributes(atg.repository.MutableRepositoryItem, java.util.Dictionary, atg.servlet.DynamoHttpServletRequest, atg.servlet.DynamoHttpServletResponse, java.lang.String)">updateProfileAttributes</a>. In updateProfileAttributes it checks if the password matches the confirm password. If they don&#8217;t match it adds a form exception.</p>
<p>However at this point it has updated the profile attributes including the login. Therefore after the user sees the error about the passwords not matching, corrects it and resubmits the form she will see an error that the login is already taken.</p>
<p>The work around is to set creatNewUser to true but since the default value is false most developers will see this bug.</p></blockquote>
<p><strong>Update 12-22-2010:</strong> ATG confirmed this is a bug.</p>
<blockquote><p>Hi Frank,</p>
<p>Thanks for the information and details. I&#8217;m glad that using ProfileFormHandler.createNewUser=true works for you. You might want to periodically check the size of the dps_user table and purge the anonymous profiles, if needed.</p>
<p>For your reference, I have created PR#DPS-167714 &#8220;ProfileFormHandler Confirm Password&#8221; to track the issue.</p>
<p>Kind Regards,<br />
Kristi Coleman</p></blockquote>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fbetweengo.com%2F2010%2F11%2F22%2Fatg-confirm-password-bug-profileformhandler%2F&amp;title=ATG%20Confirm%20Password%20Bug%20in%20ProfileFormHandler" id="wpa2a_6"><img src="http://betweengo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://betweengo.com/2008/04/23/changing-a-users-password/' rel='bookmark' title='Changing a user&#8217;s password'>Changing a user&#8217;s password</a></li>
<li><a href='http://betweengo.com/2006/08/22/eclipse-serial-version-uid-bug/' rel='bookmark' title='Eclipse Serial Version UID Bug'>Eclipse Serial Version UID Bug</a></li>
<li><a href='http://betweengo.com/2006/10/30/howto-stop-being-prompted-for-password-in-tortoisesvn/' rel='bookmark' title='HOWTO Stop Being Prompted For Password in TortoiseSVN'>HOWTO Stop Being Prompted For Password in TortoiseSVN</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://betweengo.com/2010/11/22/atg-confirm-password-bug-profileformhandler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Load ATG Order</title>
		<link>http://betweengo.com/2010/11/14/load-atg-order/</link>
		<comments>http://betweengo.com/2010/11/14/load-atg-order/#comments</comments>
		<pubDate>Mon, 15 Nov 2010 07:20:00 +0000</pubDate>
		<dc:creator>Frank Kim</dc:creator>
				<category><![CDATA[Commerce]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://betweengo.com/2010/11/15/load-order/</guid>
		<description><![CDATA[Crystal Ball by David Reece You can always look up an order in the repository using it’s ID.&#160; But then you want to use the properties of this order object you will always be calling getPropertyValue and casting it to the type you expect. A better and much simpler way is to look up the [...]
Related posts:<ol>
<li><a href='http://betweengo.com/2009/08/17/how-to-debug-an-invalidversionexception-from-updating-an-atg-order/' rel='bookmark' title='How to Debug an InvalidVersionException from Updating an ATG Order'>How to Debug an InvalidVersionException from Updating an ATG Order</a></li>
<li><a href='http://betweengo.com/2009/11/12/the-dangers-of-custom-atg-repository-ids/' rel='bookmark' title='The Dangers of Custom ATG Repository ID&rsquo;s.'>The Dangers of Custom ATG Repository ID&rsquo;s.</a></li>
<li><a href='http://betweengo.com/2009/09/08/update-profile-in-atg-commerce/' rel='bookmark' title='Update Profile in ATG Commerce'>Update Profile in ATG Commerce</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://www.flickr.com/photos/spursfan_ace/1162117754/"><img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Crystal Ball | Flickr" alt="Crystal Ball | Flickr" src="http://farm2.static.flickr.com/1333/1162117754_e64afe710e.jpg" /></a><a title="Crystal Ball | Flickr" href="http://www.flickr.com/photos/spursfan_ace/1162117754/">Crystal Ball</a> by <a title="David Reece&#39;s Photostream | Flickr" href="http://www.flickr.com/photos/spursfan_ace/">David Reece</a></p>
<p>You can always look up an order in the repository using it’s ID.&#160; But then you want to use the properties of this order object you will always be calling <a title="RepositoryItem.getPropertyValue (ATG Java API)" href="http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG9.0/apidoc/atg/repository/RepositoryItem.html#getPropertyValue%28java.lang.String%29">getPropertyValue</a> and casting it to the type you expect.</p>
<p>A better and much simpler way is to look up the order using the <a title="OrderManager (ATG Java API)" href="http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG9.0/apidoc/atg/commerce/order/OrderManager.html">OrderManager</a>.&#160; Then you get a strongly typed <a title="Order (ATG Java API)" href="http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG9.0/apidoc/atg/commerce/order/Order.html">Order</a> object and don’t have have to deal with the repository.&#160; Life has become a little easier. <img src='http://betweengo.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<pre>OrderManager orderManager = getOrderManager;
Order order = orderManager.loadOrder(orderId);</pre>
<p>
  <br />Now that you have the order you can also get the profile for that order.</p>
<p></p>
<pre>RepositoryItem profile = getProfileTools().getProfileForOrder(order);</pre>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fbetweengo.com%2F2010%2F11%2F14%2Fload-atg-order%2F&amp;title=Load%20ATG%20Order" id="wpa2a_8"><img src="http://betweengo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://betweengo.com/2009/08/17/how-to-debug-an-invalidversionexception-from-updating-an-atg-order/' rel='bookmark' title='How to Debug an InvalidVersionException from Updating an ATG Order'>How to Debug an InvalidVersionException from Updating an ATG Order</a></li>
<li><a href='http://betweengo.com/2009/11/12/the-dangers-of-custom-atg-repository-ids/' rel='bookmark' title='The Dangers of Custom ATG Repository ID&rsquo;s.'>The Dangers of Custom ATG Repository ID&rsquo;s.</a></li>
<li><a href='http://betweengo.com/2009/09/08/update-profile-in-atg-commerce/' rel='bookmark' title='Update Profile in ATG Commerce'>Update Profile in ATG Commerce</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://betweengo.com/2010/11/14/load-atg-order/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Turning on Secure for ATG Applications</title>
		<link>http://betweengo.com/2010/11/10/turning-on-secure-for-atg-applications/</link>
		<comments>http://betweengo.com/2010/11/10/turning-on-secure-for-atg-applications/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 15:24:08 +0000</pubDate>
		<dc:creator>Frank Kim</dc:creator>
				<category><![CDATA[Configuration]]></category>

		<guid isPermaLink="false">http://betweengo.com/2010/11/10/turning-on-secure-for-atg-applications/</guid>
		<description><![CDATA[Closed for business by maistora&#8217;s Photostream &#124; Flickr Almost all web applications have some parts of their site they want to be secure such as login and profile pages. To enable security ATG has a ProtocolSwitchServlet, located at /atg/dynamo/servlet/dafpipeline/ProtocolSwitchServlet. Set the enable property to true and configure the other properties appropriately. The only other properties [...]
Related posts:<ol>
<li><a href='http://betweengo.com/2010/01/25/configuring-atg-to-send-email-via-comcast-smtp/' rel='bookmark' title='Configuring ATG to Send Email via Comcast SMTP'>Configuring ATG to Send Email via Comcast SMTP</a></li>
<li><a href='http://betweengo.com/2005/08/11/mysterious-404-errors-atg-j2ee-apps/' rel='bookmark' title='Mysterious 404 errors in ATG J2EE applications'>Mysterious 404 errors in ATG J2EE applications</a></li>
<li><a href='http://betweengo.com/2007/12/07/clientlockmanager-uselockserver-property-is-false-warning/' rel='bookmark' title='ClientLockManager useLockServer property is false warning'>ClientLockManager useLockServer property is false warning</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/maistora/3237164755/"><img style="display: block; float: none; margin-left: auto; margin-right: auto;" title="Switches | Flickr" src="http://farm4.static.flickr.com/3456/3237164755_e34da6809e.jpg" alt="Closed for business | Flickr" /></a><a title="Closed for business | Flickr" href="http://www.flickr.com/photos/maistora/3237164755/">Closed for business</a> by <a href="http://www.flickr.com/photos/maistora/">maistora&#8217;s Photostream | Flickr</a></p>
<p>Almost all web applications have some parts of their site they want to be secure such as login and profile pages.</p>
<p>To enable security ATG has a ProtocolSwitchServlet, located at <tt>/atg/dynamo/servlet/dafpipeline/ProtocolSwitchServlet.</tt> Set the <tt>enable</tt> property to true and configure the other properties appropriately.</p>
<p>The only other properties that you will need to configure are the <span style="font-family: Courier New;">secureList</span> property and the <tt>ignoreList</tt> property.  Examples of how these properties would be configured follow.</p>
<pre>secureList=/myapp/account,/myapp/checkout
ignoreList=/myapp/css,/myapp/javascript</pre>
<p>Optionally you might want to change the <tt>secureHostName</tt> and the <tt>httpsPort</tt> but typically it would be better to change <tt>siteHttpServerName</tt> and <tt>httpsPort</tt> respectively in <tt>/atg/dynamo/Configuration</tt>.</p>
<p>The default values for the other properties should be fine.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fbetweengo.com%2F2010%2F11%2F10%2Fturning-on-secure-for-atg-applications%2F&amp;title=Turning%20on%20Secure%20for%20ATG%20Applications" id="wpa2a_10"><img src="http://betweengo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://betweengo.com/2010/01/25/configuring-atg-to-send-email-via-comcast-smtp/' rel='bookmark' title='Configuring ATG to Send Email via Comcast SMTP'>Configuring ATG to Send Email via Comcast SMTP</a></li>
<li><a href='http://betweengo.com/2005/08/11/mysterious-404-errors-atg-j2ee-apps/' rel='bookmark' title='Mysterious 404 errors in ATG J2EE applications'>Mysterious 404 errors in ATG J2EE applications</a></li>
<li><a href='http://betweengo.com/2007/12/07/clientlockmanager-uselockserver-property-is-false-warning/' rel='bookmark' title='ClientLockManager useLockServer property is false warning'>ClientLockManager useLockServer property is false warning</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://betweengo.com/2010/11/10/turning-on-secure-for-atg-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ATG Log Error from JSP Page</title>
		<link>http://betweengo.com/2010/09/27/atg-log-error-from-jsp-page/</link>
		<comments>http://betweengo.com/2010/09/27/atg-log-error-from-jsp-page/#comments</comments>
		<pubDate>Mon, 27 Sep 2010 16:00:00 +0000</pubDate>
		<dc:creator>Frank Kim</dc:creator>
				<category><![CDATA[Page Development]]></category>
		<category><![CDATA[dsp]]></category>
		<category><![CDATA[Logging]]></category>

		<guid isPermaLink="false">http://betweengo.com/2010/09/27/atg-log-error-from-jsp-page/</guid>
		<description><![CDATA[&#34;The page cannot be displayed&#34; by Peter Kaminski Unlike this IKEA sign, you usually don’t want to display errors on your web pages.&#160; ATG allows you to log errors to the server log from a JSP page.&#160; Below is an example of how to do this.&#160; In this case if we find the price is [...]
Related posts:<ol>
<li><a href='http://betweengo.com/2010/03/26/set-atg-property-and-popup-window-after-clicking-on-link/' rel='bookmark' title='Set ATG Property And Popup Window After Clicking on Link'>Set ATG Property And Popup Window After Clicking on Link</a></li>
<li><a href='http://betweengo.com/2008/05/15/size-of-collection-jsp-dsp/' rel='bookmark' title='Size of collection in a JSP/DSP page'>Size of collection in a JSP/DSP page</a></li>
<li><a href='http://betweengo.com/2008/07/04/log-sql-on-atg/' rel='bookmark' title='Log SQL on ATG'>Log SQL on ATG</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/peterkaminski/30196012/"><img style="display: block; float: none; margin-left: auto; margin-right: auto" title="&quot;The page cannot be displayed&quot; | Flickr" alt="&quot;The page cannot be displayed&quot; | Flickr" src="http://farm1.static.flickr.com/23/30196012_d4f0e202b1.jpg" /></a> </p>
<p align="center"><a title="&quot;The page cannot be displayed&quot; | Flickr" href="http://www.flickr.com/photos/peterkaminski/30196012/">&quot;The page cannot be displayed&quot;</a> by <strong><a title="Flick: Peter Kaminski&#39;s Photostream" href="http://www.flickr.com/photos/peterkaminski/">Peter Kaminski</a></strong></p>
<p>Unlike this <a title="IKEA" href="http://www.ikea.com/">IKEA</a> sign, you usually don’t want to display errors on your web pages.&#160; ATG allows you to log errors to the server log from a JSP page.&#160; Below is an example of how to do this.&#160; In this case if we find the price is null we log an error to the server log.</p>
<pre>&lt;dsp:getvalueof id=&quot;price&quot; idtype=&quot;java.lang.Double&quot; param=&quot;currentItem.priceInfo.amount&quot;&gt;&lt;%if (price == null) {  atg.servlet.DynamoHttpServletRequest dreq = atg.servlet.ServletUtil.getDynamoRequest(request);  dreq.logError(&quot;price is null!”);}%&gt;&lt;/dsp:getvalueof&gt;</pre>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fbetweengo.com%2F2010%2F09%2F27%2Fatg-log-error-from-jsp-page%2F&amp;title=ATG%20Log%20Error%20from%20JSP%20Page" id="wpa2a_12"><img src="http://betweengo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://betweengo.com/2010/03/26/set-atg-property-and-popup-window-after-clicking-on-link/' rel='bookmark' title='Set ATG Property And Popup Window After Clicking on Link'>Set ATG Property And Popup Window After Clicking on Link</a></li>
<li><a href='http://betweengo.com/2008/05/15/size-of-collection-jsp-dsp/' rel='bookmark' title='Size of collection in a JSP/DSP page'>Size of collection in a JSP/DSP page</a></li>
<li><a href='http://betweengo.com/2008/07/04/log-sql-on-atg/' rel='bookmark' title='Log SQL on ATG'>Log SQL on ATG</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://betweengo.com/2010/09/27/atg-log-error-from-jsp-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Persistent Cart for Anonymous Users</title>
		<link>http://betweengo.com/2010/05/03/persistent-cart-for-anonymous-users/</link>
		<comments>http://betweengo.com/2010/05/03/persistent-cart-for-anonymous-users/#comments</comments>
		<pubDate>Mon, 03 May 2010 14:26:00 +0000</pubDate>
		<dc:creator>Frank Kim</dc:creator>
				<category><![CDATA[Personalization]]></category>
		<category><![CDATA[auto-login]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[profile]]></category>

		<guid isPermaLink="false">http://betweengo.com/2010/05/03/persistent-cart-for-anonymous-users/</guid>
		<description><![CDATA[Isn’t it iconic? by Mykl Roventine Convenience eCommerce sites want to make their users’ experience as convenient and intuitive as possible.&#160; One convenience found on most major eCommerce sites is remembering what the user put in his shopping cart, even if that person didn’t log in.&#160; Therefore when the user returns to the site he [...]
Related posts:<ol>
<li><a href='http://betweengo.com/2010/11/22/atg-confirm-password-bug-profileformhandler/' rel='bookmark' title='ATG Confirm Password Bug in ProfileFormHandler'>ATG Confirm Password Bug in ProfileFormHandler</a></li>
<li><a href='http://betweengo.com/2009/11/02/how-to-add-multiple-items-to-the-shopping-cart-in-atg/' rel='bookmark' title='How to Add Multiple Items to the Shopping Cart in ATG'>How to Add Multiple Items to the Shopping Cart in ATG</a></li>
<li><a href='http://betweengo.com/2009/07/17/how-to-import-and-create-users-in-oracle/' rel='bookmark' title='How to Import and Create Users in Oracle'>How to Import and Create Users in Oracle</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://www.flickr.com/photos/myklroventine/3520845782/"><img style="display: block; float: none; margin-left: auto; margin-right: auto" title="129/365 Isn’t it iconic? on Flickr" alt="129/365 Isn’t it iconic? on Flickr" src="http://farm4.static.flickr.com/3651/3520845782_01cfae6862.jpg" /></a> <a title="129/365 Isn’t it iconic? on Flickr" href="http://www.flickr.com/photos/myklroventine/3520845782/">Isn’t it iconic?</a> by <a title="Flickr: Mykl Roventine&#39;s Photostream" href="http://www.flickr.com/photos/myklroventine/">Mykl Roventine</a></p>
<p><strong>Convenience</strong></p>
<p>eCommerce sites want to make their users’ experience as convenient and intuitive as possible.&#160; One convenience found on most major eCommerce sites is remembering what the user put in his shopping cart, even if that person didn’t log in.&#160; Therefore when the user returns to the site he will see what he left in his shopping cart.</p>
<p><strong>Persistent Cart</strong></p>
<p>ATG makes it relatively simple to do this by:</p>
<ol>
<li>creating a profile in the repository (database) for all users that visit the website </li>
<li>automatically logging in users by cookie </li>
</ol>
<p>Therefore if a user returns, she/he will be automatically logged in and if there were any items in his cart they will be added to the current cart.</p>
<p><strong>Implementation</strong></p>
<ol>
<li>Turn on persisting anonymous profiles in the ProfileRequestServlet.
<pre># /atg/dynamo/servlet/dafpipeline/ProfileRequestServlet
persistAfterLogout=true
persistentAnonymousProfiles=true</pre>
</li>
<li>Turn on auto-login by cookie and turn off auto-login by basic authentication.
<pre># /atg/userprofiling/CookieManager
sendProfileCookies=true

# /atg/userprofiling/ProfileRequestServlet
verifyBasicAuthentication=false</pre>
</li>
<li>Make all profile properties not required except for login and password in userProfile.xml.&#160; Also make autoLogin true.
<pre>&lt;table name=&quot;dps_user&quot;&gt;
  &lt;property name=&quot;login&quot; required=&quot;true&quot; /&gt;
  &lt;property name=&quot;password&quot; required=&quot;true&quot; /&gt;
  &lt;property name=&quot;firstName&quot; required=&quot;false&quot; /&gt;
  &lt;property name=&quot;lastName&quot; required=&quot;false&quot; /&gt;
  &lt;property name=&quot;email&quot; required=&quot;false&quot; /&gt;
  &lt;property name=&quot;autoLogin&quot; default=&quot;true&quot; /&gt;
&lt;/table&gt;</pre>
</li>
</ol>
<p><strong>Notes</strong></p>
<p>When a profile is created for an anonymous user the login and password are set to the user’s ID (i.e. the profile’s repository ID).</p>
<p>If you are adding this functionality to an existing up and running site you may have to modify your user tables so that there no “not null” columns except for the id, login and password columns, you can leave those as how they were.&#160; Also you will need to set auto_login to true for all your existing users.</p>
<pre>update dps_user set auto_login = 1;</pre>
<p>To determine when the anonymous user was created look at the registrationDate profile property.&#160; To determine when was the last time the anonymous user logged in look at the lastActivity profile property.&#160; <a title="Configuring the Profile Tools Component" href="http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG9.1/persprog/wwhelp/wwhimpl/common/html/wwhelp.htm?context=persprog&amp;file=PersProgGuide.1.13.html">Both of these are updated by ATG’s TrackActivity scenario</a> which is in the DSS folder.</p>
<p>For further reading please see <a title="Tracking Guest Users" href="http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG9.1/persprog/wwhelp/wwhimpl/common/html/wwhelp.htm?context=persprog&amp;file=PersProgGuide.1.47.html">Tracking Guest Users</a> and <a title="Tracking Registered Users" href="http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG9.1/persprog/wwhelp/wwhimpl/common/html/wwhelp.htm?context=persprog&amp;file=PersProgGuide.1.47.html">Tracking Registered Users</a> in the <a title="ATG 9.1 Personalization Programming Guide" href="http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG9.1/persprog/wwhelp/wwhimpl/js/html/wwhelp.htm?href=PersProgGuide.1.47.html">ATG 9.1 Personalization Programming Guide</a>.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fbetweengo.com%2F2010%2F05%2F03%2Fpersistent-cart-for-anonymous-users%2F&amp;title=Persistent%20Cart%20for%20Anonymous%20Users" id="wpa2a_14"><img src="http://betweengo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://betweengo.com/2010/11/22/atg-confirm-password-bug-profileformhandler/' rel='bookmark' title='ATG Confirm Password Bug in ProfileFormHandler'>ATG Confirm Password Bug in ProfileFormHandler</a></li>
<li><a href='http://betweengo.com/2009/11/02/how-to-add-multiple-items-to-the-shopping-cart-in-atg/' rel='bookmark' title='How to Add Multiple Items to the Shopping Cart in ATG'>How to Add Multiple Items to the Shopping Cart in ATG</a></li>
<li><a href='http://betweengo.com/2009/07/17/how-to-import-and-create-users-in-oracle/' rel='bookmark' title='How to Import and Create Users in Oracle'>How to Import and Create Users in Oracle</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://betweengo.com/2010/05/03/persistent-cart-for-anonymous-users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Set ATG Repository Item Date or Timestamp Properties to the Current Time</title>
		<link>http://betweengo.com/2010/04/19/set-atg-repository-date-timestamp-properties-to-current-time/</link>
		<comments>http://betweengo.com/2010/04/19/set-atg-repository-date-timestamp-properties-to-current-time/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 13:05:00 +0000</pubDate>
		<dc:creator>Frank Kim</dc:creator>
				<category><![CDATA[Repository]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[timestamp]]></category>
		<category><![CDATA[useNowForDefault]]></category>

		<guid isPermaLink="false">http://betweengo.com/2010/04/19/set-atg-repository-item-date-or-timestamp-properties-to-the-current-time/</guid>
		<description><![CDATA[*Time* Ticking away&#8230; by Michel Filion This is a neat trick for automatically setting a date or timestamp property to the current time.  I learned it while perusing the ATG Repository Guide. Date and Timestamp Properties A repository item can use properties whose values are dates or timestamps, with the value set to the current [...]
Related posts:<ol>
<li><a href='http://betweengo.com/2007/11/17/date-and-timestamp-repository-data-types/' rel='bookmark' title='Date and Timestamp Repository Data Types'>Date and Timestamp Repository Data Types</a></li>
<li><a href='http://betweengo.com/2008/05/28/invalid-column-type-sqlexception-with-atg-repository/' rel='bookmark' title='Invalid column type SQLException with ATG Repository'>Invalid column type SQLException with ATG Repository</a></li>
<li><a href='http://betweengo.com/2007/02/07/user-defined-property-types/' rel='bookmark' title='ATG Repository User-Defined Property Types'>ATG Repository User-Defined Property Types</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://www.flickr.com/photos/mike9alive/1032525361/"><img style="display: block; float: none; margin-left: auto; margin-right: auto" title="*Time* Ticking away... on Flickr" src="http://farm2.static.flickr.com/1070/1032525361_ca7c9e404d.jpg" alt="*Time* Ticking away... on Flickr" /></a> <a title="*Time* Ticking away... on Flickr" href="http://www.flickr.com/photos/mike9alive/1032525361/">*Time* Ticking away&#8230;</a> by <a title="Flickr: Michel Filion's Photostream" href="http://www.flickr.com/photos/mike9alive/">Michel Filion</a></p>
<p>This is a neat trick for automatically setting a date or timestamp property to the current time.  I learned it while perusing the <a title="ATG 6 Repository Guide" href="http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG6.4.0/repository/">ATG Repository Guide</a>.</p>
<blockquote><p><strong><a title="Date and Timestamp Properties" href="http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG6.4.0/repository/repository0705.html">Date and Timestamp Properties</a></strong></p>
<p>A repository item can use properties whose values are dates or timestamps, with the value set to the current date or time, using the <a title="Date (Java 2 Platform SE 5.0)" href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html">java.util.Date</a>, <a title="Date (Java 2 Platform SE 5.0)" href="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Date.html">java.sql.Date</a>, or <a title="Timestamp (Java 2 Platform SE 5.0)" href="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Timestamp.html">java.sql.Timestamp</a> classes. You can have a property whose value is set to the current time or date at the moment a repository item is created. You can do this by setting the feature descriptor attribute useNowForDefault. For example:</p>
<pre>&lt;property name="creationDate" data-type="timestamp"&gt;
  &lt;attribute name="useNowForDefault" value="true"/&gt;
&lt;/property&gt;</pre>
<p>For more information about this technique, see the <a title="Assigning FeatureDescriptorValues with the &lt;attribute&gt; Tag" href="http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG6.4.0/repository/repository0712.html#assigningfeaturedescriptorvalues01">Assigning FeatureDescriptorValues with the &lt;attribute&gt; Tag</a> section in this chapter.</p></blockquote>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fbetweengo.com%2F2010%2F04%2F19%2Fset-atg-repository-date-timestamp-properties-to-current-time%2F&amp;title=Set%20ATG%20Repository%20Item%20Date%20or%20Timestamp%20Properties%20to%20the%20Current%20Time" id="wpa2a_16"><img src="http://betweengo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://betweengo.com/2007/11/17/date-and-timestamp-repository-data-types/' rel='bookmark' title='Date and Timestamp Repository Data Types'>Date and Timestamp Repository Data Types</a></li>
<li><a href='http://betweengo.com/2008/05/28/invalid-column-type-sqlexception-with-atg-repository/' rel='bookmark' title='Invalid column type SQLException with ATG Repository'>Invalid column type SQLException with ATG Repository</a></li>
<li><a href='http://betweengo.com/2007/02/07/user-defined-property-types/' rel='bookmark' title='ATG Repository User-Defined Property Types'>ATG Repository User-Defined Property Types</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://betweengo.com/2010/04/19/set-atg-repository-date-timestamp-properties-to-current-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Set ATG Property And Popup Window After Clicking on Link</title>
		<link>http://betweengo.com/2010/03/26/set-atg-property-and-popup-window-after-clicking-on-link/</link>
		<comments>http://betweengo.com/2010/03/26/set-atg-property-and-popup-window-after-clicking-on-link/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 23:55:21 +0000</pubDate>
		<dc:creator>Frank Kim</dc:creator>
				<category><![CDATA[Page Development]]></category>
		<category><![CDATA[dsp]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://betweengo.com/2010/03/26/set-atg-property-and-popup-window-after-clicking-on-link/</guid>
		<description><![CDATA[la cuarta ventana by bachmont&#160; Sometimes when you click on a link in an ATG JSP/DSP page you want a property of an ATG component to be set as well.&#160; For example: &#60;dsp:a href=&#34;foo.jsp&#34;&#62;Foo &#60;dsp:property bean=&#34;BarFormHandler.baz&#34; paramvalue=&#34;index&#34;/&#62; &#60;/dsp:a&#62; What gets tricky is if you also want a popup window to display the contents of this [...]
Related posts:<ol>
<li><a href='http://betweengo.com/2009/08/31/how-to-set-array-property-in-atg-form/' rel='bookmark' title='How to Set an Array Property in an ATG Form'>How to Set an Array Property in an ATG Form</a></li>
<li><a href='http://betweengo.com/2007/07/20/submitting-an-atg-form-using-a-text-link/' rel='bookmark' title='Submitting an ATG Form Using a Text Link'>Submitting an ATG Form Using a Text Link</a></li>
<li><a href='http://betweengo.com/2009/08/12/atg-currency-converter-not-working-with-jstl-c-set/' rel='bookmark' title='ATG Currency Converter Not Working With JSTL c:set'>ATG Currency Converter Not Working With JSTL c:set</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://www.flickr.com/photos/bachmont/2808616510/"><img title="la cuarta ventana on Flickr" style="display: block; float: none; margin-left: auto; margin-right: auto" alt="la cuarta ventana on Flickr" src="http://farm4.static.flickr.com/3007/2808616510_51933a7e86.jpg" /></a><a title="la cuarta ventana on Flickr" href="http://www.flickr.com/photos/bachmont/2808616510/">la cuarta ventana</a> by <a title="Flickr: bachmont&#39;s Photostream" href="http://www.flickr.com/photos/bachmont/">bachmont</a>&#160;</p>
<p>Sometimes when you click on a link in an ATG JSP/DSP page you want a property of an ATG component to be set as well.&#160; For example:</p>
<pre>&lt;dsp:a href=&quot;foo.jsp&quot;&gt;Foo
  &lt;dsp:property bean=&quot;BarFormHandler.baz&quot; paramvalue=&quot;index&quot;/&gt;
&lt;/dsp:a&gt;</pre>
<p>What gets tricky is if you also want a popup window to display the contents of this link.</p>
<p><strong>The Wrong Way</strong></p>
<p>I tried adapting the instructions from the tutorial <a title="Popup Windows | open new customised windows with JavaScript" href="http://www.yourhtmlsource.com/javascript/popupwindows.html">Popup Windows | open new customised windows with JavaScript</a>.</p>
<pre>&lt;dsp:a href=&quot;javascript:poptastic('foo.jsp');&quot;&gt;Foo
  &lt;dsp:property bean=&quot;BarFormHandler.baz&quot; paramvalue=&quot;index&quot;/&gt;
&lt;/dsp:a&gt;</pre>
<p>This does not work, i.e. the setter for baz in BarFormHandler is never called.</p>
<p><strong>The Brute Force Way</strong></p>
<p>I then reverted to the original DSP and looked at the outputted HTML.&#160; Based on that I updated the DSP like this.</p>
<pre>&lt;% atg.servlet.DynamoHttpServletRequest dreq = atg.servlet.ServletUtil.getCurrentRequest(); %&gt;
&lt;a href=&quot;javascript:poptastic('foo.jsp?_DARGS=/betweengo/test.jsp_AF&amp;_dynSessConf=&lt;%= dreq.getSessionConfirmationNumber() %&gt;&amp;_D%3A/betweengo/BarFormHandler.baz=+&amp;/betweengo/BarFormHandler.baz=&lt;dsp:valueof param=&quot;index&quot; /&gt;');&quot;&gt;Foo&lt;/a&gt;</pre>
<p>This works but is grotesque.</p>
<p><strong>The Good Idea That Did Not Work</strong></p>
<p>Then I realized I could just set a parameter in the URL and have the form handler use the value to set the property.</p>
<pre>&lt;a href=&quot;javascript:poptastic('foo.jsp?index=&lt;dsp:valueof param=&quot;index&quot; /&gt;');&quot;&gt;Foo&lt;/a&gt;</pre>
<p>And in BarFormHandler</p>
<pre>public boolean beforeSet(DynamoHttpServletRequest req,
            DynamoHttpServletResponse res) throws DropletFormException {

  String indexParam = request.getParameter(&quot;index&quot;);
  setIndex(Integer.parseInt(indexParam));

  return super.beforeSet(request, response);
}</pre>
<p>This did not work plus I did not really like it because now I have a beforeSet method that is called for every single request.</p>
<p><strong>The Winner</strong></p>
<p>I then realized I did not read the tutorial <a title="Popup Windows | open new customised windows with JavaScript" href="http://www.yourhtmlsource.com/javascript/popupwindows.html">Popup Windows | open new customised windows with JavaScript</a> carefully.&#160; There is a more elegant way to call the JavaScript which degrades gracefully for browsers that don’t support JavaScript.</p>
<pre>&lt;dsp:a href=&quot;foo.jsp&quot; onclick=&quot;poptastic(this.href);return false;&quot;&gt;Foo
  &lt;dsp:property bean=&quot;BarFormHandler.baz&quot; paramvalue=&quot;index&quot;/&gt;
&lt;/dsp:a&gt;</pre>
<p>This works, is elegant and requires just adding the onclick attribute to the original DSP.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fbetweengo.com%2F2010%2F03%2F26%2Fset-atg-property-and-popup-window-after-clicking-on-link%2F&amp;title=Set%20ATG%20Property%20And%20Popup%20Window%20After%20Clicking%20on%20Link" id="wpa2a_18"><img src="http://betweengo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://betweengo.com/2009/08/31/how-to-set-array-property-in-atg-form/' rel='bookmark' title='How to Set an Array Property in an ATG Form'>How to Set an Array Property in an ATG Form</a></li>
<li><a href='http://betweengo.com/2007/07/20/submitting-an-atg-form-using-a-text-link/' rel='bookmark' title='Submitting an ATG Form Using a Text Link'>Submitting an ATG Form Using a Text Link</a></li>
<li><a href='http://betweengo.com/2009/08/12/atg-currency-converter-not-working-with-jstl-c-set/' rel='bookmark' title='ATG Currency Converter Not Working With JSTL c:set'>ATG Currency Converter Not Working With JSTL c:set</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://betweengo.com/2010/03/26/set-atg-property-and-popup-window-after-clicking-on-link/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enabling non-XA Resources in JBoss 4.2 with ATG</title>
		<link>http://betweengo.com/2010/01/28/enabling-non-xa-resources-in-jboss-4-2-with-atg/</link>
		<comments>http://betweengo.com/2010/01/28/enabling-non-xa-resources-in-jboss-4-2-with-atg/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 16:31:00 +0000</pubDate>
		<dc:creator>Frank Kim</dc:creator>
				<category><![CDATA[Configuration]]></category>
		<category><![CDATA[ATG]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SOLID]]></category>

		<guid isPermaLink="false">http://betweengo.com/2010/01/28/enabling-non-xa-resources-in-jboss-4-2-with-atg/</guid>
		<description><![CDATA[(Photo: a dog and it&#8217;s boss by Pixel Addict) ATG documents how to enable non-XA resources in JBoss 4.2 for SOLID.&#160; We ended up following the same instructions to work with Oracle. JBoss Note: JBoss 4.2 by default assumes XA drivers, which some ATG applications use; however, there are no XA drivers for SOLID. To [...]
Related posts:<ol>
<li><a href='http://betweengo.com/2008/07/05/enabling-trace-level-debugging-in-jboss/' rel='bookmark' title='Enabling Trace Level Debugging in JBoss'>Enabling Trace Level Debugging in JBoss</a></li>
<li><a href='http://betweengo.com/2009/07/20/create-additional-jboss-application-server-configurations/' rel='bookmark' title='Create Additional JBoss Application Server Configurations'>Create Additional JBoss Application Server Configurations</a></li>
<li><a href='http://betweengo.com/2009/07/21/namenotfoundexceptions-during-start-up-of-atg-application-on-jboss/' rel='bookmark' title='NameNotFoundExceptions during start up of ATG application on JBoss'>NameNotFoundExceptions during start up of ATG application on JBoss</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://www.flickr.com/photos/pixel_addict/377682831/"><img title="a dog and it&#39;s boss on Flickr" alt="a dog and it&#39;s boss on Flickr" src="http://farm1.static.flickr.com/156/377682831_fa4ecd522f.jpg" /></a>     <br />(Photo: <a title="a dog and it&#39;s boss on Flickr" href="http://www.flickr.com/photos/pixel_addict/377682831/">a dog and it&#8217;s boss</a> by <a title="Flickr: Pixel Addict&#39;s Photostream" href="http://www.flickr.com/photos/pixel_addict/">Pixel Addict</a>)</p>
<p>ATG documents how to enable non-XA resources in JBoss 4.2 for SOLID.&#160; We ended up following the same instructions to work with Oracle. </p>
<blockquote><p>JBoss Note: JBoss 4.2 by default assumes XA drivers, which some ATG applications use; however, there are no XA drivers for SOLID. To enable multiple non-XA resources in JBoss 4.2, add the property in bold text to the <tt>jbossjta-properties.xml</tt> file, under the <tt>&lt;property depends=&quot;arjuna&quot; name=&quot;jta&quot;&gt;</tt> tag:</p>
<pre>&lt;property depends=&quot;arjuna&quot; name=&quot;jta&quot;&gt;
  <strong>&lt;property name=&quot;com.arjuna.ats.jta.allowMultipleLastResources&quot; value=&quot;true&quot;/&gt;</strong></pre>
<p>You may still see warnings in your log file, but ATG applications will run correctly. To suppress these warnings, add the following to your jboss-log4j.xml file:</p>
<pre>&lt;category name=&quot;com.arjuna.atg.jta.logging&quot;&gt;
  &lt;priority value=&quot;ERROR&quot;/&gt;
&lt;/category&gt;</pre>
</blockquote>
<p>For further reading please see <a title="Starting the SOLID SQL Database" href="http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG9.1/atginstall/wwhelp/wwhimpl/common/html/wwhelp.htm?context=atginstall&amp;file=ATGInstallationGuide.1.24.html">Starting the SOLID SQL Database</a> document in the <a title="Running Nucleus-Based Applications" href="http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/ATG9.1/atginstall/wwhelp/wwhimpl/common/html/wwhelp.htm?context=atginstall&amp;file=ATGInstallationGuide.1.23.html">Running Nucleus-Based Applications</a> section of the ATG Installation and Configuration Guide.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fbetweengo.com%2F2010%2F01%2F28%2Fenabling-non-xa-resources-in-jboss-4-2-with-atg%2F&amp;title=Enabling%20non-XA%20Resources%20in%20JBoss%204.2%20with%20ATG" id="wpa2a_20"><img src="http://betweengo.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://betweengo.com/2008/07/05/enabling-trace-level-debugging-in-jboss/' rel='bookmark' title='Enabling Trace Level Debugging in JBoss'>Enabling Trace Level Debugging in JBoss</a></li>
<li><a href='http://betweengo.com/2009/07/20/create-additional-jboss-application-server-configurations/' rel='bookmark' title='Create Additional JBoss Application Server Configurations'>Create Additional JBoss Application Server Configurations</a></li>
<li><a href='http://betweengo.com/2009/07/21/namenotfoundexceptions-during-start-up-of-atg-application-on-jboss/' rel='bookmark' title='NameNotFoundExceptions during start up of ATG application on JBoss'>NameNotFoundExceptions during start up of ATG application on JBoss</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://betweengo.com/2010/01/28/enabling-non-xa-resources-in-jboss-4-2-with-atg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
