Monday, 27 January 2020

Common Errors and Fix – XSA Web IDE for HANA developments

When I started building objects in Web IDE for HANA on XS Advanced server, there are quite a few number of errors during build or deployment of the objects in HANA. I found answers to those errors in SAP Community forums and that was very helpful. Then I thought of consolidating those common errors and the resolutions at one place in this technical document.

Error #1: When trying to build any object in the MTA project, failed with an error, No Space is defined for the project.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Root Cause and Fix: MTA project developments need a space to store the objects in database, so an organization’s space of XS Advanced must be assigned to MTA project. This can be done, project settings menu — > Select the required space from the available list.

Note: Do not select SAP space, because it is used for standard XS applications and services. Choose the one created by you, for example “Dev”.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Error #2: When I am trying to assign a space to a project, get an error “Could not retrieve a list of spaces” as shown in the below picture.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Root Cause and Fix: It is because user SSURAMPALLY is not added as a member in that space. Go to XS advanced cockpit, select the space and then add members and provide the user name SSURAMPALLY.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Error #3: When I am trying to build a database module object, process failed with an error “Object has to be prefixed with name space”.

In this example, I create a column table “Employee” as .hdbtable object in a DB module, when tried to build it, failed with the below error shown in the Picture.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Root Cause and Fix:  Build failed due to the configuration in .hdinamespace file, it has a name which is made of Project and DB module names. So with that, any design time object must be prefixed with this name. Usually name space is required to uniquely represent the object if there is a possibility that there could be multiple objects with same name in different folders or modules.

Fix1: Column table name will be prefixed with the name space as shown in the below picture.

Fix2: You can also delete the name space file completely, if you feel that there is no possibility of having duplicate names in the project, in this case no name space prefix required and the  build will not fail. I usually prefer this option, delete the .hdinamespace file when I start working on a MTA project.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Error #4: When trying to build a DB module object, failed with an error “Data version only supports build plug in Version 2.0.xx or lower”, as shown in the below picture.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Root Cause and fix: While Creating the DB module, database version is chosen as HANA 2.0 SP 4, however my current DB version is HANA 2.0 SP 3, So build failed with an error due to build plug in support. The plug in version can be seen in .hdiconfig file as shown in the below picture.

Fix: update the plug in version with 2.0.33 or lower, so that it does not get any compatibility issue. XSA is backward compatible, so you can go as lower as 1.0.11 also.

Error #5: When I am trying to build a calculation view, failed with an error, “the file requires xxxx which is not provided by any file.

In this case, I am creating a simple calculation view using 2 DB tables, EMPLOYEE and EMPLOYEE_SALARY.  EMPLOYEE table is created as design time object, in Database DB module, EMPLOYEE_SALARY table is created directly in the DB explorer as run time object using SQL console. Therefore, build of the calculation view failed with the error shown in below picture.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Root Cause and Fix: EMPLOYEE_SALARY table exists as DB table in the system, but it is not part of design time object of the MTA project and DB module. So that, build of calculation view is happening in design time and it requires the EMPLOYEE_SALARY table definition as the design time object.

So Create the EMPLOYEE_SALARY table as .hdbtable in Database module of MTA, then try to build the CV, it should be successful.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Error #6: When I try to build the .hdbgrants file in a DB module which has custom user provided service to connect to Classic Schema, failed with error ‘Service not found’ as shown in below picture.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Root cause and Fix: Custom user provided service to access external objects has been created with name cross-schema-service, it has SERVICE_REPLACEMENTS configuration in mta.yaml file to get the service name dynamically based on environment.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

So I will have to use either the hardcoded service name or key in the SERVICE_REPLACEMENTS as highlighted in the above picture.

Error #7: Mixing up the Tenants for Object creation and Custom user provided service creation.

When I try to build the db module failed with error in .hdbgrants file about Invalid user name #OO and error in .hdbgrants file as shown in below picture.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Root cause and Fix: Database module objects are mapped to a space and then further they are getting deployed to one of the tenants, sometimes, if you properly did not configure in tenant and space mapping correctly, it goes to SYSTEM DB. On the other side, Customer provided service is created on HXE tenant DB, as an external connection established. 

So with that, when you trying to access HXE tenant objects for the objects in SYSTEM DB, .hddbgrants can’t be successful. So we will make to sure to use correct tenant for CUPS and the current db module developments.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Note: if you have more tenants, make sure you give the right PORT number to connect to that tenant.

Error #8: Build of the DB module failed with error, unable to grant the access on DB role to #OO user or Calculation view can’t display data out.

In this case, I have shown a calculation view which has synonym that is created on a target table which is available in Classic database., there is a DB role which provides the access to that target table, the service creation user (SSURAMPALLY) has already got the access to that schema. When the data display on the calculation view gives an error message as shown below. Or you could notice that, build failed with unable to grant access on role to #OO users.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Root Cause and Fix:  The DB access role created in classic Database is not enabled to have Grantable to others, so with that schema access on classic DB did not get passed to Container object owner #OO.  So you must select the Grantable to other users option as shown in below picture.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Error #9: Accessing a DB table of HDI container in Classic Database failed with authorization error.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Root Cause and Fix: By default, HDI container objects are isolated and can’t be directly accessed in classic database. In order to provide the access, following procedure must be run in Admin console of HDI container in DB Explorer.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Error #10: Building a MTA project, giving the message that .mtar file has been generated instead of build completed successfully.

SAP HANA Tutorials and Material, SAP HANA Learning, SAP HANA Guides, SAP HANA Prep, SAP HANA Certifications

Root Cause: Selecting the MTA project and Choose Build is not a regular activation of objects in different modules of MTA. It makes an .mtar file generation which is for cleaner deployment. In other case, when individuals modules build is a private build and only specific to developer container. So make sure, you have built all the modules in MTA before you generate Archive file. This archive file can be used by other developers and make further changes to continue development.

No comments:

Post a Comment