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

SAP FIORI LIBRARY UPGRADE ISSUE.

$
0
0

Hi Experts,

 

While upgrading sap fiori library from 1.28.6 to 1.28.18 we have getting error message like "an error occurred at least one file".

 

Please check attached screenshot and let me know how to fix the issues.

 

 

Thanks,

Vijay.


sap fiori library upgrade issue

$
0
0

Hi All,

 

while upgrading fiori library from 1.28.6 to 1.28.18 we have getting an issue "an error occured at least one file"

 

please see attached error message and help me to fix the issue.

 

Thanks

Vijay.

No Catalog in Fiori admin launchpad

$
0
0

Hi everyone,

 

I don't have any catalog in my fiori admin launchpad.

In debbug this request is fail: /sap/opu/odata/UI2/TRANSPORT/GetDefaultCustomizingRequest?

and this message : Resource not found for segment 'CustomizingRequest'


I have check the service OPU/odata/ui2/transport : it's correctly activate.

 

Have you an idea for solve my issue ?

System requirements for SAP UI5 1.36

$
0
0

Hello experts,

               

I have been developing an application using SAP Fiori  Work list template  in SAP UI5 1.36 as it is Recommended version. Application is deployed well and everything is defined well and configured in Launchpad, but am getting  an error message saying Could not start the App due to a configuration problem. i have checked if there are any configuration issues but everything is configured well. i doubt that i am missing some Add-ons that are to be installed or SAP Net weaver Version has to upgraded to 7.5. Could someone help me out on this issue. Below is the screenshot of my System Status.

 

 

scr.png

 

 

 

Thanks

UX for Optimal User Performance – Accessibility & Fiori

$
0
0

Image courtesy of stockimages at freedigitalphotos.net


While user research and role-based design are essential to a good user experience, accessibility gives us a range of simple and effective ways we can lift user experience from good to great.

ID-100215477.jpg

 

To help our people reach their personal productive best we need to think like an Olympic coach training elite athletes.  We seek out ways to fine tune both body and mind for best performance.

 

Accessibility shows us how to augment performance and reduces barriers for all users - enabling them to “Go for Gold”.

 

A few days ago on a solution review of a large Australian banking customer’s Fiori implementation I was interested and encouraged to hear our sponsor say…

“We want this review to make sure [our Fiori apps and Fiori Launchpad dashboards] are tuned to maximize user performance, not just system performance”

 

Another local customer in the mining industry expressed their goal for user experience as

“bringing out the best that is already in our people”

 

These are enlightened viewpoints that go to the heart of great enterprise user experience – hitting the sweet spot between:

  • Viability– what works for the business
  • Feasibility– what works for IT
  • Desirability– what works for real users

 

Getting those right at least gets our team an entry into the productivity race.  Getting those right ensures users, business, and IT are all focussed on the same goal.

 

Getting a medal takes more. We need to remove barriers that can get in the way of user performance. This is exactly where accessibility augments user experience design and development.

 

Let's look at 3 examples of how accessibility helps us remove barriers that get in people’s way. Making a better and more productive user experience for everyone.

 

Don't Make Me Think

READABILITY: Make the phrases, statements, and questions in your apps and dashboards easy to understand.   Accessibility explains that reading complex text requires additional mental processing effort.

 

“Text that uses short, common words and short sentences is easier to decode and usually requires less advanced reading ability than text that uses long sentences and long or unfamiliar words.”  WCAG 2.0 Success Criteria 3.1.5 Reading Level

 

Improving readability leads to:

  • Faster comprehension
  • Quicker reaction time
  • Greater accuracy
  • Fewer errors

 

Readability tests, such as Flesch-Kincaid, commonly used in accessibility today were commissioned by the U.S. Military to improve the readability of technical manuals.


Here are a couple of questions I have seen recently in productive apps on actual SAP customer sites:


1. “Are any of the children you're claiming for under the age of 18, (or a child of an adult child maintenance court order) and unmarried, and not living in a de facto relationship?”

 

2. “Is the new business that’s been trading less than 12 months?”

 

Question 1 was created by a business expert with deep knowledge of the business process.  They want to reduce the number of questions so they came up with this complicated multi-part question.  This measures are Flesch-Kincaid grade level 12.7 – 12th Grade (Senior year high school – 17-18 years old) and Gunning-Fog index 15.3, i.e. College Junior level.

 

And it’s the first question on the form!  I'm guessing quite a few people give up at this point and ring the support desk contact number instead. If the aim was to engage more people to use online services instead of calling the support desk, a bad question like this could kill the goal.

 

Question 2 was created by someone who had English as their second language.  While automated readability scores are low (Flesh-Kincaid grade level 1.3, Gunning-Fog 4) the strange and awkward grammar of the sentence makes it difficult to comprehend quickly.

 

Both of these are easily fixed.  Question 1 could be fixed by decomposing a complex question into a series of simpler questions. Question 2 could be resolved with a simple grammar check or review by a native English Language speaker.

 

Accessibility guidelines such as WCAG 2.0 Success Criteria 3.1.5 Reading Level suggest aiming readability at lower secondary school education level.  Given that less than 1/3 of Americans reach university level, this seems reasonable.

 

Make sure your apps use simple language. Using simple to understand language makes it easy for your users to understand more quickly and react faster.  Even if all of your users are university educated, don’t make them feel that using your app is like taking a university exam.... or reading mis-translated assembly instructions from IKEA.

 

Don't Make Me Remember

VISIBILITY: Make sure everything on your app or dashboard is easy to see regardless of eyesight or lighting conditions. What users cannot see clearly they have to learn and remember – that adds to cognitive load and increases error rates.


“A contrast ratio of 3:1 is the minimum level recommended by [ISO-9241-3] and [ANSI-HFES-100-1988] for standard text and vision. The 4.5:1 ratio is used in this provision to account for the loss in contrast that results from moderately low visual acuity, congenital or acquired color deficiencies, or the loss of contrast sensitivity that typically accompanies aging.”

Understanding WCAG 2.0 Success Criterion 1.4.3 Contrast (Minimum)

Providing good contrast enables people to:

  • Rapidly read and scan content
  • Be confident they have entered values and selected options correctly
  • Work faster by using recognition rather than recall to process tasks
  • Learn new tasks more quickly


Approximately 75% of Americans admit to wearing corrective lenses such as spectacles or contact lenses. Just like knee replacements and hip replacements, while corrective lens are a big help they aren't quite as good as the real thing.


Don't let your corporate theme slow your users down. Too often I have seen inappropriately applied corporate themes badly compromise the visibility in screens.  Be especially careful if your theme largely consists of:

  • Highlight colours - such as yellow
  • Christmas colours - red/green combinations

 

8% of males and 0.5% females have red/green colour blindness which makes it difficult for them to tell those colours apart even if they have 20/20 vision in every other respect.

 

Here's an extreme example.  That white text on yellow has a very poor contrast ratio of only that tests at Contrast Ratio 1.51:1.

Poor contrast.JPG

 

This is almost always a misunderstanding of how to apply the theme. After all your corporate theme wouldn't be much good if consumers couldn't read your web site or use their apps.

 

Here's the same corporate theme applied very differently to an element on the same company's consumer web apps.  Swapping to black text on yellow has a far better contrast ratio of 13.89:1.

Good contrast.JPG

 

Colour contrast is easy to check. Accessibility has brought us many tools to check contrast ratios such as this popular Colour Contrast Analyser

You'll find more in my previous blog Testing Fast and Slow - Accessibility & Fiori

 

Make sure your apps and dashboards are easy to see. Good colour contrast makes it easy for your users to act confidently and learn faster.   With the retirement age increasing in many countries, don't let poor colour choices exclude you from taking advantage of years of gathered wisdom and experience. 


Don't Slow Me Down

KEYBOARD EFFICIENCY: Providing for keyboard only navigation enables power users to act at maximum efficiency.

"All functionality of the content is operable through a keyboard interface"

WCAG 2.0 AA Success Criterion 2.1 Keyboard

 

Keyboards enable expert users to:

  • Move through desktop apps with maximum efficiency

 

With the increasing number of devices has come an increase in the number of ways we can operate those devices, with the current top winners being keyboard, mouse, and touch... although voice recognition is another growing area thanks to Siri.

 

Advantages/disadvantages and the comparative performance efficiency of each have been hotly contested and the subject of more than one study.  For now, the desktop device remains the primary context of the expert user, and on desktop at least keyboard wins out over mouse for practiced users.

Comparison of Mouse and Keyboard Efficiency

Effects of Item Grouping on Selection Efficiency

 

Or as one UX designer puts it...

Expert users are reluctant to use the mouse for repetitive and frequent tasks. It is simply too slow (and not very good for the hands). They will rather learn a set of shortcuts and keyboard commands – even though these can be complex and hard to memorize.

Designing for Expert Users

 

With the increase in Internet of Things one of the side benefits of providing keyboard navigation is that it permits a wide variety of devices to access your app by emulating the keyboard via the operating system's accessibility API. There are a small but dedicated number of us who have for instance been testing Fiori with Amazon Echo, Dragon Naturally Speaking, and eye tracking software to name just a few.

 

For Fiori apps and dashboards, the SAPUI5 framework gives you keyboard navigation by default.  All you have to do to take advantage of this is to:


a) Make sure you don't block the built-in features

b) Let your users know the keyboard shortcuts


You can find more information on both of those in my blog Keyboard Navigation enables the cool toys - Accessibility & Fiori

 

Support your power users by making sure they are aware of keyboard navigation options.

 

Final Thoughts

Accessibility show us how to make user interfaces that proactively support the better productivity from the widest possible range of users and abilities. I’ve covered just a few examples of ways in which accessibility helps but there are many more such as error handling, working with Audio/Video, efficiently designing to support all sorts of software and devices.

 

Certainly accessibility lifts those who have specific challenges to overcome – so they can join the race and stay the distance.

The same techniques and guidelines help lift the productivity of all users by removing unintentional barriers that are too often overlooked in even the best user experience designs.....

 

So that the potential medal winners are given their best chance to "Go for Gold".

 

Coming to ASUG 2016? Find out more at:

Building a Better User Experience (UX) for Everyone: Learnings About SAP Fiori and Accessibility

SAP Fiori - Accessibility

$
0
0
Category: SAP UX

This is a collaborative document to share knowledge and lessons learned re Accessibility in the community SAP Fiori.

 

By Fiori we mean: relating to Fiori design and development, SAPUI5 and OPENUI5 apps.

By Accessibility we mean relating to features that support:

  • People with permanent disabilities
  • People with temporary disabilities
  • People as they age
  • People with environmental disabilities - i.e. by choice or context choose to access technology as if disabled, such as working without hands when driving a car, using a smartphone with only one hand, etc.
  • Assistive devices and software - such as Screen Readers, Screen Magnifiers, Eye Tracking Navigation, Text-to-Speech, Speech-to-Text, Speech Recognition, Gesture Recognition, etc.

 

Assistive devices and software:

  • may be used by or designed for anyone, e.g. Siri in Apple iPhones, Dragon Naturally Speaking for Speech Recognition
  • are often essential for people with certain specific disabilities, e.g. JAWS Screen Readers for the vision impaired

 

This document is part of the SAP Fiori community. You can also search for information and open a discussion in the Fiori forum if you can't find required information.

 

Please feel free to insert the link of your document or blog by selecting the edit button from Actions.


We include relevant blogs from experience.sap.com posted 2015 or later, as the majority of accessibility features haves been included in SAPUI5 from 2015 onwards. Relevant blogs from the OPENUI5 or SAPUI5 communities are also welcome.

 

Please don't forget to use the tags fiori and accessibility when you: search, publish blogs, open discussions.

 

Search:Google, Discussions, Documents, BlogsCreate:Discussion, Document, Blog

Advanced

  • Please share your documents and blogs.

Formal Accessibility Guidelines

Other Resources

Brought to you by the SAP Technology RIG

Problem to configure KPI

$
0
0

Hi all,

 

I try to configure KPI on the launchpad and I try to add a tiles.

When I select my KPI and click on "Add Tiles", a new page is displayed but in console debug I can see the following error :

 

{ "error": { "code": "", "message": { "lang": "en-US", "value": "Service exception: [258] insufficient privilege"}}}

 

Another information :

Request URL:

https://cod-wd2-lin:8188/sap/hba/r/sb/core/odata/modeler/SMART_BUSINESS.xsodata;

GET EVALUATIONS(ID='ZRBD_E.1461165108852',IS_ACTIVE=1)/TAGS HTTP/1.1

 

 

Of course, I have SMART_BUSINESS_MODELER & SMART_BUSINESS_RUNTIME role.

 

Have you got a tips ?

 

 

Thx.

OData Service via MDX for BEx Query - Hierarchy Support?

$
0
0

Hi,

 

I have created/defined an OData Service by using the following tutorial:

Transform SAP BW Queries into OData Service: Part 1 - Generation and Activation

MDX 2.0 is used.

I am able to view the XML results from the service:

/sap/opu/odata/WSV/CAS_BEX_QUERY_TEST3_DG_SRV/

/sap/opu/odata/WSV/CAS_BEX_QUERY_TEST3_DG_SRV/$metadata

 

But now I have a difficulty finding out whether Hierarchies which are activated in the BEx Query are available through the generated OData Service automatically or not, if not what needs to be done, so that the Hierarchy data is also available through the OData Service?

Final Goal: displaying data from a BEx Query Hierarchy in a UI5 app with Table - Breadcrumb component.

 

We have NW 7.3 not NW 7.4 yet, so we cannot use the option in BEx Query Designer "Extended > Release for External Access > By OData" which I heard (not tested myself) that supports Hierarchies, 1941751 - ODataQuery - Features and Limitations for SP06.

 

If we want to build a UI5 App (Reporting/Viewing data) where our BW Hierarchies can be accessed and we already have BEx Queries, but the System with BEx Queries is on NW 7.3, what are the possible options to build an OData Service which would deliver the Hierarchical data?

 

I have found the following SAP Note: 1574568 - SAP NetWeaver Gateway 2.0 - Known Constraints

Under: 22. (SP4 onwards) BW integration via MDX it states: Hierarchy is not supported

 

Can somebody confirm from own experience, whether I understand it correctly: if we created an OData Service based on MDX <> BEx Query, then we do not have access to the Hierarchies?

 

What options exist if we need access to the BW Hierarchies (Multiprovider, InfoProviders Cubes, BEx Queries, Hierarchies with Hierarchy Node Analysis Authorizations is what we are dealing with)?

 

Thank you for your insights!

 

Best regards

David


SAPUI5 application with offline support on desktop and mobile

$
0
0

Hi Team,

I am working on a project where requirements is to run the SAPUI5 application on Mobile/tablet as well as on desktop that too through SMP 3.0

 

I have SMP3.0 with latest patch SP10 installed on my server

 

I understand if I use the Kapsel development approach I can convert the SAPUI5 in to hybrid app which later can be install on the respective device as a ipa or apk.

 

But to run on desktop what I need to do? I do have some requirements of offline feature that can achieve through SMP. please suggest.

 

 

Kind Regards,

Amey

Development Guidelines for SAP Fiori analytical Apps

$
0
0

Hello,

 

is there any document about Development Guidelines specific to SAP Fiori analytical Apps?

 

Thanks!

 

Regards,

Watle

SAP Fiori - Extensibility

$
0
0
Category: Extend/Develop

This is a collaborative document to share lessons learned contents for Extending Fiori Apps in the community SAP Fiori.

 

Please feel free to insert the link of your document or blog by selecting the edit button from Actions.  You can also search information and open a discussion if you can't find required information. Please don't forget to put the tag fiori.

Search:Google, Discussions, Documents, BlogsCreate:Discussion, Document, Blog

You can extend SAP Standard apps without modification. This helps TCO and software life cycle maintenance cost.

extensibility.png

New and Updated:

Extensibility:

 

 

 

Jerry's Extensibility Docs:

Jerry Wang has shared many extensibility examples. We can learn a lot of things from Jerry's documents.

Jerry's blogs regarding Smart Template

 

You can use smart templates to create SAP Fiori applications based on OData services and annotations requiring no JavaScript UI coding. An application based on smart templates uses predefined template views and controllers that are provided centrally, so no application-specific view instances are required. The SAPUI5 runtime interprets metadata and annotations of the underlying OData service and uses the corresponding views for the SAP Fiori app at startup.

 

For example, so far ( 2016 April ) there is no standard Fiori application delivered for Service professional role in CRM area by SAP. With the help of Smart Template, it is easy for you to build a Fiori application which can manipulate Service Order create, update, read and search without JavaScript coding in frontend. The only necessary knowledge to achieve this is: ABAP + WebIDE + CDS view + a little knowledge about Smart template.

 

Here below are blogs from Jerry about how to build a service order application using Smart Template.

Meanwhile SAP has already delivered several reference application built by Smart Template to prove its power. You can play with those reference application from this link.

 

As mentioned previously, most of the development task working under Smart Template is now in CDS view. As a beginner who knows nothing about CDS view before, Jerry has written a series of CDS self study tutorials consisting of 8 parts, trying to introduce some logic occurring under the hood to gain a better understanding about this technology. This tutorial also contains debugging tips which are useful for trouble shooting. You can find the first part of this tutorial from here.

 

Fiori standard Control and Custom Control

If the default controls could not fulfill your requirement, it is possible to create custom control on your own. Please refer to How to create custom control from scratch from Angel Puertas for detail.

 

But before that, do you really understand how a simple control like button is designed and implemented in Fiori? Here is a tutorial using the most simple control, Button, as example to give you a 360 degree view on Fiori control.

It helps you to build better Fiori application if you knows those control essentials.

My Inbox Extensibility:

Extending OData:

Extending Fact Sheets, Analytical Apps:

Archive:

 

Brought to you by the SAP Technology RIG

Paystub App error onExit() method

$
0
0

Hi

 

I am getting an error in the paystub application after clicking the back button.

The error seems to be in the onExit() method in the standard app. It is trying to download the file from : ConcurrentEmployment.js

 

I have check the code in chrome web dev tools -> source

 

onExit : function() {

  //exit cleanup code here

  if(this._tempVersion){

  sap.ui.Device.os.version = this._tempVersion;

  }

  try {

  jQuery.sap.require("hcm.mytimesheet.utils.ConcurrentEmployment");

  var oController = hcm.mypaystubs.utils.ConcurrentEmployment.getControllerInstance();

  oController.oCEDialog.Cancelled = true;

  oController.oCEDialog.close();

  oController.oApplication.pernr = "";

  } catch (e) {

  jQuery.sap.log.error("couldn't execute onExit", ["onExit failed in main controller"], ["hcm.mypaystubs.Main"]);

  }

  }

 

why the app needs mytimesheet? I have mytimesheet app also added in the fiori catalog. But because of this issue the app is not working.

"Error - found in negative cache" for Component.js

$
0
0

Hi Experts,

 

I've created my own sandbox in Eclipse to test and extend Standard Fiori apps.

 

I've downloaden and uploaded a standard Fiori app (CRM_MYCONT) to my Eclipse workspace.

 

After that, I did the appconfig, the configuration of the proxy and the installation of the tomcatserver.

 

This all works fine.

 

So when I go to:

 

http://localhost:8080/CRM_MYCONT/test-resources/sap/ushell/shells/sandbox/fioriSandbox.html

 

I can see my Fiori luanchpad, with the CRM_MYCONT app:

 

Clipboard01.jpg

 

When I click on the tile, I get the message that the app doesn't work:

 

Clipboard01.jpg

 

In the javaconsole:

 

Failed to load resource: the server responded with a status of 404 (Not Found)

http://localhost:8080/CRM_MYCONT/resources/sap-ui-core.js Failed to load resource: the server responded with a status of 404 (Not Found)send @ sap-ui-core.js:27

sap-ui-core.js:80 2016-04-18 11:45:11 registerResourcePath ('cus/crm/mycontacts', '/CRM_MYCONT/') -  sap.ui.ModuleSystem

2http://localhost:8080/CRM_MYCONT/resources/sap-ui-core.js Failed to load resource: the server responded with a status of 404 (Not Found)send @ sap-ui-core.js:27

sap-ui-core.js:80 2016-04-18 11:45:11 registerResourcePath ('cus/crm/mycontacts', '/CRM_MYCONT/') -  sap.ui.ModuleSystem

sap-ui-core.js:80 2016-04-18 11:45:11 Application initialization failed due to an Exception:

Error: found in negative cache: 'cus/crm/mycontacts/Component.js' from /CRM_MYCONT/Component.js: 404 - Not Found

    at a1 (http://localhost:8080/CRM_MYCONT/resources/sap-ui-core.js:80:15688)

    at Object.jQuery.sap.require (http://localhost:8080/CRM_MYCONT/resources/sap-ui-core.js:80:19389)

    at g (http://localhost:8080/CRM_MYCONT/resources/sap-ui-core.js:144:57068)

    at Function.sap.ui.component.load (http://localhost:8080/CRM_MYCONT/resources/sap-ui-core.js:144:57886)

    at Object.sap.ui.component (http://localhost:8080/CRM_MYCONT/resources/sap-ui-core.js:144:56721)

    at j (http://localhost:8080/CRM_MYCONT/resources/sap/ushell/components/container/ApplicationContainer.js:2:3214)

    at u (http://localhost:8080/CRM_MYCONT/resources/sap/ushell/components/container/ApplicationContainer.js:2:8411)

    at w (http://localhost:8080/CRM_MYCONT/resources/sap/ushell/components/container/ApplicationContainer.js:2:8815)

    at Object.sap.ui.core.Control.extend.renderer [as render] (http://localhost:8080/CRM_MYCONT/resources/sap/ushell/components/container/ApplicationContainer.js:2:12081)

    at R.renderControl (http://localhost:8080/CRM_MYCONT/resources/sap-ui-core.js:144:140482) -  z @ sap-ui-core.js:80

sap-ui-core.js:80 2016-04-18 11:45:11 Error - found in negative cache: 'cus/crm/mycontacts/Component.js' from /CRM_MYCONT/Component.js: 404 - Not Found z @ sap-ui-core.js:80

sap-ui-core.js:80 2016-04-18 11:45:11 App kon niet worden geopend; probeer het later opnieuw -  z @ sap-ui-core.js:80

Layout.js:1 Uncaught TypeError: Cannot read property 'appendChild' of null

 

It looks like the Component.js can not be found.

 

But:

 

Clipboard01.jpg

 

it's there...

 

What can be the problem?

 

KR,

 

Andy

How to build drop down list based on fixed value defined in a domain

$
0
0

Several days ago I wrote a blog How to build a drop down list using Smart template + CDS view which introduces how to create a drop down list based on values from a backend table.


clipboard1.png

For example, the status list in above screenshot comes from the three entries in database table ZSTATUS_FIXEDVAL.


clipboard2.png

And now a new requirement is to use the fixed value defined in an ABAP domain instead.

clipboard3.png

Here below are steps to achieve it.

 

 

1. Create an ABAP domain named ZORDER_STATUS_DOMAIN containing status list as displayed in previous screenshot.

Then create an ABAP data element based on this domain.

 

Create one header database table as root,

clipboard4.png

and another database table as item.

 

2. create two CDS views based on the two database tables accordingly:

 

@AbapCatalog.sqlViewName: 'zorheader'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'header view'
define view Z_I_Order_Header as select from zorder_header
association [0..*] to Z_I_Order_Item as _Item
on $projection.object_id = _Item.parent_id
{  key zorder_header.object_id,  zorder_header.description,  zorder_header.order_status,  zorder_header.order_status_text,  @ObjectModel.association.type: #TO_COMPOSITION_CHILD  _Item
}
@AbapCatalog.sqlViewName: 'zorITem'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'order item detail'
define view Z_I_Order_Item as select from zorder_item {  @UI.lineItem : [{position:10, label : 'Parent ID'}]  key zorder_item.parent_id,  @UI.lineItem : [{position:20, label : 'Item Number'}]  key zorder_item.item_id,  @UI.lineItem : [{position:30, label : 'Item Description'}]  zorder_item.item_text,  zorder_item.item_type
}

Then the consumption CDS view:

 

@AbapCatalog.sqlViewName: 'zjorderview'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Jerry order consumption view'
@Search.searchable: true
@OData.publish: false
@ObjectModel: {   compositionRoot: true,   type: #CONSUMPTION,   transactionalProcessingDelegated: true,   createEnabled,   deleteEnabled,   updateEnabled
}
@UI.headerInfo:{  typeName:       'Jerry Service Order',  typeNamePlural: 'Jerry Service Orders',  title: { value: 'object_id' },  description: { value: 'description' }
}
define view Z_C_Order as select from Z_I_Order_Header {  @UI.lineItem : [{position:10, label : 'Service Order ID'}]  @UI.identification: [ { position: 10,  label : 'Service Order ID' } ]  @Search:{ defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }  @UI.selectionField: [ { position: 20, label : 'Service Order ID' } ]  key Z_I_Order_Header.object_id,  @UI.lineItem : [{position:20, label : 'Service Order Description'}]  @UI.identification: [ { position: 20,  label : 'Service Order Description' } ]  @Search:{ defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }  @UI.selectionField: [ { position: 10, label : 'Description' } ]  Z_I_Order_Header.description,  @UI.identification: [ { position: 30,  label : 'Order Status' } ]  Z_I_Order_Header.order_status,  Z_I_Order_Header.order_status_text,  @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]  Z_I_Order_Header._Item
}

Now all are done except remaining work in ABAP side.

 

3. Create a new project via tcode SEGW and include the activated consumption CDS view created in step2. If you don't know how to do it, refer to this blog Enable CRM Service Order application with edit functionality.


Generate runtime artifacts. Now both DPC and MPC classes are generated.


3.1 Redefine DEFINE method of your MPC_EXT class:


    

super->define( ).    zcl_fis_shlp_annotation=>create(      io_odata_model = model      io_vocan_model = vocab_anno_model      iv_namespace = 'sap'      iv_entitytype = 'Z_C_OrderType'      iv_property = 'order_status'      iv_search_help = space      iv_search_supported = abap_false      iv_search_help_field = space      iv_valuelist_entityset = 'OrderStatusEntitySet'      iv_valuelist_property = 'Code' ##NO_TEXT      )->add_display_parameter( iv_valuelist_property  = 'Text' ).    data(lo_txt_property) = model->get_entity_type( 'Z_C_OrderType' )->get_property( 'order_status' ).    lo_txt_property->set_value_list( /iwbep/if_mgw_odata_property=>gcs_value_list_type_property-fixed_values ).    data(lo_text_anno) = lo_txt_property->/iwbep/if_mgw_odata_annotatabl~create_annotation( 'sap' ).    lo_text_anno->add( iv_key = 'text' iv_value = 'order_status_text').    lo_txt_property = model->get_entity_type( 'OrderStatus' )->get_property( 'Code' ).    lo_txt_property->set_value_list( /iwbep/if_mgw_odata_property=>gcs_value_list_type_property-fixed_values ).    lo_text_anno = lo_txt_property->/iwbep/if_mgw_odata_annotatabl~create_annotation( 'sap' ).    lo_text_anno->add( iv_key = 'text' iv_value = 'Text').


The code above will generate the highlighted annotations which could be found in metadata:

clipboard5.png

3.2 Since in 3.1, the entity set OrderStatusEntitySet and entity type OrderStatus do not exist in SEGW project yet, so now we have to create them manually.


Just create them from context menu by clicking Entity Types and Entity Sets in SEGW:

clipboard6.png

Create properties for entity type:

clipboard7.png

And assign entity type to newly created entity set. After that regenerate runtime artifacts.

clipboard8.png

3.3 Since now framework knows it should display the value of order_status_text to render the drop down list, so we are responsible to provide framework with correct content.


Redefine method /IWBEP/IF_MGW_APPL_SRV_RUNTIME~GET_ENTITYSET of your DPC_EXT:


 

 METHOD /iwbep/if_mgw_appl_srv_runtime~get_entityset.    CASE iv_entity_name.      WHEN 'OrderStatus'.        get_Status_list( IMPORTING er_entityset = er_entityset ).      WHEN OTHERS.        TRY.            CALL METHOD super->/iwbep/if_mgw_appl_srv_runtime~get_entityset              EXPORTING                iv_entity_name           = iv_entity_name                iv_entity_set_name       = iv_entity_set_name                iv_source_name           = iv_source_name                it_filter_select_options = it_filter_select_options                it_order                 = it_order                is_paging                = is_paging                it_navigation_path       = it_navigation_path                it_key_tab               = it_key_tab                iv_filter_string         = iv_filter_string                iv_search_string         = iv_search_string                io_tech_request_context  = io_tech_request_context              IMPORTING                er_entityset             = er_entityset                es_response_context      = es_response_context.          CATCH /iwbep/cx_mgw_busi_exception .          CATCH /iwbep/cx_mgw_tech_exception .        ENDTRY.        IF iv_entity_name = 'Z_C_OrderType'.          fill_status_text( CHANGING cr_entityset = er_entityset ).        ENDIF.    ENDCASE.  ENDMETHOD.


The method fill_status_text is responsible for filling the field order_status_text.


All the source code of ABAP classes could be found from this link: https://github.com/i042416/jerryslide/tree/master/cds/valueListDomain

 

Note: if you comment out the line 40 and 46,

clipboard9.png

The annotation for order_status_text will become "standard", instead of previous "fixed-values".

clipboard10.png

In this case, this field will be rendered as F4 value help instead:

clipboard11.png

clipboard12.png

Using Git in HCP for your Fiori developments

$
0
0

What is Git and why do I need it?

In short, the Fiori User Interface (UI5) code does not have the equivalent of version management like ABAP does. Sure, when you deploy your UI5 code to your Gateway/Fiori server, a copy of the executable files are stored; but the whole workspace is not.


That’s where Git repositories come in.  In fact, most of the software industry seems to use Git repositories now days; so it’s not too scary; and unlike ABAP; it supports multiple versions, concurrent development, merging; and a whole bunch of other cool stuff.

So anyway, why do you need it? Well you just do okay – trust me

 

Git Repositories and HCP

Now that we have a way of getting into HCP without pulling out the corporate credit card; we can start to leverage WebIDE and the features of HCP.  One of these features is the Git repositories.

 

Previously I had been using github.com which works perfectly (if you have access to it); and having your own on-premise git repository would work fine also. But until today, I had not tried to use the HCP Git, but it’s surprisingly easy.

 

Creating an Extension project with an HCP Git Repository

So within the HCP Cockpit, you’ll need someone with administrator access to create an appropriate named git repository for your extension.

Navigate to Git Repositories and select New Repository:

1.png

Name the repository and keep the “create empty commit” checked and press OK!

2.png

Go into the repository and then select Web IDE to open Web IDE and automatically kick off the clone repository process (which simply creates a project folder linked to this Git Repository).  Note – You’ll need to enter your S-User (or similar) Id and Password.

 

Commit and Push when you receive this pop-up.

3.png

Note – If you do the above too quickly, you can sometimes hit an issue that the repository is not fully set-up (I think!).

 

Let’s now create the extension project into this Project Folder:

Select File->New->Extension Project

4.png

Now select the Fiori app to extend, and very carefully type in your new project folder as the name of the extension project:

5.png

Press Next, uncheck the extension pane checkbox and Finish.

 

If you select the Git pane on the right hand side; you can select Stage all check box; enter a comment and press Commit and Push (to origin/master).

6.png

Other users can then access the git repository through the Web IDE link from the cockpit; and you can start branching off, merging, pulling, fetching, rebasing and all the other cool terms that I always defer to Nigel James to explain to me…

 

Bonus Item #1 – Github Desktop with HCP Git Repository

Oddly enough, if you use Github desktop (I do because I find the diff tool when set-up correctly very powerful for merging branches) doesn’t support cloning the repository directly.  That said, all you need to do is go to the command line, type git clone <repository link from the HCP Cockpit>, entering your username/password to get a local copy of the repository; then from within Github desktop, you can add the repository using the add local repository option (then it’s just the same as if you cloned it from Github.com at that point.

 

Bonus Item #2 – Getting mockdata working with My Inbox

For a few reasons, it’s not immediately obvious how to get the mock data provided by My Inbox to work.  But if you want to get it working (which is very handy); do the following:

• Create a folder under localService called mockdata

• Cut and Paste all the JSON files under localService into mockdata

• Under project settings, change the mock data to match the following screenshot:

7.png

• Create a run configuration with “Run with mock data” set, ensuring that allItems = true within the URL Components

• Save and Run!

 

Result with mock data (unfortunately without the Fiori Launchpad which has the subscription functionality:

8.png


RFC error in My Timesheet App

$
0
0

Hi All,


I got this error message when I click on create button via FIORI MY Timesheet V2.


RFC Error: Function module "HCM_TIMESHEET_GET_DEFAULT_DEP" not found.

 

Please help me, What steps should I take to resolve this issue?


Thanks&Regards,

Satya.

Save variant for view setting dialogue filters

$
0
0

Hi,

 

We have a custom fiori app running on our launchpad, inside the app we have a master-detail page. In the master list at the footer we have different options of user to customize the master data by sort,filter and group using the view settings dialogue control.

 

Now we are looking for is using variant to filter master list. How can we achieve variant management in view settings dialogue control ?? is there are work around for this?

 

Regards,

Sivaganesh

Extended fiori application after deploying back end throwing 404 Error

$
0
0

Hi experts,

 

In webide developed an extension project . its working in webide . when  we deployed to SAP ABAP REPOSITORY AND tested in SICF  we are facing an error .

 

please check the attached document.

 

Thanks.

sangamesh

how to configure sap my inbox for central gateway

$
0
0

hi all

 

I search on scn for configuration of sap my inbox, but unable to find basic configuration guide for central gateway system.

 

we have install UIX01CA1 on gateway, need configuration guide

S/4HANA on-premise: Purchase Requisition app links to Material app.. which doesn't exist on S/4

$
0
0

I've got the "Manage Purchase Requisitions" apps working in S/4HANA on-premise:

1.png

 

There appears to be a link on the Item Description "Ale for Party (1)", so curiosity causes me to select this:

2.png

Within a split second this error pops-up and closes, and I'm landed back to where I was.

 

When I check the console in the Chrome Developer Tools, to find out what app tried to load, I find the following:

3.png

So I can see here the target that was atempting to load was "Material-displayFactSheet?Material=1" so I try to call this URL directly, and get an error.

 

So I look for a "Material" app in the Fiori Apps Library, and find this, as the only likely contender.. but this is not for S/4HANA on premise, and when I check SICF for the ICF node for this UI5 app I find, as expected, it doesn't exist.

 

I looked through all the S/4HANA apps with the word "material" in the tile for the matching Semantic Object = Material and Action = displayFactSheet, but none exists...

 

Is there a way what a user can view this information? or is the hyperlink a mistake? Myabe the intention is what we manually create a new target to point to a Business Client 6.0 screen, or a WebGui screen, rather than a Fiori app, but it seems somewhat unfair to give a link with no mapping to a target.

 

Am I missing something?

 

Thank you

Viewing all 1807 articles
Browse latest View live


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