How is the binding sequenced?

Hi all,
I have a workflow where the first step is a background step used to retrieve multiline container element defined by a class ZCL_APPROVAL_STEP. The binding method -> task and step -> workflow are correctly defined.
At the next step I have the actual approval where I use the dynamic parallel processing functionality (one approval for each ZCL_APPROVAL_STEP instance in my multiline container element).
The agent of that step is defined by a rule to which I pass &<my multiline element>[&_WF_PARFOREACH_INDEX&].AGENT&.
AGENT being an attribute of the ZCL_APPROVAL_STEP class.
Now the problem is that at runtime the workflow fails (error status) after the completion of my background step. In the workflow log, on the background step I see a message saying "Workitem processing complete" and just after another message saying that source expression &<my multiline element>[&_WF_PARFOREACH_INDEX&].AGENT& is not available. When I look at the workflow container, I see my multiline element is empty.
Thus to me it seems well that the return binding of a background step takes place only after the workflow->rule binding of the next step.
Things I have done to try solving the problem (no luck so far):
- Removing the "advance with dialog" flag in both the background and the approval steps.
- Inserting a dummy container operation between the two steps.
- Checking the binding definitions
- Searching oss...
I could always try to put a deadline of one minute or so in my approval step, or insert a dummy step inbetween, but that is not a nice and clean solution.
Anyone experienced similar issues before?
Thanks in advance for the help.
Patrick

@Rob:
I tried inserting a dummy step between my background (agent determination) and my online (approval) steps. It still did not work although it brought some progress: my multiline workflow container element was then correctly filled in by the background step.
I now replaced my class attribute by a functional method (that just returns the attribute) and it works. Even without the dummy step.
I'll never understand 100% the wonders of the SAP workflow engine
@Arghadip:
Eventhough I have the agent available in an attribute, I still prefer using a rule. I developped my own one which just returns what it receives (i.e. user id) + makes a few checks (i.e. is the user still valid, etc.) + adds the 'US' prefix if necessary. The main reason is that it allows a better error handling: I flagged the "Terminate if rule resolution without result" checkbox in the rule definition. This avoids my workitem going to all possible agents if my attribute is empty (which should not happen but who knows whether agent determination tables are always 100% correctly maintained...).

Similar Messages

  • Third party backup software, how is the log sequence working?

    Me and a colleague had a discussion about how third party software and full backups locally on the SQL works together.
    If we use TSM that do full backups and then logbackups every hour in between for example.
    If I between the two full backups from TSM accidently do a "non copy-only" full backup do I then also break the whole log sequence backup from then and untill the next TSM backup is?
    Or can I use the full backup from my mistake and then take the log backups from TSM that occured after that fail and restore the database?
    I guess this depends on the third party backup software, but in my mind it should work but according to him it doesn't.
    Try to "paint" how I mean:
    I = full TSM backup
    - = log TSM
    F = my fail backup full but not copy only.
    I---F-------I
              ^ is where I would want to restore with both my full one and the logs from TSM. Hope you understand what I mean.

    yes, you should be able to use the full backup taken in middle and use the rest of the log backups taken afterwards to restore the database.while I do not use TSM, we use QUEST(DELL) LITESPEED, that takes full backup once a day and log backups
    every 15mins.
    if someone accidentally takes full backup in the middle of day with out 'copy only',
    log sequence will break and successive log backups depend on this full back up.
    while this should be prevented from happening in first place, you can still restore from native full backup and then apply log backups taken from third party taken after the  native Full backup.
    if this happens, I would restore the FULLBACKP with NORECOVERY using NATIVE SQL and then use  lite speed syntax to restore the log backups.Remember, native sql cannot read third party formatted backups(atleast litespeed), thats why I restore the full backup
    using native sql, since it was taken with native sql backup and log backups using litespeed syntax.
    Hope it Helps!!
    Thanks, well it was just a theory discussion we had about the issue. But none of us could find info on the internet easy to prove our point :) Thanks.

  • How do I get a text file from Photoshop  to work in the main sequence in pp?

    How do I get a text file to work properly in the master sequence. I moved it from Photoshop, which I learned to do from a tutorial, but when I move the animated text sequence to the master, it either isnt running, or it is scaled way too big. How do I get it to run in the main sequence?

    "Wont Work Here" !  Does not mean much.
    Are you having an audio or a video issue? 
    Looks like no video clip on the video layer above that section of audio.
    I am teaching myself this stuff completely on the fly
    I suggest you do the Basic Tutorials ( Adobe TV for example) in both Premiere Pro and PhotoShop.
    You need to be competent in the basics and fundamentals of these apps and that will also help you describe and discuss the issues.   Check the 'Products on this site....
    Adobe TV

  • How can I do to transfer all iTunes library from my Mac book Pro to Time capsule without to lost the alphabetic sequence of songs

    How can I do to transfer all iTunes library from my Mac book Pro to Time capsule without to lost the alphabetic sequence of songs & artists? What is the correct way to transfer my 3000 songs to Time capsule, to free the memory of my Mac? Thanks a lot. Carlo Molinari (Rome - Italy)

    How can I do to transfer all iTunes library from my Mac book Pro to Time capsule without to lost the alphabetic sequence of songs & artists? What is the correct way to transfer my 3000 songs to Time capsule, to free the memory of my Mac?
    The following are the basic steps to transfer your iTunes Media folder from your MacBook Pro to the Time Capsule (TC). Note: You will leave the iTunes Library, and its associated files, on the MacBook Pro as you will only be moving the media files.
    Be sure to shutdown iTunes before starting.
    Next, move the "iTunes Music" folder, located in ~/Music/iTunes/, to wherever you want on your TC's internal hard drive. Remember to leave the Album Artwork folder, as well as the three individual library files where they are on the MacBook Pro.
    Wait a while. If you have a large library, this will take a bit of time.
    Once the iTunes Media folder has been transferred, open iTunes. Note: It will still be looking at your local iTunes Library on the MBP. As such it will think that the iTunes Media folder is still on the MBP as well. However, we just relocated it to the TC. If you attempt to select any song, you will get an error that the song is "missing." Not to worry, we will correct this in the next step.
    We need to tell iTunes the media has moved to the TC's internal HDD. To change where iTunes "looks" for the media, open iTunes and go to the Advanced > General tab and use the "Change..." button to tell it where your new "iTunes Music" library is located.
    Once this is done iTunes will likely pop up a progress window telling you that it's re-analyzing your library. Let it complete this step.
    As a final check to make sure everything when as planned, click on any library file from within iTunes and press cmd + i (or View > Get Info). At the bottom of the Summary tab in that window is a "Where:" section that tells you the actual file path to that piece of media; be sure that path begins with the name of your TC's drive, and not "Macintosh HD."

  • How to use the bind variable in custom.pll

    Hi,
    How to use the bind variable in custom.pll.Its through error.
    any one gem me.
    very urgent.
    M.Soundrapandian.

    Hello,
    Please, ask this kind of questions in the e-business forum.
    Francois

  • How to create the Access sequence for the Vendor+material+plant combination

    Hi all
    Please let me know How to create the Access sequence for the Vendormaterialplant combination..
    Whats the use? What its effect in purhcase and taxe..
    brief me please

    Hi,
    you are asked to maintain the access sequence for the tax condition for which you are putting 7.5%.
    goto OBQ1 or img..financial accounting new...global settings.... taxes on sales and purchases ......basic settings.....
    find the tax condition type. see in it which access sequence is attached.
    if there is none then use JTAX used for taxes in India.
    or you can create the similar one for your.
    to create the same goto OBQ2.
    new entry or copy JTAX.
    and assign the access sequence to condition type.
    this will resolve your problem if you just need to assign the access sequence.
    regards,
    Adwait Bachuwar

  • How to get the bind value of a portlet in a page.

    I want to get the bind value of a portlet on a page. Can you tell me how can I get that.
    I used :
    portal30.wwv_name_value.get_string( l_arg_names, l_arg_values, '');
    It works ok when we run the report alone .But when we add the report as a portlet in page , it does not return any value. Can you tell me which Api does it.
    null

    Here is an example...
    var originalUnits = app.preferences.rulerUnits;
    app.preferences.rulerUnits = Units.PIXELS;
    var doc = activeDocument;
    var Colour1 = GetHexColour(eyeDropperRGB(1,doc.height-1));
    var Colour2 = GetHexColour(eyeDropperRGB(20,doc.height-5));
    var Colour3 = GetHexColour(eyeDropperRGB(40,doc.height-14));
    alert("Colour 1 = " +Colour1 + "\rColour 2 = " +Colour2 + "\rColour 3 = " +Colour3);
    var decColour = eyeDropperRGB(40,doc.height-14);
    alert("Red = " +decColour[0] + "\rGreen = " +decColour[1] + "\rBlue = " +decColour[2]);
    app.preferences.rulerUnits = originalUnits;
    function GetHexColour(reqHex){
    var out='';
    for(No in colours = reqHex){
    out = out.concat(zeroPad(d2h(reqHex[No]),2));
    return out;
    function eyeDropperRGB(x,y) {
    var x2 = x + 1;
    var y2 = y + 1;
    var out = new Array(3);
    activeDocument.selection.select([[x,y], [x2,y], [x2,y2], [x, y2]], SelectionType.REPLACE, 0, false);
    for(ch in list = ["Red", "Green", "Blue"]) {
    histogram = activeDocument.channels[list[ch]].histogram;
      for (i = 0; i <= 255; i++) {
       if (histogram[i]) {
        out[ch] = i;
        break;
      return out; 
    function d2h(d) {return d.toString(16);}
    function zeroPad(n, s) {
       n = n.toString();
       while (n.length < s)  n = '0' + n;
       return n;

  • How can I include results of a subsequenc​e, which runs in a new thread, in the main sequence test report

    Hi!
    I', m working with TestStand Version 4.2.1. I have a main sequence, which calkls different subsequences. All these steps are properly reported. One of subsequences runs as "new thread". How can I include its results in common test report of the main sequence?
    I have markes variables of the subsequence as it is requred for test report (it works OK if it is not a new thread). If the the numerical test, which is executed in this subsequence is correct, I get no results at all. If the numeric test failed I get somewhere in the main sequence report a "red message", that test failed whithout any reference to the step or values of vaiables which were not correct.
    I tried an option "On the fly" in the Report Configuration , but haven' got any useful results. What shall I do?
    Best regards
    Solved!
    Go to Solution.

    Hi,
    I tried it but without success:
    1) I got a reference to the Thread as "Locals.Step1=RunState.Thread" for every of 2 steps which start a thread
    2) I put both "Waits" after steps with (and without) threads, at the same place, where they were before
    3) The sequence run OK, but when it came to Wait for Thread 1 it waited for ever, I had to terminate sequence
    Does it mean, that I got a false reference (suppose No - please, have a look at attached pic)?
    Or does it mean, that Waits are badly placed in the sequence (threads are already terminated)? Here is a pic of sequeces calls with Wait after them.
    Regards
    Attachments:
    Thread.JPG ‏34 KB
    SequenceCall.JPG ‏32 KB

  • How to use bind variables in the following query

    CREATE OR REPLACE PROCEDURE MMDB.test IS
    sel_qtn VARCHAR2 (10);
    CURSOR PT_QUANTITY IS select * from mmdb.product_tree WHERE QUANTITY_CHECK ='E'
    AND run_id = 100
    a PT_QUANTITY%ROWTYPE;
    BEGIN
    FOR i IN PT_QUANTITY
    loop
    sel_qtn := i.quanttity-1;
    While sel_qtn>=1
    loop
    insert into mmdb.product_tree (BILLING_ACCOUNT_NO ,S_CODE) values (i.BILLING_ACCOUNT_NO ,i.S_CODE||'E');
    sel_qtn :=sel_qtn -1;
    End loop;
    commit;
    end;

    Don't duplicate threads: How to use bind variables in the following query

  • How to make use of the results of one step at the other step in the same sequence

    Hello
    I am new to the Teststand.
    I am using labview8.0 with teststand 3.1
    Plz get me solution for the below
    I am configuring the serial port resources like resource name, baud rate etc..,I made the initialization using setup task.I made serial port write and serial port read as independant vi's in labview and called them from teststand as steps.Now i need the same resource name appear in some other steps in the sequence .how can i get them using teststand commands instead of specfying them at each step.
    Also how to pass values or results obtained from one step to some other step in the same sequence using teststand commands.
    Also help me in parameter passing
    Regards
     Kiran

    Hi Kiran,
    I wrote some example code that demonstrates what you are trying to do. The sequence file relies on a local variable named visa_resource of type LabVIEWIOControl.
    Regards,
    Attachments:
    test.zip ‏11 KB

  • How to set the binding type in abap web service

    before generating wsdl , anybody know how to change the binding type of wsdl for web service

    do u know any sap netweaver transaction coads for changing the binding .
    lpconfig tansaction  call parameter (logical port)  for client proxi is showing like
    binding type  = http://schemas.xmlsoap.org/soap/http
    but it is predefined  in some profile  can u tell me how to change this
    an in my wsdl i am getting
    <wsdl:port name="z_add_add_webSoapBinding" binding="tns:z_add_add_webSoapBinding">
    this i cant consume from java , in SAP i can consume this web service ,
    i want to make my wsdl like as shown bellow
    - <wsdl:port name="periodictableSoap" binding="tns:periodictableSoap">
      <soap:address location="http://www.webservicex.net/periodictable.asmx" />
      </wsdl:port>
    - <wsdl:port name="periodictableHttpGet" binding="tns:periodictableHttpGet">
      <http:address location="http://www.webservicex.net/periodictable.asmx" />
      </wsdl:port>
    - <wsdl:port name="periodictableHttpPost" binding="tns:periodictableHttpPost">
      <http:address location="http://www.webservicex.net/periodictable.asmx" />
    here you can sea httpget   and httppost  in my wsdl it is not there

  • How to pass the bind variable value to the sql statement of the LOV

    Hi,
    I am using Forms 10g builder.
    I have a text item which will be populated by a LOV when i press a button, but i have a bind variable in the SQL statement of the LOV. That bind variable should be replaced by a value which is derived from a radio group in the same data block.
    For Ex: ( )radio1 ( )radio2
    before i click on the push button, I'll select one of the radio button above,so my question is how to assign this radio group value to the bind variable in the sql statement in the LOV?
    Pl any hint is appreciated!
    Thanks
    Reddy

    The variable can be taken into account in the SELECT order contained in the Record Group used by the LOV.
    e.g. Select ... From ... Where column = :block.radio_group ...Francois

  • How to assign sessionscope variable to the bind variable in Query of VO

    Hi all,
    I want to know how to assign a sessionscope variable in the binvariable of Query in VO
    My sessionscope variable holds the value of currently selected column in the table. eg:empname of the currently selected column which is in empdetails table...
    I want display the schemes available for the selected employee in the next table..The schemes are in another table named empschemes which has the empname and empschemes as column
    I have created a vo for empschemes table with bind variable 'scheme_bind'..I need to set the sessionscope variable '#{sessionScope.empname}" to the bind variable.
    Its urgent,..Pls do reply asap
    Thanks in advance
    Nasrin

    HI,
    You can use
    adf.context.sessionScope.get("YourSessionVariable")this code for assigning VO's bind variable value.write this code where you create bind variable and do not forget click on expression radio button.
    Rafat

  • How to set Bind variable on the action of command link

    I have two tables. One is the list of processes and other one is the details of processes with process name as primary key.
    I want to first display the first table which has the list of processes on one page. When I click on perticular process name this process will pass to the bind variable of another table and corresponding details will be shown on other page. can anyone help how I can do this. My code is as follows:
    package model;
    import model.common.BpelDetailsView;
    import oracle.jbo.server.ViewObjectImpl;
    public class BpelDetailsViewImpl extends ViewObjectImpl implements BpelDetailsView {
    * This is the default constructor (do not remove).
    public BpelDetailsViewImpl() {
    * Returns the variable value for bpelnameVar.
    * @return variable value for bpelnameVar
    public String getbpelnameVar() {
    return (String)ensureVariableManager().getVariableValue("bpelnameVar");
    * Sets <code>value</code> for variable bpelnameVar.
    * @param value value to bind as bpelnameVar
    public void setbpelnameVar(String value) {
    ensureVariableManager().setVariableValue("bpelnameVar", value);
    this.executeQuery();
    <af:commandLink id="ot3" text="#{row.BpelName}"
    action="#{DasboardBean.ot3_action}"/>
    public String ot3_action() {
    BpelDetailsViewImpl bdv=new BpelDetailsViewImpl();
    bdv.setbpelnameVar("#{row.BpelName}");
    return "success";
    but its not working at all.
    Its displaying the errors on click of command link.
    javax.servlet.ServletException: java.lang.NullPointerException
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:85)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:54)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.wls.JpsWlsFilter$1.run(JpsWlsFilter.java:96)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.wls.util.JpsWlsUtil.runJaasMode(JpsWlsUtil.java:146)
         at oracle.security.jps.wls.JpsWlsFilter.doFilter(JpsWlsFilter.java:140)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:70)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:202)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3588)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2200)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2106)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1428)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: javax.faces.el.EvaluationException: java.lang.NullPointerException
         at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:51)
         at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
         at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
         at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:147)
         at org.apache.myfaces.trinidad.component.UIXTable.broadcast(UIXTable.java:271)
         at oracle.adf.view.rich.component.UIXTable.broadcast(UIXTable.java:140)
         at oracle.adf.view.rich.component.rich.data.RichTable.broadcast(RichTable.java:364)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:87)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:298)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:91)
         at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:87)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:87)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:298)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:91)
         at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:81)
         at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
         at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:673)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:273)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:165)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         ... 34 more
    Caused by: java.lang.NullPointerException
         at oracle.jbo.server.ComponentObjectImpl.ensureVariableManager(ComponentObjectImpl.java:472)
         at model.BpelDetailsViewImpl.setbpelnameVar(BpelDetailsViewImpl.java:32)
         at portal.view.bean.DasboardBean.ot3_action(DasboardBean.java:24)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
         at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
         at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:46)
         ... 54 more

    Hi Shay..
    Thanx for your help...
    I stuck in one more problem. When I run directly the first list page it works fine. I craeted one more page home.jspx where I added a golink with <af:golink id="gl1" text ="List" destination="list.jspx". When I click on link it opens the list page. Now when I clicking on first column its redirecting to list.jspx not to details.jspx.
    What can be the solution for this.

  • HT4236 How do you keep photos in the same sequence on the iPhone that they are on the PC folder?

    How do you keep photos in the same sequence in the iPhone as they are in the folder on the PC??

    When I sync my photos they are listed alphabetically (by folder) and within the folders, listed alphabetically again by the name assigned to the photo. The only way I can think of to keep the order that you have in your computer would be to assign a letter as a prefix to each photo. If you have more than 26 photos in a folder, you can double the letters, etc. I think that will keep the photos in the order you want.

Maybe you are looking for