<?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>The LiveCycle Lane</title>
	<atom:link href="http://blogs.adobe.com/livecyclelane/feed" rel="self" type="application/rss+xml" />
	<link>http://blogs.adobe.com/livecyclelane</link>
	<description>Building Applications in the LiveCycle Lane</description>
	<lastBuildDate>Fri, 30 Oct 2009 14:59:23 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>A simple approval process</title>
		<link>http://blogs.adobe.com/livecyclelane/2009/10/a_simple_approval_process.html</link>
		<comments>http://blogs.adobe.com/livecyclelane/2009/10/a_simple_approval_process.html#comments</comments>
		<pubDate>Fri, 30 Oct 2009 14:59:23 +0000</pubDate>
		<dc:creator>Ernest Ruppenthal</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Approval Process]]></category>
		<category><![CDATA[LiveCycle]]></category>
		<category><![CDATA[Process Designer]]></category>
		<category><![CDATA[User Service]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/livecyclelane/2009/10/a_simple_approval_process.html</guid>
		<description><![CDATA[Designing an approval process is vastly simplified in Workbench ES2. The ES User service has been deprecated and replaced with single/multi-user versions &#8212; specifically the Assign Task and Assign Multiple Tasks service operations. First I&#8217;ll take a look at the &#8230; <a href="http://blogs.adobe.com/livecyclelane/2009/10/a_simple_approval_process.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Designing an approval process is vastly simplified in Workbench ES2.  The ES User service has been deprecated and replaced with single/multi-user versions &#8212; specifically the <i>Assign Task</i> and <i>Assign Multiple Tasks</i> service operations. First I&#8217;ll take a look at the <i>Assign Task</i> operation.</p>
<p>The property sheet for <i>Assign Task</i> contains a few new property groups.  The asset and action profile to be presented to the user are defined in the <i>Presentation &amp; Data</i> section.</p>
<p><img alt="UserService1.JPG" src="http://blogs.adobe.com/livecyclelane/2009/10/30/UserService1.JPG" class="mt-image-none" /></p>
<p>The <i>User Actions</i> section simplifies the configuration of user actions, which options are presented to the end user and what will happen when a specific option is selected.</p>
<p><img alt="UserService2.JPG" src="http://blogs.adobe.com/livecyclelane/2009/10/30/UserService2.JPG" class="mt-image-none" /></p>
<p>You can even define a confirmation message to appear when an action is selected.</p>
<p><img alt="ActionProperties.JPG" src="http://blogs.adobe.com/livecyclelane/2009/10/30/ActionProperties.JPG" class="mt-image-none" /></p>
<p>The <i>Workspace User Interface</i> contains an <i>Approval Container</i> option that enables features within Workspace that allow end users to see the review status and add comments.  This is particularly useful with the Multi-user task when documents need to be reviewed by a number of different people.</p>
<p><img alt="UserService4.JPG" src="http://blogs.adobe.com/livecyclelane/2009/10/30/UserService4.JPG" class="mt-image-none" /></p>
<p>Be aware that property sheets in Process Designer now contain a Basic/All filter.  When Basic is selected (which it is by default), only the most commonly used property groups for that service operation are displayed.</p>
<p><img alt="UserService3.JPG" src="http://blogs.adobe.com/livecyclelane/2009/10/30/UserService3.JPG" class="mt-image-none" /></p>
<p>Here again is my sample application that demonstrates pre-population of a form on process initiation as well as this simple approval process: <a href="http://blogs.adobe.com/livecyclelane/2009/10/28/LeaveRequest.lca">LeaveRequest.lca</a></p>
<p>Ernest</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/livecyclelane/2009/10/a_simple_approval_process.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Data pre-population on initiating a process</title>
		<link>http://blogs.adobe.com/livecyclelane/2009/10/data_pre-population_on_inititiating_a_process.html</link>
		<comments>http://blogs.adobe.com/livecyclelane/2009/10/data_pre-population_on_inititiating_a_process.html#comments</comments>
		<pubDate>Wed, 28 Oct 2009 15:55:17 +0000</pubDate>
		<dc:creator>Ernest Ruppenthal</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[action profiles]]></category>
		<category><![CDATA[LiveCycle Workbench]]></category>
		<category><![CDATA[pre-population]]></category>
		<category><![CDATA[prepare data process]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/livecyclelane/2009/10/data_pre-population_on_inititiating_a_process.html</guid>
		<description><![CDATA[Designing a process that pre-populates a form when the process is started is way simpler in ES2. This work is done in a separate process called a &#8220;prepare data process&#8221; and is managed by an &#8220;action profile&#8221;. In the next &#8230; <a href="http://blogs.adobe.com/livecyclelane/2009/10/data_pre-population_on_inititiating_a_process.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Designing a process that pre-populates a form when the process is started is way simpler in ES2.  This work is done in a separate process called a &#8220;prepare data process&#8221; and is managed by an &#8220;action profile&#8221;.  In the next couple of posts I plan to use the <a href="http://blogs.adobe.com/livecyclelane/2009/10/28/LeaveRequest.lca">LeaveRequest application</a> as an example of new features in ES2 such as this.</p>
<p>If you right-click on the form in the LeaveRequest application, you&#8217;ll see the menu item: &#8220;Manage Action Profiles&#8230;&#8221;</p>
<p><img alt="ActionProfile1.jpg" src="http://blogs.adobe.com/livecyclelane/2009/10/28/ActionProfile1.jpg" class="mt-image-none" /></p>
<p>In the Manage Action Profiles dialog, you can select an existing prepare data process or create a new one.  If you create a new process, Workbench will create the process variables for you.</p>
<p><img alt="ActionProfile2.jpg" src="http://blogs.adobe.com/livecyclelane/2009/10/28/ActionProfile2.jpg" class="mt-image-none" width="350" /></p>
<p>The prepare data process includes 2 variables: a taskContext input variable and an xml output variable.  The output variable needs to be populated with the data that you want to show up when the main process is inititiated.  In the provided example, take a look at the PersonalLeaveFormPrepareData process.  The employee name is determined from the taskContext and assigned to a node in the xml.  In addition, a couple of LDAP queries are made to gather further employee data, including the manager&#8217;s name.  This data is also assigned to the xml output variable and will be used to pre-populate the form.</p>
<p><img alt="PrepareData1.jpg" src="http://blogs.adobe.com/livecyclelane/2009/10/28/PrepareData1.jpg" class="mt-image-none" width="300" /></p>
<p>That simple!  You&#8217;ll need to adjust the LDAP queries in order to have it work in your environment.  Next up, I&#8217;ll explain the simple approval workflow in the main process of this example.</p>
<p>Ernest</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/livecyclelane/2009/10/data_pre-population_on_inititiating_a_process.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sample &#8211; Dynamic Assembly of XDP Form</title>
		<link>http://blogs.adobe.com/livecyclelane/2009/10/sample_-_dynamic_assembly_of_xdp_form.html</link>
		<comments>http://blogs.adobe.com/livecyclelane/2009/10/sample_-_dynamic_assembly_of_xdp_form.html#comments</comments>
		<pubDate>Tue, 27 Oct 2009 11:53:48 +0000</pubDate>
		<dc:creator>Ernest Ruppenthal</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dynamic assembly]]></category>
		<category><![CDATA[LiveCycle]]></category>
		<category><![CDATA[record iteration]]></category>
		<category><![CDATA[sample]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/livecyclelane/2009/10/sample_-_dynamic_assembly_of_xdp_form.html</guid>
		<description><![CDATA[Let&#8217;s say you&#8217;re responsible for producing retail or service invoices for some company that has outlets all over the country. Every province and/or state has their own unique tax laws and your invoices need to accommodate the appropriate ones. &#160;&#160; &#8230; <a href="http://blogs.adobe.com/livecyclelane/2009/10/sample_-_dynamic_assembly_of_xdp_form.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Let&#8217;s say you&#8217;re responsible for producing retail or service invoices for some company that has outlets all over the country. Every province and/or state has their own unique tax laws and your invoices need to accommodate the appropriate ones. &nbsp;&nbsp;</p>
<p><img class="mt-image-none" alt="inovice1.jpg" src="http://blogs.adobe.com/livecyclelane/invoice1.jpg" /><br />
<img class="mt-image-none" alt="inovice2.jpg" src="http://blogs.adobe.com/livecyclelane/invoice2.jpg" /><br />
<br />&nbsp;&nbsp; <i>Sample Invoice for British Columbia &nbsp; &nbsp; &nbsp; &nbsp;Sample Invoice for Newfoundland</i></p>
<p>Wouldn&#8217;t it be nice if your automated process could automatically drop in the right tax fields, complete with calculations, based on the province/state field of each record in the massive xml data file?</p>
<p><a href="http://blogs.adobe.com/livecyclelane/2009/10/27/InvoiceSample.lca">This sample</a> demonstrates a new feature in LiveCycle ES2 &#8211; the ability to dynamically assemble an XDP template within a running process. It also demonstrates how to break up that massive xml data file and iterate through the records one at a time. While the LiveCycle Output service manages iterative loading intuitively, attempting a similar scenario with Assembler has unfortunately always been rather more, uh, challenging.</p>
<p>Dynamic Assembly is managed with what are called &#8220;insertion points&#8221; in the XDP file. If you open the SalesInvoice.xdp file in Designer, you&#8217;ll note that the Body.Total.Taxes subform has been defined as an insertion point.</p>
<p><img class="mt-image-none" alt="InsertionPoint.jpg" src="http://blogs.adobe.com/livecyclelane/InsertionPoint.jpg" /></p>
<p>This subform will be overwritten by one of the fragments contained in the TaxFrags.xdp file. How does the process know which fragment to throw in there, you ask? Well, the process gets the value of the province field from the data and feeds it to the Assembler Service. The magic happens in the DDX file, which looks like this:</p>
<blockquote class="webkit-indent-blockquote"><p></p></blockquote>
<blockquote class="webkit-indent-blockquote"><p>&lt;DDX xmlns=&#8221;http://ns.adobe.com/DDX/1.0/&#8221;&gt;</p></blockquote>
<blockquote class="webkit-indent-blockquote"><p>&nbsp;&nbsp;&lt;XDP result=&#8221;finalform.xdp&#8221;&gt;<br />&nbsp;&nbsp; &nbsp;&lt;XDP source=&#8221;invoice.xdp&#8221;&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp;&lt;!&#8211; &nbsp;Assemble unique tax fragment from library &#8211;&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp;&lt;XDPContent insertionPoint=&#8221;TaxFields&#8221; source=&#8221;application:///InvoiceSample/1.0/Forms/Fragments/taxfrags.xdp&#8221; fragment=&#8221;inputmap:///province&#8221;/&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/XDP&gt;<br />&nbsp;&nbsp;&lt;/XDP&gt;<br />&lt;/DDX&gt;</p></blockquote>
<p>The <i>fragment</i>&nbsp;attribute in <i>XDPContent</i>&nbsp;maps to the value stored in the process variable. Give it a shot. Import the sample LCA file into your ES2 server. It will create an application called&nbsp;<i>InvoiceSample.</i>&nbsp;Open the&nbsp;<i>AssembleInvoices</i>&nbsp;process in Workbench. The annotation explains how to run the sample.</p>
<p>As I mentioned earlier, this sample also demonstrates how to break up the incoming xml file and iterate through the records. Since the XDP is bound to a schema, the individual data nodes need to match the schema in order for the data to show up in the rendered PDF. After using XPath to extract a single node, that node then needs to be re-wrapped in the original root element in order to again match the schema. This work is done in the &#8220;Extract single data record&#8221; operation of the process. The node is first serialized, then a concat() function is used to wrap string versions of the element at the front and back, and is finally deserialized. &nbsp;If anyone know a better/simpler way to do this, I&#8217;m all ears.</p>
<p>Ernest</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/livecyclelane/2009/10/sample_-_dynamic_assembly_of_xdp_form.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Building actions in LiveCycle Designer</title>
		<link>http://blogs.adobe.com/livecyclelane/2009/10/building_actions_in_livecycle_designer.html</link>
		<comments>http://blogs.adobe.com/livecyclelane/2009/10/building_actions_in_livecycle_designer.html#comments</comments>
		<pubDate>Thu, 22 Oct 2009 10:30:04 +0000</pubDate>
		<dc:creator>Ernest Ruppenthal</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Action Builder]]></category>
		<category><![CDATA[LiveCycle Designer]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/livecyclelane/2009/10/building_actions_in_livecycle_designer.html</guid>
		<description><![CDATA[While we&#8217;re looking at LiveCycle Designer, here&#8217;s another great new tool that will help you avoid writing potentially long and tedious script. It&#8217;s called Action Builder and it&#8217;s pretty powerful. You can use it to define actions that will add &#8230; <a href="http://blogs.adobe.com/livecyclelane/2009/10/building_actions_in_livecycle_designer.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>While we&#8217;re looking at LiveCycle Designer, here&#8217;s another great new tool that will help you avoid writing potentially long and tedious script.  It&#8217;s called Action Builder and it&#8217;s pretty powerful.  You can use it to define actions that will add or remove fields or sections of your form, set field values, change field or background colours, hide or show objects, or set focus to a specific field.  All without writing any script by your yourself.</p>
<p>In this example, we want to either show or hide a bunch of credit card fields depending on the Payment option that was selected.</p>
<p><img alt="actionbuilder4.jpg" src="http://blogs.adobe.com/livecyclelane/actionbuilder4.jpg" class="mt-image-none" border="1" /><br />
<img alt="actionbuilder5.jpg" src="http://blogs.adobe.com/livecyclelane/actionbuilder5.jpg" class="mt-image-none" border="1" /></p>
<p>Assuming you have a form with these fields already on them, you would follow these steps (a link to the sample form is below):</p>
<li>Select Tools &gt; Action Builder&#8230;</li>
<li>Click the &#8220;Add a new action&#8221; icon</li>
<p><img alt="actionbuilder1.jpg" src="http://blogs.adobe.com/livecyclelane/actionbuilder1.jpg" class="mt-image-none" /></p>
<li>Set the condition by selecting an object and a corresponding event.  You can create multiple conditions with AND/OR operators.  But for this example we&#8217;ll set only one condition for each action.  For the first action, we want a result to be triggered when &#8220;Credit Card&#8221; has been selected by the end user.</li>
<li>Set one or more results.  In this action we want a bunch of fields to become visible.</li>
<li>Create a second action.  This time the condition will monitor for when the Credit Card option is NOT selected.  When the condition is met, it will trigger several results that will make the fields invisible</li>
<p><img alt="actionbuilder2.png" src="http://blogs.adobe.com/livecyclelane/actionbuilder2.png" class="mt-image-none" width="550" /></p>
<p><img alt="actionbuilder3.png" src="http://blogs.adobe.com/livecyclelane/actionbuilder3.png" class="mt-image-none" width="550" /></p>
<p>Action Builder creates what is called &#8220;managed script&#8221;.  You can see this script in the Change event of the Payment field.  You can, of course, edit this script &#8211; but it&#8217;s not recommended.  And if Designer detects any modifications it will assume that you&#8217;re taking control and the script will become unmanaged.</p>
<p>Here&#8217;s the sample pdf if you want to take a look: <a href="http://blogs.adobe.com/livecyclelane/2009/10/20/Registration.pdf">Registration.pdf</a></p>
<p>Ernest</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/livecyclelane/2009/10/building_actions_in_livecycle_designer.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New options for validation messages in Designer</title>
		<link>http://blogs.adobe.com/livecyclelane/2009/10/new_options_for_validation_messages_in_designer.html</link>
		<comments>http://blogs.adobe.com/livecyclelane/2009/10/new_options_for_validation_messages_in_designer.html#comments</comments>
		<pubDate>Wed, 21 Oct 2009 10:09:58 +0000</pubDate>
		<dc:creator>Ernest Ruppenthal</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[form validation]]></category>
		<category><![CDATA[LiveCycle Designer]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/livecyclelane/2009/10/new_options_for_validation_messages_in_designer.html</guid>
		<description><![CDATA[You&#8217;ve created this great form with tons of validations in the various fields to ensure the data that is typed into the field has the correct formatting. &#160;Unfortunately, the default behaviour in Acrobat/Reader is to display each validation error separately, &#8230; <a href="http://blogs.adobe.com/livecyclelane/2009/10/new_options_for_validation_messages_in_designer.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>You&#8217;ve created this great form with tons of validations in the various fields to ensure the data that is typed into the field has the correct formatting. &nbsp;Unfortunately, the default behaviour in Acrobat/Reader is to display each validation error separately, one after the other.</p>
<p><img alt="validation1.jpg" src="http://blogs.adobe.com/livecyclelane/validation1.jpg" class="mt-image-none" /></p>
<p>You think this is not the best user experience so would like to change it so that all validation errors show up in a single message box. &nbsp;Prior to Designer ES2 this was possible, but involved a considerable amount of script to get the desired behaviour. &nbsp;But now all you have to do in Designer is select File &gt; Form Properties &gt; Form Validation and you&#8217;ll see this:</p>
<p><img alt="validation2.jpg" src="http://blogs.adobe.com/livecyclelane/validation2.jpg" class="mt-image-none" /></p>
<p>Here you have several options for how you&#8217;d like these messages to show up. &nbsp;You can even set colors for the fields that fail validation. If you select the option to combine all messages into one message box, as shown above, it will look like this:</p>
<p><img alt="validation3.jpg" src="http://blogs.adobe.com/livecyclelane/validation3.jpg" class="mt-image-none" /></p>
<p>Nice eh? &nbsp;And no need for any scripting. Note there is a limit to the number of messages that will show in a single box.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/livecyclelane/2009/10/new_options_for_validation_messages_in_designer.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LiveCycle ES2</title>
		<link>http://blogs.adobe.com/livecyclelane/2009/10/livecycle_es2.html</link>
		<comments>http://blogs.adobe.com/livecyclelane/2009/10/livecycle_es2.html#comments</comments>
		<pubDate>Mon, 19 Oct 2009 13:31:47 +0000</pubDate>
		<dc:creator>Ernest Ruppenthal</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[LiveCycle ES2]]></category>

		<guid isPermaLink="false">http://blogs.adobe.com/livecyclelane/2009/10/livecycle_es2.html</guid>
		<description><![CDATA[Yep. Lots of hype around the upcoming launch of LiveCycle ES2. &#160;Don&#8217;t get me wrong &#8211; it&#8217;s a great product. Something that will allow you to throw around lots of action-oriented verbs concerning your documents. Verbs like building, empowering, collaborating, &#8230; <a href="http://blogs.adobe.com/livecyclelane/2009/10/livecycle_es2.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Yep. Lots of hype around the upcoming launch of LiveCycle ES2. &nbsp;Don&#8217;t get me wrong &#8211; it&#8217;s a great product. Something that will allow you to throw around lots of action-oriented verbs concerning your documents. Verbs like building, empowering, collaborating, interacting. And you can do it all &#8220;in the cloud&#8221;. Which might sound rather vague or nebulous, but is really quite, uh, empowering.
<div></div>
<div>Great stuff. &nbsp;But my goal in this blog is not to paint pretty pictures of LiveCycle ES2. You can go&nbsp;<a href="http://www.adobe.com/products/livecycle/">here</a>&nbsp;for an overview of the product if you like. What I want to do is provide specific samples of how to build LiveCycle ES2 applications. How to use Designer to aggregate validations into a submit button (without writing any script!). Or how to dynamically assemble documents from a bunch of XDP fragments. That kind of stuff. Coming up soon&#8230;</div>
<div></div>
<div>Ernest</div>
]]></content:encoded>
			<wfw:commentRss>http://blogs.adobe.com/livecyclelane/2009/10/livecycle_es2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
