Etay Angrest

OBN Cache

Posted by Etay Angrest Dec 28, 2014


Introduction


In SAP NetWeaver Portal NY versions (7.1 and above), an additional cache feature has been added, the Object-Based Navigation (OBN) cache.

 

 

Why do we need it?

 

When a user clicks an OBN link, the OBN service searches in every role the user is assigned to for OBN iView targets.

The search is done for each click on an OBN link. This can take a while and there is no reuse of the search results.

 

 

Pros


  1. Each role is searched only once
  2. Search results are stored and are reusable
  3. The response time of the navigation is faster

 

Cons


The cache needs to be manually cleared after:


  • Deploying content    
  • Modifying content (creating, changing, deleting)

 

Not clearing the cache after the content has been modified may lead to OBN issues such as:


  • OBN that is not resolved for all or some of the users
  • OBN editors that don’t show the operations that are tagged under the target iViews

 

For these reasons, OBN caching may not be desirable in a development or testing environment, because the content there is modified frequently. In general, it is not recommended to use the OBN cache in development or testing environments.



How to disable the OBN Cache


Since the OBN Cache is enabled by default, if you want to disable it, follow the steps below:


NW 7.1 – 7.2:


  1. In the portal, navigate to System Administration -> Navigation -> OBN Cache.
  2. Choose “Clear All" to clear the entire cache.
  3. Choose "Disable Cache" to disable the OBN cache.


pic1.jpg


NW 7.3 and above


  1. In the portal, navigate to System Administration -> System Configuration -> Cache Management -> OBN Cache.
  2. Choose "Clear All" and "Clear Cluster Cache" to clear the entire cache.
  3. Choose "Disable Cluster Cache" to disable the OBN cache.


pic2.jpg


If you are using INotificationService portal service, then this blog is relevant for you.

 

The basics that describe how to use this portal service to transfer notifications in the portal to the different server nodes of a cluster are documented in the following blog: How to use the INotificationService API in SAP Portal 7.30

 

This blog extends the knowledge of the previous blog by describing the different types of data that can be used.


The data that is being transferred via the INotificationService is wrapped within a TopicDataContainer object. To the container you should add TopicData objects, recognized by their IDs:


TopicDataContainer container = new TopicDataContainer("TopicContainerName1");

container.addTopicData("Topic2Id", "Topic2Str");


This example adds new TopicData with value "Topic2Str", and with ID "Topic2Id" to the TopicDataContainer "TopicContainerName1".

This example uses the default TopicType – TopicDataContainer.STRING.


This type can be used as long as the string does not contain special characters, such as ‘\n’ and ‘\r’. If your data contains such characters, you will get NULL TopicData on the receiver side (in the handleTopic() method) .


So what should be used when transferring special characters, or other data types?

Well, there are few other supported data types:
TopicDataContainer.STREAM
TopicDataContainer.FILE

TopicDataContainer.INT


In order to use the first two, you should create special TopicData objects respectively:

(clicking on the links redirects to the formal SAP documentation):


StreamData - used to build Topic message data containing a stream of bytes.


FileData - used to exchange File and Directory (uses ZipOutputStream).

 



Usage examples:


// Type TopicDataContainer.STREAM

ByteArrayInputStream bais = new ByteArrayInputStream("This is my text.\n it contains special characters\r.".getBytes());

StreamData streamData = new StreamData(bais);

container.addTopicData("TopicStreamDataID", streamData);



// Type TopicDataContainer.FILE

FileData fileData = new FileData(directoryPath);

container.addTopicData("TopicFileDataID", fileData);

 


// Type TopicDataContainer.INT

container.addTopicData("TopicIntID", new TopicData(TopicDataContainer.INT, "13"));

 



In general you should always consider whether the data is really necessary to be transferred, as using the STRING type or INT type are considered to be faster, and performance is an important aspect during portal runtime .

Let’s take few minutes to look back at 2014 and try to predict the big areas that we will talk about in 2015.

2014.jpg

In my area, no doubt that 2014 was the Fiori year. Starting with the very long debate about the Fiori pricing, all the way to the major announcement at SAPPHIRE 2014 that Fiori is now included in the customers' license.

 

A key Fiori offering (which is also very close to my daily work) is the new multi-channel applicative entry point – SAP Fiori launchpad. From the initial launch of the Fiori launchpad on the ABAP FES, via the renewal of the SAP Enterprise Portal with a new personalizable and responsive framework page following the Fiori design – Fiori launchpad running on the SAP Portal, all the way to releasing the Fiori launchpad on HANA Cloud Platform.

 

DeploymentOptions.jpg

 

The renewal of the SAP Portal is not completed without the consumption of Fiori apps in the portal. Just before the year ended (Yey!), we have released the list of supported stand-alone Fiori apps (SAP Note: 2103156), expect this list to grow in the future... Not to forget some architectural aspects of running Portal-Fiori in an external facing scenario as part of this portal renewal:

 

PortalArchitecture.jpg

 

Same goes for the cloud deployment option, Fiori launchpad on HANA Cloud platform is not completed without releasing also Fiori apps running on HCP, but for this we need some more patience… (for now you can use SAP Web IDE to develop your own Fiori-like apps and consume them via the launchpad).

 

For me, 2014 will not be complete without two additional topics: SAP Web IDE and HANA Cloud Portal.

 

Starting with the renaming of Web IDE from River RDE to Web IDE, all the way to having Web IDE as THE tool to extend and develop new Fiori-like apps running on-premise and on the cloud (HCP).

 

Finally, this year we also had a great momentum for the HANA Cloud Portal – new customers going live, delivering new features faster-and-faster, and the new Fiori user experience as part of the Cloud Portal offering. This is actually a great connection to 2015…

2015.jpg

Let’s welcome 2015 with only two pictures (hint, hint...):

 

HCP.jpgFioriHCP.jpg

 

Looking forward for an exciting 2015 and hope to meet many of you at SAPPHIRE, TechEd, Design Councils, InsideTracks and workshops across counties and continents.

 

Wishing you all happy holidays and a great 2015!

Aviad

Welcome to the last edition of this year's SAP Portal newsblog. We have the following topics for you:

  • ASUG Call for Presentations
  • New Enterprise Portal and Cloud Portal roadmap
  • SAP Fiori Product Demos
  • SAP NetWeaver 7.4 SPS 09 Features
  • SAP Fiori Framework Page
  • Capriza and Fiori Launchpad Content Integration
  • SAP Portal Support Blog Update
  • SAP Portal and HANA Cloud Portal Movie Challenge Finale
  • Last not Least: Happy Holidays

 

ASUG Call for Presentations is now open

The call for presentations for the ASUG Annual Conference 2015 is now open! There is a dedicated track in the submission system to submit the SAP Portal related abstracts. If you would like to submit an abstract, please do so not later than January 5. More information in Aviad's blog.

 

New SAP Enterprise Portal and HANA Cloud Portal Roadmap

We are pleased to share the updated SAP Portal roadmap 12/2014 edition with you. The document is reflecting latest news which were also introduced and announced at SAP TechEd && d-code this year.


SAP Fiori Launchpad End User Experience and Content Creation

You missed SAP TechEd in Las Vegas or Berlin and are interesting in more deep-dive information about SAP Fiori launchpad? We converted some of our SAP TechEd hands-on exercises and demos from our sessions into two product videos.

 

Fiori launchpad end user experience:

 

Fiori launchpad content creation:

 

More information, see the blog Experience the SAP Fiori launchpad In Action - ABAP, Portal & Cloud.

 

Features of SAP Portal in SAP NetWeaver 7.4 SPS 09

There are two new Portal features in SPS 9 of NetWeaver 7.4 (or SPS 14 of 7.31). One new feature solves an old problem with Internet Explorer. So far, the Ajax Framework (AFP) page did not render properly in standards mode, but only in quirks mode. Now you can navigate through your portal without having to open new windows, and enjoy all benefits of SAPUI5 applications, integrated in your Portal. AFP in standards mode is supported in IE starting from IE9. More details on the availability of AFP in standards mode in the blog by Matan Mizrahi.

The second feature refers to the URL alias for Fiori launchpad running in the Portal. Before SPS 09, you had to create a URL alias with URL Alias Manager in System Configuration and then create a new display rule to assign the Fiori desktop to the new URL alias. For a new installation, there is now a pre-configured alias portal/fiori, that is already assigned to the Fiori desktop in the master rule collection. More details on the SPS 09 features: see the blog by Sibylle Brehm.

 

SAP Fiori Framework Page in Mobile Device Scenarios

The  new Fiori framework page is the recommended framework page for consuming the SAP Portal on mobile devices in a launcher/launchpad scenario. With NetWeaver 7.4 SPS 07, there is a new Fiori framework page available to enable portal users to launch Fiori applications from a Fiori launchpad-like UI. Read this blog by Sibylle Brehm sharing some insights and experience on the changes between the classical Mobile Portal and Fiori launchpad on EP. Read also Aviad Rivlin's blog on the new Fiori framework page.

flp_framework.png

 

Capriza and Fiori Launchpad Integration

Capriza is a SAP partner company and developed a new technology which allows the converting of existing UIs / web screens for mobile scenarios using a cloud service. Watch this interview from SAP TechEd & d-code and meet Oren Ariel, CTO and co-founder of Capriza, speaking about how the Fiori launchpad can be enriched by integrating Capriza apps (which can also contain non-SAP content).

 

SAP Portal Support Blog

A new scenario was added to the SAP Portal support blog: This time a scenario is presented which demonstrates the importance of navigating in the Portal by using the navigation APIs and not the direct URL to the Portal content.

 

Movie Challenge Ends December 31, 2014

We started our SAP Portal and HANA Cloud Portal movie challenge beginning of this year. Until now we have received around 60 blog contributions for the two challenges. You can still contribute until December 31, 2014.

What are the next steps: At the beginning of next year the whole SCN Portal and Cloud Portal community will be able to vote in a poll in order to pick the best movie critic and movie producer blogs. The authors of the best blogs will receive additional finalist and winner badges and more points. Stay tuned to participate in the voting.

 

Happy Holiday

And that was the last SCN news blog for 2014.

What remains to say is to wish you a happy Chistmas, Hanukka or whatever you celebrate in the next weeks and a joyful new year. Participate in our interactive holiday video and find out, if you are nice or naughty:

holiday_challenge_2014.png

2.jpg

 

It’s that time of the year that we all go on vacation, but wait… before you go on vacation, the call for presentations for the ASUG Annual Conference 2015 is now open! This is a great opportunity to share your experience, learnings and best practices with your colleagues.

 

The call for presentations in now open for submissions. If you would like to submit an abstract, please do so not later than January 5. For any question, please contact Speakers@asug.com

 

There is a dedicated track in the submission system to submit the SAP Portal related abstracts:

 

3.jpg

 

I always find Tammy Powlas tips very helpful, so here are two great blogs written by Tammy Powlas that will help you submitting your abstracts:

 

 

Hope to meet you in person in Orlando on May 5-7, 2015.

 

Aviad

Wei Deng

SAP Enterprise Portal 

Posted by Wei Deng Dec 12, 2014

SAP Enterprise Portal

Dear all, this is post is the humble opinions of SAP Enterprise Portal from a pure dummy's point of view. I don't come from a tech or engineering background but have the luck to get in touch with the introduction of SAP Enterprise Portal Technologies this fall through courses and feel that SAP Enterprise Portal is such a powerful tool for businesses and act as efficient and useful business solutions.

 

For me, SAP Enterprise Portal mainly acts of a via point, connecting information, resources, and different parts and functions of the enterprise. It unifies all these parts and enables the sharing of information and resources among the enterprise. Everyone could have an entry access to this one big sharing pool and information and knowledge, with different level of authorization to make sure enterprise could have the flexibility of managing the employees and assigning different roles to different counterparts. The powerful aspect is its ability to realize the fact for a big corporation with offices and employees everywhere, to connect with each other, cooperate with each other, share information and make decisions and assign different job functions. This could solve the problems for many enterprises and provide efficient business solutions, when they are challenged with the needs to unify large amount of resources and information, connect different functions of the company and enables everyone to be assigned with specific tasks and work efficiently with different level of capacity.

 

I didn’t get any coding of the SAP but do learn about basic functions and operations of SAP and find it quite useful and efficient. I’m interested in exploring more about the SAP’s acting as business solutions comparing to other alternatives, the one with different systems and the ones with the same. I hope to learn more about the different functionalities and efficiency of such applications. Another aspect is how efficient SAP Enterprise Portal could work for small businesses and how easy it is to implement in small businesses to utilize its efficiency without causing much trouble with employee’s adaptations. Small business solutions might be different from big enterprises but still need to employ business solutions to increase the work efficiency among different groups and departments.

Working in the SAP NetWeaver Java and Enterprise Portal areas, it seems to me the differentiation between the Portal offers in the context of the SAP HANA Cloud Framework is not made clear enough for customers.

 

The SAP Enterprise Portal from version 7.4 is the on-premise solution offer which supports the usage of SAP HANA as database. It can be run with other databases but it is going in the direction of being tightly integrated with SAP Cloud solutions.

 

More details are available in following SAP NetWeaver Portal 7.4 document: http://scn.sap.com/docs/DOC-49289

 

Advantages of this solution are developed in Yaviv blog, I invite you to read all the details in his very helpful white paper:

http://scn.sap.com/community/hana-cloud-portal/blog/2013/10/17/on-premises-managed-or-cloud--comparing-different-portal-deployment-options
• Full control over deployment (hardware / OS platform)
• Full flexibility for customization and extensions
• Individualized sizing

 

The SAP HANA Cloud Portal is the on-demand solution offer which is running in the SAP HANA Cloud Framework as the name indicates.

 

Advantages are:
• Lean, flexible Portal Paas (Platform as service)
• Fast time to value with regular updates
• Easy integration with on premise
• Lower TCO via scalable public cloud (Total cost of ownership)
• Standards based, open platform

 

Then, there is this question of integration of the SAP HANA Cloud Portal on demand with the on premise Portal solution. The FAQ from the SAP HANA Cloud Portal community network page gives some hints about how it can be achieved:

 

Is SAP HANA Cloud Portal a successor of SAP NetWeaver Portal 7.3x?
No, it is not a successor of Portal on-premise. The Cloud Portal can be an extension to Portal scenarios and can be integrated with your on-premise applications.

 

Will it be possible to migrate content from the classic SAP NetWeaver Portal to SAP HANA Cloud Portal?
Migration will not be possible since the two products are not directly related. However, cloud portal is designed to reuse content from SAP NetWeaver Portal.

 

If I run on-premise SAP solutions, how do I integrate with SAP HANA Cloud Portal?
The solution enables a secure and reliable integration with the customer's on-premise network for leveraging existing on-premise investments.


The Cloud Portal enables various methods of consuming On-Premise content:
(1) Consume EP 7.0/7.3 iViews and ABAP web application, assuming client has direct access to the web application.

(2) Consume data services based on SAP Cloud Connector (SCC).

 

The HANA Cloud Portal supports consumption of data services based on Rest APIs or Gateway services (OData). The best practice would be to build a UI5-based application that connects to an on premise backend system (such as a NetWeaver Portal) to fetch the business data.

 

Following links show different means available to connect applications to the Cloud Portal:

• Communicating with External Services -https://help.hana.ondemand.com/cloud_portal/frameset.htm?b971dd334fe24edc960b358d6cb45400.html

• Communicating with Non-Cloud Portal Applications Using the Connectivity Service - https://help.hana.ondemand.com/cloud_portal/frameset.htm?729dda66cb064915bba4b45f1bc638b5.html

• Application-to-Application SSO with SAP HANA Cloud Portal -https://help.hana.ondemand.com/cloud_portal/frameset.htm?629c6839a94c4250a46500326e9c419a.html

• Using SAP Gateway and the SAP Cloud Connector to Connect to SAP Back-End Systems - https://help.hana.ondemand.com/cloud_portal/frameset.htm?4bc9131fc5954f26a2d4fe98fd8e1267.html

• The SAP Gateway carries out RFC services within the SAP world, which are based on TCP/IP. These services enable SAP Systems and external programs to communicate with one another - http://scn.sap.com/community/gateway

https://help.sap.com/saphelp_nw73/helpdata/en/31/42f34a7cab4cb586177f85a0cf6780/frameset.htm

 

SAP HANA Cloud Portal community network page: http://scn.sap.com/community/hana-cloud-portal

According to the Release note from SAP , 7.3 SPS10 got the  new UI Theme Designer is available to use

 

To Enable the feature , it has to be done at the NWA admin page.

 

Here is the steps to enable the feature.

 

Login to NWA

 

Navigate to Configuration -> Infrastructure -> Application Module

 

search for com.sap.portal.themes.lafservice

 

Change the Parameter "Determine what will be the theme runtime provider" Value to "LESS

 

Save and Restart the System

 

Under Content Administration --> Portal Display : New UI Theme Designer will appear

 

 

 

 

Notes and Known Limitations

 

 

Note 1890375 - Known Issues of UI Theme Designer for SAP NetWeaver Portal.

Note 1927550 - Update UI Theme Designer to version 1.1.4 in the portal.

Note 1895989 - UI5 iView stylesheet rendering issues.

Note 1959708 - Supporting integration of UI Theme designer and UI5 application in the portal.

New UI Desginger.png

Thanks

RK

This Blog is the 3rd case I publish in the context of my support blog – a continuance blog in which I publish Portal support
cases which customer may encounter.

 

This interesting case demonstrates the importance of navigating in the Portal by using the navigation APIs and not the direct URL to the Portal content.

 

The customer in this story had an issue with a page that was being triggered from an application (UWL application) and was expected to open in a new headerless page. Instead, it opened in a full L-Shape Portal framework page.

In mobile, on the other hand, when running the same application, it’s working as expected – the new page opened in headerless window when opening a new task. Bear in mind that the mobile application uses a different framework page (mobile framework page).

 

Why does this happen?

Here are a few more details:

The customer has a custom launcher page with a button that launches the mobile UWL application using a URL such as this*:

http://myportal:50000/irj/servlet/prt/portal/prtroot/pcd!3aportal_content/Folder1/Folder2/MyWorksets/MyRole/UWL_MOBILE/params?username_field=auser&password_field=apasswork&login_submit=on&login_do_redirect=1&ganame=MY_TASKS

(*I anonymized the URL. But you get the idea.)

Can you see what is wrong with this URL?

 

As I cannot use screen shots from the customer’s system – I simulated this type of scenario on a local computer.

Let’s assume that the page shown below is the launcher.

Both the links are targeting the same iView. The first (“Good Navigation”) does it correctly, and the second (“Bad Navigation”) does it incorrectly.

 

LaunchpadEmulation.PNG

     Figure 1: The simulated launchpad

 

In the customer’s system it would open the UWL navigation. In my simulation it opens a very basic iView which contains a link to another iView in a new window (as if the UWL is opening a task in a new window).

Look at the result from the “Bad Navigation” below.

 

Do you see what’s wrong here?

Hint 1: Look at the screen shot below which shows the navigation result.

Hint 2: It is running on a desktop framework page.

 

badNavigation.PNG

     Figure 2: "Bad Navigation"

 

So the problem here is that the portal framework has disappeared – note that there is no TLN or DTN – only the application has been triggered.

 

The link on this page that opened is navigating to another iView in new headerless window.

But surprise! The new iView has opened in a full Portal framework page as shown below:

badNavigationResult.PNG

     Figure 3: "Bad Navigation" result - the content is presented in Portal default framework


Now wait! It gets even more complicated: when running that same URL from the mobile framework page – the page opens correctly in a headerless framework page.

 

So what is going on here?

 

As I already mentioned above – the problem is related to the navigation URL. The customer has customized his or her launchpad to navigate directly to the content, instead of navigating to it via the navigation APIs.

So the correct way to navigate to the UWL application in that case would be:


http://myportal:50000/irj/portal?NavigationTarget=ROLES:// aportal_content/Folder1/Folder2/MyWorksets/MyRole/UWL_MOBILE& username_field=auser&password_field=apasswork&login_submit=on&login_do_redirect=1&ganame=MY_TASKS

 

You can see that the navigation is done by using the NavigationTarget parameter followed by the target content.

So when clicking the “Good Navigation” and navigating correctly by navigating in the Portal – the iView (simulation of the UWL application) opens inside the Portal frame – with the TLN and DTN (and all the other iViews of the frame of course):

 

goodNavigation.PNG

     Figure 4: "Good Navigation"

 

And then opening a new headerless window (in the UWL it is New Task) the Portal understands “headerless window” and opens the new page as expected in a new headerless window.

 

goodNavigationResult.PNG

     Figure 5: "Good Navigation" result - the content is displayed in headerless window as expected



When you navigate directly to the content, not all the JavaScript framework pages  are loaded and subscribed.  So when a new navigation from that content is performed – there is no JavaScript to process it and understand “open me in a headerless page”. The Portal performs this navigation in the default framework page of the Portal – which for desktop is the framework with the L-Shape (TLN and DTN).

Now why does this work correctly in mobile?

In mobile, the default framework is headerless – so the fallback of the Portal when it doesn’t have the JavaScript to “translate” the opening mode – is to open the page in the headerless window. Luckily, in the mobile case it seems to operate correctly, but it is based on an incorrect navigation just like in the desktop framework case.

 

 

So to summarize the conclusions from this case:  when you want to navigate in the Portal DON’T navigate to the content directly and DO use the NavigationTarget parameter.

 

In this blog, I would like to share the new Portal features of SPS 9 of NetWeaver 7.4 (or SPS 14 of 7.31).

There are just two new features in this Support Packages Stack, but nevertheless, they represent important improvements.

 

 

1. The most important one in my eyes, is the availability of the Ajax Standards Mode Framework Page.

 

 

This new feature solves an old problem with Internet Explorer. So far, the Ajax Framework page did not render properly in standards mode, but only in quirks mode. To get a better understanding of the problem, I highly recommend Maya Amit's blog on IE and Portal - Standards/Quirks Mode Evolution. It explains in a very detailed way what problems exist, when the portal runs in quirks mode, but web dynpro applications start in standards mode or SAP UI5 is written in standards and how you could work around those problems so far.

 

 

Now you can just use the new Ajax Standards Mode Framework Page and run SAP UI5 applications in the Portal window. The new Ajax Standards Mode Framework page and the Ajax Standards Mode Portal Desktop can be found at Portal Content > Portal Users > Standards Portal Users > Ajax Standards Mode Framework Content. With fresh installations (no upgrades) as of 7.4 SPS 9, there is an URL alias portal/standards already available that will launch the new Ajax  Standards Mode desktop.

 

UI5.png

 

 

However, there are still some limitations, for example that this Framework Page should not be run in quirks mode (sounds logical :-)) and only supports IE 9 and higher. In addition, it is still true that standard and quirks content cannot be displayed together on the same page, so if you want to render content in quirks mode while using the new Ajax Standards Mode Framework Page, the content must be opened in a new window using the Launch in New Window property. Finally, the new Framework Page does not support administrative scenario, so if you want to use the Content Administration or System Administration for example, you should stick to the old Ajax framework page.

 

Here is what you have to do to test it after upgrading to SPS9:

1. Create a new URL alias for the portal in standards mode in the URL Alias Manager

2. Assign the new alias to the Ajax Standards Mode Portal Desktop in the master rule.

3. You need a portal page with a UI5 iView for testing. Open the UI5 iView's properties and change the value of property Launch in New Window to Display in Portal Content Area.

LaunchInNew.png

4. Now logon with your test user using the Portal URL with the alias for standards mode (using IE, or course)

5. Open the page with your iView. The UI5 iView will now be displayed in the portal content area. Opening a new window is not necessary any more.

 

If you are interested in more details, please read Matan Mizrahi's detailed blog on Ajax Framework Page in Standards Mode.

 

 

2. URL Alias for Fiori Launchpad on Portal

 

 

Before SPS9, you had to create a URL alias with URL Alias Manager in System Configuration and then create a new display rule to assign the Fiori desktop to the new URL alias. For new installation, there is now a preconfigured alias portal/fiori that is already assigned to the Fiori desktop in the master rule collection:

 

Rule.png

 

This feature will save you some time when setting up the new Fiori launchpad desktop, but as mentioned above, it is only available in new installations, as in an upgrade there might be a risk to overwrite existing master rule configurations.

 

Enjoy,

Sibylle

Intro

My name is Matan Mizrahi, and I'm a software developer in the SAP Enterprise Portal group.

In the past few months we have worked really hard to adjust the Ajax Framework Page (let's just call it AFP) to run on Internet Explorer in standards mode.

I am happy to announce that it's now available in NW7.31 SP14 and 7.4 SP9 (released on November 24th).

 

Some details

For those of you who don't know what "standards mode" is, I will try to make it as simple as possible. However, if you want to know more, I strongly recommend reading this blog , written by my colleague Maya Amit.

Let's get started.

Microsoft Internet Explorer (MSIE or just IE) was the dominant web browser (alongside Netscape Navigator) in the early days of the internet as we know it. Web pages were built in such a way that IE could render them in its own way, without following the standards rules for the HTML web language.

Later on, when other standards-rendering browsers (like Google Chrome and Mozilla Firefox) came into the market, Microsoft began to understand the need to support standards mode rendering. Therefore , in March 2009, Microsoft released Internet Explorer 8, which adhered to the rules of the standards rendering, alongside the "old" rendering mode, called quirks.

So far some history and useful information.

Up until now, AFP could only run in quirks rendering  mode. And - as you can see on Maya's blog , SAP introduced UI5 based apps, which cannot run on quirks rendering mode, therefore we had to find a solution for those apps, which was a standalone portal page (AKA navMode 10, or "Display In separate headerless portal window(standards mode) - read more about it here, and more about other navigation modes in note 2054208).

The problem was, that when you wanted to open a SAPUI5 application, you couldn't open it in your portal, which is probably the most convenient way.

Now , after a lot of work, we've managed to fit AFP to render properly in standards mode. Now you can navigate through your portal without having to open new windows,and enjoy all benefits of SAPUI5 applications, integrated in your portal.

AFP in standards mode is supported in IE starting from IE9.


How do I use it?

It's very simple. You now get a new framework page, dedicated to AFP in standards mode:

afp std.PNG

All you need to do is enable this framework page in the Master Rule Collection:

1.First of all, go to System Administration->System Configuration->Portal Display->URL Alias Manager.

There you'll see that we've added a new URL alias, called standards. You can use it for the configuration of the new framework page,and of course you can create one of your own.

std url alias.PNG

2.Go to Desktop & Display Rules->Portal Administrators -> Super Administrators->Master Rule Collection,

and add the rule you like. You can add it to a specific user, alias,group ,role and so on.

Here's one example, but you can read more about the Master Rule Collection here and here

master rule.PNG

You can find it in Portal users->Standard Portal Users-> Ajax Standards Mode Framework Content -> Ajax Standards Mode Portal Desktop.

Then search for "Location" :

afpstd desktop name.PNG

That's it! You're all set and ready to use the AFP in IE standards mode.

Notice that you might see some slight differences between the same themes used in AFP quirks mode and standards mode.

Feel free to ask questions, comment or send any feedback.

Important note

Notice that if you are using this feature, your page will be rendered in standards mode, which means that content that runs in quirks mode(HTMLB for example) won't be able to run in the content area. To resolve this, you can use nav mode 3 (I mentioned earlier a reference to nav modes).

For more information see note 2001910 - AFP Standards mode support.


Run Simple,

Matan

Hi,

today I would like to share with you some insights on Web Dispatcher configuration for a Portal system. I set up a demo system for Fiori launchpad on Portal including various types of content like Fiori apps (different waves), Personas, Mobile documents, and more. Since the new Fiori iView template (for Fiori apps wave 2 and above) only runs correctly, when the system which hosts the Fiori wave 2+ application is set up to use Web Dispatcher, we decided to have all calls going via the Web Dispatcher.

 

What I will show you in this blog is just an example of how our system was configured. Of course, this cannot be transferred one to one to other systems, so the intention is more to give you some kind of lead.

 

Let me first give you a short overview of our landscape which is geographically distributed:

We have a portal system running in Germany (in the Web Dispatcher file, I just changed that to domain: dom3), a Personas system in a second country (dom2), and a Fiori ERP system which is located in a third country (dom1) and also hosts the HANA system and the Web Dispatcher.

We configured all systems to support SSL.

 

 

This is our web dispatcher configuration file:

 

SAPSYSTEMNAME = zzz

SYSTEM = 20

INSTANCE_NAME = yyy

DIR_CT_RUN = $(DIR_EXE_ROOT)$(DIR_SEP)$(OS_UNICODE)$(DIR_SEP)linuxx86_64

DIR_EXECUTABLE = $(DIR_CT_RUN)

DIR_PROFILE = $(DIR_INSTALL)/profile

_PF = $(DIR_PROFILE)/<file-name-of-profile-file>

SETENV_00 = DIR_LIBRARY=$(DIR_LIBRARY)

SETENV_01 = LD_LIBRARY_PATH=$(DIR_LIBRARY):%(LD_LIBRARY_PATH)

SETENV_02 = SHLIB_PATH=$(DIR_LIBRARY):%(SHLIB_PATH)

SETENV_03 = LIBPATH=$(DIR_LIBRARY):%(LIBPATH)

SETENV_04 = PATH=$(DIR_EXECUTABLE):%(PATH)

#-----------------------------------------------------------------------

# Accesssability of Message Server

#-----------------------------------------------------------------------

rdisp/mshost = fiori.dom1.corp

ms/http_port = 8101

#-----------------------------------------------------------------------

# Configuration for medium scenario

#-----------------------------------------------------------------------

icm/max_conn = 500

icm/max_sockets = 1024

icm/req_queue_len = 500

icm/min_threads = 10

icm/max_threads = 50

mpi/total_size_MB = 80

#-----------------------------------------------------------------------

# SAP Web Dispatcher Ports

#-----------------------------------------------------------------------

icm/server_port_0 = PROT=HTTP,HOST=fiori.dom1.corp,PORT=81$$

icm/server_port_1 = PROT=HTTPS,HOST=fiori.dom1.corp,PORT=4050

icm/server_port_2 = PROT=HTTP,HOST=fiori.dom1.corp,PORT=8101

icm/HTTP/admin_0 = PREFIX=/sap/admin,DOCROOT=$(DIR_DATA)$(DIR_SEP)icmandir,AUTHFILE=$(icm/authfile),PORT=81$$

#-----------------------------------------------------------------------

# Start webdispatcher

#-----------------------------------------------------------------------

_WD = wd.sap$(SAPSYSTEMNAME)_$(INSTANCE_NAME)

Execute_00 = local rm -f $(_WD)

Execute_01 = local ln -s -f $(DIR_EXECUTABLE)/sapwebdisp$(FT_EXE) $(_WD)

Start_Program_00 = local $(_WD) pf=$(_PF)

SETENV_05 = SECUDIR=$(DIR_INSTANCE)/sec

 

#Configuration Entries

wdisp/system_conflict_resolution = 1

wdisp/add_clientprotocol_header = 1

wdisp/handle_webdisp_ap_header = 1

wdisp/add_xforwardedfor_header = true

#

rdisp/TRACE = 1

# Automatic Rendering Info of systems

#wdisp/group_info_protocol = http

#wdisp/ping_protocol = http

#wdisp/url_map_protocol = http

wdisp/ssl_encrypt = 1

ssl/ssl_lib = /usr/sap/<system-name>/SYS/exe/f/g/libsapcrypto.so

ssl/server_pse = /usr/sap/<system-name>/<instance-name>/sec/SAPSSLS.pse

ssl/client_pse = /usr/sap/<system-name>/<instance-name>/sec/SAPSSLS.pse

icm/HTTPS/verify_client = 1

wdisp/ssl_auth = 1

icm/HTTPS/forward_ccert_as_header = true

icm/HTTP/mod_0 =PREFIX=/, FILE=/usr/sap/<system-name>/SYS/profile/rewrite.txt

wdisp/system_0 = SID=<system-ID HANA>, EXTSRV=https://fiori.dom1.corp:4302,SRCSRV=*:4050, SRCURL=/sap/hba/;/sap/hana;/sap/bi;/sap/ui5;/sap/check

wdisp/system_1 = SID=<system-ID HANA>, EXTSRV=http://fiori.dom1.corp:8002,SRCSRV=*:8120, SRCURL=/sap/hba/;/sap/hana;/sap/bi

wdisp/system_2 = SID=<system-ID Personas>, MSHOST=personas.dom2.corp, MSPORT=8100,SRCSRV=*:4050, SRCURL=/sap/bc/personas;/sap/public/icmandir

wdisp/system_3 = SID=<system-ID Fiori>, MSHOST=fiori.dom1.corp, MSPORT=8101,SRCSRV=*:8120;*:4050, SRCURL=/sap/bc/;/sap/public/bc/;/sap/opu/odata;/sap/opu/sodata/;/sap/es,  CLIENT=004

wdisp/system_4 = SID=<system-ID Portal>, EXTSRV=https://portal.dom3.corp:50001, SRCSRV=*:4050, SRCURL=/irj/;/

wdisp/system_5 = SID=<system-ID Portal>, EXTSRV=https://portal.dom3.corp:50001, SRCSRV=*:4050, SRCURL=/mcm/;/

 

 

In the section SAP Web Dispatcher Ports, we configured a port for HTTP as 81+system number, being 8120, and the port for HTTPS as 4050. To make communication more secure, we use SSL and now call our portal at https://fiori.dom1.corp:4050/irj/portal (because the Web Dispatcher runs on the fiori.dom1 system). Personas applications are called at https://fiori.dom1.corp:4050/sap/bc/personas/ + some parameters, while the relative path to Fiori applications starts with /sap/bc/ui5_ui5/.

 

To overcome possible resolution conflicts, we set wdisp/system_conflict_resolution = 1, so the first fitting system entry is selected and put first

wdisp/system_2 = SID=<system-ID Personas>, MSHOST=personas.dom2.corp, MSPORT=8100,SRCSRV=*:4050, SRCURL=/sap/bc/personas

to filter for all personas application calls, and then

wdisp/system_3 = SID=<system-ID Fiori>, MSHOST=fiori.dom1.corp, MSPORT=8101,SRCSRV=*:8120;*:4050, SRCURL=/sap/bc/;/sap/public/bc/;/sap/opu/odata;/sap/opu/

to direct all other calls with a relative URL starting with /sap/bc/ to the Fiori system.

 

Note that for the message server entries for both the Fiori and the Personas system are defined using parameter MSPORT and the http port, as SSL is only used for the connection to the backend application server, but not to the message server.

 

In general, there are different manners how web dispatcher can be configured for SSL, but we decided to use SSL re-encryption where the Web Dispatcher decrypts the HTTPS request and then SSL-encrypt the request again before forwarding it to the web application server. This is configured by

1. Setting PROT=HTTPS for the ICM/server_port: icm/server_port_1 = PROT=HTTPS,HOST=fiori.dom1.corp,PORT=4050

(for decrypting the request)

2. Setting wdisp/ssl_encrypt = 1 (for encrypting the request again)

3. Configure the web dispatcher with PSEs, signed certificates, and credentials according to the documentation (http://help.sap.com/saphelp_nw73/helpdata/en/49/3db10a19341067e10000000a42189c/content.htm?frameset=/en/49/3e82e882a33e90e10000000a42189c/frameset.htm&current_toc=/en/cd/a3937849b043509786c5b42171e5d3/plain.htm&node_id=182&show_children=false).


If you are interested in more details and a much more complete guide on Web Dispatcher configuration for SSL, I highly recommend reading How to Configure SAP WebDispatcher for SSL. A great guide!

 

Sibylle

Hi Portalpeople.

 

Just want to share the solution of a problem i met today.

 

In Portal (7.3) Manager, who was about to approve a Travel Trip from UWL, got an error when trying to open attachments in the relevant Trip.

 

The error was: "Application Blocked by Java Security"

Java error_2014-11-25.png

 

At first we tried to follow the bullet of the solution in note http://service.sap.com/sap/support/notes/1920875

 

But that did not do the trick.

 

The trick was the Exception Site list in Java Security tab.

Here, enter the backend system server and port used when running http://<server>:<port>/sap/bc/gui/sap/its/webgui/

(Actually we ended up not using the specific path, only http://SERVER:PORT)

 

Hope this can help other avoid using 4-6 hours on this.

 

KR Michael

In this blog I will explain about the URL to Help Topic mechanism and how to use it properly.

 

Considering you are doing your testing on one portal (DEV) and want to move it to QA and later to production, you won’t need to manually edit the settings of every iView and change the URL for the help topic for the new server’s URL, in case that the help topic resides on that server (absolute URL).

 

 

 

 

The first, and perhaps the easiest solution for this, is to create and deploy an HTML static page resource - a simple Portal Application which does not contain any Portal Components or Services, but only consists of some static web resources which resides under a help folder.

 

After deploying it, (for example, an application named “MyHelpResources”), set the "URL to Help Topic" property to "/MyHelpResources/help/1.html" and the content of 1.html is added to the markup of the body of the opened help window.

Capture.PNG

 

With this approach you can address static content on the current server without using absolute URLs.

You can deploy the static help pages on any of your systems (development test and production) and there is no need to change the configuration of iViews between the systems if you are transporting the content between them.

 

 

Assuming you need to address a help page which is more sophisticated than static content, the HTML can redirect you by a script to a relative URL or just open a frame within the markup addressing the wanted relative URL.

 

 

The second approach uses the delegator mechanism.

When you set the "Show 'Help' Option" of an iView to true, it enables the help option in the iView tray resulting in launching the iView using the PRT help Mode.

If the component, which the iView is based on, has implemented the doHelp() function in the code, it will be invoked, otherwise, a delegator will be invoked.

 

What is a delegator?

A delegator is a different component which can be called by one component.

You can read more about it here:

https://help.sap.com/saphelp_nw73/helpdata/en/49/d6a9132190736fe10000000a42189b/content.htm

 

And also, you can read about it in my next blog which will have a link to once it’s published.

 

When a Portal Component, which is the basis for any iView, is launched in a certain mode, a set of fallbacks is being triggered to decide the rendering code that will actually be invoked.

If the component did not implemented the doHelp function in its code, a delegator component, either specific to the component, or a default delegator will be invoked.

If none of the above exist, then the default mode - doContent implementation of the component will be invoked.

By default there are several mode delegators that are provided with the SAP NetWeaver Portal.

In order to view those delegators, you can use the Portal Registry Browser component that can be launched using the following URL:

http://<HOST>:<PORT>/irj/servlet/prt/portal/prtroot/com.sap.portal.runtime.system.console.PortalRegistryBrowser

Then navigate to "runtime" -> "prt.modes"

The component which is registered as the default delegator for the help mode is com.sap.portal.runtime.system.hooks.SystemModes and its implementation of the doHelp method is what provides the actual functionality.

In the next blog, I will explain how to write your own default delegator which overrides the “SystemModes” delegator.

In the portal the UI Theme Designer has a CSS tab that doesn't work (yet!). You can add custom css styling in there, but nothing happens. Previously you could download the theme via the Web Repository WRR, manually change the less files and upload it into the portal. Then you need to recompile the theme. Please note: this is undocumented and you don't have any support from SAP.

 

 

This is how it works

The CSS tab is available, you can enter everything in it as you want, but during compiling nothing is added. So we need to add the custom.less file, which is created if you enter css information in the CSS tab.

 

First I will create a new theme, based on goldreflection:

 

Screenshot - 18-11-2014 , 14_13_57_ver001.png

 

I will rename my Custom Gold Reflection theme to "PeppiePortals" and open the UR Control Properties.

 

Screenshot - 18-11-2014 , 14_19_32.png

 

1. Create the custom.less file

 

Select the CSS tab now.

 

After selecting UR Control properties, select the "All/no selection (middle arrow)". At the left hand side all Controls will be displayed. Just select a random UR one.

 

After selecting you will see at the righthand side UR Technology: Unified Rendering appear. It is time to add some CSS styling.

 

Be aware of the fact that a lot of elements can be styled with the UI Theme Designer in the Expert tab as well. This feature is only for adding new css properties that do not exist in the current theming.

As an example I have added the css style "urPgHTTxtSmall". For this element the background color will be set to red. Again, this is tricky since the .urPgHTTxtSmall will be used on more places in WebDynpro than in this example. So know what you do

 

Screenshot - 18-11-2014 , 14_35_36.png

 

Now save the theme (and publish it, so it is generated in the WRR).

 

 

2. Download the theme and edit the less definition

 

Go to Content Administration > Web Repository

 

Screenshot - 18-11-2014 , 14_45_41.png

 

Expand the theming folder and navigate to UR > ls. Now open your custom theme folder. You will see a custom.less file which you created in step 1. You will need to change the base.less file to import the custom.less file.

 

Right click on the base.less file and download it. Edit the file with your favorite text editor, too bad Edlin is not available anymore, so I am using Notepad++.

 

Screenshot - 18-11-2014 , 14_49_47.png

Add the statement

 

@import "custom.less";

 

And save the file.

 

Upload the base.less file and replace it with the old version. (select yourfolder > right click > select upload)

 

Screenshot - 18-11-2014 , 14_52_54.png

 

Now we need to open the UI Theme Designer again and recompile the theme.

Screenshot - 18-11-2014 , 14_56_45.png

Screenshot - 18-11-2014 , 14_57_58.png

 

Now check if the css is displayed correctly. If this works, you can change stuff directly in the CSS tab and recompile the theme. This will save you approx 2 minutes per change! In my case... this saves me a LOT of time!

 

Screenshot - 18-11-2014 , 15_03_26.png

 

 

Hope you can use this as well Happy branding again!

 

/*

Noël Hendrikx - SAP Portal consultant @ Peppie Portals.

Specialized in Corporate branding SAP Portal / Adobe Interactive Forms.

 

UI Theming blog series

Portal theming - also waited a couple of years?

How to... UI Theme Designer - Installation

How to... UI Theme Designer - Migration

How to... UI Theme Designer - Locating elements

How to... UI Theme Designer - Transportation

How to... UI Theme Designer - Make use of the Custom CSS tab in the Portal!

 

 

Other blogs:

Tired of zipping / unzipping portal theme?

Tips for the Portal Content Studio

DSM Terminator and popup blockers (or not)

My best development friend - Autoresponder FTW

/*

Actions

Filter Blog

By author:
By date:
By tag: