Hi All,
I’m really looking forward to using the Workbench add-ons that adobe just released on the labs.
More info and download at – http://labs.adobe.com/technologies/lcworkbench_addons/
Here are my fav features among others -
- Variable Highlighting
- Schema Editor
- Type Selection Improvements
Thanks LiveCyle & Workbech team…
July 5th, 2010
In my quest to use XPath functions & expressions more efficiently in LiveCycle I managed to achieve ‘conditional set value’ yesterday.
Example scenarios:
- Add some text to email body if some condition is true/false.
- Add some text into T&Cs if certain product is selected.
- In a generic/single Email or Set Value step you need to construct a big block of text. eg. Offer letter with certain paragraphs based on few conditions.
Approach 1: The usual way (or one of the usual ways):
An orchestration in Workbench with few setValue steps and few conditional routes to add/append the desired text to existing text.
And these steps need to be in certain order.
Approach 2: The XPath trick
I used substring() and number() function with pure XPath expression to construct conditional set value. See the usage below.
Example:
Consider a requirement in which you wish to send an email with few extra lines added to it if product A is ordered. And if contract term is 12 months then we need to add another T&C statement in the email body.
Let’s implement that with both approaches…
Approach 1: Few set value step and routing conditions to set process variables that get used in email body.
Process Diagram:

Set Value - Route condition approach
Email body:
Dear Provisioning Team,
Please send the below details to John.
System:{$ /process_data/@System $}
Agent Name:{$ /process_data/@Agentname $}
Product ordered: {$ /process_data/@Product $}
{$ /process_data/@ProductAConfigurationDetails $}
Terms and Conditions:
blah blah blah from Legal
adf
adf
{$ /process_data/@TCFor12MonthsContract$}
blah
blah
regards,
BOH Team
Approach 2: Conditional set value with XPath
Process diagram:

Email Body
Dear Provisioning Team,
Please send the below details to John.
System:{$ /process_data/@System $}
Agent Name:{$ /process_data/@Agentname $}
Product ordered: {$ /process_data/@Product $}
{$ substring(‘This is where the actual text gets put about the product configuration’,
50000000 * (number(/process_data/@Product !=’Product A’))
) $}
Terms and Conditions:
blah blah blah from Legal
adf
adf
{$ substring(’12 Months T&C content is written here or can be xpath expression’,
50000000 * (number(/process_data/@ContractLength !=’12′))
) $}
blah
blah
regards,
BOH Team
Explanation:
- The above expression marked in blue puts the text in email body if the condition at the end of it fulfills.
- By moving this logic into the email step itself I could clean up the process design significantly. I believe that LC is too good to do data transformation but common…few set value and few conditional routes for a simple text insertion?? I reckon the XPath trick gives much more cleaner approach to solve this.
- First thing to notice in the expression is the use of a large number 50000000 . This is used to return blank substring value if the expression is false. Please adjust if your input text can be larger than this.
- Second thing to notice is the use of comparison operator. I wanted to have 0 (zero) value for substring start value if condition is true. Boolean true is 1 so I’m using opposite operator. Eg. if(product=”Product A”) is represented as product!=”Product A”
As this is an XPath based expression we can use it in any LC component. I tried implementing if-else clause as well but that didn’t turn out well.
If you managed to read through this much then I’m sure you would love to see the undocumented ‘and’ ‘or’ keyword usage in XPath expression. I found that while experimenting and it’s an instant hit among few of my fellow LC users. It can be found here..
Let me know if you find this useful!!!!
November 27th, 2009
I’m thrilled to see LiveCycle ES2 help page with the links to all of the ES2 documentation.
Thanks to Livecycle Docs team at Adobe for publishing this one page reference. I’ve seen colleagues and clients struggling to find different docs since I started working on LiveCycle, some 4 years back.
This is the page that we all should have in our bookmarks.
http://help.adobe.com/en_US/livecycle/9.0/lc_doclist.html
Thanks again Doc team!!
November 15th, 2009
I was recently reading about upgrade to ES2 and new features of ES2 and these are my favorite bits. I’ll play with ES2 after the GM release and post the experiance later.. But so far this is what I’m really looking forward in ES2.
- Simplify testing and deployment by previewing your business process, including testing form and Flex® user interfaces, and recording the process results.
The testing is on the top of my wish list. I even thought of writting a whole new AIR application to make our life easier around workflow testing and deployment. I’m talking about deployment on several staging environment!! But for now let’s forget about my AIR app development… Thanks ES2 for looking into this.
- Reference real-time graphical server health statistics within the LiveCycle administration UI.
Love this…eliminates the need for a monitoring software for small projects.. Will it also have customisable alerts too?
- Upgrade available from ES update 1, LC 7 and LC 6.
This is a big sale point to encourage clients on LC7 deployments. I wish the ‘compatibility layer’ usage can be kept to minimal usage as part of the upgrade.
- Enhancements to Form Guide development cycle.
This is BIG improvement… It’s something you just need to play with.
November 11th, 2009