Forum Stats

  • 3,839,017 Users
  • 2,262,438 Discussions
  • 7,900,836 Comments

Discussions

How to call parent action from bounded task in region without rendering page fragment, immediately f

prophet
prophet Member Posts: 25
edited Dec 6, 2018 5:32AM in JDeveloper and ADF

Hi,

I'm trying to configure pretty simple bounded task flow in region called from page in unbounded task flow.

Idea is:

  • page in unbound flow (accessible by url in browser) contains region with this bounded task flow
  • default activity in bounded task flow is Router
  • one outcome goes to shows page fragment, another immediately calling Parent Action (which 100% exist in parent unbound task flow)

screenshots are attached below

Problem:

It works only in case of rendering Page fragment. Second case - calling Parent action - does not work. It does not redirects to another page.

More about that: In page fragment, which renders perfectly, I can place a navigation button, which calls action navigating to Parent Action - that way it works -

it redirects to proper page in unbound task flow (menuMyaccount flow case)

So as I understand it is something with "scope/phase" of bounded task flow. Can I get it working somehow?

I want to achive pretty simple goal: call parent action without rendering page fragment; router makes checks and in some cases it redirects to parent action immediately.

screenshots:

bound_task_flow.png

unbound_task_flow.png

Thanks in advance,

Artem

Tagged:

Answers

  • Timo Hahn
    Timo Hahn Senior Principal Technical Consultant - Oracle ACE Director Member, Moderator Posts: 38,588 Red Diamond
    edited Nov 30, 2018 1:55PM

    User, tell us your jdev version, please!

    Why do you use s patent action for this?

    Have you tried to user a return action to close the task flow?

    Timo

  • prophet
    prophet Member Posts: 25
    edited Dec 1, 2018 12:44AM

    Hi Timo,

    Its latest (12.2.1.3.0). Screenshot with details below.

    I use parent action, because I want my pages to be accessible directly by url: domain.com/myaccount, domain.com/login, etc.. so I put all of them into unbounded task flow. I tried to use bounded taskflows with pages instead of fragments, but bounded task flow is not accessible directly from url (only during session navigated from jsf page... even when url-invoke-allowed is specified - and I understood from docs, that its impossible to open task flow in browser directly by url).

    So I decided to use bounded task flow with fragments inside jsf page region.

    Look. That is application code - https://github.com/artem-korolev/adf12ctaskflowsample

    I tried it with partialSubmit=true|false, I tried it with PPR navigation turned on and off (in sample I provide it turned off). tried with return action after parent action, and without

    All except "pagewithredirect" page works with any set of parameters. pagewithredirect just stays empty and not running parent action.

    What Jdev version do you suggest to use?

    Do you think i'm using incorrect approach to implement functionality that I need? I like the way how I want to make it, cause it requires zero lines of code and diagram is pretty descriptive. The way with return action I like even more in some cases (cause it validates better at compile time), but as I already noticed - its not possilble (at least I didn't found a way) to open bounded task flow in browser directly by url.

    jdev-version.PNG

    jdev-version2.PNG

    and one more thing that I like in a way with parent action. Look.. If I use return action, and I have many bounded tasks, then my unbound diagram will be overloaded with action flows.

    how to solve this issue? but this is minor anyways. main goal is to have accessible by url pages

  • managed BEAN
    managed BEAN Member Posts: 948 Silver Badge
    edited Dec 1, 2018 8:58PM

    Hello,

    If you do not want a bounded task Flow why did you created?

    Why don´t you remove the logic inside it to the unbounded Task Flow like (disclaimer: be aware i am not sure the following corresponds to the logic you want):

    Captura de ecrã 2018-12-02, às 01.56.40.png

    Regards,

    Carlos

  • prophet
    prophet Member Posts: 25
    edited Dec 2, 2018 3:13AM

    Hi,

    I want open browser. enter "mydomain.com/signup" in url and this logic (isAuthenticated) should happen.

    With your solution - its not possible as I understand (at least not possible out of the box. maybe there are some features, that enable it - but I don't know about it ).

    First I need to open "home" page, and then I should click some button, which will call action "menuSignup" or "menuMyAccount".

    So i cannot bookmark "myaccount" page, for example, because it does not have direct url. It exists only during session (browser tab).

    I want access "mydomain.com/signup", "mydomain.com/myaccount" pages by url. there can be different cases. all of them are very important. I can have somewhere outside application simple html website with links into here, or I want simply bookmark it. Or I want even access it directly by url - I usually do it like that - just start typing in browser url and it suggest me page I often use.

    Well. Maybe there is some totally different way to implement it. I don't know. I'm new in ADF and I'm here to get comments from people who already have experience with it.

    Maybe Its not the best way to deal with such task. Maybe It is better to create separate applications/viewprojects for "myaccount" page, "signup" page and configure ADF security to redirect to proper urls when its needed (when its not authenticated)?

    But here immediately goes another question then. I can configure ADF security, so it redirects to "signup" application url, when user is not authenticated.

    But how I configure so user goes to account application from signup application immediately, if user is authenticated already.

    Artem

  • prophet
    prophet Member Posts: 25
    edited Dec 6, 2018 4:43AM

    I tried your solution. Its not working. If I open signup page directly "domain/signup", router does not work (as I already wrote in previous comment).

  • managed BEAN
    managed BEAN Member Posts: 948 Silver Badge
    edited Dec 6, 2018 5:32AM

    Hello,

    Then try with:

    <af:resource type="javascript">          function callingIsAuthenticatedMethodOnLoad(event) {              AdfCustomEvent.queue(event.getSource(), "onLoadEvent",               {              },              false);              return true;          }        </af:resource>        <af:serverListener type="onLoadEvent" method="{#yourBean.yourMethod}"/>        <af:clientListener type="load" method="callingIsAuthenticatedMethodOnLoad"/>

    inside the af:document tag of the page.

    and in yourBean.yourMethod add the logic of the router.

    Otherwise i am not seeing how you will do it with Router activity and url navigation.

    Regards,

    Carlos