6 Replies Latest reply on Apr 3, 2008 4:57 AM by (Lachlan_Aldred)

    Event Data

    Level 1
      I'm trying to work with a custom event, and I'm running into an issue. I've defined the custom event and defined a schema for the event data. I have one process that is throwing the event, and another process that is receiving the event.

      The problem is, in the process where I'm throwing the event, I'm trying to populate the event data with values that are stored in process variables. Here are the expressions used in my Event Throw Configuration:

      Event Data Operator Event Data Value
      ------------------------------------------------
      /data/processid = /process_data/@orig_processid
      /data/comment = /process_data/@comments

      I have 'orig_processid' and 'comments' defined as variables for my process. My receiving process grabs these values off of the event. However, in my receiving process, the values are literally coming in as '/process_data/@orig_processid' and '/process_data/@comments'. For some reason the xpath expression is not being evaluated when the event data is populated. Is there something special I have to do in order for the event data to be populated with process data? My first thought is that this seems to be a bug. I've looked at the samples and they only show you how to pass literal values.

      Justin
        • 1. Re: Event Data
          Level 1
          As far as I know, the XPath expressions should be evaluated at run time as you expected, rather than using them as literal values. I don't have access to my server now so I can't run a test. I'll get back when I can.
          • 2. Re: Event Data
            Level 1
            I've performed some other tests. I was able to build a workflow that throws an event and another one that receives the event as a start point. I was able to get that one to pass variable data with the event. Unfortunately, this does not satisfy my original use case.

            Here's my scenario:
            - Workflow 1 executes a number of steps.
            - Workflow 1 sends an email notification with a form attached. The form will contain a hidden field with the Process ID for workflow 1.
            - Workflow 1 sits and waits for custom event to be received.
            - A user receives the email notification, fills out the form, and submits it to mail it back in to LiveCycle.
            - Workflow 2 is set up with an email endpoint. Workflow 2 receives the form submitted via email, extracts the data from the form, and throws the custom event. The Process ID that was originally stored in the form is populated on the event data.
            - Workflow 1 receives the event thrown by Workflow 2. The event filter will make sure it is only processing an event where the process ID values match.
            - Workflow 1 completes execution.

            I have so far been unsuccessful passing event data in this manner. I'm trying to use this approach to handle offline workflow assignments to users that aren't in LDAP.

            Has anyone worked with events? It appears that only Adobe has done so. Any help would be greatly appreciated.

            Thanks!
            Justin
            • 3. Re: Event Data
              Level 1
              make sure process variables are of "input" type or else they will not be populated!
              • 4. Re: Event Data
                Level 1
                The variables can't be defined as "input" type. My process is waiting to catch the event right in the middle of the process, not as a start point.
                • 5. Re: Event Data
                  Jasmin Charbonneau Level 4
                  I've done something very similar but I've used a user step instead of an event in my Workflow 1. I associated a temporary user for the step to wait for the response. In my Workflow 2, I used the "Complete Task" operation to complete the task.

                  That might be an alternative if you run into too much trouble with events.

                  Jasmin
                  • 6. Re: Event Data
                    Hi Justin,

                    I've worked with events in ES. I gound that using the Service Pack 1a had problems and was really showing some immaturaty.

                    At the time I was using filter expressions on the event receiver to match against values of a variable inside the process instance (not too different from what you are trying to do.

                    Since then I ran the same test several times for ES Service pack 1b and it works.

                    What version of ES are you running?

                    Cheers,

                    Lachlan

                    http://www.avoka.com