hana new

28
C_HANAIMP141 SAP Certified Application Associate (Edition 2014) - SAP HANA Associate Level C_HANAIMP151 SAP Certified Application Associate - SAP HANA (Edition 2015) Associate Level C_HANAIMP142 SAP Certified Application Associate - SAP HANA (Edition 2014) Associate Level ----------------------------------------------------- ha360 Hands on Lab ha200 SAP HANA - Operations & Administration ha240 Authorization, Security and Scenarios ha250 Migration to SAP HANA using DMO-BASIS-Software Update Manager (SUM) OMIG01 OKP Standard Migration Procedures for SAP Systems to SAP HANA

Upload: anonymous-p6l7zn

Post on 26-Sep-2015

149 views

Category:

Documents


4 download

DESCRIPTION

hana sap

TRANSCRIPT

  • C_HANAIMP141

    SAP Certified Application Associate (Edition 2014) - SAP HANA Associate Level

    C_HANAIMP151

    SAP Certified Application Associate - SAP HANA (Edition 2015) Associate Level

    C_HANAIMP142

    SAP Certified Application Associate - SAP HANA (Edition 2014) Associate Level

    -----------------------------------------------------

    ha360 Hands on Lab

    ha200 SAP HANA - Operations & Administration

    ha240 Authorization, Security and Scenarios

    ha250 Migration to SAP HANA using DMO-BASIS-Software Update Manager (SUM)

    OMIG01 OKP Standard Migration Procedures for SAP Systems to SAP HANA

  • OHEC SAP HANA Enterprise Cloud

    OHAC10 OKP SAP HANA Cloud Integration 1.0

    HA300E SAP HANA - Implementation and Modeling

    HA200E SAP HANA - Operations & Administration

    DS10 Data Services - Platform and Transforms

    CLD100_09 Cloud Solutions

    ---------------------------------------------------------------------------------------------------------

    Certification

    C_HANAIMP141

    C_HANAIMP142

    C_HANAIMP151

    http://scn.sap.com/community/training-and-education/certification/blog/2012/12/06/how-to-prepare-

    for-a-certification-exam-in-5-simple-steps

    https://open.sap.com/course/hana1-1

    HA150 SQL Basics for HANA

    TZHANA

    ---------------------------------------------------------------------------------------------------------

    ha100 SAP HANA Introduction

    ha300 Implementation and Modeling

    HA350 data Provisioning

    ha900

    hana 360 IN 151Certification

    =--------------------------------------------------------------------------------------------------------

    C_HANAIMP141

    SAP Certified Application Associate (Edition 2014) - SAP HANA

    1. Data Provisioning > 12%

    2. Security and authorization 8% - 12%

    3. Optimization of Data Models and Reporting 8% - 12%

  • 4. Data modeling - Analytical views 8% - 12%

    5. Data modeling - Calculation views 8% - 12%

    6. Advanced data modeling 8% - 12%

    7. Administration of data models 8% - 12%

    8. Reporting < 8%

    9. Data modeling - SQL Script < 8%

    10. Data modeling - Attribute views < 8%

    11. Deployment scenarios of SAP HANA < 8%

    12. SAP HANA Live & Rapid Deployment Solutions for SAP HANA < 8%

    ---------------------------------------------------------------------------------------------------------

    SAP HANA Architecture

    SAP HANA Studio

    SAP HANA Modeling

    SAP HANA Security

    SAP HANA Data Replication

    SAP HANA Data Provisioning

    Different types of Connectivities in SAP HANA

    SAP HANA SQL

    SAP HANA Administration

    HA and DR in SAP HANA

    SAP HANA development objects

    SAP HANA Reporting

    SAP HANA (SPS09)

    SAP HANA - Implementation & Modeling (SAP HANA SPS09)

    SAP HANA - Administration & Operations (SAP HANA SPS09)

    SAP HANA - Development (SAP HANA SPS09)

    SAP HANA - Data Provisioning (SAP HANA SPS09)

    SAP HANA Cloud, Reporting & Frontend (SAP HANA SPS09)

  • SAP HANA (SPS08)

    SAP HANA - Implementation & Modeling (SAP HANA SPS08)

    SAP HANA - Administration, Operations & Support (SAP HANA SPS08)

    SAP HANA - Programming (SAP HANA SPS08)

    SAP HANA - BW on SAP HANA (SAP HANA SPS08)

    The HANA Modeler tools are actually developed by another team in India, whilst the developer-centric tools are

    developed in Walldorf, Berlin and Israel.

    Developer License expired? You can get a new one. This is how.

    http://scn.sap.com/docs/DOC-31036

    http://scn.sap.com/docs/DOC-59800

    http://scn.sap.com/community/gateway

    Products built on SAP Gateway

    SAP Microsoft Interoperability

    SAP Fiori

    SMP 3.0

    SAP HANA Academy - YouTube

    http://get-sapebooks.blogspot.com/2013/07/ebooks-download-sap-hana.html

    https://www.facebook.com/sapebooks/posts/649069205140665

    http://ebooks-sap.blogspot.com/2012/03/sap-spc-certification-material-download.html

    http://hitfile.net/1e7E/HA100 - SAP HANA Introduction(Col99).pdf.html

    http://hitfile.net/CYmm/HA300 - SAP HANA Implementation and Modelling(Col99).pdf.html

    http://hitfile.net/0mL5/HA350 - Data Provisioning(Col99).pdf.html

    http://hitfile.net/J6w9/HA360 - SAP HANA - Hands-on Lab(Col99).pdf.html

    http://scn.sap.com/community/developer-center/hana/blog/2013/06/25/want-to-learn-sap-hanawhere-to-

    startcertification

  • http://help.sap.com/hana/SAP_HANA_XS_Unit_JavaScript_API_Reference_en/index.html

    http://scn.sap.com/people/thomas.jung/blog/2012/02/23/developers-journal-first-steps-into-the-sap-hana-

    world

    http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html

    Languages

    SAP UI5 SAPUI5 Developer Center

    JOSON http://www.w3schools.com/json/default.asp

    XML

    JQuery http://www.w3schools.com/jquery/ or http://learn.jquery.com/

    Java Script http://www.w3schools.com/js/ or http://www.javascriptkit.com/

    HTML 5 http://www.w3schools.com/html/html5_intro.asp or http://www.html5rocks.com/en/

    SQL - Learning SQL, 2nd Edition

    ODBC

    JDBC

    SQLScript

    ABAP for HANA AMDP, CDS,

    Code Push Down,

    HANA BW

    BO

    BOPF

  • BRF Plus

    Odata / REST http://www.odata.org/documentation/odata-version-4-0-may-2013-public-review/

    Analytics Views

    OData and REST based services. We knew what we wanted to deliver and we shipped it all in SP05.

    What's this XS engine all about?

    The XS engine is a whole application server, web server, design time and runtime for HANA. It's an alternative - and

    it's valid to consider using ABAP, Java or .Net for the application server layer - but as we start to use HANA more of a

    platform and push more logic into the database, and it makes the app server layer thinner, we can just use it for some

    comparative logic or service enablement. Then it makes sense to move more layers into the HANA platform.

    We remove layers, improve technical performance by reducing the number of network hops and reduce complexity,

    reducing TCO.

    http://scn.sap.com/docs/DOC-31723

    http://scn.sap.com/community/gateway/blog/2015/04/20/creating-odata-services-out-of-cds-views

    The Road to HANA for Software Developers

    Introduction

    The purpose of this blog is to show how HANA Artifact CDS view can exposed as Odata service to consumer.

    1 CDS (Core Data Services) Views

    CDS(Core Data Service) views is the newest kid in the block in HANA . It allows you to do much more compared to

    classical view

    Push Code to Data Base layer by allowing queries ,calculations and imperative statements at the DB layer(instead of application

    service layer)

    Allows you to add associations with other business entities/tables

    Annotations to semantically describe your data model

  • I am not going to get vociferous about CDS because there is enough documentation already available .

    Please refer this ABAP on HANA open sap course for more details.

    https://open.sap.com/courses/a4h1

    For creating CDS views there are some prerequisites

    Eclipse should be installed

    ADT(Abap Development Tools) add on should be installed

    SAP NetWeaver AS ABAP 7.4 SP05 or higher running on a SAP HANA database SPS6 should be available

    The ABAP system in which I am trying is NW7.4 SP8 system

    Once we are done with prerequisites , we will create a CDS view .

    This CDS view will join tables SNWD_SO(Sales Order) and SNWD_BPA (Business Partner) and find out sum of

    invoices whose gross amount is greater than 10000000.

    1. @AbapCatalog.sqlViewName: 'ZDDLS_CDS_AGGR'

    2. @EndUserText.label: 'CDS view for aggregation'

    3. define view Zars_Cds_Aggr as select from snwd_so as so

    4. inner join snwd_bpa as bpa

    5. on so.buyer_guid = bpa.node_key

    6. { key bpa.bp_id as BusinessPartner,

    7. bpa.company_name,

    8. sum( so.gross_amount ) as Total_Gross_Amount,

    9. so.currency_code

    10. }

    11. group by

    12. bpa.bp_id,

    13. bpa.company_name,

    14. so.currency_code

    15. having sum(so.gross_amount) > 100000000

    Here you can see there are two views - The View ZDDLS_CDS_AGGR is DDLS(DDL source view) name which can be

    viewed in SE11 and this object is integrated with the CTS (Change and transportation system) .The other

    viewZARS_CDS_AGGR is the CDS view name

    Now we will check the results of the CDS Views. We can do it in two ways

    a Open Data preview of CDS view in Eclipse

  • Now the results

    b You can see the result in classical se11 transaction also. But this time we should give the DDL SQL view name

    ZDDLS_CDS_AGGR

  • ZARS

    2 Data Modelling in Gateway Builder

    As we are done with CDS view building , we will move to Gateway data modeling part . The good thing here is we

    don't need to switch to GUI for Gateway builder transaction. We can run the SEGW transaction from eclipse itself as

    an embedded GUI. Just press CTRL+SHIFT+A and give SEGW .

    We Create data model based on DDLS view ZDDLS_CDS_AGGR

  • Click on Next button

    select the properties we want in the entity( ignore the MANDT field)

  • Here we can see the property names of the entity has been automatically adjusted (Camel case) and we need to

    mark the Business Partner as the key property of the entity

    Press finish to complete the data model part

    3 Service implementation

    Now we are done with Data model , we look into the data provisioning part.

    Here we give the data source name as CDS view name ZARS_CDS_AGGR

    Right click on the entity set SalesAggregationSet under service implementation and select Map to Data source . The

    important point here is we are not mapping the GetEntitySet operation of the entityset but the entityset itself.

  • We have to select type as Business Entity and use F4 help to select CDS view ZARS_CDS_AGGR.

    We then do the mapping of Entity properties with the CDS view fields. Strangely propose mapping button seems to

    be not there

  • Generate the model and do the service registration

    4 Testing

    Now we head to GW client for testing . We test the SalesAggregationSet.

    In the above case we have not implemented the query operation but we use the URL of the query operation to get

    the CDS view results .

    One more thing that comes free is the read operation .No separate implementation of READ (GET_ENTITY)

    required.

    So if We put the below URL

    /sap/opu/odata/SAP/ZARS_CDS_SIMPLE_SRV/SalesAggregationSet('100000014') also, we get the results

  • Conclusion

    ABAP is not only 'ABAP' right now . For a complete End to End scenario , now we need to proficient across three

    layers (ABAP,Gateway,UI) which seems to be close to impossible . But as grey haired 'Abaper' , it is required that

    we at least keep up to date with how ABAP is evolving itself for HANA DB and how its pushing the changes in

    Gateway layer. The easiest solution will be to ignore all the changes happening around us and stick to the old

    classical style. But that will be a gap too big to bridge

    OK, I know this is a cheesy title - but as I am writing parts of this from my hotel room during my

    annual kiteboarding trip to Maui, I just could not resist...

    Numerous product overview documents, "Getting Started" guides and link collections have been published on SAP

    HANA (1, 2, 3, ...). So you might ask yourself: "Is this yet another one of those??".

    Yes, indeed. This is yet another one.

    What's different here, this document is meant solely for developers and it doesn't even try to cater to CIO's, system

    architects, business experts, database admins and alike. If you're not a developer (or consultant building data-centric

    applications for your customer; or a data analyst), you may still get something out of this collection, but maybe you

    won't. If you are a developer (and you probably are, because after all you came to the SAP Developer Center), I hope

    you will find this useful...

    So what would you have to read, watch, use to get up to speed with SAP HANA when you're a developer? I hope I

    found the most relevant documents. If I missed anything, let me know in the comments and I will update the list.

    Pre-Requisites

  • At it's very core, the SAP HANA DB is "just" a relational database. It really is so much more, but before you dive into

    that, make sure you know your SQL. So make sure you have the SQL 92 Specification available, and if necessary, find

    a SQL tutorial on the Web - or let me Google that for you.

    First Steps

    It all starts with Hello World. So let's get done with that: on HANA, you would write is as

    SELECT 'Hello, World!' FROM DUMMY;

    OK, looks easy. Only one problem - maybe you don't have a HANA box to follow along... Well, you came to the right

    place!

    You can get your own HANA DB server, running on Amazon Web Services. No license fee, you just pay AWS for the

    hosting cost.

    If running your own HANA on AWS sounds like too much of an investment for now, there is even a completely free

    option - a free 30-day trial of SAP HANA, including some of the frontend tools such as Business Objects Explorer or

    Visual Intelligence. There's a brilliant blog SAP HANA Developer Access Beta program - get the best out of your test-

    drive! by community member Ronald Konijnenburg that will help you get started on the trial.

    So now that you have absolutely no excuse for not following along, what are the documents you should read first?

    If highly recommend to start with the SAP HANA Database - Development Guide onhttp://help.sap.com/hana_appliance (the

    official product documentation page). This guide provides a solid architecture overview and a tutorial that covers data

    load, modeling techniques, SQLScript basics and even some hints for performance optimization. Plus, the HANA

    team keeps the document up to date and in sync with the latest product revision. So make sure you check frequently

    for new versions of the document. BTW, the HANA trial mention earlier has the sample data set used in the

    Development Guide already loaded. So you can jump right into modeling...

    Done with the first tutorial? Maybe you want to try a little bit yourself now. Let's spend a little more time with SQL,

    modeling and SQLScript before moving on to more advanced topics. The SAP HANA SQL Reference Guide will

    certainly make it into your browser favorites list. I prefer the HTML version, but the SQL Reference Guide is available

    inPDF format, too.

    Modeling is covered in the SAP HANA Modeling Guide, and in case you need to program Calculation Views or Stored

    Procedures using SQLScript, the SAP HANA SQLScript Guide is what you need.

    Prefer some more guidance? Or maybe you like a recording better than reading through a looooong document?

    Check out the HANA Academy - you will find short videos that show you "how it's done". There is already a nice

    selection of video tutorials, and growing. HANA Academy a cornerstone of the HANA Distinguished Engineer

    Programand is meant to take you from your first steps all the way to HANA mastery.

    Speaking of "mastery" - it's probably time for your next steps now...

    Getting to the data...

    When working with a database, sooner of later you will face the problem of how to get data in and out. Let's start

    with"in":

  • The easiest way to get some test data into HANA as a developer, is to just upload it from a CSV or XLS file in HANA Studio. It's

    probably so easy that it doesn't deserve any special documentation. File > Import... > SAP HANA Content >

    Date From Local File. That's all you need to know.

    The easiest way is quite often also the least flexible way and comes with limitations. E.g. as of SPS04, the data upload from

    HANA Studio will fail when there is problems with the data. The db commit is for the entire file and it doesn't write any

    meaningful error logs. So if it works, it's great and simple, if it doesn't, it provides little information on what went wrong. Also,

    it's better suited for relatively small files. But - you can also upload data that you store on the HANA DB server (or any remote

    disk that is mounted on the HANA DB server via NFS or alike). The SAP HANA SQL Reference Guide has the latest

    documentation on the SQL Statement IMPORT FROM, and that's exactly what you need. The video blog How to load CSV files

    into HANA is a bit outdated (e.g. you don't need those control files any more), but gives you a nice head start.

    Moving from a one-off upload of some test data to continuous data load, you might want to try an ETL tool. SAP bundles SAP

    Business Objects Data Services (BODS) into SAP HANA Enterprise Edition (and upwards). BODS lets you move data from all

    kinds of sources (files, databases, ABAP backend systems, ...) into SAP HANA. As far as BODS is concerned, HANA is just

    "another database" - so your best starting point is the BODS documentation on http://help.sap.com/bods. But there's even more:

    e.g. check out how you can call HANA Stored Procedures from BODS here

    Now, when you are approaching HANA from an SAP Background, you will most likely want to know how to move data over

    from a Business Suite backend system. Data Services works (see last bullet point). But you want to get the real real-time feeling

    and replicate data from an ABAP system at the very second it changes. The tool SAP HANA uses for read-time data replication

    is called "Landscape Transformation" (because it existed before HANA and has never been rebranded in the HANA context.

    Quite unfortunate if you ask me...). The Landscape Transformation (LT) Replication guides (Technical Operations

    Manual and Configuration Guide) show you how it's done. As of now, SAP does not offer any developer licenses for BODS or

    LT - so if you want to get experience with these, you would either have to attend a training class or find a license at your

    company or customer.

    And of course, you can use the various client SDK's to build you own data load programs. Install the SAP HANA Client and you

    will get drivers/SDKs for JDBC, ODBC, Python ("not supported"), ABAP and more. You will need those client drivers and I'll

    point you to relevant documentation in the next section...

    Programming HANA Client Applications

    SAP has already a lot of HANA Client Applications available for you. The "biggest" one is most certainly BW on

    HANA. The most interesting ones for developing analytical applications are probably our BI tools: SAP Predictive

    Analytics,SAP Visual Intelligence, the BI Platform 4.0.

    But there's even more for developers: HANA comes with client libraries for various popular programming

    environments. You can use these libraries (e.g. the JDBC and ODBC libs) to connect 3rd-party BI frontend tools to

    SAP HANA - just like Ronald Konijnenburg connected HANA to Tableau and Tibco Spotfire.

    And you can also use these client libraries to program your own applications:

    JDBC is described in the SAP HANA Database - Development Guide - and you should of course have a basic understanding

    of JDBC

    ODBC/ODBO is mostly associated with showing SAP HANA Data in MS Excel - but of course you can also use it as a

    programming interface. Maybe Blag's efforts to Bring some Euphoria to SAP HANA inspire your own experiments (strong

    suggestion: follow Blag on SCN)

    Although it's not officially supported (so try at your own risk, and not in production environments), HANA also comes with

    Python drivers, implementing the Python Database API. Again, it's Blag who can get you started with this in SAP HANA and

    Python? Yes Sir!

    And of course, SAP never forgets where we come from: you can use SAP HANA from ABAP. Yes! When it comes to ABAP,

    there's only one Thomas Jung. Luckily, Thomas has joined the SAP HANA Product Management team, he is now writing about

    HANA and he has not yet forgotten his ABAP - as you can see in Developer's Journal: ABAP/HANA Connectivity via

  • Secondary Database Connection and Developers Journal: HANA Catalog Access from ABAP (another strong suggestion:

    follow Thomas Jung on SCN)

    Built your first own application on top of SAP HANA? Great! Let's make the final steps towards HANA mastery and

    see how you can hack the heck out of SAP HANA:

    Advanced HANA Programming

    I mentioned earlier that HANA is "so much more than a relational database" - let's look into some of the more

    advanced topics:

    Did you know that HANA supports full-text search and hence can bridge the gap between what is commonly referred to as

    "structured" (tables with fields as you typically find it in relational databases) and "unstructured" (just text) data? The Fuzzy

    Search Developer Guide provides information on how to - well, the title says it all - how to do fuzzy searches on text data

    One of the most interesting features of HANA is the integration of statistical functions (the so-called Predictive Analytics

    Library - PAL) and business functions (Business Function Library - BFL) in the core of the database. Check out

    the Predictive Analysis Library-Reference Manual and the Business Function Library Manual.

    [I highlighted this section, because in my humble opinion, this is about the coolest part of SAP HANA. HANA has create

    potential as a lightning fast database - but these libraries are a great example for SAP HANA being more than a database.]

    Except for writing the wrappers around PAL/BFL, don't worry too much about the L-language at this point. It will most likely

    undergo significant simplification before rolled out to a broader developer audience (if at all). Future versions of PAL/BFL calls

    will most likely not even need those wrapper anymore, but be integrated more naturally in SQLScript.

    In case the PAL doesn't provide the statistical analysis function you want to run on the data - you can be quite sure the popular

    statistical programming language R will. So if you are really into math, check out HANA's R-integration. For licensing reasons,

    we cannot bundle R with HANA, but it's quite easy to install - the HANA Documentation has a guide for that, and my

    colleague Blag has written a blog to make your first steps very easy.

    Where to go from here

    Well, if you worked through all this material, you must be a HANA Guru by now (and if you still want to learn more

    and read, read, read, here is a collection of even more documents that you can download and work through). I must

    also assume that you do have additional practical experience with HANA implementation projects, because you

    wouldn't spend months of your life learning some technology that you don't apply to real problems.

    So I guess you'd be a perfect candidate for the HANA Distinguished Engineer program. So share what you know right

    here on the HANA Developer Center, contribute to the HANA Academy, get some recognition and build your own

    personal brand in HANA-land. You can be sure that good things will happen for you...

    Hey, and what in case you out-grow the pure developer instances and you (or your company) want to go live with

    HANA? Or you want to become an SAP HANA Partner? http://www.experiencesaphana.com/ is where you want to go:

    You'll find information on the business value of SAP HANA, Customer Success Stories and a whole lot more, and you can

    contact the SAP HANA Sales team

    You'll find pointers to SAP HANA One, and offer that allows you to operate SAP HANA on Amazon Web Servicesin

    production! And it's even self-service, you will never have to pick up the phone and talk to a sales representative (if that's not

    your kind of thing).

    And you'll find information on how to join the SAP HANA Partner Program.

  • And last but not least: this summary of resources is my personal selection - I may have missed some great

    documents. I may have mis-judged some documents. And I may have intentionally left out some documents because

    of my own bias. So help me complete the list by pointing all of us to more interesting stuff (please, please: limit the

    suggestions to resources that are interesting for developers. "How to configure High Availability with HANA and xyz

    storage technology" is a fascinating topic, but not relevant when you're building an application) in the comments.

    Have fun with SAP HANA!

    Print documents from SAPUI5 Introduction

    This is a quick blog explaining how to generate a print from SAPUI5 application . We currently have the flexibility to

    generate print from the back end system. For an ABAP back end system with SAPUI5 front end , we can generate an

    excel file or a PDF file from back end and push it to the browser so that the user can download it or take print out

    manually . The same technique is applicable for other (supported) back ends as well. Here, i am completely forgetting

    about the back end server , and thinking of generating the printouts from the browser using javascript .

    Benefits

    1. Printout will be rendered in the browser

    2. Data is not transferred to the back end system to generate the document and push back to the client.

    3. Include SAPUI5 controls directly into the output, like charts, tables etc .

    Theory : The theory behind here is , we can print html document using javascript Window print() Method

    Step 1: Create a SAPUI5 application project in Eclipse , create a view and develop your UI5 application ( These steps

    have been discussed multiple times , so i am not discussing it here again ).

    Now my application looks like the below. I included some header data , a table with stock information, and followed

    by a graphical representation of profit percentage .

  • When the controls are rendered , corresponding HTML code will be generated . So , if we want to include any

    SAPUI5 standard controls, we should get the rendered html content.

    Below is the print format which we are now going to design .

    Now we will think of some HTML stuffs . All the header information can be rendered using plain HTML tags ( using

    , etc ) and the table can be created in our choice using the html tag . Graph html code can be

    taken from the rendered HTML DOM and insert into our print document. In the controller , i am defining a function

    which accept the JSON data for the header and the table ( for the header and the table ) .

  • In the above code snippet, i am creating the HTML code corresponding to the output expected . HTML DOM for the

    chart is read using the outerHTML variable from the document . Using the generated HTML string, a popup is opened

    and the same is printed .

    And here comes your document

    Lazy to write the HTML tags for the print out ?

  • This is for lazy people Are you not confident enough to write the HTML for your print out ? SCN is there to help

    you .

    Step 1 : Create a blog or document in SCN.

    Step 2 : Go to MS Word , and draft your output ( for eg , i am creating a table )

    Step 3: Copy the table, and paste it in the content editor , and go to the html version (right side, top )

    Here you will get the HTML code . You may need to clean the code based on your requirement . There are many free

    internet services available to create HTML from MS Word contents .

    Happy coding

    Sreehari

    SAPUI5 Best practises- Dos & dont dos

    ntroduction hde

    SAPUI5 and SAPUI5 based applications have pitched into market now. SAP FIORI is one of such application

    which is running on netweaver gateway, and there is many such running on SAP HANA XS as well. Here I am trying

    to explain you my experience on creating SAPUI5 application with some best practices along with important dos and

    donts dos with this quick document.

    UI Validations

    We used to validate the inputs given by the user in the client side itself sometimes; for example, the email ID

    format, number format, age limit, date range, age calculation from date of birth etc. It is always good practice to

    implement such silly things in the UI level itself. But, are they really silly? I should say NO. Because, anyone can

  • debug the page and change the validation rules in run time and fake them to end up in a wrong validation or

    calculations. So we cannot trust it all the time.

    What we should do: If there is a validation logic implemented in the UI, same logic has to be implemented

    in the affected Odata services also. For example, the email id structure validations. Even if anyone changed it in the

    UI and changed the rule, he will not be able to do it from the netweaver gateway or XS. Implement it there also

    (This best practise is applicable for all the web applications). This check is applicable for all the

    configuration/master data loaded in the UI also.

    CRUD Operations

    OData supports CRUD operations, which have been discussed in multiple documents and I am not talking about the features and why we use CSRF token validation etc. I have seen couple entity model updates/deletion logics implemented in GET_ENTITY and GET_ENTITYSET methods by managing the input data with filter value. Never do this. We got beautiful architecture and Odata Model API to manage the CRUD operations smoothly. C, U and D operations should be managed using the corresponding methods (in case of netweaver gateway) provided by the OData protocol and SAPUI5 OData Model APIs. Avoid using direct Ajax calls, if possible.

    Login to the application

    In most cases, when we start exploring a UI language, the first screen we develop will be login screen. For

    learning purposes it is fine, but never develop custom login screen for a productive UI application. For netweaver

    gateway applications, once we deployed it into the BSP container, application will inherit the BSP login or portal login.

    In case of FIORI apps, we will get the beautiful FIORI login page.

  • Internationalisation (i18n simply)

    No story here . Never develop applications by hard-coding the description texts. Apply i18n where ever

    applicable.

    UI version in Eclipse

    One of my friends developed an end to end SAPUI5 application locally in eclipse, where there the UI component

    version was 1.22.*. On completion, he shared and activated the project in ABAP repository where the UI5 version

    was 1.16.*. Some of the controls and features did not work properly there and it took around 2 weeks to fix the

    problems.

    Bottom Line: periodically, share and activate the project to the server (ABAP or XS), to avoid such problems in the future. Or, you can keep the same Ui5 version in both Eclipse and server.

    User specific GUI?

  • Sometimes it will be important that the page the user sees should be corresponding to his roles (or some back end configurations or conditions). We can imperative statements in the UI side before loading the specific UI to the screen (sometimes a graph, or a page, or a tab in the tab strip). Remember that, whatever you are writing the UI can be debugged and trick the logic you have written. As I said before, check the user authorizations from the back end (Odata side), before loading the data. In that case, even though he could make the unauthorized UI loaded in the browser, he will not be able

    to see the data. We tricked him back

    Something from OData side

    When you write Odata implementations (in case of NW GW), implement all the possible features (like paging and filtering). This makes the OData consumption from SAPUI5 side easier. Think twice before returning all the records for an entity (wild card is still a nightmare). Even though we are using paging while consuming from the UI5 application, it is very much possible to execute the Odata URL separately using a REST client (sometimes I feel like to call this GET operation in a loop to crash the

    system downJ ). If we have written the logic to return all the records, it will be a bad approach. So, always limit the number of records. In case of XSODATA (SAPHANA), never expose transaction tables directly via odata. Create information models or views to limit the columns and expose them instead. Sometimes, a GET operation (with multiple records GET_ENTITYSET in GW) is triggered only via association calls. For example, purchase order items are fetched based on a particular purchase order number. Here, the we can limit the Odata call for the PO items such that, it will give you the items only if there is a valid navigation exists. The benefit is, no one will blindly execute selection with wildcard on EKPO (item table) via OData calls.

    General thoughts

    Never make Odata calls in loops. Design the Odata service properly instead.

    Use OData models instead of normal Ajax calls. Odata Models are tightly integrated to the UI5 controls also. When the data

    changes, all the controls will be updated automatically.

    Remove all the commented codes Otherwise, all the time it needs to load them from server to client and it is a waste of

    bandwidth usage.

    Destroy complex controls after the usage.

    Stick on the MVC architecture. Never go for Odata calls from the view.

    Use relative paths for web resources Otherwise you will struggle when you transport the application to QA or PRD.

    Select only required columns in the odata calls. Lazy loading is by default implemented in some of the controls (like UI5 table).

    Make sure you implement the same in OData level also.

    I hope it was a worth read for you. If I have missed some points, please let me know so that I can update the

    document. Share your thoughts below. Suggestions and corrections are well appreciated.

    Supplier & Product Rating based on Customer Feedback :

    HANA Sentiment analysis Introduction

  • With this quick blog I am explaining how to implement a supplier rating application using the Text Analysis capabilities

    of SAP HANA. I am using Sentiment analysis feature to rate a particular product and suppliers based on the

    customer feedback on various web sites .

    Assumptions

    We have the customer feedback collected from suppliers and arranged in the following format. (data is copied from

    multiple online suppliers. Product names and supplier names are masked )

    Modelling your source Table

    Now we need to load the data into SAP HANA. For that, We are creating a table of the same structure .

  • After once the data is loaded into the source table, we are creating a full text index on the table for the FeedbackText

    column using the standard configuration "EXTRACTION_CORE_VOICEOFCUSTOMER".

    Voice of the customer content includes a set of entity types and rules that address requirements for extracting customer

    sentiments and requests. You can use this content to retrieve specific information about your customers' needs and perceptions

    when processing and analyzing text. The configuration involves complex linguistic analysis and pattern matching that includes

    processing parts of speech, syntactic patterns, negation, and so on, to identify the patterns to be extracted.

    Once the index is created , one new columnar table will be created in the same schema where the source table is

    created. This table will be having the tokens as well as the corresponding sentiments values .

    Now generating some visualizations on the generated sentiment data.

    SAP Lumira For Reporting

  • Now we have the sentiment data available in our table. That means, we have the product details, Supplier details,

    and the type of feedback given by the customers . Now we will generate dashboard(Real time dashboards on

    LUMIRA if we integrate it with live feedback data on multiple web sites) .

    And I love this part

  • (This blog is created for DataGeek ).