cancel
Showing results for 
Search instead for 
Did you mean: 

Call web dynpro abap application at login

Former Member
0 Kudos

Hello!

I have a requirement to call an abap web dynpro application at Login.

When this web dynpro page is called I want it to be the top page, i.e the roles, masthead, etc should not be visible for user to have access.

Any sugesstions?

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

Seems to me that you are better off in Portal area for a good solution than here.

You need to probably look for your own custom desktop in portal with your custom layout.

Former Member
0 Kudos

Hi Bhaskaran,

Can you please elaborate if this could be achieved without any java efforts?

-Sumeet

Former Member
0 Kudos

Without any java efforts ? i doubt that . You need in anyway portal content developers as it is involved portal developing desktop,rules configuration,system configuration etc.

As i already said, you can search in portal area for this or any other alternative solution.

Former Member
0 Kudos

I can add some customized code in the login.jsp, however, if I need to invoke a call to an abap webdynpro from the action of login click, is there a way to call abap web dynpros from jsp?

Former Member
0 Kudos

It should be possibe calling just a url to wda application.

another approach could be creating a iView based on the WDA. Generate a URL to this iView and refer this in your JSP.

Former Member
0 Kudos

Hi Baskaran,

I have completed the abap webdynpro which does all the additional security checks a user needs to fulfill before he gets access to the portal. I need to call the url of this WDA from the login page.

I just imported the logon par file with umlogon.jsp in it. I am heartbroken.

I am not into java but from what i see when we hit the logon button a bean gets called and it does not come back to the jsp.

I need to call my WDA when user has successfully logged on.

The other way was to create a new button to verify and create the WDA as anonymous, when user passes the WDA the logon button is made visible. This is not what we wanted, as we want a secure SSO to take place.

I do not know who can assist me as there is very little information available on customizing login page.

Also, I was wondering if post login I could call a page which has my WDA and assign it to the everyone group. Is there a way we can assign a page to users and not a role, I dont want the roles to be visible to the users.

I am clueless, any help would be appreciated.

Regards,

Dale

Former Member
0 Kudos

Hi Dale,

After the user login,it is possible to call webdynpro application without any java effort. For your requirement you need not edit logon par file.

But after login the portal should have masthead,because log off button is present in masthead.

To show webdynpro application ,you need to create a webdynpro Iview.Then attach the webdynpro iview to the role.

->Role

--->Webdynpro Iview

Set Webdynpro Iview as Entry point,So role name will not be visible in portal.

To set detailed level navigation,tool area and all other unwanted iviews to invisible ,you should create a new framework page and set onlt the required iview to visible.Then add the new framework page and the theme to the new desktop.

Make user to fall under this desktop in master rule collection.

Also you should create system object ,which contains information regarding R/3 system and this system name should be provided in webdynpro iview.Configure SSO so that the user can access the system without reauthenticating.

Try this and revert for any clarification.

Regards

Karthiheyan M

Former Member
0 Kudos

Hi Karthiheyan,

Thats fantastic! I did not expect much help but this is a solution in the direction I would have preferred.

I have created a role and set the iview as the entry point.

I dont have the experience to update the framework pages and setting defaults.

Can I ask a quick question please?

When I set this iview as the defualt framework, where do i set the other roles to invisible? I assume I will set them to invisible in their navigation areas.

Once the user passes this authentication in my iview I want to give him access to all the roles in the portal the way it is now.

For that how do i set the other roles to visible again? Do I have to do it in runtime or it is possible to create another framework and call that framework from my abap webdynpro iview?

Thanks again for your help.

Regards,

Dale

Former Member
0 Kudos

Hi Dale,

Framework page is different from Iview. Default framework page can be seen in content admin->portal content->content provided by SAP->End user content->Standard portal users->Default framework page.

Just copy it and paste

Framework page is almost like setting the layout for portal also this is where we can set visibility of several components (In the framework page we donot have any control to WD iview) .

Then create a desktopA and assign framework page and theme to the desktop.

Then in master rule collection

set this rule

if user = A (Iam just giving an example, a more appropriate condition is required to cover large users)

then desktop = desktopA

After attaching WD iview to roleA, the WD iview will be visible only if the user has the roleA.

Setting WD iview as entry point will make it visible in top level navigation.

You also need to learn about SSO,System object.

I prefer reading sap netweaver portal by rabi jay and several SDN materials.

Regards

karthiheyan M

Former Member
0 Kudos

Hi Karthiheyan,

I have updated the default framework page and SSO is setup for our system.

I have hidden the top level navigation in the default framework page and set my web dynpro as the entry point.

This way only the webdynpro iview is visible and not the other roles.

However, once the user is through my web dynpro iview I want to point him to the standard framework page, I can do that by pointing it to the pcd path of the framework page which has top level navigation visible.

This somehow gets me closest to the solution. The problem is on the standard framework my web dynpro iview remains as default entry point. How do I hide this web dynpro or the role its assigned to in standard framework page?

Thanks again for the prompt response.

Regards,

Dale

Former Member
0 Kudos

Hi Dale,

You need to customize the default framework as you did for custom one.But either Iview or role will be visible in portal for navigation.But you can control the number of level to be displayed in top level navigation(TLN) in the TLN present in framework page.You can also use the property 'Invisible in navigation area' in Iview to hide.Iam unsure on how you will point the default framework page after the user is through the webdynpro iview.

Regards

Karthiheyan M

Former Member
0 Kudos

Close but not close enough mate!

So this is how far we have reached:

1) We have 2 frameworks, framework1 has top level navigation invisible(no roles visible) with wda iview as default entry point.

2) On successful checks in framework1 I call the pcd of framework2 which has top level nagitaion visible.

I do not want to change the navigation levels. The only problem with this solution is the role of framework 1 is still visible in framework 2.

Is there a way we can hide the role in framework2 and keep it visible in framework1.

Is there a way I can get to know in my web dynpro abap which frame I am in, guess this is impossible.

Is there a way I can remove the role assigned to a user at runtime, so initially the user will have that role and once successful through framework1 he will have access to framework2 and the additional login check role removed.

The customer will not find it acceptable that the role with the iview is still visible after successful authentication and the user still has that role as the default page in the new framework.

I sincerely appreciate your feedback and suggestions, hope we are very close to the solution.

Regards,

Dale

Former Member
0 Kudos

Can I access an API which can set the invisible in navigation area of this role in portal via a call, that might solve the problem you think?

Former Member
0 Kudos

Hi Dale,

A role belongs only to the user and it has no relation to the framework.So you cannot hide the role when framework page2 is used.

Regarding API to remove the role at runtime and using API to set "invisible navigation area of this role via a call" should not be possible.

Though Iam not familiar with API , only a user with user administration role will have access to assigning and deassigning of roles to user, as the end user will not have this admin role any API from his login will not work.

Also manipulating any properties of Iview or Role will need content administration role, as said before the end user will not have this role and using API is should not be possible.

Deassigning a role at runtime and then when user log off the user should again be provided with that role because the user need that role for relogin(this is your scenario) ,this is not possible till my knowledge and my analysis.

Regards

karthiheyan M

Former Member
0 Kudos

Hi Karthiheyan,

Thanks for your feedback.

This morning has been a bit of a dissapointment. The issue is in calling the framework page2 from framework page 1.

I thought it would be straight forward but it takes ages to load and ends up in an endless loop.

So hiding the top level navigation and calling the framework pages might not be the desired option.

The 2 other solutions:

1) Try the masthead jsp and see if there is a point at which I can call the url of my iview.

2) As you suggested try master rule collection. Is it possible to add some value or flag to a user and based on that the desktop of the user is decided? or is it possible to call one desktop from another?

I think I am reaching a point where I feel it is not possible to achive what I am trying to, have not given up yet.

Appreciate your feedback and time again. Thanks again mate.

Regards,

Dale

Former Member
0 Kudos

End of days play, this is what I was able to achieve.

Realised the masthead jsp is the best place to call my abap web dynpro as it is just after the login and at the load of default framework page.

I was able to call my abap web dynpro and on success, I am calling the homepage role.

What I have done in the jsp is written an if else statement:

1) If it is the first call to the jsp call my abap web dynpro in navigation mode 3. This ensures the roles are not visible and the redirection works before the page loads.

2) Else load the framework page as usual.

The only issue I have at this point is, I cannot depend on the first visit of the user.

I need to know in the jsp where the call to jsp is coming from, if it is coming from login page, i will direct the user to WDA else if the call is from my WDA, the normal load should work.

It would be ideal if my abap web dynpro could write something in the http header which the jsp could read as success. Still close but dont have the solution working yet

Thanks again for your time.

Regards,

Dale

Former Member
0 Kudos

Hi Dale,

The login jsp cannot accomodate your requirement. You can add the check in login jsp and initially disable the login button and once the user passes your checks you enable the login button. As you have developed the checks in abap web dynpro, this is not ideal as user has not logged in yet and so the SSO ticket has not been generated. Do you want to risk an anonymous access?

The masthead iview is ideal as it is the first iview in your default framework and at this stage SSO ticket is generated. Remember you are calling your abap web dynpro iview from the framework and if you pass control back to masthead by calling it, you are getting into a nested loop.

You cannot call the framework page or another role from your WDA, my suggestion will be you call the url of the portal as it gets you in on the default framework.

You will have to distinguish between these 2 calls, one way is to check the calling url's in the jsp and based on that letting the user through.

Regards,

Sumeet

Former Member
0 Kudos

Solved, it has completed a successful path, i need to build further logic as per your suggestion to avoid a user hacking the URL's.

Thanks to everyone.

Former Member
0 Kudos

Dale Hewison wrote:

End of days play, this is what I was able to achieve.

Realised the masthead jsp is the best place to call my abap web dynpro as it is just after the login and at the load of default framework page.

I was able to call my abap web dynpro and on success, I am calling the homepage role.

What I have done in the jsp is written an if else statement:

1) If it is the first call to the jsp call my abap web dynpro in navigation mode 3. This ensures the roles are not visible and the redirection works before the page loads.

2) Else load the framework page as usual.

The only issue I have at this point is, I cannot depend on the first visit of the user.

I need to know in the jsp where the call to jsp is coming from, if it is coming from login page, i will direct the user to WDA else if the call is from my WDA, the normal load should work.

It would be ideal if my abap web dynpro could write something in the http header which the jsp could read as success. Still close but dont have the solution working yet

Thanks again for your time.

Regards,

Dale

Hi Dale,

I am trying to implement something similar and I cannot find the place in the masthead where you put your custom code, to call your Web dynpro instead of the framework. Can you expand on your solution? I am looking in HeaderiView.jsp. Also if you can tell me how you figured out where the call to masthead is coming from?

Thanks

Former Member
0 Kudos

Hi,

I must warn this gets more complex than you initially might have thought. It all depends on what your requirement is.Can you provide your requirement in more detail? In Sumeet's reply you will find the most elaborate description, in a nutshell dont go there if you have not burnt your hands before.

Regards,

Dale

Former Member
0 Kudos

Yes I do have an idea but the requirement is such that I have to do it.

My requirement is to have users select a business partner before going in to the portal. Because the portal's initial pages depend on that selection. Now we're thinking is to launch a JSP or web dynpro application after login and after the selection launch the portal.

Another idea was to have a popup after portal login, but as popups can be closed or ignored, it was not liked.

My issue is I cannot find where in the masthead you had the call to your WDA and how. If you can possibly post your code, it'd be very helpful.

Former Member
0 Kudos

In headeriview.jsp after the isaccessibilityon() function. We created an abap web dynpro and provided the pcd path in the call, on success we directed them to the masthead again. In the masthead we check where the call is coming from when WDA we let him through else log him out.

Had a word with Sumeet, drop an email to sumeet.nag@teemus.co.uk, he is happy to help.

Former Member
0 Kudos

Thanks for the hint. When I call my app using PCD path, it goes into a loop. I am using

EPCM.doNavigate("ROLES://portal_content/....", 0);

Is there any other specific way ur using?

Former Member
0 Kudos

we used a separate function, top.location.replace(url).

There was a need to build the url based on the protocol and we called the page embedding the iview in navigation mode 3, so users dont get to see the roles assigned to them.

-Sumeet

Former Member
0 Kudos

I was able to achieve the result but with one exception. When I call my application after login from the masthead, the other roles also show up at the same time and user can click on those links and navigate away. Is there any way to hide the other roles when the initial application is shown?

Former Member
0 Kudos

call it in navigation mode 3, the pcd path should be followed by navigation mode 3 and you can avoid roles popping up.

Former Member
0 Kudos

Navigation mode 3 is for popups. I am not displaying the application in a popup.

Former Member
0 Kudos

not sure where you got that from mate, navigation modes dictate the levels, if you call the page at navigation mode 3, your problem will be solved.

Former Member
0 Kudos

I just tried nav mode 3 anyways and my app shows in a popup. I am using Portal 7.01.

Former Member
0 Kudos

what command are u using and are you calling the iview or page?

Former Member
0 Kudos

EPCM.doNavigate("ROLES://..., 3);

Calling the iView directly.

Former Member
0 Kudos

Faraz,

As Sumeet has already mentioned, you need to call the page. He already answered your question on how we call the url, we do not use epcm.donavigate.

Also, you need to make the called page as top and ensure you pick the correct protocol and concatenate the url, so protocol://servername:port/irj/portal?NavigationTarget=pcd:........&NavMode=3

@Sumeet: Thanks again for helping Faraz.

Regards,

Dale

Answers (0)