cancel
Showing results for 
Search instead for 
Did you mean: 

Generate ODATA in SAP Portal

0 Kudos

Hi all

with the general adopiton of fiori, ui5 and odata models im wondering how to achive that: provide odata services from the sap portal.

is there any guide? any advice? any clue?

Thanks

Accepted Solutions (1)

Accepted Solutions (1)

daniel_ruiz2
Active Contributor
0 Kudos

hi Julio,

SAP Portal is still on the picture in many customers I visit.. SAP is doing a big push into ABAP related stack and have been neglecting the Java stack.. so in a large enough time-frame, my assumption is that you will either run Java in TomEE (HCP) or you will end up in a total SAP vendor lock-in using ABAP & HANA.

About your question, SAP Portal requires a J2EE AS behind, and you often have one to use for your developments. Considering how SAP really uses J2EE, this means little.. but then again, you're not limited to run "SAP related" in the AS.

The very first question you should ask yourself is, why on earth you would choose OData over JAX-RS2? - I understand SAP push because they are developing a lot of stuff to be extended and customized, so it's good to have some standards in place (make easier to understand) - but on the other hand, OData also brings you limitations on how to solve your issues.. this is the first step, analyse if you need OData because if you don't, Jersey will always out-perform OData (olingo) and provide you more flexibility.

Considering how you want to do this, exposing an application from the Portal is no different than exposing any other application for what it matters. You could code all your "service" into an enterprise application and deploy it - Case you need to access the ABAP layer from Java, the options are sort of limited: pretty much ARFC using a CAF/ejb or perhaps you can use SREST in ABAP.. but then again, that could defeat a little the purpose of having the service in the Java layer.

As of Fiori and UI5, there are many options - there's really nothing to setup other than usual, you import the UI5 SDA's into your track and use them - they pretty much expose a centralized "resource" system for UI5, you don't even need to use it - you can pretty much develop the application on Sublime, VIM, Eclipse, WebIDE.. whatever, just make sure you work on your "DC" workspace (this is a web-archive DC) so you can easily generate builds to bundle and deploy into the J2EE.


Also, even with very little attention from SAP the J2EE+JAXRS+CAF+RFC has always been faster than ABAP+ODATA/GW on jMeters (total load) and response time (go figure, OData in GW is bloatware as far I'm concerned) - however, it seems that in the "SAP space" Java developers are rare in comparison to ABAP developers, so most companies choose for what Christopher said: - you follow what SAP tells you, you don't question performance and you throw more and more bucks on license every time they decide to "launch something new" that you can easily solve using Java and Open Source.


Hope it helps,
Dan.

0 Kudos

Thank you. A very usefull response.

I suppose REST - Jasper is an option but it seems that the newest and coolest features of UI5 need an odata model.

daniel_ruiz2
Active Contributor
0 Kudos

hi Julio,

then use "rest" and nothing else, there is no issue with "features" of UI5 that only works on OData.. of course, you will need some sort of "pagination" control of your records because the List controls in UI5 cripple any device.

Cheers,

Dan.

ChrisSolomon
Active Contributor
0 Kudos

"because the List controls in UI5 cripple any device".....Daniel....curious as to what you mean and metrics on this....any help/info?

daniel_ruiz2
Active Contributor
0 Kudos

hi Christopher.

Create a list of 200 elements and swipe up or down (good push) - it has to maintain at least a good 50 frames. Other frameworks / libraries are able to a) create everything quicker than UI5 and b) maintain a stable frame rate even on phones.

I mean, you can easily notice jank even on desktop, including my own desktop and its a beast.. and as far I can tell UI5 cannot even handle a constant 15 frames.

Can you create a list component in UI5 which maintains a good frame rate on iPads?

Cheers,

Dan.

ChrisSolomon
Active Contributor
0 Kudos

So what is your preference then? Have you been able to pinpoint in the UI5 libs where the failure is or can be better optimized?

daniel_ruiz2
Active Contributor
0 Kudos

hi Christopher,

There are so many aspects of UI5 that are incorrect (in my opinion) that each day I read more I get something new to blame. My preference is usually something that provides me performance, meaning React, Polymer, Angular & Knockout - I've used with success and I always had decent results, being the worst part the ripple effect, but even thou, it would be around 30-40 frames... but again, there's are lot others I haven't worked (or used) yet.

About where it can be optimized, well - you open up any code you want and I'm sure you will be able to optimize - the problem is, a lot of touching in dom for no good reason (how the RenderManager works, other frameworks have virtual dom and can calculate diffs a lot faster and smarter), the CSS is over complicated for what it should be and really, the code is not "mobile first" as it's claimed because if it were the performance would be a lot better in general.

Other frameworks & libraries also implement virtual lists for "big lists" because it keeps the number of elements in the dom always small enough not to cause performance impact.. by now you should know it's basically impossible to bind a big item list in a mobile device using UI5, it crashes straight away because the dom is too big, and try to manipulate that.

I'm actually quite curious now, which other libraries have you used that are "inferior" to SAPUI5?


Cheers,

Dan.

0 Kudos

I agree with you. If Sap really wants to fight with others js/html5 frameworks really needs to rethink DOM and databinding.

ChrisSolomon
Active Contributor
0 Kudos

@Daniel.....I was not trying to imply that any are inferior to SAPUI5. I regularly read your posts and can tell you are quite experience in web dev, so I was more asking for what you like these days. Also, I was asking what you feel are the performance issues and areas for optimization with UI5 because I think your feedback to the UI5 team could help greatly....as it is open source, why not help become a contributor to the lib and make it great? I think you have the talent/skill to really do it if you wanted to.

daniel_ruiz2
Active Contributor
0 Kudos

hi Christopher,

I think it makes more sense to re-use web frameworks instead of SAP even trying to develop one. About UI5 and feedback, I don't think SAP wants feedback on their library - it's closed source in that aspect, meaning outside contributors have no say where it's headed - they accept "bug fixing" but the process seems rather "painful" and you can read the FAQ and the gh-page related to "Contributing" to OpenUI5 to make up your own mind.

Cheers,

Dan.

ChrisSolomon
Active Contributor
0 Kudos

Oh wow! Really? I come from the Mentor side of things so those guys (UI5 folks) always seem real open to input, criticism, etc. Maybe or any of the other guys could help you talk to the right people. I think your input would be great.

Answers (2)

Answers (2)

junwu
Active Contributor
0 Kudos

you want my advice? forget about portal

ChrisSolomon
Active Contributor
0 Kudos

ohhhh if it were only that easy.

0 Kudos

my customers have a lot of WDJ / KM / portal applications. It´s not so easy. I hope maybe sap will be smarter this time and no waste so many effort in java stack.

junwu
Active Contributor
0 Kudos

what i meant to say is don't expect too much in that area. you are pretty much on your own.

ChrisSolomon
Active Contributor
0 Kudos

Curious what you mean by "provide odata services from the sap portal"?

You can merely have a SAPUI5 app in your portal (iView). The SAPUI5 app is what will talk to your Gateway server for whichever service(s) that actually produces the OData by communicating with the backend.

The portal....as always....is merely a window that exposes the app to the user. The app-to-Gateway-to-backend is really where all the "magic" happens.

0 Kudos

Hi thanks for reply.

i mean there is no gateway server in the picture. Just the netweaver java stack. Now we have services in portal as ejb or webservices consumed via web dynpro java. No Abap stack.

So whats the path for customers who want migrate to sapui5?

ChrisSolomon
Active Contributor
0 Kudos

uhm.....you just kinda said it....as I said....the portal just exposes your apps....the apps will depends on whatever underlying tech...

ie. WDJ needs a java webserver and can call webservices or use the "connector" (similar with .Net)....WDA are just "exposed" and run off the backend as web applications with the backend "trusted" with the portal so it appears seamless.....for SAPUI5, you have a bit of "middleware" in there....the Gateway server which in turn talks to the backend.

So you....you answered yourself....you need to get a Gateway server set up.....develop you SAPUI5 app(s) talking to Gateway whose service(s) in turn communicate to the backend to create the OData your SAPUI5 consumes....then simply "expose" the SAPUI5 app in your portal.