This adventure begins with the task of creating a custom MSS portal role for ECC6 and EP7. In all cases, I start with what a SAP business package delivers and begin building my own custom version copying worksets,pages, iViews, etc. as delta links and going from there. No big deal….fairly mundane stuff, right?
Well, I have quite a lot of experience with past MSS versions and prior to this, much of my time was spent with ESS and MSS for ECC5. For those business packages, both ESS and MSS were built in conjunction with the Homepage Framework configuration on the backend. This basically creates very user friendly, consistent “launch” pages if you will to group together similar services into “areas” and then also creates a nice “overview” (aka. Area Group) page of all of the various areas or collections of similar services that you have created. Because both ESS and MSS utilized this, it made it quite easy to jump between the two and create custom versions as needed.
However with ECC6 and the 1.0 business packages (mySAP ERP) for MSS and ESS, this all changed just a little bit. ESS still is very much organized using the Homepage Framework, and it’s inherent navigation pattern. MSS, however, moved away from the Homepage Framework completely (well, that was the claim at least, but you will soon realize if you dig in that there are still some small pieces of the *new* MSS that use the Homepage Framework. I will save that for another time/blog. haha). From rumors and info that I could glean, it seems that based on feedback, SAP changed this because managers (a) do not need a “hand holding”, user friendly navigational framework to lead them around since they are usually fairly computer savvy as it is (b) they do not want to click through several areas and links to get down to actually doing the task they are trying to get too (hey, managers need to spend their time doing more important things and want to get done fast! Tee times are no joke! haha)With the MSS 1.0 business package, the “areas” and links were no longer arranged into several second level navigation portal “tabs”. The MSS links were more streamlined and organized into simply 3 second level links (Overview, Reports and Service Map). My area of concern was mostly around the “Overview” area. So once again, my first task in creating a custom MSS version was to first tear apart the standard delivered SAP portal role, worksets, pages, iViews, etc. and figure out how everything worked. The first thing I noticed was that under the “Overview” area, each sub-area you clicked would then present a lot of related links in the space beneath the “detailed navigation” portion of the portal framework. But how were these links defined? What made them appear there? Were these “related” or “dynamic” links? This, my friends, is where our adventure begins!
Welcome to Dynamic Navigation
The image below shows what the left side navigational area of the portal looks like when a user clicks the “Overview” area of MSS. As mentioned earlier, we have various sub-areas displayed in the “detailed navigation” portion of the framework, but then we also have several more links that appear under this in the “Services” section. The content of this “Services” section changes depending on which of the sub-areas that we click (Work Overview, Team, Budget, Projects and Planning). But what is this “Services” area? What determines what other links appear in there? My first mission on this adventure was to figure this out.
As always, the first place I look is the role layout and structure itself. Opening the standard MSS 1.0 delivered role, I found the structure as shown in the image below. As you can see, all of our sub-areas that we see in the detailed navigation area in the image above are right here directly under the “Overview” folder (the “entry point” into our MSS role).
I began by looking into the “Team” sub-area (actually a “workset” portal object) first since it was the first one to have any real content that was shown in this magical “Services” area. I figured that was as good a place to start as any since the other remaining sub-areas behaved just the same. As you can see, the first portal object under the “Team” workset is actually a portal page object (in this case, a WebDynpro proxy page) called “Team”. Immediately, I noticed that past that “Team” page were several folders and their contents, all of which, were exactly what was showing in the magical “Services” area. I was on to something!!! The first thing I did was to select the “Team” WebDynpro proxy page and trace it back through it’s delta-link to it’s original page object. Of course, this just took me to the pages delivered in the MSS 1.0 business package (Manager Self-Service->Pages->HCM->Team), but I was making absolutely sure. As Sherlock Holmes once said (probably), “A good detective never assumes.”. I found the original in the PCD catalog and opened it for further inspection. At first glance, all I saw was the actual iViews assigned to the page that show in the “content area” of the portal. I always forget about the drop-down to the right of the top row of buttons in the portal object editor that allows you to switch to other aspects of the object, so I did not see anything out of the ordinary about the page. Luckily, I remembered to look further for “related links” for the page to see if anything was defined to display off in the left side panel in the “related links” area.
Oddly enough, there was nothing there for “related links” for the “Team” page. The only other option then was that this was something related to “dynamic navigation” (fairly new for the portal), so I selected that option. Low and behold, I found what you see in the image below:
I found that in fact there was an iView assigned to this page for “dynamic navigation”. But what is this iView? What was it doing that made all those links appear in it? Better yet, where was this iView to begin with? If I looked around in the MSS delivered content under the “iViews” folder (Manager Self-Service->iViews), there was nothing to be found of any “Services” iView. To research this, I first selected the iView in the image above and clicked the “Edit” button. This brought me to an editor showing the parameters of the iView as assigned in the page. Upon inspection however, there was nothing strange or odd or any particular settings that gave me any clue as to what this iView was or what it was running (WebDynpro, transaction, etc). I had to dig further, and the place to look was the actually original iView object from which this one was delta-linked. So just as with the “Team” page, I selected the “delta link tracer” for the “display” drop-down for this iView. From there, I selected the “Services” iView one generation up and chose to locate it in the PCD catalog. From that, I found that this iView is actually part of the "Common Parts ERP" business package located here:
But what was this iView?!?!? Even looking at the parameters of the "Services" iView, I still had no clue as to how it worked. My first thought was to check the business package documentation itself (from http://help.sap.com/). First, I checked the documentation for the MSS 1.0 business package (HERE). Under the “Shared Objects” section (HERE), I could clearly see mention of the “Service Map” and “Services” iViews at the top of the list, but as you can see in the image below, there was no further information, no comments and no hyperlinks as the other shared iViews had.
My next thought was to check the documentation for the Business Package for Common Parts (HERE). It’s information was even more sparse and actually non-existent. There was absolutely no mention at all about the Services iView. All other iViews were listed, but not that one.
I was still quite stumped. I thought then that instead of finding information about the iView since none seemed to exist in documentation, I would try to work backwards to figure out how it worked. My first place to start was “dynamic navigation” itself. I first looked at the information in the portal documentation about dynamic navigation (HERE). This was fairly basic, so I looked further into the portal administration related information for “dynamic navigation” (HERE). This did not tell me a whole lot other than you assign your dynamic navigation iView to the page (or other object) in order to have content shown in the dynamic navigation area. This was exactly what had been done for the “Team” page by the assignment of the “Services” iView. That got one side of things cleared up, but then how were the links (other role content) assigned to the “Services” iView so that it showed them in that area? That was the “missing link”!
While looking at the information about “dynamic navigation”, however, I saw another section about “Navigation with a Service Map” (HERE). I remembered that the Service Map was part of the Common Parts business package as well, and like the Services iView, it had little to no documentation. I decided to read through that information a bit. I knew how the Service Map iView works from past experience. You basically place it at a point in your role/workset structure and set some parameters on it which tell it at what level to begin and how far down to go to dynamically “map” your links (just like a “site map” hence the name). Reading the documentation however, one part struck me. It reads “Depending upon the position of the module in the navigation hierarchy, the iView can appear as one of the following: (1)A tab in top-level navigation, with each item in the module appearing as a subtab (2) A node in the Detailed Navigation iView of the navigation panel”. The second part really got my attention. From the sounds of it, this was very similar to what our “Services” iView was doing. So then, was our Services iView born of the same idea as the Service Map iView? Was our Services iView simply a “stripped down” version of the Service Map iView? Since I still had no hard documentation on the Services iView, I decided to simply test my theory.
I cobbled together a quick little test. I created a simple role with one workset and one page in it. For the page, I assigned the Services iView as “dynamic navigation”. Along with the page, I created a few folders in the workset and placed within them some delta-link copies of various iViews. Then I tested my new role. As suspected, the Services iView behaved just as I had theorized. It will simply “map” all content object at it’s same level and below it while not including the object that it is assigned to (in this case, the page). I had figured it out !!! (with no help from SAP documentation…or lack of….no less. haha)
The Mystery Continues...Deeper Down the Rabbit's Hole We Go!
I had proudly solved the mystery of how the magical “Services” iView was working and how it “knew” what links to list in the dynamic navigation area. However, one big piece of this puzzle still eluded me. If those object shown in the role for MSS (see the image earlier) are all under the “Team” workset, why then do they not show up in “detailed navigation” as expandable links under the “Team” link? I expected that the detailed navigation would appear like a “tree” control and that clicking on the “Team” link would expand it to show the “Team” page and the other folders (also expandable) under it. At least, that’s how I had always known detailed navigation to work.
As mentioned, you will notice that the "Team" workset link that appears in the "Detailed Navigation" area in the image below does not expand. I opened the "Team" workset in the PCD editor and began looking for anything out of the ordinary. Upon inspection, I noticed a parameter that was new to me, "Leaf Folder". I had not seen this in my experience with EP6. Was this new with EP7? New with support packs? I was not sure, but I checked it out.
I did a search from the portal administration help.sap.com link (HERE) for “Leaf Folder”. Among the results, I found THIS information. It stated that the “Leaf Folder” parameter “Determines whether the object appears in the navigation tree as a page instead of a folder” and applies to “Root nodes of roles, worksets and folders”. But what did that mean? I searched further and back in the portal information from the previous link, within the “Detailed Navigation” section, I found “Features Enabled Through DTN Properties“ (HERE) information as well. For the “Leaf Folder” parameter, it states:
"A property that defines a leaf mode for a Detailed Navigation folder:
Yes: Folder behaves like a page and does not expand to display its contents
No: Folder behaves as folder and expands to display its contents To effect the leaf behavior in the folder, you need to:
- Add a page to the folder.
- Set the Invisible in Navigation Areas page property to Yes.
- Set the Default Entry for Folder page property to Yes.
I had to read this a couple of times for it to sink in. This appeared quite backwards to me. Common sense, or at least my version of it, would tell me that if we marked this parameter Leaf Folder as “yes” then I would think it would behave like a “leaf” on a tree control and expand when clicked. Likewise, if set to “no”, it would simply appear as a non-expandable link. However, like I said, the documentation stated this completely backwards from my thinking. I guess a "leaf" truly is a leaf and not a "branch" in this case. (haha) In any event, this seemed to be exactly our culprit. The “Team” link in detailed navigation was appearing as non-expandable page which made sense because our “Leaf Folder” parameter was set to “yes”. To test this out, I changed the setting to “no”. As you can see from the image below, my hunch was right and another mystery was solved!
This change allows us to expand the "Team" workset in detailed navigation and display all of our folders (and their children objects as well) as "leafs" on the "tree". As you notice, these entries are the same ones that show in the Dynamic Navigation panel that we hunted down earlier.
The Other Suspects
As mentioned before, the "Team" workset was only one of many under the "Overview" area of MSS. We also have Budget, Projects and Planning. So how do they compare? Actually, they are just like the Team workset. Upon inspection, you will find in each an initial page with the "Services" iView assigned in "dynamic navigation". After that, you will see the other folders, pages, etc. that will appear in the Services panel. Lastly, you will find that on each workset, the "Leaf Folder" parameter is marked "yes". Therefore, they all behave just like everything we discovered earlier.
Case Solved, Closed and All Wrapped Up in a Pretty Bow
So, in effect, it is actually the combination of setting our workset "leaf folder" parameter and the usage of the "Service" iView in dynamic navigation, that gives MSS the appearance of some magical navigation appearing. We could just as easily not used the dynamic navigation and made our workset simply expandable in the detailed navigation. However, I suppose this way does give the appearance of a cleaner, professional look which is most likely why SAP went that more complicated route. That...and giving folks like me something to keep busy hacking and figuring out. (haha)
Other Clean-up and Loose Ends
In our case, we have a fairly customized theme for our portal. One thing I found was that when the Services iView which appears in our left navigation panel of the portal framework on our dark blue background, the background would show through it and drown out our links (black or dark text). Editting the Services iView assigned to our page as "dynamic navigation" (or if you are feeling particularly brave, you could edit your Common Parts iView), the only parameter setting I found that could help was the iView tray type setting. It was set to "transparent" by defult hence the background of the underlying table showed through it. I changed it to "fill" type which had the effect I desired. However, the problem is that this will pick up the theme definition you have assigned for all "fill" type iView backgrounds. What I am saying is that we do not have a way to change the background just for the "dynamic navigation" panel. We can change the navigation panel itself (whole left side) and/or the detailed navigation panel, but as of now, there is no access to "style" the related links or dynamic navigation areas. That is a bit of a gap I believe, but at least I found a workaround to it. Just a heads up for anyone else facing the same issue when customizing your own MSS content.
(*FYI, I had this all neatly formatted into tables with the images shown inline with text but for some reason, the text loses formatting when in a table cell with this blog editor. I was too lazy to figure out what was going on....work to be done, you know! hhaha)