Skip to Content



TinyWorld – Part 3


Create a SAP HANA based client-server application

/wp-content/uploads/2016/03/image001_916484.png

Hello again!

In part 2 (Get started with the SAP Web IDE for SAP HANA) of this TinyWorld tutorial we learned how to create a project, and create, build and run application modules. Here, in part 3, we will extend our application to actually do something more useful.

NOTE: In the following, you will need to update the MTA descriptor file – mta.yaml. The YAML syntax is indentation-sensitive, and you should always use spaces, never tabs. The role of the mta.yaml file is further explained in part 7 (Under the hood).

Advanced HANA development

Using the CDS graphical editor

You can use the CDS text editor, introduced in part 2, to create large and complex data models, but you can also use the CDS graphical editor, side by side with the text editor. Right-click tinyf.hdbcds > “Open with > Graphical Editor” to see:

/wp-content/uploads/2016/03/image008_916243.png

Click the (left-most) Add-Entity icon to create a new entity, and call it country. This will bring up the columns and associations wizard. Click the “+” to add a new column (field), rename it name, change the Data Type to “String”, enter a length of 100 and mark it as a key column.

Then click the “Associations” tab, and add a new association. Rename it partof. Under “Target Entity”, select the world entity. Now click “< Back” to the main tree view; you should have the following model:

/wp-content/uploads/2016/03/image009_916457.png

Save it (CTRL/S). You can switch to the CDS text editor tab to see the same mode in text form:

  /wp-content/uploads/2016/03/image010_916458.png

We created a data-model with two associated entities. Next: rebuild it (see part 2 for details). You will notice in the console that only this file is incrementally built, since the other files didn’t change.

Using the HANA Run Time Tools

Open the HANA RTT in your browser (see part 1, A TinyWorld Tutorial – Introduction , where it was introduced). To review the tables we just created, you may first need to bind to the HANA database container in which they were created:

/wp-content/uploads/2016/03/image011_916459.png

Press the “Search HDI Containers” icon, and bind to the appropriate tinyworld workspace container (called something like <your user name>…tinyworld-hdi-container). Now, open the “Catalog > workspace… > Tables”, and you will see the two tables that we just created, respectively called “tinyworld.tinydb::tinyf.world” and “tinyworld.tinydb::tinyf.country”. You can now open the SQL console (right click on your container and select Open SQL Console) , and enter some data, for instance:

INSERT INTO "tinyworld.tinydb::tinyf.world" VALUES ('Europe');

INSERT INTO "tinyworld.tinydb::tinyf.world" VALUES ('Asia');

INSERT INTO "tinyworld.tinydb::tinyf.country" VALUES ('Spain', 'Europe');

INSERT INTO "tinyworld.tinydb::tinyf.country" VALUES ('Japan', 'Asia');

INSERT INTO "tinyworld.tinydb::tinyf.country" VALUES ('Denmark', 'Europe');

(Run it by pressing /wp-content/uploads/2016/03/image012_916463.pngin the toolbar). You can check it out, for instance like this:

SELECT * FROM "tinyworld.tinydb::tinyf.country" WHERE "partof.continent" = 'Europe'

Adding a Calculation View to the model

In this step, we use the SAP HANA modeler to graphically add a Calculation View to show only European countries.

Navigate to the src/ subfolder of the tinydb/ module folder, right-click “> New > Calculation View”. Call it, for instance myview, select “Data Category” as “Dimension” from the dropdown and click “CREATE”. Wait a few seconds, until you see:

  /wp-content/uploads/2016/03/image013_916465.png

From the toolbar, click the /wp-content/uploads/2016/03/image014_916466.png (Create Projection) icon once, and then (without holding the mouse button) move your mouse to an empty space below the existing projection on the canvas and click again, to create a new projection, called Projection_1. Select it, and “drag” the little arrow that appears on the right to the bottom of Projection, to connect them:

/wp-content/uploads/2016/03/image015_916467.png

Now, let’s create the projection in order to show the results only for European countries. Select the Projection_1 node. On the “mapping” tab on the right, click the “+“; a search wizard will appear. Enter tiny to search for the tables that we created in part 2. Select tinyworld.tinydb::tinyf.country in the search results, and click “Ok”. We first want to connect the “Data Sources” to the “Output Columns”: select the table and click the /wp-content/uploads/2016/03/image016_916468.png(Add to Output) icon:

   /wp-content/uploads/2016/03/image017_916472.png

Next, click on the “FILTER EXPRESSION” tab, open the “Columns” element, and then double-click partof_continent. In the Operators selector click once on “=”. The expression appears at the top; complete it by typing ‘Europe’:

/wp-content/uploads/2016/03/image018_916473.png

Next, select the Projection node on the left, and in its MAPPING tab, select and drag name from “Data Sources” to “Output Columns” with your mouse.

Finally, to support anonymous users, select the “Semantics” node at the top of the graph, select the “VIEW PROPERTIES” tab, and change Apply Privileges from “SQL Analytical Privileges” to empty.

Save the calculation view (CTRL/S), and rebuild the tinydb module again. This accomplishes our task: we created a view that shows only the name of only European countries.

Using OData

One of the most common usage patterns is to expose a data model via the OData protocol (see: www.odata.org). This is very easy to do with the Web IDE, by means of adding a single file to our small Node.js module.

In the folder tree (navigation pane), right-click the tinyjs/lib/ folder, create a “New > File” and call it euro.xsodata. Note that the suffix is important – it determines how the file will be treated in the HANA database. In the editor, type:

service {

  “tinyworld.tinydb::myview” as “euro” keys generate local “ID”;

}

Then save the file. We just defined a new OData service named euro.xsodata, and defined an entity euro, based on the myview Calculation View (using the name of the HANA table, which is prepended by the namespace). The euro entity uses an auto-generated key called ID.

Before we can run the OData Service, we need to create dependency from the Node.js module that exposes the OData service, and the underlying HDB module, on which it depends.

Open the mta.yaml MTA descriptor, and look for the tinyjs module. You will see something like this:

  /wp-content/uploads/2016/03/image019_916475.png

Append the following text to the attributes of the tinyjs module:

# ——- dependency on DB

  requires:

    – name: tinydb

    – name: hdi-container

#—————- exposes SERVICE URL to consumers

  provides:

    – name: tinyjs_api

      properties:

        service_url: ${default-url}

# —-


NOTE: The YAML syntax is indentation-sensitive and does not allow usage of tabs. Make sure that you use spaces only.

Next, open the file tinyjs/server.js, and uncomment the line that establishes the connection to the HANA database. It should look like this:

// configure HANA

options = xsjs.extend(options, xsenv.getServices({ hana: {tag: “hana”} }));

Save all files, and run the Node.js module again (right-click tinyjs/> Run > Run as Node.js Application”).

Testing the OData service

Since we didn’t change the code of index.xsjs yet, you will see the same “It’s a tiny JS World!” message again, but now we also have an OData service, which we can actually test using an OData URL:

In the browser tab, where the hello-world message is showing, replace the URL suffix /index.xsjs with

/euro.xsodata/euro?$format=json

If all works as expected, you will see the output (based on the manual entries we made above), as follows:

/wp-content/uploads/2016/03/image020_916476.png

Using the OData service with SAP UI5

The above URL test tells us that the OData service is up and running. Let’s now write a small UI5 application that uses the same OData service programmatically.

Double-click to again open the existing tinyui/resources/index.html file, replace its content with the following UI5 code, and save:

<!DOCTYPE HTML><head><meta http-equiv=”X-UA-Compatible” content=”IE=Edge” />

<title>DevXdemo</title>

<script src=”https://sapui5.hana.ondemand.com/resources/sap-ui-core.js

id=”sap-ui-bootstrap” data-sap-ui-libs=”sap.ui.commons, sap.ui.table” data-sap-ui-theme=”sap_bluecrystal”>

</script>

<script>

  var oModel = new sap.ui.model.odata.ODataModel(“/euro.xsodata”, true);

  var oTable = new sap.ui.table.Table({ title: “European Countries” });

  oTable.addColumn(new sap.ui.table.Column({ label: “Country Name”, template: “name” }));

  oTable.setModel(oModel); oTable.bindRows(“/euro”); oTable.placeAt(“content”);

</script>

</head>

  <body class=’sapUiBody’> <div id=’content’></div> </body>

</html>

What does this app do? We define a model (oModel), bound to /euro.xsodata. Then, we create a table with a single column, bound to the name field of the entity /euro. The table is initialized and displayed in an HTML context.

We need to one additional requirement in order to run a UI5 application on XS Advanced, and that is to set up a destination for the XS Advanced “approuter”, which handles cross-references to other URLs. Here we have a cross-reference to the URL of the euro.xsodata OData service of the tinyjs module. Here are the two steps:

  1. In the mta.yaml MTA descriptor, find the tinyui module section and append the following:

# — requires tinyjs service URL

  requires:

    – name: tinyjs_api

      group: destinations

      properties:

        name: tinyjs_be

        url:  ~{service_url}

    2. Open the file tinyui/xs-app.json (you can right-click “Beautify” it in the editor) and add the following entry to the “routes” array (inside the square brackets):

{“source”: “^/euro.xsodata/.*$”, “destination”: “tinyjs_be”}

We now defined a dependency between the tinyui and tinyjs modules, and specified a destination route to the OData service. Save both files and run tinyui/ again from the toolbar or by right-clicking the folder tinyui/ “> Run > Run as > Web Application”.

After a while, the following table will appear in another tab of your browser:

/wp-content/uploads/2016/03/image021_916477.png

Summary of part 3

We learned how to use the Web IDE and its HANA-specific tools to build a HANA-based client-server application, with a UI module that access the database via OData. In the next two parts of this tutorial (Add SAP HANA business logic and Add business logic with Node.js) we will add some business logic to our application.

Other parts of this TinyWorld tutorial:

Part 1:   A TinyWorld Tutorial – Introduction


The basic tutorial

Part 2:   Get started with the SAP Web IDE for SAP HANA

Part 3:   Create a SAP HANA based client-server application

Part 4:   Add SAP HANA business logic

Part 5:   Add business logic with Node.js


Advanced topics

Part 6:   Create Node.js unit tests

Part 7:   Under the hood

Part 8:   Source control

Part 9:   Application life cycle

Part 10: Add authentication

Part 11: Add authorization


To report this post you need to login first.

37 Comments

You must be Logged on to comment or reply to a post.

  1. Dirk Raschke

    Hi Chaim,

    because a lot of people are using the sap “master-detail app”, it would be really helpful if you could show how this has to be implemented on the new node.js runtime environment.

    At this moment we don’t have a clue how we should have to migrate it, that it works also in the new environment.

    Thanks a lot!!!

    (0) 
    1. Chaim Bendelac Post author

      Hi Dirk,

      That is a nice idea. The Web IDE for SAP HANA doesn’t yet provide the rich set of Fiori templates (including the “master-detail” template) that we offer with its older brother, the Web IDE on HCP.

      But if you have already developed such a Fiori app, then you could import its code as a module into an SAP HANA project, build it, and bind it to an ODara service somewhat like the “euro” OData service in the TinyWorld project described above.

      This should work fine, particularly with more interesting data models.

      Chaim

      (0) 
      1. Dirk Raschke

        Hi Chaim,

        thanks for your help!

        At this moment it’s enough to know that it should work also on this described “euro”-way. 🙂

        Kind regards,

        Dirk

        (0) 
        1. Dirk Raschke

          Hi Chain,

          now we were able to move one of our Master-Detail-App to the new XSA by the WebIDE.

          Everything seems to be fine, but post the request fails.

          Error: Unsupported content type: multipart/mixed;boundary=batch

          Failed to load resource: the server responded with a status of 500 (Internal Server Error)

          https://…….xsodata/$batch

          Do you know this error?

          (The tables are still empty, but this can’t be the reason…?)

          Thanks

          (0) 
  2. Kate Wringe

    In the graphic that follows the following text, the middle box is an Aggregation (in the other graphics, the middle box is named Projection)

    Next, click on the “FILTER EXPRESSION” tab, open the “Columns” element, and then double-click partof_continent. In the Operators selector click once on “=”. The expression appears at the top; complete it by typing ‘Europe’:

    (0) 
  3. Andrew Lunde

    Note: This issue occurs in SPS11 but seems to now be fixed in SPS12.

    When trying to exercise my new odata interface as above,

    https://host.acme.net:51021/euro.xsodata/euro?$format=json

    I get the following 500 error:

    Error: Hostname/IP doesn’t match certificate’s altnames: “Host: host.acme.net. is not cert’s CN: localhost”

    It’s clear to me that the certs being supplied to communicate between the tinyjs and tinydb modules aren’t correct (should be at least a self-signed cert for host.acme.net) but it isn’t clear how to supply the proper certs.

    I did install the XS runtime specifying hostname and cert to be host.acme.net but it’s still picking up localhost for some reason.

    Is there any guides to troubleshooting and fixing this?

    -Andrew

    (0) 
    1. Andrew Lunde

      I found the answer to be disabling SSL of the JS app.

      xs set-env XSA_USER-yourspecificappid-tinyworld-tinyjs NODE_TLS_REJECT_UNAUTHORIZED 0


      xs restart XSA_USER-yourspecificappid-tinyworld-tinyjs


      Thanks to Marc Becker for this.

      (0) 
      1. Lior Okman

        There is a root error here, that the SSL certificates are not properly configured. This error should not have occurred, and it hints to an installation problem on the XSA level.

        The proposed workaround makes the JS application vulnerable to a Man-In-The-Middle attack. It is probably not an issue for an example like TinyWorld, but should be avoided for production scenarios.

        However, if this workaround is performed, then it needs to be performed over and over again each time you stop and start the node.js module in DevX, and then later it adds an additional step that needs to be performed from the CLI by the administrator after this application is deployed outside of WebIDE.

        Instead of using the “xs set-env” command, the property should simply be added to the mta.yaml file. This way the development environment will manage setting this environment variable correctly, and also include this in the application for deployment outside of WebIDE.

        The module for the tinyjs should simply have one more section called properties, with a property called NODE_TLS_REJECT_UNAUTHORIZED and a value of 0. For example:

        modules:
        - name: tinyjs
          type: nodejs
          path: tinyjs
        # ------- dependency on DB
          requires:
            - name: tinydb
            - name: hdi-container
        #---------------- exposes SERVICE URL to consumers
          provides:
            - name: tinyjs_api
              properties:
                service_url: ${default-url}
        # ----------------- adds properties as environment variables in XSA
          properties:
            NODE_TLS_REJECT_UNAUTHORIZED: 0
        

        After updating this file, simply run the tinyjs module through the WebIDE and the environment variable will be in the environment of the XSA application.

        Lior

        (0) 
  4. Nehad Elbaz

    Hello,

    Fantastic tutorial, we have been waiting for the IDE for sometime now.

    However, we’re getting error 500 self signed certificate when running the OData. How can we resolve this issue?

    -Nehad

    (0) 
    1. Andrew Lunde

      I found the answer to be disabling SSL of the JS app.

      xs set-env XSA_USER-yourspecificappid-tinyworld-tinyjs NODE_TLS_REJECT_UNAUTHORIZED 0


      xs restart XSA_USER-yourspecificappid-tinyworld-tinyjs


      Thanks to Marc Becker for this.

      (0) 
        1. Lior Okman

          There is a root error here, that the SSL certificates are not properly configured. This error should not have occurred, and it hints to an installation problem on the XSA level.

          The proposed workaround makes the JS application vulnerable to a Man-In-The-Middle attack. It is probably not an issue for an example like TinyWorld, but should be avoided for production scenarios.

          However, if this workaround is performed, then it needs to be performed over and over again each time you stop and start the node.js module in DevX, and then later it adds an additional step that needs to be performed from the CLI by the administrator after this application is deployed outside of WebIDE.

          Instead of using the “xs set-env” command, the property should simply be added to the mta.yaml file. This way the development environment will manage setting this environment variable correctly, and also include this in the application for deployment outside of WebIDE.

          The module for the tinyjs should simply have one more section called properties, with a property called NODE_TLS_REJECT_UNAUTHORIZED and a value of 0. For example:

          modules: - name: tinyjs   type: nodejs   path: tinyjs # ------- dependency on DB   requires:     - name: tinydb     - name: hdi-container #---------------- exposes SERVICE URL to consumers   provides:     - name: tinyjs_api       properties:         service_url: ${default-url} # ----------------- adds properties as environment variables in XSA   properties:     NODE_TLS_REJECT_UNAUTHORIZED: 0 

          After updating this file, simply run the tinyjs module through the WebIDE and the environment variable will be in the environment of the XSA application.

          Lior

          (0) 
    2. Zoya Pronyakova

      Hi Nehad,

      Just to understand your scenario:

      – are you running OData example as provided in the tutorial? If not could you please provide the details of the OData service

      – what linux machine are you using for xsa installation
      for example I am using SUSE Linux Enterprise Server 11 SP2  (x86_64) 

      – i assume you’ve installed xsa SPS11 version, am i right?

      Thanks,

      Zoya

      (0) 
      1. Nehad Elbaz

        Hi Zoya,

        I’m running the OData exactly as in the tutorial. We are using AWS SUSE linux Server 12 (x86_64).

        We have installed XSA and WEB-IDE, DI and XSA Runtime updates before starting the tutorial. The xsjs example works fine, but as the OData didn’t. I’m assuming it’s internal comms ssl issue, which I tried to disable in global.ini to no avail.

        Also noticed server is missing sapsrv_internal.pse key store file.

        Thanks…

        -Nehad

        (0) 
    1. Chaim Bendelac Post author

      Hi Dirk, and thanks,

      OData services require that one of the fields is unique. That is true, and one way to accomplish this, is to define an entry with the “key” keyword. Another way is to specify an auto-key generation in the xsodata specification, which is what I did here.

      Both alternatives should work.

      Chaim

      (0) 
      1. Dirk Raschke

        auto-key”

        Yes, its what I also thought, but the insert of the values failed without the key.

        INSERT INTO “tinyworld::tinyf.country” VALUES (‘Spain’, ‘Europe’);

        (0) 
  5. Gregor Wolf

    Hi Chaim,

    thank you for your great blog series on XSA. I have one suggestion to load SAPUI5 local instead from the public web. Add the following lines to the requires section of the mta.yaml:

    # — requires ui5 to link to local SAPUI5 deployment

        – name: ui5

          group: destinations

          properties:

            name: ui5

            url: http://localhost:8000/sap/ui5/1

    Together with this routes configuration in the xs-app.json:

    {

      “welcomeFile”: “index.html”,

      “authenticationMethod”: “none”,

      “routes”: [

      {

      “source”: “^/sap/ui5/1(.*)$”,

      “target”: “$1”,

      “destination”: “ui5”,

      “csrfProtection”: false

      }

      ]

    }

    You load SAPUI5 from:

    src=”/sap/ui5/1/resources/sap-ui-core.js”

    I’ve tried also the local-destinations.json file as described in the “Developer Guide for SAP HANA XS Advanced Model” but that always caused this error:

    VError: xs-app.json/routes/0: Format validation failed (Route references unknown destination “ui5”)

    Best regards

    Gregor

    (0) 
      1. Gregor Wolf

        Dear Mahesh,

        the first part of my post was a solution. I haven’t checked back on the local-destinations.json possibility. Are you asking about that?

        Best regards
        Gregor

        (0) 
          1. Hong Liu

            I met the issue either. Any solution?

            Build error: Invalid mta.yaml. Make sure that the required module or resource ui5 is defined.

            (0) 
  6. Rakshetha J N

    hi all
    Im having trouble with the xsodata call
    I get this error .

    Internal Server Error - Invalid HANA settings provided. OData services are disabled.

    I wasn’t aware of any setting in HANA earlier.
    I have a monsoon system.
    best regards
    jnr

    (0) 
  7. Swarnava Chatterjee

    Hi All,
    I have setup a HANA Express edition locally and i was trying out the above Tiny World example.
    When i run my odata service, it works correctly and the url looks like https://hxehost:portx/….euro.xsodata/…

    When i deploy the webui module and run the UI, the ui comes up but odata call fails.
    I see that the web module runs on hte url https://hxehost:porty/index.html
    When the web module tries to call the xsodata, it makes a call to https://hxehost:porty…odata  [here hte ports are different than the port where the odata service directly runs]

    I am unable to get the data due to the port mismatch, ideally the app router should have handled this.

    Any help will be highly appreciated.

    Best Regards
    Swarnava

    (0) 
  8. Florian Schneider

    Hi All 🙂

    When I try to run the tinyui as a Webapp at the end of this tutorial step, it says in the console:

    Application is starting
    Application failed to run

    In the Logs there is a more detailed error message:

    {
    message: "Failed to resolve reference for provided property: ed899c73-b258-4fe5-9e6b-93043be52277-tone142iqopg82ep-TinyWorld#tinyjs_api#service_url"
    }

    So obviously, there is an error with resolving the “service-URL”.

    My mta.yaml is valid (I checked it with various YAML Lint-Tools and I can build it in WebIDE) and Looks like the following:´

    _schema-version: '2.0'
    ID: TinyWorld
    description: TinyWorld Tutorial App
    version: 0.0.1
    
    modules:
    - name: tinydb
      type: hdb
      path: ./tinydb
      requires:
      - name: hdi-container
    
    
    - name: tinyjs
      type: nodejs
      path: ./tinyjs
      # ------- dependency on DB  
      requires:
      - name: tinydb
      - name: hdi-container
    #---------------- exposes URL to UI5
      provides:
      - name: tinyjs_api
        properties:
          service_url: ${default-url}
    # ---- 
    
      
    
    - name: tinyui
      type: html5
      path: ./tinyui
      # ------------- requires URL from JS, add to destinations
      requires:
      - name: tinyjs_api
        group: destinations          
        properties:
           name: tinyjs_be            
           url:  ~{service_url}
    # ----
    
    resources:
    - name: hdi-container
      type: com.sap.xs.hdi-container

    My tinyui/xs-app.json Looks like this:

    {
    	"welcomeFile": "index.html",
    	"authenticationMethod": "none",
    	"routes": [{
    		"source": " ^ /euro.xsodata/.*$",
    		"destination": "tinyjs_be"
    	}]
    }

    Does anybody know, what the Problem with resolving is? Or has anybody the same error?=

    Kind Regards,

    Florian

     

     

    (0) 
  9. Wolfgang Weinmann

    Hi,

    I get a screen without data. error message in the log:

     

    5/3/17 8:57:19.000 AM [APP/2735-0] TRC    /node_modules/approuter/lib/utils/uaa-utils.js:27 [] ERROR: Cannot find service uaa in environment. Details: "No service matches uaa"
    5/3/17 8:57:19.000 AM [APP/2735-0] TRC    /node_modules/approuter/lib/utils/uaa-utils.js:27 [] ERROR: Cannot find service uaa in environment. Details: "No service matches uaa"
    5/3/17 8:57:19.529 AM [APP/2735-0] LOG   #2.0#2017 05 03 08:57:19:529#+00:00#ERROR#/Configuration################PLAIN##Cannot find service uaa in environment. Details: "No service matches uaa"#
    5/3/17 8:57:19.539 AM [APP/2735-0] LOG   #2.0#2017 05 03 08:57:19:539#+00:00#ERROR#/Configuration################PLAIN##Cannot find service uaa in environment. Details: "No service matches uaa"#
    5/3/17 8:57:20.000 AM [RTR] OUT    10.79.25.148 - - to vhcalhxedb:51005 "GET /35b7f419-2c18-4ef2-a063-47e5fd009981/appStatus HTTP/1.1" 200 sent 20 in 19 by 009-75d774c4-00f5-42c6-b7b8-45e6fdea8a04
    5/3/17 8:57:23.000 AM [RTR] OUT    10.20.5.186 - - to vhcalhxedb:51005 "GET /index.html HTTP/1.1" 200 sent 748 in 39 by 009-75d774c4-00f5-42c6-b7b8-45e6fdea8a04
    5/3/17 8:57:23.000 AM [RTR] OUT    10.79.25.148 - - to vhcalhxedb:51005 "HEAD / HTTP/1.1" 302 sent 0 in 8 by 009-75d774c4-00f5-42c6-b7b8-45e6fdea8a04
    5/3/17 8:57:23.000 AM [RTR] OUT    10.79.25.148 - - to vhcalhxedb:51005 "HEAD /index.html HTTP/1.1" 200 sent 748 in 6 by 009-75d774c4-00f5-42c6-b7b8-45e6fdea8a04
    5/3/17 8:57:24.000 AM [RTR] OUT    10.20.5.186 - - to vhcalhxedb:51005 "GET /euro.xsodata/$metadata HTTP/1.1" 404 sent 19 in 6 by 009-75d774c4-00f5-42c6-b7b8-45e6fdea8a04
    5/3/17 8:57:25.000 AM [RTR] OUT    10.20.5.186 - - to vhcalhxedb:51005 "GET /euro.xsodata/$metadata HTTP/1.1" 404 sent 19 in 6 by 009-75d774c4-00f5-42c6-b7b8-45e6fdea8a04
    5/3/17 8:57:26.000 AM [RTR] OUT    10.20.5.186 - - to vhcalhxedb:51005 "GET /favicon.ico HTTP/1.1" 404 sent 19 in 7 by 009-75d774c4-00f5-42c6-b7b8-45e6fdea8a04

     

    Somehow the application tries to access the ODATA via port 51005, which leads to error 404. With port 51004 ODATA could be access correctly. Probably this is related to the missing uaa……

     

    I am using HANA Express Edition as CAL on Amazon Web Services and have not changed any settings…..

     

     

     

     

    (1) 
  10. Kapadia Nishith

    Nice blog..

    I created HDB module successfully. Now when I try to create flowgraph or calculation view and select table , I am not able to search any tables in the database. At the time of HDB module creation, I have added SCHEMA name. Any idea why I would not see any tables or views?

     

    Thank you,

    NIshith

     

    (0) 

Leave a Reply