Tag Archives: programming

Toggling between two fields in a dynamic form

The LiveCycle Cookbook, a community resource for developers, has a recent recipe and sample artifact by Arjun V: Toggling between two fields in a dynamic form.

The Cookbook homepage is here: http://cookbooks.adobe.com/livecycle. Check out the available recipes and contribute your own.

Original article at http://blogs.adobe.com/samartha/2012/03/toggling-between-two-fields-in-a-dynamic-form.html.

Flex is Alive!

– Holly Schinsky

Flex folks, first of all, today there’s a new official statement out on the Adobe website about Adobe’s commitments to the Flash Platform including plans for Flex that you should be aware of. Secondly there’s a new post from the Product Management team out now summarizing the recent Flex Q&A. There’s been a lot of frustration in the community (which I understand and can personally relate to having been part of the community myself for a very long time) and I wish that the sequence of events (and frankly the communication) did not happen as it did, but it is what it is at this point and we need to carry on. I hope people can see this move of Flex to an Apache model with dedicated full-time engineering resources in San Francisco as the good news that it is!! Flex is alive and well and will continue to grow as the dust settles. Even now we can build amazing applications over many other technologies in half the amount of time with it in its current state. And the growth in Flex and AIR for mobile is allowing us to do some super cool and fun stuff which is about to just get better with the upcoming release of Flex 4.6 in a couple weeks!

I realize people’s trust is tarnished and people are scorned and angry, but please try to remove your emotions from the equation and look at this for what it is. Any good developer knows that technology is ever-changing and you have to ride the current wave. It’s evident that HTML 5/JavaScript is gaining ground and needs to be kept on our radar of things to be learning (whether we love it or not). It should also be considered as an option right now for certain applications where it makes more sense. As much as I am passionate about Flex myself, it can be overkill for many applications. And what better way to refine our skills in the HTML/JS arena by actually building some apps to gain the experience. As we all know though, there are still a ton of applications where it makes more sense to use Flex (enterprise and many mobile AIR apps) and fortunately we still have that option!

I know many of you are having to answer some tough questions from your clients and management about all of this, I hope today’s statements can help in that respect. If there was a way I could change how things happened myself or wave a magic do-over wand I would in a heartbeat :) . This has not been easy for any of us. I just hope we can now start channeling our frustrations into something more positive and productive and get back to having some fun!

I will continue to post any updates on the move to Apache as I find out. Start thinking about how you might be able to contribute ;) !


Original article at http://devgirl.org/2011/11/17/flex-is-alive/.

Defining Document Services Custom Components (DSCs)


Michael Steward

I’ve written a few custom components in my time working with ADEP but recently came across an excellent summary of what exactly these little (or in some cases large!) pieces of code actually are.  A recent blog post on the Adobe ADEP blog summarised it nicely:

A DSC is a component that can be installed on a Documents Server and introduces new functionality. It stands for Document Service Component. Most product components are DSCs but customers can write their own DSCs to create new integrations or functionality that require a higher level of sophistication than is appropriate with the use of standard integration options (e.g SOAP) or scripting/process maps. They are basically POJOs with nifty enterprise configurations around them that allow enterprise class life cycle, versioning and configuration (e.g. in an enterprise BPM system you don’t necessarily want a new version of a component to alter the way an inflight process is operating, or how a completed process reports audit data…) or even have to bounce the server to change the implementation of the DSC. It is definitely part of the secrete sauce of LiveCycle/ADEP Document Services.

Source: ADEP Blog

Original article at http://michaelsteward.com/2011/10/09/defining-document-services-custom-components-dscs/.

Solutions and the Application Context

– Saket Agarwal

Solutions over ADEP have introduced the concept of an application context (aka app context), which can be seen as a unique identifier, that various server side modules use to identify the execution context (from the current execution thread) and process requests in context of that solution. For instance, when persisting content/assets onto the CRX repository, the platform’s persistence module (official known as Platform Content) uses the current (invoking) app context to determine where to store the content/assets, and what configurations to use (which would typically be different for different solutions). See snapshot below, indicating the solution specific content areas.

Note that the storage location is /content/apps/cm for Correspondence Management, and /content/apps/icr for Integrated Content Review, which happen to be the app contexts for the two solutions.

Since it is essential for the server to identify the execution context, if you do not set or establish the application context before you make calls to the solution APIs, you will encounter a server error that says :  “Unable to fetch application context“. To set the app context, use one of the two methods:

App context in your Flex application

If you are invoking a solution API from a flex application, ensure that you set the app context using:

var appToken:AsyncToken = com.adobe.ep.ux.content.services.search.lccontent.LCCQueryServiceFactory.getInstance().setAppContextService("/content/apps/cm"); // setting app context for the CM solution
appToken.addResponder(new mx.rpc.Responder(<your success handler>, <your fault handler>));

App context in your Java application

If you are invoking a solution API from a java based application, ensure that you set the app context using:

com.adobe.livecycle.content.appcontext.AppContextManager.setCurrentAppContext("/content/apps/cm"); // setting app context for the CM solution


The app context concept is also used (or rather leveraged) in other scenarios such as driving solution specific Building Block (BB) configurations. Since a Building Block is meant to be reusable across solutions, it exposes certain configurations that can be different for different solutions. Hence, the BB needs to behave differently depending upon the context in which it is being used or invoked. Below is an example where the Data Dictionary BB is used by two solutions – CM and ICR – and has configurations specific to each solution, lying within the solution’s specific app context – /apps/cm for CM and /apps/icr for ICR.

Original article at http://blogs.adobe.com/saket/solutions-and-the-application-context/.

Model-Driven Application Development Trial

For the developers who are working on or using Adobe® Data Services maybe already familar with Adobe® data modeling technology which is very popular and useful, it works with Data Services to accelerate the development of data-centric applications. And model-driven … Continue reading

Original article at http://blogs.adobe.com/ADEP/2011/09/model-driven-application-development-trial.html.

Adobe MAX 2011 – Developing cross-OS mobile apps with Adobe Flash Builder, Flex, AIR & ADEP

At Adobe MAX on Sunday (preconference), Garth Braithwaite and I will be delivering a very cool hands-on code camp.  This is a 480-minute session and a bring-your-own computer session so if you register for it, you will need to do some preparation.  Some of the preparations will be posted on this site but they will also be pushed to all registered attendees.In this lab you’ll get up and running building a mobile application with Adobe AIR. The lab will focus on the smartphone form factor, so bring your Android phone, BlackBerry PlayBook tablet, or iPhone. We’ll do an introduction to AIR for mobile and then dive into the Flex framework to see how it makes building standalone applications easy. You’ll learn how to use native device features like the camera or GPS, plus how to create and manage views, data, and layout within your application. You’ll also get a hands-on look at how to debug, optimize, and deploy to devices using Flash Builder.

Part of this course will be focused in on using the Adobe Digital Enterprise Platform (ADEP) and connecting to it using Flash Builder.

Here is a rough sketch of the session:

Lab 1: Building a new Mobile Application Project
Lab 2: Pushing Data Between Views
Lab 3: Packaging and Deploying the Application
3.1 Android Release
3.2 iOS Release
3.3 BlackBerry Tablet OS Release
Lab 4: Getting System Details
Lab 5: Adding a Back (Home) Button to the ActionBar
Lab 6: Zoom Gestures
Lab 7: Pan Gestures
Lab 8: Rotate Gestures
Lab 9: Accelerometer


Lab 10: Install the Flash Builder ADEP Plugins
Lab 11: Starting and learning the ADEP Server
Lab 12: Installing the ADEP SDK and Samples packages
Lab 13: Extract, Set up and Run the sampledb
Lab 14: Enable Remote Data Services via the Felix Console
Lab 15: Retrieving and Installing the ADEP SDK into Flash Builder
Lab 16: Setting up a new Flash Builder ADEP Project
Lab 17: Building the Flex Client Application for ADEP
Demonstrating the Application
Lab 18: Adding Nodes and XML Content to ADEP
Lab 19: Building a Flex Mobile Project that consumes ADEP Services
How to build the ADEP_XML View
Getting Details about each wine
Lab 20: Advanced ADEP mobile services
Lab 21: Building a RESTful mobile application with ADEP
Lab 22: Learn how to use cross-­platform push messaging
Lab 23: Learning how to use local notifications
Lab 24: Adding two-­factor authentication


There is no guarantee this is the final list of labs however it should be relatively close.

– comfortable with XML syntax
– some coding experience would be good

There are still some seats left for this session.  You can register at:
Preconference session 403-A

Original article at http://technoracle.blogspot.com/2011/09/adobe-max-2011-developing-cross-os.html.

Introduction to Experience Services Sample Applications

– Leo Li

For developers who are interested in Experience services and eager to build ADEP applications themselves, “Getting Started” is a surely a good place for you to get started, where you can find many samples that are built with different services … Continue reading

Original article at http://blogs.adobe.com/ADEP/2011/08/introduction-on-experience-services-sample-applications.html.

ICR customization to display custom asset attributes in advanced search

Ashish Gupta 

This blog post is part of the series on customizing the Adobe Integrated Content Review solution.

In the Assets view of the Integrated Content Review solution interface, you can find an asset using either basic or advanced search. You can perform advanced search using search attributes, such as campaign name, manager, state, status, and timeline. Besides these attributes, you can create new search attributes. These custom attributes appear in the advanced search options and search results.

To modify the advanced search parameters, you must update the FML file describing an asset. A few custom attributes for assets are predefined—for example, brand of an asset, asset height, asset width, and so on.

The following steps use a pre-defined, asset-level attribute to modify an asset’s FML file:

  1. Open workItem.fml located at: ICR_SOURCE/integratedcontentreview/package_data/apps/solutions/icr/assetDefinitions/.
  2. Add properties (described below) in the entity for workitem.fml.
  3. Update the solution interface. (Refer to Setting up your development environment to do so.)

Following is an explanation of the properties of the attribute:

  • visible: Marking its value as True makes it visible in the search results.
  • searchable: Marking its value as True makes it visible in the advanced search pane.
  • extendedPropertyPath: Path of this attribute.
  • assetPropertyType: Marking assetPropertyType as “extended” indicates using extendedPropertyPath attribute, instead of searchPath attribute, to search for the brand name.

For example, the following sample can be used to add a new attribute titled Brand in the advanced search pane.

<property name=”brandName” type=”string”>
<annotation name=”DDS”>
<item name=”displayName”>Brand</item>
<item name=”visible”>true</item>
<item name=”searchable”>true</item>
<item name=”searchPath”>WorkItem.attributes.brand</item>
<item name=”columnOrder”>5</item>
<item name=”basicSearchEnabled”>false</item>
<item name=”extendedPropertyPath”>WorkItem.attributes.brand</item>
<item name=”assetPropertyType”>extended</item>

An instance of the advanced search pane and the search results, as they appear after this customization, are shown below.

Custom attributes in advanced search paneCustom attributes in advanced search pane

Further references:
This ICR page, to know more about the solution.
The solution guide to get started with the solution.

Original article at http://blogs.adobe.com/ADEPhelp/2011/09/icr-customization-to-display-custom-asset-attributes.html.

Rebranding the ICR email templates

– Ashish Gupta 

Integrated Content Review solution sends out system-generated email notifications to team members and participants, for various events. Templates used for these email can be customized as per your branding requirements.

This customization scenario involves the following top-level steps:

  1. Locating the email template files
  2. Customizing the images in the email template files
  3. Customizing the content in the email template files
  4. Knowledge of all the available variables to customize the content in Step 3

For detailed information about these steps, refer to this (PDF) document.

See also:
This matrix of system-generated email notifications sent to participants.
This page, to know more about ICR solution.

Original article at http://blogs.adobe.com/ADEPhelp/2011/09/rebranding-the-icr-email-templates.html.

Rebranding the ICR solution interface

– Ashish Gupta 

Integrated Content Review solution interface is a Flex® application, which is the default implementation. You can customize the default Adobe branding across the solution interface.

As an example, let us change the Adobe logo in the top-left corner of the solution interface. To do so, follow these steps:

  1. Open the Campaign Portal project in the Package Explorer view, in Flash® Builder®.
  2. Navigate to the desired skin file and open it. To change the logo, navigate to CampaignPortal > src > main > flex > com.adobe.solutions.icr.common > skins > ApplicationHeaderSkin.mxml.
  3. Make the requisite modifications. To change the logo, replace the existing path with the path to a custom logo image file, at the location shown in the following screenshot.
    Path of ICR logo filePath of ICR logo file
  4. After making the requisite changes, rebuild and redeploy the solution interface. To do so, refer to Setting up your development environment.

Note: The logo must be 107 x 47 pixels or smaller in size. If it is larger, then use the width and height properties, as shown below, to resize it.

Dimensions of ICR logo fileDimensions of ICR logo file


See also:
This page, to know more about ICR solution.
The solution guide to get started with the solution.

Original article at http://blogs.adobe.com/ADEPhelp/2011/09/rebranding-the-icr-solution-interface.html.