none
Access Workflow information from Client Side

    Question

  • Here's another question!

    I have an application that interacts with a Workflow Service. The Workflow is composed of several steps and is long running.  There are several Receive activities.

    I'd like my server-side Workflow Service to store some information as the workflow progresses. For example, I'd have a "State" variable where the value is Set at different places in my Workflow. And on the client-side application, I'd need a way to access the value of "State" whenever there is a call to my Workflow Service, without having to explicitely return it in every Send activity.

     

    Is there a way to do this?

     

    Thanks!

    Thursday, October 06, 2011 8:13 PM

All replies

  • Hi,

    It seems the durable duplex correlation applies to your scenario. "Durable duplex correlation, also known as callback correlation, is useful when a workflow service has a requirement to send a callback to the initial caller. " For the detailed information, please refer to:

    Durable Duplex Correlation

    http://msdn.microsoft.com/en-us/library/ee358740.aspx


    Leo Tang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Wednesday, October 12, 2011 2:57 AM
  • Hmmmm, that's not quite what I need.

    If I can explain it another way:

    Say I have a sequential workflow of Receive Activities called Step 1 to Step 5. On my client ASP.NET application, I have links to call any of these operations. What I need is information about where in the workflow I currently am (Which Receive activity is expecting a message). So that whenever I open my ASP.NET application I can interrogate the workflow about which Step its on so I can display in my client application: for example if it's waiting on Step 3 then I'd display:

    Step 1

    Step 2

    *Step 3

    Step 4

    Step 5

    Or perhaps this is something that can be done with Tracking? Am I allowed to access my Tracking Records from the client side?

     

    Thank you!

     

    Wednesday, October 12, 2011 2:51 PM
  • use Extensions

     

    create a class that increment the state when needed and expose it via WCF.

     

    then invoke yourworkflow using workflowapplication

    somthing like workflowapplication wfapp = new workflowapplication(myactivity);

    then set wfapp.extention = new mystateclass()

    and call wfapp.run

    Monday, October 31, 2011 5:11 PM
  • Yes you can access tracking information. Other way is you can export this (Stage of the workflow) information to your custom made database tables which you can access from client side to get information.

    try this

    http://www.codeproject.com/KB/WF/WF4Extensions.aspx

     

    you can find more about tracking here.

     

    http://msdn.microsoft.com/en-us/library/ee513992.aspx

     


    MB
    • Proposed as answer by MadhurBhardwaj Monday, October 31, 2011 6:22 PM
    Monday, October 31, 2011 6:22 PM