Power links to content objects

SAP Enable Now allows users to access help and training content in a number of different ways, including via the Desktop Assistant and/or Web Assistant, as a packaged course via an LMS, or entirely ad hoc via the Trainer (sometimes referred to as the Library). This last option, the Trainer, is either the first thing you use, or the thing you never use, depending on your particular use cases, but it is the most flexible and may actually be the most useful – even if you never send users to this directly. In this blog post, we’ll look at some of the things you can do when providing links to Enable Now content, and the things you can manipulate in these links, to change what the user sees.

This article uses the example of a cloud installation at https://globocorp.enable-now.cloud.sap, and a single Workarea called global that contains all of our content . Substitute your own URL and Workarea ID as required.

A full-blown power link showing several of the possible URL parameters

First, let’s assume that we want to give our users access to all of our published content. In the Producer, go to the highest-level Group for your published content (which could be Root, but will most likely be some sub-Group below this. In the Start Links category of properties, you will find up to four URLS:

  • Local Preview: This points to your ‘local repository’ and is purely for your use. Do not distribute this link to anyone else as it will not work for them.
  • Authoring Preview: This points to the ‘head version’ of the content object. This is the most recent version that has been saved to the server, but this may not be the currently-published version. Only people who have Read access to the Workarea itself will be able to see the content on the end of this URL. This is useful for sending out links to a ‘review copy’ to authorized users prior to publication.
  • Published View: This is the URL of the currently-published version of the content object (even if this is not the ‘head’ version – that is, if changes have been made to the object but not yet published). This is the URL that you would normally distribute to users, but see the huge caveat under Tracking hit counts below.
  • Custom Location: This property allows you to effectively build your own URL. If you publish your Trainer to a local server, you would want to use this URL – but to do so you will first need to enter the first part of the URL (effectively the URL of your server – say, http://globocorp.com/training/) in the Custom Prefix property for the Workarea itself. More on this, below.

Tracking hit counts

SAP Enable Now provides several options for tracking hit counts on your content (and you will absolutely want to do this, as Management will always ask “Are people actually using this stuff?” – especially around license renewal time!). One of these options (specified in Tools > Settings > Playback Settings – trainer – Global > Tracking (General) > Tracking Back End) is Manager. This option means that hit counts will be captured in the Manager component of SAP Enable Now (assuming you have created assignments), and can be reported on via the Manager-provided reports. However, the problem with this is that (as of a couple of releases ago), hits are only counted if the contacts are accessed via a ‘Manager-compatible’ URL – and this is not the Published View URL noted above). To get the ‘Manager-compatible’ URL, you need to:

  1. Go into Manager.
  2. Use the selection drop-down in the upper-right to filter the display to show only components with a Tag of Published.
  3. Navigate to the Group or content object for which you want to obtain the URL.
  4. Copy the URL shown in the object’s Start Link property (there is only one ‘Start Link’ in Manager).

The ‘Manager-compatible’ URL will be in the format https://globocorp.enable-now.cloud.sap/wa/global/~tag/published/index.html?library=library&show=group!GR_XXXXXX (the key part is the /~tag/published/). The good news is that you don’t necessarily need to go into Manager to get this URL every time. Instead, take all of the URL up to (and including) the “/” before index.html, and paste this into the Custom Prefix property for your Workarea. Then, the ‘Manager-compatible’ URL will be available in the Custom Location property for each content object!

Linking to individual objects

One of the great things about the SAP Enable Now Trainer is that you can link to any individual element at any level of your content structure – so if you want to provide a link to a specific section within your overall Trainer, you can just take the start link for the Group object for that section. When a user clicks on this link, the Group will be opened in the browser effectively as a Trainer that contains only that Group (and its contents), as if everything above it doesn’t exist!

You can also link to a specific content object (a simulation, Book, or Book Page) and have that opened directly, just by taking the Start Link for that particular object. For example, a link containing show=book!BO_XXXXXX will open the specified Book in the Book Reader (not the Trainer), and a link containing show=project!PR_XXXXXX will open the specified simulation in the Trainer, showing its Description, Short Description, and play buttons, just as if this was the only thing in the Trainer.

Of course, if you link to a single Simulation the navigation tree contains only a single element (the Simulation) so there is little point in showing it. Handily, SAP Enable Now provides the ability to stop the navigation tree from being displayed. To do this, add the parameter lib_tree=false to the link URL (so your URL becomes, for example, show=project!PR_XXXXXX&lib_tree=false). Note that his is only a default initial setting, and the user can display the navigation tree by clicking on the Show/Hide button on the far left of the screen.

Things get even more useful for simulations, in that you can link directly to a specific play mode of a simulation. For example, say you want to show a specific simulation in Demo mode, without having to go through the Trainer and click the Demo button. Just expand the Simulation object in Producer to show the individual play mode deliverables, select the Demo mode entity, and then take the Start Link from this. The URL for this will indicate show=project!PR_XXXXXX:demo. This is extremely useful if you want to launch the simulation from (for example) a Book Page or a PowerPoint slide as part of self-paced learning.

Two-Level Links

Going back to the overall Trainer, there’s another few things you can do with links. Above, we looked at how to obtain a link for a specific Group, and open this as if this Group (and its contents) was the only thing in the Trainer. But what if you want to direct a user to a specific Group, but still want to allow them to see everything else in your content structure (i.e. things above this Group)? Handily, SAP Enable Now provides a way of opening one Group, and positioning the user on another Sub-group within this. This is done by using a link containing the following structure: show=group!GR_XXXXXX#group!GR_YYYYYY. Here, Group GR_XXXXXX is opened in the Trainer, and group GR_YYYYYY is selected as the ‘current’ object (with its details shown on the right). Note that GR_YYYYYY does not have to be a direct child of GR_XXXXXX – it just has to appear somewhere under GR_XXXXXX, and the navigation hierarchy will be expanded all the way down to – and including – GR_YYYYYY.

A similar construct is available for Books. Say you want to send a user a link to a specific Book for a course, but you want to draw their attention to a specific Book Page within that Book. To do this, use a URL containing show=book!BO_XXXXXX#slide!SL_YYYYYY. Here, Book BO_XXXXXX will be opened in the Book Reader, and Book Page SL_XXXXXX will be displayed on the screen.

You can even mix things up. A link of show=group!GR_XXXXXX# book!BO_XXXXXX will open the Library for Group GR_XXXXXX in the Trainer, and then open Book BO_XXXXXX in the Book Reader on top of this. When the user closes the Book (assuming they click on the SAP Enable Now close button and not the browser/tab close button) they are returned to the Trainer, where the Group is displayed and the Book is selected. (You may want to test this, as I have seen it work differently in different implementations – sometimes it seems to position you on the Book without actually opening it.)

Using Filters

You may have noticed that the default links include the parameter library=library.txt, and wondered what that’s doing? In and of itself, this parameter (with this specific value) is doing nothing (remove it and everything will still work the same). However, what it represents is another incredibly useful feature – the ability to pre-select a filter in a link.

You’re probably aware that you can create filters in your Workarea (if not, we’ll cover that in a separate article). When you create a filter, you have the option to make this filter available to users in the Trainer (by selecting the Use filter in unfiltered/prefiltered library options when you cxreate the filter). What you may not know is that you can also specify this filter in your link, so that it is automatically applied when the user opens the link. This is done using the library parameter. Just change this parameter to specify library=libraryFLT_XXXXXX.txt, where FLT_XXXXXX is the UID of the filter itself. This UID is a little trickier to obtain, in that it is not directly visible anywhere in the Filter properties. But if you go to Resources > Filters in Producer, and go to the folder for the filter (right-click on the filter and select Open folder from the context menu), the UID is the name of the parent folder for the filter’s entity.xml file.

Searches

Let’s look at one last URL option that is incredibly useful. This is the ability to automatically perform a search against the Trainer (this is something I repeatedly asked Oracle to provide in UPK but they never did – and SAP had it all along, hidden deep in its base functionality!). Any user can search content in the Trainer, by entering a search string into the Search box. You can do a similar thing in a link by adding the lib_searchstring parameter to the link. So, for example, if you wanted to search on the text “analytics”, you would use a link containing something like index.html?library=library&show=group!GR_XXXXXX&lib_searchstring=analytics. But why would you want to do this? Maybe you want to show users how to locate specific information, and show them by example. Or maybe you have grouped related content objects together by using a hashtag in the Keywords property, and want to provide users with a link to all of this related content. Just bear in mind that the Search function will only search for text in content objects’ Name, Short Description, Description, and Keyword properties, and in the content of Book Pages; it will not search the content of simulations.

So, that’s a quick look at some of the ways you can provide links to content housed in your Trainer. Most of the time you’ll probably just want to provide embedded links to specific simulations in a given mode – and will probably get these links from the Start Link properties or by using the default Insert Link functions. Just don’t forget that SAP Enable Now provides a lot of other interesting possibilities, if you’re willing to do a little URL reconstruction.

10 thoughts on “Power links to content objects”

  1. Great article. I have however noticed a serious downside to the Search functionality and associated URL.

    Imagine, I’m working on a helpdesk and a user wants help on how to create a Purchase Requisition for services. I search for “Purchase Requisition” in SEN and it brings back 15 related docs. I can then see “Create a Purchase Requisition for Services” is 5th on the list, so I click and it and share the URL.

    Except I haven’t shared the link to that doc at all, I’ve shared the link that shows all of the 15 docs and the actual doc that will show when the user opens the link is called “Create a Purchase Requisition for Goods” because that’s the first document in the list.

    I’m on the help desk, I’m time pressured, I’ve searched for help, I’ve found it and I’ve shared it. Except I’ve just shared the wrong document!

    This really needs to be fixed by SAP.

    1. Graeme: You’re right. It is odd that it works that way – although I’m sure that SAP would argue it’s working as designed so you can share a list of search results ;-). It may be worth opening a Customer Improvement Request asking for a way to share an individual object link from a search results list… I did notice that if you click on an object to display it on the RHS you can then click on the object’s immediate parent, which will then give an object link on the Share button – so you may be able to go to the parent, (re)select the object, and then share the link to that?

  2. I have a variation to the question above: I wish to create a project (simulation) start page template that lists, as buttons, the play modes (Demo, Practice, Concurrent). I would like, though, for the links for each mode to auto-populate as links on the buttons. That is, after I record and save, the links to the various modes are automatically linked to their respective buttons. The intent is to reduce the grunt-work for developers as much as possible, and since each mode has a unique URL/ID, each needs to be defined per simulation on their respective button. In short, can I create a self-defining link to a simulation’s aspect? Similar links could be to a text message (simulation context, title, etc.), project branding, etc.

    1. Well, the problem there is that if you have a Start Page within your simulation, that will only be displayed once the simulation has been launched in a specific mode already – so there is no need for different ‘play in mode x’ buttons. If you are saying you want to use a ‘library AutoStart’ page (as opposed to the actual/default ‘index’ page, and have this launch the relevant mode – I’d question why go to the trouble given that the standard index page already has buttons for the available modes on it (and you can add additional info/graphics/tables/etc in the Description if you want, anyway… But if you really want to, yes you can create a link on that ‘autostart’ page to project:demo, project:uebung, etc. and it will launch it just fine.

  3. Hello Dirk,
    You are describing that you can start a demo directly with a link including the demo part in “show=project!PR_XXXXXX:demo”. Can you also use a relative link on a bookpage template to always refer to the demo? You described in another thread, that you can access some project information like the caption by using $#{project.:caption} so I was wondering, if you also can use something similar for the different previews?

    1. If I understand your question, you want to use a Book Page Template _within_ a simulation and have something on that Book Page link to that simulation’s demo mode? So maybe as the Library Autostart, to build your own start page? Yes, that is possible, as long as the Book Page is hierarchically underneath the simulation project. Thanks to the way placeholders work, Enable Now will happily link to any property of the current object or its parent(s) without the need to specify a qualifier UID on the placeholder. Also, the placeholder is substituted for the actual text prior to display, so you can use a UID placeholder to build a link.

      I do have an example code for you but the spam checker keeps on blocking me from posting it here. I’ll send you an email.

      I’ve tested this using a Book Page as the Library Autostart, but I haven’t tried creating a simulation project template that already includes a Book Page template as the Library Autostart – you’d have to check if a new simulation project created from the project template uses the Book Page Template itself, or a new Book Page instance created from this Template as the Library Autostart. I’d guess not, so I don’t know how much this helps you.

      1. Hi,
        I’d like to have the answer to this question.
        I’m also trying to find out how to link to the simulation mode without having to include the project code in the url.
        Thanks for sharing 🙂

        1. Denis-Patrick:

          I’ll send you the smart link via email. If it works for you, you can by me a coffee! (buymeacoffee.com/enablenowexpert)

          Thanks
          Dirk

          1. Thanks, so the conclusion is that you must have de UID or else it won’t work. I wishe I could have gone around that but ok, thank you.
            You’re response is greatly appreciated 🙂

          2. Not if you are making the call from within the simulation itself (for example, on a Book Page used as the start page of a simulation). In that case, the code I emailed to you will work. If you are outside of the simulation then yes, you are going to need the UID – else how will it know what simulation you are referring to?

What's on your mind?

This site uses Akismet to reduce spam. Learn how your comment data is processed.