Blank screen when opening process in Workbench

Back to working with LiveCycle ES2 on a new project and had problems opening any process after installed Workbench ES2 on my laptop.  When opening a process in Workbench ES2 I was being shown a grey tab with no content.  The workaround seems to be to run Workbench as an Administrator (right click on icon > Run as Administrator).  Solved the problem but don’t know why it needs it!

Advertisements

Connecting to LiveCycle ES2 Repository outside of Workbench

When trying to test some forms I was struggling to remember the location of the LiveCycle repository.  Turns out that you can access it via WebDav from Windows or directly from a browser using the following:


http://<server_name>:<port>/repository

Login with your usual username and password and you’ll be able to browse the repository hierarchy.

JBoss – using properties-service.xml to set environment variables

In every JBoss installation there will be a file called “properties-service.xml” in the deploy folder.  This file allows you to setup environment variables (rather then setting them at the JVM/System level) which all deployed applications can then use by calling the System.getProperty() method.  Just uncomment the section shown below to enable some global properties or use the URLList to point to external properties files:

 <!--
    Set raw properties file style properties.
 -->
 <attribute name="Properties">
 ATTRIBUTE_NAME_1=somevariable
 ATTRIBUTE_NAME_1=anotherVariable
 </attribute>
 

Debugging Flex 3 applications with Flash Player 10

I came across a problem recently when trying to debug my application after upgrading from Flash Player 9 (Debug version) to 10.2 (Debug version).  As soon as I upgraded my application stopped logging.  I searched everywhere and whilst I found a lot of people with the same problem never really found an answer.

After a lot of digging it appears to be the way you target the flash player version.  My application was targetting Flash Player 9 (in my flex-config.xml):

<target-player>9.0.124</target-player>

Changing this to 10 started the trace logging again.  As I wanted to maintain the v9 target I’ve ended up reverting back to Flash Player 9 to get the logging working again.

get-collection-size() vs size() in LiveCycle

Just a note to be careful when using the XPath expressions get-collection-size() and size() in LiveCycle to count the number of elements in a list variable. If your list is empty the two functions will not return the same value

Creating a test process to demonstrate this I added three variables:

  • lstTestList
  • intCountList -> count(/process_data/lstTestList)
  • intCollectSizeList -> get-collection-size(/process_data/lstTestList)

Running this process on an empty list gives the following output:

  • intCountList -> 1
  • intCollectSizeList -> 0

So if trying to find out whether or not a list is empty use get-collection-size() and not count()

ASDoc – wading through the errors

ASDoc is a nightmare. What should have been a simple task turned into a day of trawling the net trying to find the cause of the seemingly endless errors preventing me from running it. Eventually I got it working so here’s a short post explaining the pitfalls I faced.

  • Include the Flex libraries in your -library-path argument (i.e. flex.swc, rpc.swc, framework.swc, utilities.swc). Without this I was getting errors from asdoc not being able to find some of the standard classes.
  • Check your code! Some of the errors I was getting were actually problems that just weren’t throwing errors (some of my event dispatching classes were not extending EventDispatcher, this threw lots of errors whenever asdoc encountered dispatchEvent )
  • Give your -source-path as the root of your application but use -doc-sources to list only those folders you actually want documenting

For reference here is my very simple ANT script for generating my ASDocs:


<project name="ASDoc Build Script" default="main" >

<!--
 Read in the properties file which contains the locations
 for all paths referred to here
 -->
 <property file="asdoc.properties" />

<!--
 Main Target:
 Cleans and compiles ASDocs with a log
 -->
 <target name="main" depends="clean, log, create-docs" />

<!--
 Delete and recreate the asdoc output directory
 -->
 <target name="clean" >
 <delete dir="${output.dir}" />
 <mkdir dir="${output.dir}" />
 </target>

<!--
 Run asdoc.exe on the source documents passing all required
 parameters to asdoc
 -->
 <target name="create-docs" >
 <exec executable="${asdoc.exe}" failonerror="true" >
 <arg line="-source-path '${root_src}' " />
 <arg line="-doc-sources '${framework_src}' '${actionscripts_src}' " />
 <arg line="-library-path '${irmds_library.dir}' '${flex_library.dir}'" />

<arg line="-main-title '${main.title}'" />
 <arg line="-window-title '${window.title}'" />
 <arg line="-output '${output.dir}'" />
 </exec>
 </target>

<!--
 Write out a log file
 -->
 <target name="log" >
 <record name="${output.dir}/asdoc-log.txt" action="start" append="true" />
 </target>
</project>