Maintaining a flag variable in a workflow

Hello.
We want to create an approval workflow, we've completed all the logic, except we'd like to put some fucntionality to prevent users who have already used it to request the approval from requesting it again.
We're guessing we need to use a variable as a flag to mark a user as "approved" or "tobeapproved" and check it to see if the process can go on or not. However, we can't make a variable that will retain it's value after the workflow is done. (the 'start' step nullifies all variables).
We don't want to use extended attributes on the user to achieve this. Is there any way to do it?.
Thanks in advance.

You have two options I'm aware of:
1. The workflow name must be unique and therefore can be used to enforce only one per user instance. Within your approval workflow, rename the task to indicate the type of approval activity and the name of the user. This should error out if you attempt to run two flows with the same name.
2. You can write some java code to maintain an approval hash for these users. This code could keep an in core hash of users that are going through your approval process. Warning....this will not work in a clustered environment.

Similar Messages

  • To use the form variables in a workflow

    How can we use the form variables in the workflow..How will we refer the variables?Simply referring by name not working.

    hi,
    you can use the form variable by define the field name like this in ur form:-
    <Field name=':variables.fieldVariableName'>
    <Display class='Label'>
    <Property name='title' value='XYZ'/>
    </Display>
    </Field>
    and u can access this variabe simply
    <ref>fieldVariableName<ref>
    in ur workflow.
    thanx
    shant

  • When we are going to use flag variables

    could u plz explain clearly
    regarding "flag " variables
    in which situation we can go for "flag" variables
    with step by step and comment ,example

    Hi rajeshreddy,
      Flag is nothing but the boolean value or True or False.
    In case to check the condition we use it.
    like,
    if a = b. flag = 'X.
    else. clear: flag.
    if flag = 'X'.
    Execute RFC
    Else.
    exit.
    endif.
    Reward if useful.

  • Program to maintain the selevtion variables

    Hi All,
    I maintain the variables in TVARV table where i need to maintain the condition low high for the variable which programme will maintain it.
    regards
    sai

    Hi,
    While maintaining the TVARV, using Tcode STVARV you will get two tabs.(Parameters,Selection Options).
    If you want to specify any conditions like BT,LE,GE etc you can use the tab: selection options and give the values for Name, Option, Lower limit, Higher limit etc.
    Regards,
    Ashok

  • CFLOGIN not maintaining cfauthrization session variable

    I have a simple CF web site where all of the .cfm is in the
    same directory. I can not use client cookies as the people I am
    writing this for have cookies turned off in IE, therefore I am
    using J2EE session variables and CFLOGIN in an application.cfm file
    (code attached) for authentication. Everything works correctly
    during login and I can see the encrypted username/password as the
    cfauthorization session variable....
    Session Variables:
    cfauthorization=Y3BkYWRtaW46cmVwb3J0ODQzOmNwZA==
    sessionid=c23059df643c42544069
    urltoken=CFID=783&CFTOKEN=91556252&jsessionid=c23059df643c42544069
    Once I try to browse to another cfm page on the site, I get
    booted back to the index.cfm login page. After some digging I
    figure out that the cfauthorization variable was blank after I
    click on the link, which as I understand it indicates that I am not
    logged in and the
    <cfif not IsDefined("cflogin")>
    <cfinclude template="index.cfm">
    <cfabort>
    code in the application.cfm sends me back to the login page.
    I have confirmed that using valid credentials causes <cfif
    cpdauth.recordcount GT "0"> to return true.
    Any idea as to why my session authorization is not being
    maintained between pages? Or if I am completely off base as to the
    reason this is happening.....and if so, what am I doing wrong.
    Thanks
    Greg

    Your login code seems to be fine. You yourself are already
    aware that you have to have a way to pass-the-baton between
    requests, to maintain a session.
    The usual way Coldfusion maintains sessions is to send CFID
    and CFTOKEN cookies to the client browser. That happens
    automatically under the hood, assuming you haven't switched
    setClientCookies off.
    For session management by means of cookies, I would use a
    cfapplication tag like
    <cfapplication name = "cpd"
    applicationTimeout = "#createTimespan(1,0,0,0)#"
    sessionManagement = "yes"
    clientManagement = "yes"
    sessionTimeout = "#createTimeSpan(0,0,20,0)#"
    setClientCookies = "true"
    scriptprotect="all"
    loginstorage="Session">
    However, all of that assumes that the client browser accepts
    cookies. Where it doesn't, the usual way to maintain sessions is to
    pass CFID and CFTOKEN values in the URL of every request. In fact,
    the function that Bluetone suggests,
    URLSessionFormat,
    makes the process efficient. It instructs Coldfusion to append CFID
    and CFTOKEN to the URL only when the client doesn't accept cookies.
    Which means Coldfusion would still be using cookies wherever
    possible. Some examples
    <a href="#URLSessionFormat('orders.cfm')#">My
    orders</a>
    <cfform method="Post"
    action="#URLSessionFormat("MyActionPage.cfm")#">
    </cfform>
    <cflocation url = "products.cfm" addToken = "yes">

  • Maintain spaces in variables

    Hi,
    How can I maintain spaces in a variable?
    For example, in a variable VAR1 we need to have this value - 'ABC  ' (after ABC there are two spaces).
    Any help would be appreciated.
    Thanks,
    Prasanna

    DATA: VAR1 TYPE CHAR50.
    Now the user has entered "ABCD   " (ABCD + 3 spaces) on the screen, which is ulitmately captured in VAR1 variable. The user can enter any number of spaces after the alpha-numeric value.
    If I do STRLEN(VAR1), it will give me the value 4, without considering the spaces entered by the user. I want to maintain those 3 spaces entered by the user in VAR1.
    How can I find the number of spaces entered by the user?
    Edited by: Prasanna Gunji on Apr 6, 2009 10:59 PM

  • Accessing form variables in the workflow

    how to access the field variables defined in the form in the workflow.

    Easiest method:
    Name the form field global.myfield. Then in the workflow, reference global.myfield.

  • Variable to Child Workflow

    How can I share a variable from a top-level workflow with a Callable child workflow?
    I don't want to use an XML Event to trigger the child.
    Thanks,
    Ron

    I answered my own question by digging into the documents. The solution is to pass
    the variable in as a mandatory parameter:
    http://edocs.bea.com/wlintegration/v2_1/bpmtutor/ch3.htm#1276150
    -Ron
    "Ron Pragides" <[email protected]> wrote:
    >
    How can I share a variable from a top-level workflow with a Callable
    child workflow?
    I don't want to use an XML Event to trigger the child.
    Thanks,
    Ron

  • Reg : To maintain subustution approver for all the workflow related mails

    Hi
    I what to know how to maintain a substution for some days for the following req.
    As our CTO kyle whitehill is our present approver is going on a christmas & new year leave would like to Delegate his PO approval authority to R Unnikrishnan . new approver for some days  AVP u2013 Network Commercial
    So i want to configure that all the workflow related mail should go to the new person.
    Pls help me on this,
    Regards
    Suresh.

    Hi,
    You can create substitution using the function module SAP_WAPI_SUBSTITUTE_MAINTAIN or using the transaction RMPS_SET_SUBSTITUTE.
    Here you have to enter the username of the person for whom you want to maintain substitute, username of the substitute start date and end date of substitution.
    This will do the job.
    Note : Substitution allows only workitem sharing and not mail sharing.
    Regards,
    Raj

  • How to check for missing fields in the file?

    Hi friends,
    I have a file to file scenario in which if any of the fields have a blank value, i have to put the file back in the source folder. If none of the fields are missing, the scenario should work normally.
    Can anybody tell me <b>how can i check for the field lengths</b> and if any of the fields are blank, <b>how do i send it back to the original folder.</b>
    Waiting for your responses,
    Divija.

    Hi Divija,
    >><i>how can i check for the field lengths</i>
    Since you need to basically check if the field has a value or not, i dnt think you need to check for the length of the field. Instead, you can use any one of the booloean functions available in the graphical mapping editor to check if the field has a value or not(filed value true or false)
    >><i>how do i send it back to the original folder.</i>
    You can maintain a flag variable in the target structure such that if any of the source fields donot have values, the flag's value becomes 1 else it remains 0.
    Now, you can check if the value of flag is equal to 1/0 in the bpm and accordingly send the data.
    If in case, you donot want the flag to come in the target file that is loaded/sent from the bpm in the end, i think even tat can be taklen care of.
    You can create two receiver communication channels and define one file adapter in each such that one has the destination as the actual target directory and the other has the original source directory as the destination.
    Regards,
    Sushumna

  • How to delay for 1 millisecond in the kernel?

    I've been using the delay(9F) but the timer resolution is in ticks (which from what I understand one tick is 1/100 second). There's another call drv_usecwait(9F) I can wait for a number of microseconds. Unfortunately the drv_usecwait() is a busy-wait delay which I don't like. Does anyone know of a way for delaying a number of milliseconds in the kernel?
    -- jienhua

    Hi Divija,
    >><i>how can i check for the field lengths</i>
    Since you need to basically check if the field has a value or not, i dnt think you need to check for the length of the field. Instead, you can use any one of the booloean functions available in the graphical mapping editor to check if the field has a value or not(filed value true or false)
    >><i>how do i send it back to the original folder.</i>
    You can maintain a flag variable in the target structure such that if any of the source fields donot have values, the flag's value becomes 1 else it remains 0.
    Now, you can check if the value of flag is equal to 1/0 in the bpm and accordingly send the data.
    If in case, you donot want the flag to come in the target file that is loaded/sent from the bpm in the end, i think even tat can be taklen care of.
    You can create two receiver communication channels and define one file adapter in each such that one has the destination as the actual target directory and the other has the original source directory as the destination.
    Regards,
    Sushumna

  • How do you get variable values from a workflow onto a jsp?

    I trigger a workflow and it does all the stuff I want, but I want the the jsp (a confirmation page) that eventually gets shown to the end user to have some of the variables from the workflow on it.
    How do I achieve this?

    Sorry--for not knowing how to post this in the right forum.
    I thought that I was posting on the right forum by placing the pl sql tag.
    Sorry for any inconvenience that I have cause….thanks for your feedback…and have a great day!!
    Edited by: user612347 on Mar 12, 2010 5:29 AM

  • Permissions needed for user to define workflow variable

    Hi all
    im using a workflow on sharepoint designer 2007, running on list of customer orders. the workflow is trying to use data from customer list.
    In the workflow i used the "define workflow variable" step on customer order list. the users who are using the order list have Contribute permission so they can add items. on the customer list they have read permission.
    when an item is created, the workflow is suppose to generate the varieble by combining data from the two lists: selecting the customer from the current order item and suppose to combine it with data from the customer list for that specific customer
    and keeps it in the variable.
    for users with full control permission for the site, the workflow is completed ok. for the users with the contribute and read permissions it ends with an error and doesnt store the variable (i cheked it by storring the variables in the workflow history).
    what are the permission needed to manage to do the action of storring the variable?
    or any other ideas for the error?
    Thanks in advance

    Hello Cajuntank and welcome to the Palm forums.
    Palm Desktop needs to be installed with the local administrator priviledge during the install of Palm Desktop, the HotSync Manager, the first HotSyn sync, and the installation of any third-party conduits on the desktop.
    After that, the local admin rights can be revoked.
    Alan G

  • Deferred Tasks - Passing Variables into Workflow

    Hi everyone
    I am experiencing difficulties with deferred tasks in IDM 8.1. I have managed to create a deferred task on a user, with the task name being ‘Generate Email’. I also passed in an attribute ‘id’, and these can be seen in the user view under waveset.properties.tasks.
      <Activity id='1' name='Add Deferred Task'>
                    <Action id='1' application='com.waveset.session.WorkflowServices'>
                        <Argument name='op' value='addDeferredTask'/>
                        <Argument name='type' value='User'/>
                        <Argument name='name'>
                            <ref>accountId</ref>
                        </Argument>
                        <Argument name='authorized' value='true'/>
                        <Argument name='subject'>
                            <s>Configurator</s>
                        </Argument>
                        <Argument name='task'>
                            <ref>taskToAdd</ref>
                        </Argument>
                        <Argument name='date'>
                            <new class='java.util.Date'/>
                        </Argument>
                        <Argument name='owner'>
                            <ref>WF_CASE_OWNER</ref>
                        </Argument>
                        <Argument name='taskDefinition'>
                            <new class='com.waveset.object.GenericObject'>
                                <map>
                                    <s>id</s>
                                    <ref>accountId</ref>
                                </map>
                            </new>
                        </Argument>
                    </Action>
                </Activity>I have set up a scheduler that correctly scans all the user objects for this workflow name, and the ‘Generate Email’ workflow is periodically run.
    The problem is when it gets to the Generate Email workflow, all the variables that were set when the deferred task was created are gone. Both <ref>id</ref> and <Variable name=’id’ input=’true’/> return null.
    Setting the following in the TaskSchedule object did not help, as the string value $(id) is passed into the workflow instead of the id itself. I cannot debug the TaskSchedule as the Netbeans IDE does not allow me to put in breakpoints on this file.
    <Variables>
        <Object>
          <Attribute name='id' value='$(id)'/>
        </Object>
      </Variables>My question is, how do I pass variables into a workflow via a deferred task?

    Hi,
    Here is an example that I found that may assist.
    <Activity name='setDefTask'>
         <Action application='com.waveset.session.WorkflowServices'>
           <Argument name='op' value='addDeferredTask'/>
           <Argument name='name' value='$(user)'/>
           <Argument name='task' value='$(taskType)'/>
           <Argument name='date' value='$(date)'/>
           <Argument name='description' value='$(taskDescription)'/>
           <Argument name='taskDefinition'>
              <Object>
                  <Attribute name='Arg1' value='value1'/>
                  <Attribute name='Arg2' value='value2'/>
                  <Attribute name='Arg3' value='value3'/>
              </Object>
           </Argument>
         </Action>
         <Transition to='end'/>
    </Activity>Hope it helps

  • How would you use Aperture 3 Labels & Flags in your workflow?

    Now that A3 has the ability to use Labels & Flags, I'm trying to incorporate their use into my workflow but am struggling to find the most effective way.
    I've used the star rating for selections & refining the selections. In A2 I used keywords on images to indicate actions on the images, however I never thought this was an elegant solution because unless I forget to remove them they stay with the images as I export them. Fundamentally though I think of Keywords as attributes of the image, so using keywords to describe actions was always strange.
    One thing I liked with this workflow though was I could place multiple "actions" on an image since there can be any number of keywords. In A3 you can only assign one labe at a time. So this made me think of how I'd use Labels.
    So thus my question: how would you incorporate labels & flags into your existing workflows consisting of star ratings & keywords?

    I've wanted flags for a long time just to be able to mark where I left off on a project. My inelegant solution has been to give a terrible picture 5 stars. Other uses are to quickly get back to certain images.
    I don't yet know how exactly I'll use labels or what other uses I'll have for flags, but I'm happy to have the added versatility. Between flags and labels, I have 8 new ways to mark and filter images. (10 if you count no flag and no label.) Sure one can do a lot with stars, stacks and keywords, but now one can do more.
    DLS

Maybe you are looking for