Quantcast
Channel: SCN : All Content - SAP Fiori
Viewing all 1807 articles
Browse latest View live

SAP fiori launchpad designer 1.36.8 sap-icon issues.

$
0
0

Hello SAP Experts,

 

I have installed a brand new SAP Gateway based on the latest SPS:

SAP_BASIS 750 SP03

SAP-ABA 750 SP 03

SAP_GWFND 750 SP03

SAP_UI 750 SP03

ST-PI 740 SP03

SAP_BW 750 SP03

SAPUIFT 100 SP01

UIAPFI70 200 SP04

UIEAPP01 100 SP09

UIFND001 100 SP01

UIHERP01 100 SP03

UIHFND01 100 SP05

UISAFND1 100 SP02

UISERP01 100 SP 06

 

I have patched the SAPUI5 to 1.36.8 by using the following sap notes : 2309780, and 2309649

 

I have done the gateway and the launchpad configuration. At this stage everything works fine.

 

Here is my issue, when i use the Launchpad designer I didn't get to icons on all tiles :

Capture d’écran 2016-05-09 à 12.42.37.png

When I go to the configuration, and check the icon here is what I get:

Capture d’écran 2016-05-09 à 12.48.22.png

(using sap-ui-debug=true) In the Console logs I have no errors but a lot of messages saying:

2016-05-09 12:51:25.082310 sap.ui.core.AppCacheBuster.convertURL("sap-icon://notification"); - 

sap-ui-core-dbg.js:16477 2016-05-09 12:51:25.082770   --> normalized to: "sap-icon://notification/" - 

sap-ui-core-dbg.js:16477 2016-05-09 12:51:25.084090 sap.ui.core.AppCacheBuster.convertURL("sap-icon://Fiori4/F0694"); - 

sap-ui-core-dbg.js:16477 2016-05-09 12:51:25.084614   --> normalized to: "sap-icon://fiori4/F0694" - 

sap-ui-core-dbg.js:16477 2016-05-09 12:51:25.085479 sap.ui.core.AppCacheBuster.convertURL("sap-icon://Fiori4/F0694"); - 

sap-ui-core-dbg.js:16477 2016-05-09 12:51:25.085929   --> normalized to: "sap-icon://fiori4/F0694" - 

 

I didn't find any notes/help yet to solve my issue....

 

If someone has some clues....

 

Thanxs.


Language of the Launchpad

$
0
0

Is it possible for an end user to change the language of the launchpad after logging in? We're planning to use single sign on, so logging out and back in isn't an option. Nor is asking the end user to add or modify the ‘sap-language’ parameter in the url.

 

 

 

I have noticed the language is shown in the user preferences, but so far I haven't succeeded in making the field changeable..

 

 

 

Any suggestions, or ideas?

sCustomizing Fiori LaunchPad Login Screen

$
0
0

Dear Experts,

 

I want to customize the sap fiori launchpad login screen as given image with responsive for all device.

 

I want to know possibilities of fiori LPD customization and solution for this scenario

scn post.png

Best Regards

Sathish Mani

TablePersoController Initial Perso Data set Issue

$
0
0

Hi All,

 

Am using TablePersoController and am facing a weird issue where Initially when table is rendered getPersData() of Perso service is called but personalisations are not applied on the table but from next time onwards if i change my columns order and visibility it is working fine. Initially I want to hide some of the columns of the table and later user can set as visible by using Perso controller. Please help me on this.

 

Regards,

Arun.

PDO Layer Error while running SRM PO Approval app

$
0
0

Hi All,

 

While we are running SRM PO Approval app in Fiori launchpad, we came across the PDO layer error which is stopping the view to be loaded and terminated with console error as follows.

 

The following problem occurred: HTTP request failed400,Bad Request,{"error":{"code":"/IWBEP/CM_MGW_RT/022","message":{"lang":"en","value":"PDO Layer error."}

 

Can some one please help us if you have came across same kind of issue.

 

Regards,

Arun.

Error while posting a transaction in Fiori

$
0
0

Hi Friends,

 

Find the error below. My technical team has activated SAP Fiori UI. I am able to logged in & view all the account tiles. But when I am trying to post a transaction, the error is appearing. My technical team suggests that there is some configuration pending from my side for Fiori Launchpad. I am working as FICO Consultant.

 

1.jpg

2.jpg

 

 

 

Please suggest.

 

Thanks,

 

Satya

Issue while extending "Track My request" MDG App

$
0
0

Hello All,

 

I am trying to add more items in the list (below screen shot ) using extensibility. I am using SAP Web IDE for extending the APp.

items_list.png

In the "Outline" Pane , only two controller hooks are visible but the I can see many of the extension hooks in S1.Controller.js file.

 

outline.png

 

However I have added the required code in the extension hooks but its not getting reflected when I run the App.

Controller hooks in S1.COntroller.js file are below :

 

extHookonApplySorterOrFilter:

extHookonVSDialogAllPressed:

extHookonVSDialogInProPressed:

extHookonVSDialogApprPressed:

extHookonVSDialogRejPressed:

extHookResults:

extHookOnApproved:

extHookInProcess:

extHookOnRejected:

 

Can any one please advice how can I proceed?

 

Thanks in Advance.

My inbox 2.0 - annotation based task ui???

$
0
0

Hi All,

 

I've just extracted the latest My inbox 2.0 SP1 patch 1 into WebIDE and there appears to be a whole Smart Template style annotation based section for tasks, but I can't find any documentation referring to it.  Does anyone have any info on how to use this (I'm hoping it replaces the extension approach previously covered within the cookbook which was less than ideal and obviously would prefer to not have to reverse engineer it)?

Capture.JPG

Thanks,

Matt


SAP Fiori Launchpad Issue

$
0
0

Hi,

 

When I am trying to launch SAP Fiori the page is not getting opened, when i checked web console it was showing below error.

 

Console details

2016-05-13 10:19:03 Call to success handler failed: n.setLegacyDateCalendarCustomizing is not a function - TypeError: n.setLegacyDateCalendarCustomizing is not a function

    at d1 (http://XXXXX.XX.XXXXX.com:xxxx/sap/bc/ui5_ui5/ui2/ushell/resources/sap/ushell_abap/bootstrap/abap.js:26:24195)

    at p1 (http://XXXXX.XX.XXXXX.com:xxxx/sap/bc/ui5_ui5/ui2/ushell/resources/sap/ushell_abap/bootstrap/abap.js:26:29025)

    at C1 (http://XXXXX.XX.XXXXX.com:xxxx/sap/bc/ui5_ui5/ui2/ushell/resources/sap/ushell_abap/bootstrap/abap.js:26:34927)

    at F1 (http://XXXXX.XX.XXXXX.com:xxxx/sap/bc/ui5_ui5/ui2/ushell/resources/sap/ushell_abap/bootstrap/abap.js:26:36839)

    at http://XXXXX.XX.XXXXX.com:xxxx/sap/bc/ui5_ui5/ui2/ushell/resources/sap/ushell_abap/bootstrap/abap.js:26:38668

    at http://XXXXX.XX.XXXXX.com:xxxx/sap/bc/ui5_ui5/ui2/ushell/resources/sap/ushell_abap/bootstrap/abap.js:26:29713

    at Object.sap.ui2.srvc.call (http://XXXXX.XX.XXXXX.com:xxxx/sap/bc/ui5_ui5/ui2/ushell/resources/sap/ushell_abap/bootstrap/abap.js:26:1861)

    at XMLHttpRequest.X.onreadystatechange (http://XXXXX.XX.XXXXX.com:xxxx/sap/bc/ui5_ui5/ui2/ushell/resources/sap/ushell_abap/bootstrap/abap.js:26:2991)

    at s.E.dispatch (http://XXXXX.XX.XXXXX.com:xxxx/sap/bc/ui5_ui5/ui2/ushell/resources/sap/ushell_abap/bootstrap/abap.js:2:2628)

    at XMLHttpRequest.X.handleEvent (http://XXXXX.XX.XXXXX.com:xxxx/sap/bc/ui5_ui5/ui2/ushell/resources/sap/ushell_abap/bootstrap/abap.js:2:3751) sap.ui2.srvc

 

Please find below the Components in our system.

 

SAP_BASIS7400013SAPKB74013SAP Basis Component
SAP_ABA7400013SAPKA74013Cross-Application Component
SAP_GWFND7400014SAPK-74014INSAPGWFNDSAP Gateway Foundation
SAP_UI7400016SAPK-74016INSAPUIUser Interface Technology
PI_BASIS7400013SAPK-74013INPIBASISBasis Plug-In
ST-PI7400003SAPK-74003INSTPISAP Solution Tools Plug-In
SAP_BW7400013SAPKW74013SAP Business Warehouse
MDG_FND7470011SAPK-74711INMDGFNDMDG Foundation
SAP_AP7000033SAPKNA7033SAP Application Platform
SAP_BS_FND7470011SAPK-74711INSAPBSFNDSAP Business Suite Foundation
WEBCUIF7470011SAPK-74711INWEBCUIFSAP Web UI Framework
MDG_APPL6170011SAPK-61711INMDGAPPLMDG Applications
SAP_APPL6170011SAPKH61711Logistics and Accounting
SAP_FIN6170011SAPK-61711INSAPFINSAP_FIN
SAP_HR6080018SAPKE60818Human Resources

 

Please help us on this.

 

Thanks

Sugumar

SAP Splash and BUILD - Not Able to close "Getting started" message

$
0
0

Dear colleags!


I'm having a problem with "Getting started" message, that new user is getting after registration. "Close" button just don't do anything. I tried in three different browsers: Chrome, Opera and IE - no luck.


For now I just blocked pop-up and black overlay using ad-block extension for Chrome.


standard.experiencesplash.com###help-ftu

standard.experiencesplash.com###helpOverlayID

standard.experiencesplash.com###ui-dialog-modal-backdrop

standard.experiencesplash.com##.open

standard.experiencesplash.com##.phd-content.ng-scope

standard.experiencesplash.com##.ui-dialog.ng-isolate-scope.open

 

It seems to work just fine, but gives me hack-ish feeling. So is there any way I can solve this issue?


Thanks!

An example to learn how fullScreenPageRoutes works in full screen application via debugging

$
0
0

In CRM Fiori there is a full screen application named My Task.

Note: This "full screen" has nothing to do with F11 in your browser.

clipboard1.png


My colleague today asked me one question: what is the usage of this attribute "fullScreenPageRoutes"?

clipboard2.png

If google this attribute as keyword, there are not so many useful result returned. How to do self study on this attribute via debugging?

 

Open Development tool and perform global search via Ctrl+Shift+F, click line 156 and set a breakpoint there. Refresh the application.

clipboard3.png


Debugger is triggered. We can find that the route information we set in Configuration.js are loaded and stored in variable oAppMeta accordingly.

clipboard4.png

Where does this oAppMeta come from? Click the blue callstack frame. Here a metadata instance is created with type "FS" ( fullscreen ), and the whole configuration data wrapped by { } is passed into function createMetaData as second argument, that is, oAppMeta within createMetaData function. 

clipboard5.png

Since the application has type "FS", so oMeta.routing is hard coded as below in ComponentBase-dbg.js. The routing object has attribute "routes" which is again an object which has another object attribute "fullScreen".

clipboard6.png

clipboard7.png


clipboard8.png

Then later when UI Component is being initialized, the merged route information is stored in private attribute _oRouter of application UI component in line 218.

clipboard9.png

The view marked with blue "sap.ca.scfld.md.view" will be used in _routeMatched:

clipboard9.png


clipboard10.png

This is the reason why you can observe the load of corresponding xml file in Chrome network tab:


clipboard11.png

clipboard12.png

Since when I launch this Fiori application locally in my Tomcat with url: http://localhost:8090/cus.crm.mytasks/, no hash is appended after url, so route configuration with target view S2 is chosen:


clipboard13.png

clipboard14.png

The view hierarchy could be found below:

clipboard15.png

And if I change the attribute name deliberately, I can only see a blank screen:

clipboard16.png

Compare the new view hierarchy this time:


clipboard17.png

The reason is quite simple if we understand previous analysis. This time the route data provided by application fails to be merged, since line 261 expects attribute fullScreenPageroutes but I only have "fullScreenPageroutesAAAAA".

clipboard18.png

In console you can see warning message which complains application didn't provide any page to display.

clipboard19.png

Application descriptor

 

There is now new approach to define application specific configuration via descriptor file manifest.json. For details please refer to SAPUI5 walkthrough step10: Descriptor for applications

Error in Theme Designer

$
0
0

Error pop ups when creating a custom theme

Theme designer.jpg

Users Authorization in SAP UI5 launchpad

$
0
0

I have configured a Launchpad using .xswidget(catalog) and .xsappsite(launchpad) files for my UI5 project.

Currently, I have added 2 tiles to launchpad. I want to restrict user(s) to see authorized tiles.

 

for example, User A should see only 1st tile

                     User B should see only 2nd tile

                     User C should see both tiles

 

How can I achieve this?

 

Thanks,

Additional info on S2 View / S3 View In Fiori Apps

$
0
0

Problem: We wanted to show additional details on the left pane where the document number is displayed like What is the value of the document and who created it etc.Although this information is shown on the right side but when user logs in to the system via Mobile app only the left navigation pane is shown and it would save time if the approver knows with a glance at it as to which document should be approved on priority.

 

Analysis: I did a thorough analysis and there was an option to extend the Odata services or adding more information from Web Ide which was quite a bit of a challenge specifically for the MY inbox app as it has information received from different other systems.

The View on the left side is S3 Summary View and  on the right side is S2 detail view

 

 

The My inbox app in particular has a lot of services which are coming from the different versions of app like my SC , My Purchase orders etc. .. and hence makes it a bit complicated to be able to provide a solution for this .

There can be multiple ways of realizing this change but I found this one to be the easiest.

 

Solution : I referred the App extensibility document  http://help.sap.com/fiori_bs2013/helpdata/en/dd/fc595461fce630e10000000a44538d/content.htm

  In that look for Section ‘BAdIs in the Gateway System’ I found in the App extensibility document 2 BADI’s which can be used as below:

  • Task Gateway: Change subject in query (/IWPGW/BADI_TGW_TASK_QUERY)

You can use this BAdI to change the task title for all items on the list screen.

  • Task Gateway: Modify task data (/IWPGW/BADI_TGW_TASK_DATA)

You can use this BAdI to change the task title or task description on the detail screen.

 

Now we need to ensure that both the BADI’;s are being used .

 

Trigger points:

  1. During initial Launch When we launch the URL for the my Inbox app It triggers the BADI interface it will list all inbox items .

This is the trigger point for below BADI

BADI : /IWPGW/IF_TGW_TASK_QUERY and

Method : /IWPGW/IF_TGW_TASK_QUERY~MODIFY_ITEMS

Pass new data in CT_MODIFIED_TASKS which lists all task in inbox

 

  1. Click on any Inbox Item  When you click on any of the items it will then trigger the BADI interface as mentioned below

BADI : /IWPGW/BADI_TGW_TASK_DATA

Method : /IWPGW/IF_TGW_TASK_DATA~MODIFY_TASK_TITLE

Pass new data in CV_TASK_TITLE it is a single value since user selects one task at a time.

 

If you want to show additional information in the right pane as well we can use the other methods of this BADI also .

 

To be able to edit the data on the left Pane you ideally would need to write the same piece of code in both the BADI’s.I faced an issue still when tried using these BADI and was fixed by the below note released by SAP to fix the issue in  the BADI behavior.

 

NOTE 2299362 - BADI implementation of /IWPGW/BADI_TGW_TASK_DATA returns wrong values in case of $expand request

 

Current Scenario: If your backend and gateway system is in the same box things become easier but in my case we had it in different boxes so we had to call the FM to fetch additional details like BAPI_CONTRACT_GETDETAIL and BAPI_PO_GETDETAIL etc

Sometimes you will not find the structure type in the gateway system of these RFC enabled Function modules so in that case create a wrapper FM and call this FM from backend system and only send the relevant fields.

I have used the below commands to replace the text which I do not need .

 

REPLACE ALL OCCURRENCES OF REGEX lc_required IN lv_task_title WITH ' '.

REPLACE  '.000' in lv_quantity WITH ' '.

Below is the code piece to fetch the document number for the PO/PR / Contract Document.


  lv_po_no = LS_TASKs-TASK_TITLE+14(9).
lv_pr_no
= LS_TASKs-TASK_TITLE+3(8) .
Lv_line_no
= ls_tasks-task_title+12(5
) .

 

 

 

Similar thing can be done for the Other APPS as well to modify the content of each of the sections in the Fiori App  . I am yet to explore all the other BADI's  and will come up with more documents. Thank you for reading through do leave me a comment if you find this useful / not useful .

 

 

Regards

Vinita

 


                

New and significantly expanded SAP Fiori Roadmap now available

$
0
0

The new and significantly expanded SAP Fiori Roadmap is now available on Service Marketplace. It gives a holistic overview of SAP’s plans, covering design, technology (including design & development tools) and application road maps. For S/4HANA, we now have a dedicated section covering SAP S/4HANA Cloud Edition and a separate section covering SAP S/4HANA On-Premise Edition, with one slide per role – well over 100 slides for S/4HANA.

 

Here is the direct link:

https://service.sap.com/~sapidb/012002523100016328952014E.pdf

 

You can also find it from the Service Marketplace Roadmap landing page, under “Cross Topics” in the section on Product Roadmaps.

 

I will be giving a summary of the road map at the ASUG annual conference in Orlando next week, so if you are there, do drop by!


An easy way to find location where Unique id of UI5 control is created

$
0
0


We know that when we create a new UI5 control instance, we can explicitly pass an id into constructor. In this case, developer takes responsibility to ensure the id is unique.


clipboard1.png

We can find the unique id in rendered page.

clipboard2.png

An alternative is we do not pass any id but let UI5 framework to automatically generate one.

 

var myButton = new sap.ui.commons.Button({

   text: "press me~"

  });

 

Above code will have a button with id "__button0" generated.

clipboard3.png

Question: how can I find exactly location of code where UI5 does the trick?

 

Since I don't know exactly where should I start to debug, I even do not know which js file I should start with.

 

As a result, I plan to manually bring some trouble to UI5 framework, so that it can raise some complain message in Chrome development tool console to give me some idea. So I write the following code. I assume line 11 will lead to some mistake due to the duplicate control id.

clipboard4.png

When I refresh the application, I see the expected error message in console. Ckick the third frame in callstack: Core.registerElement to view its source code:

clipboard5.png

Here below we can understand the UI5 framework logic how to detect duplicate control id:

 

1. There is a central repository to store all registered control instance. See this.mElements in line 40711.

2. in line 40700, scan against the central repository with the id of new control to be registered. If byId returns one, it means there is already existing control with the same id. Duplication detected!

clipboard6.png

clipboard7.png


So far we still do not know where id is generated. Type oElement.getId in console and the source code of this function is printed out. Then we know for every control instance, it has a property sId to store its ID.

clipboard8.png

Perform key word search within the same JS file where registerElement is implemented with keyword ".sId", only 11 matches found.

Then we find a constructor function which looks like just what I am looking for. The logic of automatic ID generation if not explicitly specified is implemented between line 29062 and 29064. Set a breakpoint to verify our guess.

clipboard10.png

Write the following code in controller:

var myButton = new sap.ui.commons.Button({   text: "press me~"  });

 

In the runtime breakpoint is triggered.

clipboard12.png

The ID fragment, "button", comes from this.getName() in line 33711.


clipboard13.png

UI5 framework internally maintains a counter as the postfix of each control id.

clipboard14.png

This is the reason why we can see lots of number postfix in every UI5 application:

clipboard15.png

More detail about Bootstrap script tag

$
0
0


Can I change the hard code ID?


In SAP help the UI5 bootstrap logic is explained: Bootstrapping: Loading and Initializing SAPUI5 in HTML Pages.

However, I was asked by my colleague about one question: the script id below is hard coded. Can I change its id to any other value like HelloWorld?

clipboard1.png

The answer is yes. For example the id below still works.

clipboard2.png

In order to explain this behavior, we have to understand the UI5 bootstrap process in more detail.

 

How to find the starting point for research?

 

Perform global search with the hard coded key word "sap-ui-bootstrap", set a break point on search result, line 14893 below.

clipboard3.png


Refresh the application and break point is triggered. Through the comment of the function we can know that it is responsible to parse the bootstrap script node we define in index.html to determine the resource root.

clipboard4.png


clipboard5.png

The logic of UI5 framework to determine whether a script tag is a "bootstrap" tag is done by three regular expression evaluation ( see variables reConfigurator, reBootScripts and reResources in below screenshot ).

clipboard6.png

Only if all the three evaluation fail, then framework will compare the script tag id with hard coded id "sap-ui-bootstrap" as last resort.

In my case, although I change the ID to "HelloWorld", the second regular expression still succeed so resource root is successfully determined, no need to go the last ELSE-IF to compare the ID with hard coded value.

clipboard7.png

How are libraries specified in data-sap-ui-libs loaded by UI5 framework?

 

Another question is: I have specified all libraries I would like to use in attribute "data-sap-ui-libs" as pure string value, how is UI5 framework able to parse this string and loading library one by one?

clipboard8.png

Since the bootstrap script tag is successfully determined via regular expression, now its attribute are ready for parse.

clipboard9.png

The pure string value for libraries to be loaded is stored in oCfg.libs.

clipboard10.png

The code highlighted below parses the string and convert library name into an array: config.modules.

clipboard11.png

clipboard12.png

Those libraries are loaded by function loadLibrary in line 39294 one by one:

clipboard13.png

To Change icon in Fiori Launchpad

$
0
0

I want to Change the icon of the Launch Pad Tile with Custom icon. Currently it is possible to Change the icon available in sap-icon:// . How can we the icon with Custom icon or add icon inside sap-icon://  .

 

launchpad_config.gif

launchpad.png

Routing Concept

$
0
0

I would like to implement routing concept on just 2 views to understand just like the routing implemented in standard master detail template.

I want to know parameters and their usage. Can someone help me with proper document. I have already gone through SAP UI5 explored examples. I need something that can be easily understandable.

 

Regards,

Raghu

Fiori for iOS - Guidelines

$
0
0

hi,

 

I recently came across https://experience.sap.com/fiori-design-ios/ and the UI Elements seems to be more of a "native version" in iOS - does anyone have any idea if there is a library / toolkit from SAP to jump-start or this is more of a teaser of something that does not exist?

 

 

Cheers,

Dan.

Viewing all 1807 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>