Skip to Content
Author's profile photo Karol Kalisz

Design Studio 1.4: Online Composition Scenario (basics)

After release of Design Studio 1.4, as a first blog I want to pick up the scenario “online composition” and link it to the functions which are used for this scenario.

Online Composition – Scenario

The scenario describes new end user workflows which can be achieved in this release. The scenario allows saving of fragments (see definition below) of the application and construct new views (compose) in different application (using the Fragment Gallery component).

Fragment – what is it?

A fragment is a bit more than a visible area of an application. A fragment can be defined by selection of one container – and this containers, including all children are part of the fragment. In addition, all linked data sources which are used by those components, are also part of the fragment.

In short a fragment contains,

  • the selected container
  • all children components of this container
  • all linked data sources used in the components

View on a fragment (including Data Source)

fragment_1.PNG

What is Saved in above Scenario?

The fragment bookmark does not differ to a normal bookmark from the content perspective, it contains all properties of the included objects like size, position, scripts in events. For data source the complete metadata are saved – including variables and filter values, of course also the drill down state. you can refer to the bookmark blog on detailed content – Insides on Bookmarking.

Important: if you select a panel for saving as fragment, I recommend you to assure that this panel is placed in a parent container with following size settings: width/height on “auto”, all margins on “0”. This assures that you can move the position of the container later on.

Portable Fragment Bookmarks

Some words on the portable fragment bookmarks – same infrastructure content wise, but those can be assigned to a key – which is unique per system. By this key it is possible to load such bookmarks in different application. Keep in mind it is unique per system, so better either use application name in it or control the namespaces in detail.

Other components for Online Composition

Besides the fragment bookmarks, which are saving the content – for the online composition you should have a look also on 2 components which are new:

  • Fragment Gallery – a component which is prepared for work with portable fragment bookmarks
  • Split Cell Container – a component which can be used in an application for composing of user defined portable fragment bookmarks

Both components are designed to work together in one application – and are supporting drag & drop between them. Using those components, the user can place bookmarks into the split container, which extends itself depending of the drop position.

Example Application

you can download the example application and try it out. See the Aplication DEMO_EMB_BOOKMARK_SENDER in GitHub (ZIP contains this app):

Release DEMO_EMB_BOOKMARK_SENDER · KarolKalisz/DesignStudioBiAppRepository · GitHub 

frag_book.PNG

In this application you can check following areas:

  • onStartup script – this is how the content will be loaded
  • Button “Save Area D” – saving and refreshing of drop down / fragment gallery
  • Drag & Drop between Fragment Gallery and Slit Cell Container

Possible Scenarios

The online composition opens a lot of scenarios which allow more flexibility in the application definition, here is a short list as an overview:

  • create visualizations / views with data source including drill down and filter values
  • create a story flow of OLAP navigations in which the user can prepare a presentation of the data evaluation
  • save some settings which are not related to data (eg some filter values selected by user) and recover them automatically when opening the application
  • prepare one application where visualization components are prepared (including parametrization) and use the fragment gallery/split container to build up own view in second application

Current Scope

  • Fragment Bookmarks are working only in one application, ideally when saving only one fragment area. This is good if you sure, this application will not have any other areas which should be saved as fragments.
  • Fragment Bookmarks cannot be used in the Fragment Gallery (only portable fragment bookmarks can be)
  • Portable Fragment Bookmarks are user dependent. There is no special authorization concept behind, only the same user can load them)
  • Fragment Gallery is generating the images based on the content (when saving a fragment with a chart you see a thumbnail per chart type, other “generic” panels will be visualized by generic image)

Last Words

I would recommend you to use portable fragment bookmarks as those have keys which allow you differentiation on loading (as the Script API requires key when loading a list).

Scripting API to look at

Refer to the documentation, the script API is located in the object “Bookmark”, eg. “Bookmark.PortableFragmentBookmark…”.

port_book_api.PNG

In next days I will post an example of an application using portable fragment bookmarks to visualize how this behaves.

for more details, see Design Studio 1.4: Portable Fragment Bookmarks & Reuse in Applications.

I have placed a blog on NON-BASICS ;-_)

Community SDK: First Functional Application with SDK Components (Online Composition)

Have fun in trying out!

Assigned Tags

      10 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Mohd Fahad
      Mohd Fahad

      Hi Karol,


      Thank you so much for sharing the post and keeping all of us updated on Bookmark.

      I had a chance to upgrade from 'Standard Bookmark' and implement 'Portable Fragment Bookmark' to my application it is already looking incredible.

      Lesson Learned:-

      Fragment Gallery must not be inside the 'Panel' we want to capture through PFB. Whereas Standard Bookmark works anywhere within the canvas.

      Thanks once again !!

      Author's profile photo Karol Kalisz
      Karol Kalisz
      Blog Post Author

      Hi Mohd,

      thanks for your response - nice to see that there is a value of all the blogs and components...

      you're welcome. feel free to ask if something is still unclear.

      Karol

      Author's profile photo Mohd Fahad
      Mohd Fahad

      Hi karol,

      Couple of question that i got bumped into this evening, need your advise.

      • Saving SplitCellContainer'

      -Is it possible to Save my customize view that i drag and dropped from 'FragmentGallery' into 'SplitCellContainer'?

      I tried to deploy script "On Startup" (SplitCellContainer.add) but was unable to do so.

      • Portable Fragment Bookmark restricted to appropriate user.

      -Lets assume there are 2 user (A and B), each one go inside the application and creates his own bookmark.

      Condition - User A must not have access to user B Bookmark, something like that.

      Can we implement the logic based on user restrictions?

      Please advise if there is a way around to accomplish the above scenarios.

      Thanks for your ideas and educating us on the same .

      Helpful Link- https://ideas.sap.com/D20439


      -Fahad

      Author's profile photo Karol Kalisz
      Karol Kalisz
      Blog Post Author

      Hi Mohd,

      1. yes, you can save the content of splitcell gallery as fragement bookmark (the code is also in this application) - or do you mean here something else?

      2. this is how the bookmarks work today, FB and PFB are restricted to one user only, second user cannot load this bookmarks (difference to the standard bookmarks). In 1.5 release there will come some maintenance UI fro fragments / bookmarks and also fragments which can be accessed by many users (with access permission - for creation or reading).

      Karol

      Author's profile photo Mohd Fahad
      Mohd Fahad

      Hi Karol,

      You got me right for point 1( splitcell gallery), thanks 🙂 .

      Yes, second one is exactly how we need.

      -Fahad

      Author's profile photo Former Member
      Former Member

      Hi Karol,

      I had a look at your application, nice work. Just one question though, how are you planning to solve the problem that the content of the Splitcell container gets reset when loading a fragment?

      • Create some fragments, switch to composer
      • Arrange some fragments on the Splitcell container
      • Go back to design mode, select a fragment in the fragment gallery

      When loading the selected fragment, it looks like that the application is trying to restore the panels in the Splitcell container as well (but they cannot be found actually):

      Warning message: Web Item PANEL_1 could not be found in current Web Application

      Is this a bug? When loading the fragment, the rest of the application (in this case, the Splitcell container) should remain in its initial (empty state) instead of restoring it?

      Thanks,
      Alex

      Author's profile photo Karol Kalisz
      Karol Kalisz
      Blog Post Author

      Hi Alex,

      this is an issue, which was also found during testing in 1.5 release. It requires a code fix - the objects in split cell container are marked and unfortunately when new fragment is loaded such objects are deleted automatically (destroying all other split cell containers).

      I need to check if this fix can make also into 1.4 release, but you could open customer incident on this.

      Karol

      Author's profile photo Karol Kalisz
      Karol Kalisz
      Blog Post Author

      update - the issue will be fixed only in 1.5 (RTC end of May 2015)

      Author's profile photo Federico Galban
      Federico Galban

      Hi Karol,

      Nice post you share here Karol!

      I have a question regarding Portable Fragment bookmark. When I load again my application, the fragment bookmark refresh its information? Or it refreshes when I drag&drop the fragment bookmark to the splitCellContainer ?

      Also, is it possible to create an application and load in the fragment gallery portable bookmark from other application?

      I tried, but nothing happens and I am asking this because the method descripted to get the portable bookmark need the application name. Bookmark.

      PortableFragmentBookmark.getAllBookmarkInfosForApplication("DS_APPLICATION_TEST");

      Thanks, Federico

      Author's profile photo Karol Kalisz
      Karol Kalisz
      Blog Post Author

      Hi Federico,

      when you load the application the fragment bookmark is not applied automatically, unless you do some code on it in the onStartup script - then the content of the bookmark will be applied into the application (overwriting all changes you made in the area which will be loaded)

      when you use drag&drop from the fragment gallery to splitcellcontainer, then a copy is created in the application on the fly, starting from here - then bookmark does not influence any more the new copied fragment.

      loading of portable fragment bookmarks from different application - as far I know this will be not possible, the bookmarks are bound technically to the application. what is your use case there?

      in 1.5 there is a item on the roadmap for sharing the portable fragment bookmarks between users, this is an extension in 1.5 release (May2015 RTC)

      and last one.. the bookmarks always need a group identifier, this allows you to save more areas in one application into different bookmarks,

      the API is:

      Bookmark.PortableFragmentBookmark.getAllBookmarkInfosForApplication(groupIdentifier)

      Karol