Dynamic Parallel Authorization , IF APPROVE

hi ppl,
          I am working on purchase order <b>BUS2012</b> in my scenario i need to use Dynamic Parallel approval. So if i use Dynamic Parallel Authorization wizard it says BUS2012 does not contain IF APPROVE what is this ? . Can anyone explain me in detail.

HI Hari
In order to implement Parallel processing use the the "Miscellaneous" or "Other" tab and provide the number of approvers in a multiline container element and mention in this tab. Now in the Binding from Workflow to Task of that particular step you will find a Par_For_Each_Index element in the Binding from Workflow to Task or subworkflow. Please use this  binding and this will ensure parallel steps. Please reward points if it is effective.
Thanks
Arghadip

Similar Messages

  • Dynamic Parallel Approval for HCM Process and Forms

    Hi everyone,
    I have a scenario where I need to use the "Dynamic Parallel Approval" (or to keep it simple, initially I tried using the "Parallel Approval" wizard)for a workflow used in the HCM Process and Forms.
    The standard task for approval in process and forms is TS17900101. I have mentioned a multiline container in the Miscellaneous tab of this task. However,I was unable to use this task in the wizard. There are no results attahced to this task unlike any other standard approval task (like TS30200147). I need to use the task TS17900101 in the workflow assigned to process and forms, but not sure how to handle this scenario (parallel approval).
    If this is not the right way of doing it, Is there any workaround for "Parallel Approval" in HCM Process and Forms.
    Could anybody throw some light around this area.
    Thanks for your help.
    - MM

    Thanks Anuj. But I believe, the container element that I add in the miscellaneous tab does not necessarily have to be used in the agent assignment. The multiline container is just to instantiate the workitem 'n' number of times. Correct me if I am wrong.
    My concern is that I was unable to use this approval task (TS17900101) in the workflow wizard for dynamic paralle/parallel approval.
    Arghadip - Thanks for your suggestion. I have seen some your nice contributions in the WF forum.
    I actually tried using the 'Blocks'. But this is what I ran into. When I send multiple approval requests (say 3), if one person has approved it and the second has rejected it,I need to take out the workitem from the third person's list (because it has been rejected by someone in the group). I am not sure if this is possible using Blocks. And in my case the third person is still having the workitem, but gets a dump/error when he tries to open it.
    Also, if any one has rejected the request, I do not have to wait for the rest to take any action on the workitem and proceed further. But I guess in 'Blocks' it will not let you go out unless every workitem has been processed.
    To summarize,here's what I need - I need to come out of the block for two conditions. One, if everyone has approved, comeout of the block with an apprval flag. Two, if anyone has rejected (even if some have not processed their workitem), delete the workitems from others inbox and come out of the block with a rejection flag.
    So, any kind of input or suggestions on how this could be handled would be highly appreciated.
    Thanks
    MM

  • Dynamic parallel processing using a multiline container element

    Hi All ,
      I just wanted to how things work when we use "Dynamic parallel processing" for a decision step . I came across a situation wherein a Rule gets the approving user(s) and the work item should be sent to all those users . After getting an approval from all the users , the workflow should proceed or else it should terminate .
       I was just wondering whether "Dynamic parallel processing" will do this job or not . I had also thought of using forks but as the number of approvers are  decided at runtime , i dont think it is possible .
       Any inputs ?
      Edit : We are working on CRM 5.0
    Thanks ,
    Shounak M.
    Message was edited by: Shounak  M

    Hi Shounak,
    Just do as Mike says:
    use the multiline element for a subflow.
    The subflow consists of your user decision, if someone rejects it, remember it (could be done by updating a small table using a method, or use an event, or what mike suggested, updating appending a table )
    In the top flow, after the multiline element step determine if someone rejected it (wait for event, or reading the table).
    Kind regards, Rob Dielemans
    Message was edited by: Rob Dielemans

  • Dynamic parallel processing of the same object using asynchronous method

    Hi,
    Please can anyone help me?
    I have to send the same DMS document to several agents for parallel processing. The number of agents is not known until runtime. Each of them should process the document and at least change the status of it. In next step I check if he has changed it.
    I use dynamic parallel processing of subworkflows. Key task of this subworkflow uses standard method of object DRAW - DOCUMENT.EDIT  (standard transaction CV02N) which is asynchronous. The task is finished by event DOCUMENT.CHANGED. 
    During the parallel processing the appropriate number of workitems is generated. However, when the agent who processes the document as first completes his workitem the event DOCUMENT.CHANGED is generated and all parallel workitems are completed, even those of other agents that were not processed yet.
    Any help would be appreciated.
    Thanks.
    Eva Vahalova

    Hi all,
    The process is used to approve incoming invoices. Each scanned invoice is attached to a DMS document and than sent to one or several agents in parallel. People from several departments can approve the same invoice for instance energy or mobile phone costs. We have no HR module fully implemented. Each agent may write some remarks and has to sets the document status to either approved or rejected. This status is temporary therefore the others see the original status for approving.
    The process of incoming invoices was implemented by SAP consultants in 2003 on 4.6B and now runs on our 4.7 system.  Now new company was established running on a new SAP system ECC 6.0 and our accountant department and some agents will deal with invoices in both systems. Therefore, the process should appear the same or at least very similar. The majority of the old process was realized by programming while I would like to use workflow features that are available now and reduce the programming part.
    As I see, I will have to choose one of the solutions that Arghadip suggested.
    I wonder if there is a possibility to use asynchronous method and control the end of each work item by means of u201CComplete Work Itemu201D or u201CComplete executionu201D Conditions. I have never used them and I do not know how they work and what condition to use. Maybe program exit might be used as well. While controlling the agents I think I will have to do some programming anyway because the work item can be finished by a substitute too.
    Thanks for your help.
    Eva

  • Defining index in Dynamic parallel processing of workflow

    Hi all,
    I am using dynamic parallel processing feature in workflow for a particular multi-line element. But I am not able to define the index in that particular task.
    Consider that i have a multi-line element "Material". For this element, I need to loop that task for that n number of records. so i am using dynamic parallel processing. Now for each workitem generated, i need to show that particular material in the workitem. I remember that we need to use index, but i couldn't recollect how it is defined.
    Could anyone help me in this regard?
    Thanks in advance

    Nikhil,
    When you use dynamic parallel processing the index is available in <b>_Wf_ParForEach_Index</b>. A reference for the line of the multi line element is automatically generated for each work item created. You can see this in the Binding Editor for the step. In your case this will be "Material()". When you drag this element to the WF to Step binding window, it will be resolved as "&Material[&_Wf_ParForEach_Index&]&. Therefore you can get the material for each WI by defining "Material" in your task container (not as multiline) and doing the appropriate binding. If you in fact need the Index in your method, you can define a container element your task with reference to Type SWC_INDEX and bind to ]_Wf_ParForEach_Index.
    Cheers,
    Ramki Maley.
    Please reward points if the answer is helpful.
    For info on awarding points click on this link: https://www.sdn.sap.com/sdn/index.sdn?page=crp_help.htm

  • Problem in Dynamic Parallel processing using Blocks

    Hi All,
    My requirement is to have parallel approvals so I am trying to use the dynamic parallel processing through Blocks. I cant use Forks since the agents are being determined at runtime.
    I am using the ParForEach block. I am sending the &agents& as a multiline container in 'Parallel Processing' tab. I have user decision in the block. Right now i am hardcoding 2 agents in the 'agents' multiline element. It is working fine..but i am getting 2 instances of the block.I understand that is because I am sending &AGENTS& in the parallel processing tab.. I just need one instance of the block going to all the users in the &AGENTS& multiline element.
    Please let me  know how to achieve the same. I have already searched the forum but i couldnt find anything that suits my req.
    Pls help!
    Regards,
    Soumya

    Yes that's true when ever you try to use  ParForEach block then for each value entry in the table a separate workitem ID is created, i.e. a separate instance is created that paralle processing is not possible like that
    Instead of that what you can do is create a fork with 3 branches and define a End Condition such that until all 3 branches are executed .
    Before to the fork step determine all the agents and store them in a internal table , you can access the one internal table entry by using the index value check this [wiki|https://www.sdn.sap.com/irj/scn/wiki?path=/display/abap/accessingSingleEntryfromMulti-line+Element] to access single entry from a internal table.
    For each task in the fork assgin a agent
    So, as we have defined the condition that until all the three branches are executed you don't want to come out of the fork step so, it will wait until all the stpes are completed.

  • Acheiving dynamic parallel approval

    Hi,
    I am trying to use a decision step to send the approval request to a list of agents specified in a multiline container element. I am able to generate as many parallel branches as the number of agents. I want to acheive the following once this is done:
    1) The workflow should not continue unless all approvers have approved a request (this can be regarded as an AND operation)
    2)The workflow should continue even if one approver rejects a request. Also if any one approver rejects, the workitem should disappear for all other approvers.
    A related question is as follows:
    How do we specify an End condition for a decision step using a multiline container element. The end condition doesnt seem to be working for me. A step by step approach with some screenshots may be helpful.
    Thanks,
    Mudit

    Hi Vinoth,
    Your solution seems to be interesting. I will try it and let you know if it works for me. However, I tried a similar approach where I was raising an exception in the reject branch of the User Decision step (which uses a multiline container element) using the same Process Control step and was trying to catch it in a block element. But the workflow throws up an error with the way I tried. I will try the fork method which you have suggested.
    Also I am interested in knowing if I can make use of the End Condition for this purpose which can be specified in the miscellaneous tab of the UD step where we specify the Multiline Container element. I am not sure when that End condition would be triggered.  If somebody has got this End Condition to work for him, can you share the exact steps that you followed for this?
    Thanks for all your time.

  • Dynamic parallel approval workflow

    Hi all,
    I want to design a workflow where I have to send mails to different approvers. Here,the case with me is the approvers are selected dynamically & No. of approvers are also selected dynamically (at run time).
    I would like to know whether its physible or not. IF yes, any solution towards this will be helpful.
    Thanksin advance.
    Regards,
    Siddhesh Sanghvi

    I think the Actual_Agent container element gets populated only when someone completes the workitem. In your case you need to send the mail to the approver by using the same agent assignment you have used in that activity step. I hope you understand. If you use rule then ue rule in the deadline agent assignment also. You can also create a container element that populates the approvers in a task that is executed before nd use it in the deadline portion.
    Thanks
    Arghadip

  • OIM 11g R1. Issue with parallel participant type approval workflow.

    Hi All,
    I have a request level approval with the human task assignment participant type set to parallel. There will be two participants in the workflow with approve and reject having outcome value as 50 each. When i submit a request, i can see the both the request is properly allocated to both the users. But when i log in with the individual users and search the approval tasks in the self service page, i cant see it properly assigned.
    In the approval tasks table, i cant see the values for the following columns request ID, request type, beneficiary, request target. Whereas i can see the value for the requester as "Anonymour user" and it is assigned to a proper user. When i try to approve, i get the following error in the console.
    ========================================================================================================================
    <25 Nov, 2012 1:49:09 PM IST> <Warning> <oracle.adfinternal.view.faces.renderkit
    .rich.NavigationPaneRenderer> <BEA-000000> <ILLEGAL_COMPONENT_HIERARCHY : A chil
    d component that is not a commandNavigationItem (or a separator when hint=choice
    ) was found.>
    <25 Nov, 2012 2:22:57 PM IST> <Error> <oracle.iam.request.impl> <IAM-2050076> <N
    o request found with the request ID .>
    <25 Nov, 2012 2:22:57 PM IST> <Error> <oracle.iam.tasklist.agentry.task> <IAM-20
    60009> <Error occurred while approving task from BPEL>
    <25 Nov, 2012 2:22:57 PM IST> <Error> <oracle.iam.tasklist.agentry.task> <IAM-20
    60013> <Exception thrown:
    oracle.iam.request.exception.RequestServiceException: IAM-2050076:No request fou
    nd with the request ID .
    at oracle.iam.request.repository.RequestRepository.getRequestClone(Reque
    stRepository.java:891)
    at oracle.iam.request.impl.RequestEngine.getBasicRequestDetails(RequestE
    ngine.java:3877)
    at oracle.iam.request.impl.RequestServiceImpl.getBasicRequestData(Reques
    tServiceImpl.java:94)
    at oracle.iam.request.api.RequestServiceEJB.getBasicRequestDatax(Unknown
    Source)
    at sun.reflect.GeneratedMethodAccessor1000.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJo
    inpointUsingReflection(AopUtils.java:310)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMetho
    dInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMetho
    dInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntrodu
    ctionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntrodu
    ctionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMetho
    dInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisit
    orImpl.visit(MethodInvocationVisitorImpl.java:37)
    at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.c
    allback(EnvironmentInterceptorCallbackImpl.java:54)
    at com.bea.core.repackaged.springframework.jee.spi.EnvironmentIntercepto
    r.invoke(EnvironmentInterceptor.java:50)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMetho
    dInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocat
    ionInterceptor.invoke(ExposeInvocationInterceptor.java:89)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMetho
    dInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntrodu
    ctionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntrodu
    ctionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMetho
    dInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopPr
    oxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy337.getBasicRequestDatax(Unknown Source)
    at oracle.iam.request.api.RequestService_dnwrzl_RequestServiceRemoteImpl
    .__WL_invoke(Unknown Source)
    at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(Ses
    sionRemoteMethodInvoker.java:40)
    at oracle.iam.request.api.RequestService_dnwrzl_RequestServiceRemoteImpl
    .getBasicRequestDatax(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor999.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(Remote
    BusinessIntfProxy.java:85)
    at $Proxy170.getBasicRequestDatax(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor998.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflecti
    on(AopUtils.java:307)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynami
    cAopProxy.java:198)
    at $Proxy336.getBasicRequestDatax(Unknown Source)
    at oracle.iam.request.api.RequestServiceDelegate.getBasicRequestData(Unk
    nown Source)
    at oracle.iam.tasklist.agentry.task.ApproveActor.perform(ApproveActor.ja
    va:106)
    at oracle.iam.consoles.faces.mvc.canonic.Model.perform(Model.java:565)
    at oracle.iam.consoles.faces.mvc.self.Model.perform(Model.java:178)
    at oracle.iam.consoles.faces.mvc.canonic.Model.prepare(Model.java:460)
    at oracle.iam.consoles.faces.mvc.self.Model.prepare(Model.java:173)
    at oracle.iam.consoles.faces.mvc.canonic.Controller.doPrepare(Controller
    .java:225)
    at oracle.iam.consoles.faces.mvc.canonic.Controller.doSelectOperationNav
    igation(Controller.java:88)
    at oracle.iam.consoles.faces.render.canonic.UIEntrypod$CommandToolbarBut
    tonActionListener.processAction(UIEntrypod.java:677)
    at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcast(UIXC
    omponentBase.java:675)
    at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand
    .java:179)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.r
    un(ContextSwitchingComponent.java:92)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._pr
    ocessPhase(ContextSwitchingComponent.java:361)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.bro
    adcast(ContextSwitchingComponent.java:96)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclu
    de.java:102)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.r
    un(ContextSwitchingComponent.java:92)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._pr
    ocessPhase(ContextSwitchingComponent.java:361)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.bro
    adcast(ContextSwitchingComponent.java:96)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclu
    de.java:96)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents
    (LifecycleImpl.java:902)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(L
    ifecycleImpl.java:313)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(Lifecyc
    leImpl.java:186)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run
    (StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecuri
    tyHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.jav
    a:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:56)
    at oracle.help.web.rich.OHWFilter.doFilter(Unknown Source)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:56)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.j
    ava:205)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:56)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter
    (RegistrationFilter.java:106)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterL
    istChain.doFilter(TrinidadFilterImpl.java:446)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter
    .java:60)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterL
    istChain.doFilter(TrinidadFilterImpl.java:446)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilt
    erImpl(TrinidadFilterImpl.java:271)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilte
    r(TrinidadFilterImpl.java:177)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFi
    lter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:56)
    at oracle.iam.platform.auth.web.PwdMgmtNavigationFilter.doFilter(PwdMgmt
    NavigationFilter.java:121)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:56)
    at oracle.iam.platform.auth.web.OIMAuthContextFilter.doFilter(OIMAuthCon
    textFilter.java:107)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:56)
    at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:1
    75)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:31
    3)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUt
    il.java:413)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.jav
    a:94)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:1
    61)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:56)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:13
    6)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:56)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsF
    ilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
    va:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
    n.wrapRun(WebAppServletContext.java:3715)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
    n.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
    dSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
    120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppS
    ervletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletC
    ontext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.j
    ava:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    >
    ========================================================================================================================
    Please share any thoughts on this.
    Thanks,
    Srini

    Hi Kevin,
    Thanks a lot for the response. But, when i deployed the composite SAR in to the server from Jdeveloper, i checked the option to "Overwrite any existing composite with same revision ID". SO, i used the same revision ID (Say 1.0), will this also need to be disabled?
    Thanks,
    Srini

  • Dynamic agent rule during approval

    Hi gurus,
    my question is based on a customer requirement.
    they want a n-step approval with dynamic agent determination: fine.
    then they want to maintain the substitutes: fine as well.
    But what they want to do is to change the workflow path based on the substitute.
    I mean: if the first aprover has set a substitute the first task goes to the substitute, but the following tasks have to follow the substitute hierarchy and not the original workflow path.
    So we don't think the standard system way to use the substitute is not enough, but we need to determinate in the beginning if a substitute was set for some approvers.
    The thing is that the substitute record is dynamic and has a validity end, and could be set after the workflow is started.
    Is it possible at every step recalculate the workflow path and the next approvers (so to discover if a substitute rule has be changed or created or deleted)?
    PS: we are using SRM 7.0 and the process controlled workflow.
    Thank you very much in advance!
    Regards,
    Maria

    Hi,
    Yes. Agent is determined in each step right after previous step is completed in SRM70 Process-Controlled Workflow.
    Please check following workflow objects.
    WS40000016
    TS40007943
    Rule 40000138
    FM /SAPSRM/WF_CORE_RESP_RESOLVER
    Regards,
    Masa

  • How to invoke synchronous services dynamically (parallel) using BPEL

    hi,
    I am working on soa suit 11g(11.1.1.2.0) & weblogic server 10.3.2. I have one requirement in which i need to dynamically route endpoints. To achive this, i have created one table in which i stored endpoints(wsdl url) & i used parallel flow to get that wsdl entry. I am invoking dbadaptor & taking input from parallel activity's as index variable which is unique for each time. Like for one flow it uses 1, second flow it uses 2 and so on. But when i m calling dbadaptor to get wsdl_url from table, everytime it's taking first index_value, hence i am not getting correct wsdl_url from table. If i will get correct url then i will use dynamica partnerlink to call wsdl.
    Could you please tell me any other way to dynamically route end point in BPEL?
    Thanks
    Amit

    Dude,
    I do have same requirement, but I followed the below link and I have created my process. I haven't tested it due to my environment is not yet ready. Even though my strong feeling is that we can achieve using this OSR installation. Just follow link and install OSR, after that take web service partner link and go to Resource pallet and invoke the service which is already exported from OSB, then one window will pop up with message of Check Dynamic......, there you have to check them. Finally all you need to do is..., Test it on another environment and let me know.
    http://biemond.blogspot.com/2009/12/using-oracle-service-registry-in-soa.html
    Cheers,
    Mally

  • Dynamic parallel node numbers

    hi,
    is it possible to have a dynamic number of parallel branches determined at runtime and not at design time?
    Christophe

    Hi,
    I suppose you were expecting 'no' as answer.
    But there is probably a solution for your problem depending on the exact scenario you want to implement.
    If you want to make simultaneous asynchronous requests to different systems and wait for the replies, you can separate the asynchronous node in a separate WLI process, which will be instanciated for each (virtual) branch you want to have.
    P1: process which dynamically chooses the number of "parallel branches". It publishes (via a loop) a message to the channel for each virtual branch.
    P2: process which makes the actually asynchronous request
    P1
    | ^
    v |
    [WLI channel]
    | ^
    v |
    P2You'll need to correlate manuallly in P1 the request and responses to/from the channel. Take also care if there can be multiple P1 instances.

  • Dynamic Analysis authorization to handle changing row level security in BW

    Hi experts,
        Is it possible to implement SAP BW 7.x ANALYSIS AUTHORIZATION in a dynamic manner. One example of this will be to replicate the CRM Organization model in SAP BW and display data as per organization Model.
       One example would be a Manager or a Org unit able to display all Sales Orders where all employee belonging to that Org unit are maintained in those Sales Order as employee responsible. If this Org structure is static it can be easily done in BW BY Analysis authorization. But not sure about the approach when the Org structure changes in a regular interval in CRM,
    Thanks for help

    If you maintain the "Org structure" as a BW hierarchy, and if it always changes in CRM,
    then you just need to load the hierarchy again to BW after the change in CRM.
    In the analysis authorization, e.g. if you assign a user to be authorized for all nodes and leaves under a certain node A,
    then it would still work even if what's below node A changes.
    Hope this answers your question.
    Regards,
    Patricia

  • Dynamic Distribution Group - Moderator approval fails

    hi,
    (On premise and office365 Exchange)
    we use the above in our organization. we have some dynamic groups created. I have a moderator for a couple of groups. when a user sends an email to one of the group that has a moderator, the latter gets an email to either approve or reject the message. when
    he/she clicks on the accept button they get the following error:
    Delivery has failed to these recipients or groups:
    Microsoft Exchange Approval Assistant
    Your message wasn't delivered because the recipient's email provider rejected it.
    Diagnostic information for administrators:
    Generating server: DB4PR07MB0701.eurprd07.prod.outlook.com
    SystemMailbox{d57a4133-7e21-486e-9917-f7fb70dc2cdb}@XXXXXX.onmicrosoft.com
    Remote Server returned '< #5.7.12 smtp;550 5.7.12 RESOLVER.RST.SenderAuthenticated; Delivery restriction check failed as sender not authenticated>'
    Original message headers:
    Received: from AMXPR07CXXXXX.eurprd07.prod.outlook.com (10.242.64.XX) by
    DB4PR07XXXXX.eurprd07.prod.outlook.com (10.141.45.XX) with Microsoft SMTP
    Server (TLS) id 15.1.6.9; Fri, 31 Oct 2014 14:20:41 +0000
    Received: from DB3FFO11XXXXX.protection.gbl (2a01:111:f400:7e04::130) by
    AMXPR07CXXXXX.outlook.office365.com (2a01:111:e400:1000::20) with Microsoft
    SMTP Server (TLS) id 15.1.11.14 via Frontend Transport; Fri, 31 Oct 2014
    14:20:41 +0000
    Received: from XXXXX.XXXXX.co.ke (197.220.102.XXX) by
    DB3FFO11FD053.mail.protection.outlook.com (10.47.217.XXX) with Microsoft SMTP
    Server (TLS) id 15.0.1049.20 via Frontend Transport; Fri, 31 Oct 2014
    14:20:40 +0000
    Received: from XXXXX.XXXXX.co.ke (192.168.11.XXX) by
    XXXXX.XXXX.co.ke (192.168.11.XXX) with Microsoft SMTP Server (TLS) id
    15.0.847.32; Fri, 31 Oct 2014 17:20:37 +0300
    Received: from XXXXX.XXXXX.co.ke ([fe80::4b9:1080:7301:f8be]) by
    XXXX.XXXXX.co.ke ([fe80::4b9:1080:7301:f8be%15]) with mapi id
    15.00.0847.xxx; Fri, 31 Oct 2014 17:20:37 +0300
    From: "XXXXX XXXXX " <[email protected]>
    To: Microsoft Exchange Approval Assistant
            <SystemMailbox{d57a4133-7e21-486e-9917-f7fb70dc2cdb}@XXXXX.onmicrosoft.com>
    Subject: Approve: * QUOTE OF THE DAY *
    Thread-Topic: * QUOTE OF THE DAY *
    Thread-Index: Ac/1FciNlxJwVzCBTJKjqDyb/OnY+gAAAOtxAAAChkA=
    Date: Fri, 31 Oct 2014 14:20:37 +0000
    Message-ID: <[email protected]>
    Accept-Language: en-US
    Content-Language: en-US
    X-MS-Has-Attach:
    X-MS-TNEF-Correlator:
    x-originating-ip: [192.168.1.XXX]
    Content-Type: text/plain; charset="us-ascii"
    Content-Transfer-Encoding: quoted-printable
    MIME-Version: 1.0
    Return-Path: [email protected]
    X-EOPAttributedMessage: 0
    X-Forefront-Antispam-Report: CIP:197.220.102.xxx;CTRY:KE;IPV:NLI;EFV:NLI;
    X-OriginatorOrg: XXXXX.onmicrosoft.com
    X-Microsoft-Antispam: UriScan:;
    X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:;SRVR:DB4PR07xxxxx;
    Kind Regards, Khuzema R.

    Hi Khuzema,
    Please confirm if your Dynamic Distribution Group is created on-promise and the moderator is on the Office365 Exchange.
    If the Dynamic Distribution Group and the moderator are in different Exchange servers: On-premise and Online, please open the Dynamic Distribution Group in EAC, then check
    Senders inside and outside of my organization in delivery management to have a try.
    If it doesn’t work, I suggest we can change a moderator who is in the same mailbox server with the Dynamic Distribution Group to check whether the issue persists.
    Regards,
    Winnie Liang
    TechNet Community Support

  • Dynamic Parallel Processing using Rule

    Hello,
    I am using a User Decision within a Block (ParForEach type) step to send work-items to multiple Approvers parallelly.
    For this I have created a Multi-line container LI_APPROVERS and bound &LI_APPROVERS[&_WF_PARFOREACH_INDEX&]& to &_LI_APPROVERS_LINE& in the "Parallel Processing" tab of the Block.
    Now in User Decision I am using Agent as Expression = &_LI_APPROVERS_LINE&. This is working perfectly fine if I fetch the values in LI_APPROVERS via a background method before "Block" step is executed.
    I want to know if we can do this using a "Rule" within the User Decision? Meaning approvers are determined by the Rule(through a FM) at the run time instead of fetching them beforehand. I created a custom Rule and tried passing it under Agents but it didn't work. I do not know what bindings need to be done and how each line will be passed to User Decision to create a work-item for each user.
    Or
    I should remove the Block step completely and directly use the User Decision Task with Parallel Processing option under Miscellaneous tab?
    Can someone please explain how to achieve this using a Rule and exactly what bindings are required.
    Thanks.

    Hi Anjan,
    Yes, that's exactly what I want to know. I saw your below response in one of the threads but could not understand exactly how to do it. Can you please explain it.
    You have all  your agents in one multiline container element in workflow.
    Then you take a block step with perforeach.
    Then create a custom rule which will import multiline element of agents , and a line_no. Then in the rule you populate the actor_tab with agents from that multiline contaier elemens of agent. The logic will take the agent from the multiline container[line_no].
    Then you take a activity step . In agent use your custom rule usin prpoer bindin of multiline element of agents and for line_no you pass _***_line from block container. Then workitem will sent to n no of people parrallaly.
    This is my current design:
    Activity returns agents in LI_APPROVERS.
    At Block: I have binding &LI_APPROVERS[&_WF_PARFOREACH_INDEX&]& --> &_LI_APPROVERS_LINE&
    At UD: I have Agents as Expression = &_LI_APPROVERS_LINE&
    I want to remove the Activity step (to get Agents in background) and replace with Rule within UD. What binding do I need from Rule to Workflow? How to get the "Line_no" from rule as you mentioned above.
    Thanks for your response.

Maybe you are looking for