Creating odata service

Hello,
We are creating an oData service importing a RFC.
According to RFC, we need to pass some input parameters of one of the output tables, and we use another output table which eventually gets the data list after execution.
Kindly advice, how can we build a OData service following the same.
Thanks & Regards
Ajay

Thank you I have created O data Service but when I try to generate results I am getting the following error:
1. I have generated O data Service on MDX query
2. from gateway if generate output (/sap/opu/odata/sap/Z_TEST_1_SRV/E0IC_C03_0IC_C03_Q0031Results)
It is giving me following error Kindly advice
<?xml version="1.0" encoding="utf-8" ?>
- <error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> 
<code>BRAINOLAPAPI/100</code>  
<message xml:lang="en">Invalid MDX command with ON</message>  
- <innererror> 
<transactionid>7135F6E36BE9F125A022000C294D5782</transactionid>  
- <errordetails> 
- <errordetail> 
<code>BRAINOLAPAPI/100</code>  
<message>Invalid MDX command with ON</message>  
<propertyref />  
<severity>error</severity>  
</errordetail>
- <errordetail> 
<code>/IWBEP/CX_MGW_BUSI_EXCEPTION</code>  
<message>No exception text available</message>  
<propertyref />  
<severity>error</severity>  
</errordetail>
</errordetails>
</innererror>
</error>

Similar Messages

  • Create oData service using oracle Store procedure

    Hello Experts,
    I need to create oData service from oracle store procedure,
    what are the steps to do it.
    We are using SMP Integration gateway.
    Please Suggest.
    Regards
    Manish

    Hello Experts,
    Here is my code to join 2 tables , in debug it does not give error, but it gives on only one table output not merged output.
    Please suggest.
    function processRequestSQL(message) {
      //Import statements
      importPackage(com.sap.gateway.ip.core.customdev.util);
      importPackage(java.util);
      importPackage(org.apache.olingo.odata2.api.edm);
      importPackage(com.sap.gateway.core.ip.component.commons);
      importPackage(org.apache.olingo.odata2.api.uri);
      importPackage(com.sap.gateway.ip.core.customdev.logging);
      //Get the SQL statement contained in message body
      var sqlStatement = message.getBody();
      var uriInfo = message.getHeaders().get(ODataExchangeHeaderProperty.UriInfo.toString());
      var map = new HashMap();
      map = uriInfo.getCustomQueryOptions();
      //Create the query and sub query
      var JOIN_WO_WHERE = "INNER JOIN ZONE ON AREA.AREA_ID = ZONE.AREA_ID ";
      var WHERE = " WHERE ";
      var JOIN = " INNER JOIN ZONE ON AREA.AREA_ID = ZONE.AREA_ID ";
      //Modify the SQL statement
      var modifiedSqlStatement = "";
      var entitySet = uriInfo.getStartEntitySet();
      var odataMethod = message.getHeaders().get(ODataExchangeHeaderProperty.ODataMethod.toString());
      modifiedSqlStatement += sqlStatement;
      if (odataMethod.toString() == "GET_FEED") {
      entitySetName = entitySet.getName();
      if (entitySetName == "AREA") {
      if (sqlStatement.indexOf("WHERE") != -1
      || sqlStatement.indexOf("where") != -1) {
      modifiedSqlStatement += JOIN_WO_WHERE;
      } else {
      // modifiedSqlStatement += WHERE;
      modifiedSqlStatement += JOIN;
      //Set the message body back with the modified SQL statement
      message.setBody(modifiedSqlStatement);
      //Logger
      log.logErrors(LogMessage.TechnicalError, "This is first log");
      //Set the message body back with the modified SQL statement
      message.setBody(modifiedSqlStatement);
      //Logger
      log.logErrors(LogMessage.TechnicalError, "This is first log");
    -------------------End Sample Implementation---------------------------------------
      return message;

  • Classic mode of creating Odata services

    Hi,
    Am new to Odata service and was given a requirement to create notification using Odata service. Our system doesnot support SEGW. Please help me with steps how we can create Odata using classes/methods and how we register the service. Please share a example. However searching on google for more info.
    Regards,
    Vikram.

    Hi,
    Refer How To Write an OData Channel Gateway Service. Part 1 - The Model Provider Class and How to Write an OData Channel Gateway Service. Part 2 - The Runtime Data Provider Class
    Regards,
    Chandra

  • AppBuilder:create oData service

    Hi
    I have an error when I am trying to create a new odata service in appbuilder.
    As you can see below
    I enter the name of my database in the field of name and
    in the field of URL I put the URL that appears when I click on "open service document" in Gateway Management Cockpit, which is http://localhost:8080/gateway/odata/sap/intgwtest;v=1
    But when I press confirm an error message appears:
    How can I solve my problem?
    thank you in advance
    Angeliki

    SAP AppBuilder is a browser-based application development tool for developers to easily build HTML5/JavaScript mobile applications.
    I have an error when I am trying to create a new odata service in appbuilder.
    As far as i know App builder can only consume Odata services to quickly develop few applications. but not to develop Odata services.
    --> If you are working to consume the services with Appbuilder - Please try the opening the URL in the browser to check if any data / metadata is retrieved .

  • Creating OData Service Issue on AppBuilder ?

    HI Experts,
    I have an error when i'm trying to create a New OData Service in AppBuilder.
    Here is the Response getting from Browser using this link
    And in the AppBuilder i'm getting this HTTP Error Now.
    Yesterday i worked on same Service it works, But Now i getting HTTP request failed,
    Here is the Yesterdays Service Response
    How can solve this Issue ?
    thanks in advance,
    Vamsi K.

    Hi Vamsi,
    Please check if there is any proxy enabled / to be enabled
    I just tried with the northwind service and was successful.
    -virinchy

  • How to get nested JSON structure from OData service result

    Hi all,
    This is what I have done :
    I have developed OData service where I am following below steps :
    1. Created Stored procedure for the logic
    2. Created scripted calculation view and call stored procedure from the view.
    3. Created OData Service where I am calling calculation view with multiple parameters.
    Every thing is working fine and I am getting proper JSON Result which all the attributes that I am returning from the view in flatten structure.
    Additional requirement:
    On top of this I have additional requirement where I want to get various aggregation or counts.
    For example : from view I am getting all the customers result as result set and I also want some summary level information along with that such as :
    1. Total Number of Records
    2. Total VIP Customers
    3. Total Individual Customers
    4. Total Business Customers
    Above counts can not be each records level information so I need this details in my OData Service result as separate summary section like nested JSON structure.
    For example :
    d: {
    results: [
    __metadata: {
    uri: "http://servername:8000/testmulti.xsodata/calmultiview1('123456')",
    type: "Cust.Multiview1.calmultiview1Type"
    aggregation: {
    totalrecords: "",
    totalVIPCustomers: "",
    totalIndividualCustomers:"",
    totalbusinesscutomers:""
    ID: "123456",
    ENT_ID: 1234,
    FIRST_NM: "ABC",
    LAST_NM: "XYZ",
    CITY: "DELHI",
    In above example like _metadata , I am asking how to get aggregation section also in the JSON result?
    aggregation: {
    totalrecords: "",
    totalVIPCustomers: "",
    totalIndividualCustomers:"",
    totalbusinesscutomers:""
    Please suggest best possible way to implement this kind of requirements.
    Thanks
    - Dharmesh

    Don't expect that OData can help you for this. Still you can try the following.
    Create a XSJS service where you can execute your procedure manually and get the aggregation as well. From the XSJS , you can loop over the result sets and build your corresponding JSON format. But, you can not implement the features of OData, as the return would be "just" a JSON.
    in any way you can establish an association with your main entity and aggregation entity(I am Sure, the worst case), you can get both in the same payload.
    Sreehari

  • Create a record using SAPUI5 and ODATA Service

    Hi there,
    since SPS6, SAP HANA should allow CRUD operations using an ODATA Service.
    That sounds nice and so I wanted to give it a try.
    I've started by creating a simple table and set up a tiny application that displays the data in a grid (using a JSON Model) and allows to insert new records by entering data into two textfields and save them as a new record to the databse. That works well, the grid shows the records which I have created using the SAP HANA Studio.
    So I wanted to create new records, and the documentation says very clearly how to create a new record.
    I've tried it this way, but when the request is send I get an 501 Not Implemented error.
    Thats the code I'm using in my SAVE-Button:
    btnSave.attachPress(function() {
       var entry = {};
       entry.id = tfUserId.getValue();
       entry.username = tfUserName.getValue();
       oData.create('/tbl_user', entry, null,
       function() {
          alert("Create successful");
       function() {
          alert("Create failed");
    After that I've tried to create a record using the POSTMAN extension for Chrome browser as mentioned in this cool video by Thomas Jung.
    Unfortunately, this also doesn't work for me. After sending the request I get as respone a sap hana xs login window with Status Code 200 instead of a status code "201 created".
    Here's a screenshot:
    I'm using SAP HANA Cloud Trial.
    Anybody got an idea what I'm doing wrong? Or does ODATA CRUD not work an SAP HANA Cloud Trial?
    Many thanks,
    ben

    Hi Jason,
    exactly, it's the logon page returned that is opened when I open the service URL in the browser. After logging on I can see the results of the ODATA service call.
    The URL must be correctly defined, the grid shows up the data from the ODATA Service.
    And yes, the URL looks OK when expecting in Chrome developer tools...
    Thanks,
    ben

  • SEGW : Copy Project vs Redefine(OData Service)

    Dear Friends,
    This is regarding the differences between various modeling approaches in SEGW
    1. An Existing Project ( and Technical Service , say, Parent 1.0 ) is live
    2. A new Project ( and Technical Service , say, Child 1.0) is to be implemented.
    What is the real difference between
    (A) ... copying the existing project "Parent" to  "Child" and publishing the Technical service as "Child 1.0"
    (B) ...copying the existing project "Parent" to  "Child" and publishing the Technical service as "Parent 2.0"
    (C) ...Redefining the "Parent 1.0" in a new project "Child" and "Overwrite Base/Extend the Service" ...which publishes the Technical Service as "Parent 1.0"
    (D) ...Redefining the "Parent 1.0" in a new project "Child" ..without "Overwrite Base/Extend the Service" .. and publish the Technical Service as "Child 1.0"
    In other words, what really is the idea of "Redefine >OData Service (GW)" ...( with / without "Overwrite Base/Extend the Service" )
    Many thanks for your patience
    Suresh

    Hi Suresh,
    by copying the project you create a complete independent new project, which does not have any relation to the original project. The runtime objects (model provider classes and data provider classes) are independent from those of the first project.
    By redefining the project you can select which entities and which associations you want to use in your child project. Those redefined objects can't be changed in the child project, you only can redefine names and labels. On the other hand if you change any of the redefined object attributes in the parent project the changes will also be available in the child project.
    And the data provider class of the child project inherits from the one of the parent project.
    So you have a real parent-child relationship.
    Redefining with option "Extend" means to add objects of the parent project, which haven't been redefined before.
    Redefining with option "Overwrite" means to redo the redefinition. All redefinitions done earlier will be overwritten. Objects which had been redefined before, but are not selected in the new redefinition will be deleted from the child project.
    Hope that makes it a little bit clearer.
    Regards,
    Juergen

  • Error while running an Odata service in Advanced Rest Client

    Hi Experts,
    We have created one simple OData model (using Integration gateway) with datasource as SOAP web service. We are able to test the SOAP Web service in STORM tool and getting desired response. But when we run the converted OData URL in Advanced REST Client we are getting the following exceptions/errors.
    Could not send message
    Also, while looking at SMP3 server log, we came across below error logs:
    +0530#ERROR#com.sap.gateway.core.ip.odata.ODataErrorCallbackImpl##anonymous#http-bio-8080-exec-1###handleError(): failed to serve request for URI http://<ip>:8080/gateway/odata/sap/REL2;v=1/GetUserDets(Applid='****',Applpwd='****',Fund='***',Userid='****.***@gmail.com',Password='***@1234'), message = Could not instantiate data provider based on class null |
    +0530#ERROR#com.sap.gateway.core.ip.runtime.PathInfoExtractor##anonymous#http-bio-8080-exec-1###null java.lang.IllegalArgumentException: null
    Any help?
    Regards,
    JK

    Jitendra Kansal
    After updating my DB and do the ODATA service after completion of that hit the server in chrome it shows error like
    <error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
    <code/> 
    <message xml:lang="en"> 
    Could not instantiate data provider based on class null
    </message>
    </error>
    expet that service i did another one it is working fine using the same server with out set the proxy

  • Error while consuming Odata service from Gateway client i.e /iwfnd/gw_client

    Hello Experts.
       I am facing below an error while consuming the Odata service from GW client... The error is "No service found for the namespace /IWFND/,name ZTEST_STOREROOM_SRV,version 001". Even i have tried to deep dive in /IWFND/Error_log but no use..
      Actually what I was doing :- My aim is to connect multiple back end systems in the same server with the help of Aliasing concept.. I have created multiple aliases and added in the /IWFND/MAINT_Service transaction.. but i am not getting how to consume the service..
       I have followed the solution upto some extent in the link => Multiple Origin Composition - SAP NetWeaver Gateway Foundation (SAP_GWFND) - SAP Library
      Can you please let me know how to resolve this.. Also please let me know, the syntax for the URI...
      Your help is highly appreciated..
      Please find the screenshot attached.
    Thanks,
    Srinivas.

    Hello @Nrisimhanadh_Yandamuri
      Thanks for your reply..
      I have got all the required authorization.. But still I am not able to hit the service.. Please let me know what could be the solution..
    Thanks,
    Srinivas.

  • Getting Error while accessing the data using odata service

    Hi All,
    Iam new to SAP FIORI. 
    Iam getting the below error while accessing the data using odata service.
    "Failed to load resource: the server responded with a status of 404 (Not found)"
    "No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin "
    i have tried all the solutions like changing the url pattern "proxy/htttp".
    and disabled - security in chrome (Chrome is Updated version).
    i tried with IE still got the same problem.
    And installed all the required software in eclipse
    While installing GWPA plugin i got the following error.
    let me know if any one have idea.
    Thanks in advance.

    > Do you want to add and/or update the data in the already existing tables or do you want to replace the content completely?
    >
    > so in that way :
    > bot the options are fine what ever take less time.
    Sorry mate, but YOU have to know what you want here.
    I gave you an easy to follow set of steps.
    As you don't seam to mind the outcome, just might just use them...
    > I wanted to know weathe i can use the  loadercli for thie export import or not? if yes then is there any new steps to do before i do the export import?
    We had this discussion before...
    >
    > For that the easiest option would be just to drop the tables of SAPR3 and run the import again.
    >
    > For ease of use you could also just do:
    > - logon as superdba
    > - drop user SAPR3
    > - create user SAPR3 password SOMEPW not exclusive dba
    >
    > After these steps you can easily pump the data into the database again.
    >
    > So here in th above given steps , i am creating a new SAPR3 user and why it is not exclusive dba ?
    >  i already have that user SAPR3 can i use the same.
    Yes, you do have the SAPR3 user.
    But you don't seem to like to read documentation or learn about how the tools work or anything like that.
    Therefore I gave you s simple way to reach your goal.
    Of course it's possible to reuse the user.
    But then you would have to deal with already existing tables, already existing data etc.
    You don't seem to be able to do that. So, the easy steps might be better suited for your needs.
    regards,
    Lars

  • Anyone been able to get the sap.ca.ui.FileUpload control working with a Gateway OData service?

    Hi,
    I have been trying to get the sap.ca.ui.FileUpload control working with an OData Gateway service, specifically /IWPGW/TASKPROCESSING which is the service used by both Fiori Approve Requests and the Unified Inbox.
    I have looked at the sample application in the Explored at SAPUI5 Explored
    I have managed to replicate that and get it to work, but as soon as I switch it from a JSONModel to an ODataModel I get javascript errors from within the setModel method of the control. I have redefined that method and corrected the errors, which enables me to get a bit further, but then I hit more errors, and other strange behaviour.
    Either I am doing something completely wrong, or to me it appears as if this control is still extremely buggy and maybe either not designed to work with an ODataModel, or just hasn't been tested using an ODataModel. I'm hoping it is my mistake.
    So has anybody out there successfully managed to use this control connecting it to a Gateway OData service? If so please share your experience.
    Thanks,
    Brad

    Hi Pauline,
    Same issue I had, I switched to using a sap.m.list and handling the press as follows:
    attachmentsList.bindItems(workItemPath + "/Attachments", new sap.m.StandardListItem({
                               type: sap.m.ListType.Active,
                               title: "{FileName}",
                               description: "{CreatedByName}",
                               icon: "sap-icon://doc-attachment",
    //                         counter: "{FileSize}",
                          info: {path : "CreatedAt", formatter: dateTimeFormatter},
                          tap: function(oEvent){
                                var oContext = oEvent.getSource().getBindingContext();
                                var media_src = oContext.getProperty().__metadata.media_src;
                                sap.m.URLHelper.redirect(media_src, true);
                        }), new sap.ui.model.Sorter("CreatedAt", true));
    So sap.m.URLHelper.redirect(media_src, true); is what loads the attachment.
    See the full function handler:
    function(oEvent){
    function(oEvent){
                  var oContext = oEvent.getSource().getBindingContext();
                  var media_src = oContext.getProperty().__metadata.media_src;
            sap.m.URLHelper.redirect(media_src, true);
    This should be enough if you only want to list and display the attachments, then you don't really need the FileUploader control as that is more advanced and handles upload, display, change and deletion of files.
    I only needed to upload and display files, so I used a list to display it and created a separate upload button using the sap.ui.unified.FileUploader control.
    Hope that helps.
    Cheers,
    Brad

  • Consume OData service in SUP 2.1.3

    Hello,
    How to consume of OData service in SUP 2.1.3 for creating MBO for HWC?
    Our OData service is having mandatory filters which needs to be passed.
    http://xxx:8000/sap/opu/odata/sap/Z_TEST_V2_SRV/Entity_Set_Name/?$filter=Filter1 eq 'value1'and Filter2 eq 'value2'
    So, while creating XSD from XML should we need to use the above URL or http://xxx:8000/sap/opu/odata/sap/Z_TEST_V2_SRV/?$format=xml
    If we are using http://xxx:8000/sap/opu/odata/sap/Z_TEST_V2_SRV/?$format=xml and convert it in XSD then we are not able to see FEED in the MBO creation.
    Also, if we are using http://xxx:8000/sap/opu/odata/sap/Z_TEST_V2_SRV/Entity_Set_Name/?$filter=Filter1 eq 'value1'and Filter2 eq 'value2' and convert it into XSD then we are able to see the FEED in MBO creation but while choosing the fields it is throwing us java.lang.nullpointer exception.
    Can anyone explain us the solution for the problem?
    Regards,
    Rahul

    Is there a particular reason why SUP 2.1.3 is used and not the latest 2.3.4?  It is recommended to move to the most recent version if possible/new project.
    For HWC consuming OData service, you can connect directly from your JavaScript without using MBOs.  Please take a look at this link:
    Develop OData-based Hybrid Apps
    Thanks,
    Andrew.

  • Binding to Odata Service with Input Parameters from HANA

    Hello,
    I'm developing a UI5 application that consumes a SAP HANA OData service to search a database (using fuzzy search). This service receives an Input Parameter, used to query the database.
    So every time the user searches for something I build a new binding path and refresh the model to show the search results in the sap.m.List.
    The Model:
    var hanaModel =  new sap.ui.model.odata.ODataModel("…/services/seed.xsodata");
    this.setModel(hanaModel);
    The search event handler from sap.m.SearchField:
    var listBinding = this.getView().byId("list").getBinding("items");
    listBinding.sPath = "/FoodstuffByNameValuesParameters(P_NAME='" + searchString + "')/Results";
    this.getView().getModel().refresh();
    My question is if this is the correct approach to create the model and bind the list when we have a service with an Input Parameter, or if there is a better way to do it.
    (This approach is actually working).
    Regards,
    Paulo

    i would do
    var       filter = [];
    var selectFilter = new sap.ui.model.Filter("name", sap.ui.model.FilterOperator.Contains, sVal);
          filter.push(selectFilter);
    listBinding .filter(filter);

  • SUP 2.1.3 MBO creation using ODATA service

    Hi All,
    I am using SUP 2.1.3 and trying to consume OData service created using SEGW transaction on gateway. following an older document i moved ahead by creating XSD files from the XML file.
    But,after uploading the XSD file , i chose the root element as 'feed' .
    After this , one XSLT file is generated automatically.
    But , when I click the XSLT file to edit , it shows error saying  'java.lang.NullPointerException' .
    I have to follow the methodology of creating MBO's using OData service and then deploying it on server.
    Please help me to move ahead with ODATA service in SUP 2.1.3 version. 
    Appreciate your quick help and assistance on this.
    Regards
    Rahul

    Hi
    If i ignore the Null exception error and move ahead with the XSLT format and preview the data source i receive the below error:
    Execution failed: HTTP status code is [401], expected [200]; response body is [<html><head><title>Logon Error Message</title><META http-equiv="Content-Type" content="text/html;charset=UTF-8"><style type="text/css">body { font-family:tahoma,helvetica,sans-serif;color:#333333;background-color:#FFFFFF; }td { font-family:tahoma,helvetica,sans-serif;font-size:70%;color:#333333; }h1 { font-family:tahoma,helvetica,sans-serif;font-size:160%;font-weight:bold;margin-top:15px;margin-bottom:3px;color:#003366; }h2 { font-family:verdana,helvetica,sans-serif;font-size:120%;font-style:italic;font-weight:bold;margin-top:6px;margin-bottom:6px;color:#999900; }p { font-family:tahoma,helvetica,sans-serif;color:#333333;margin-top:4px;margin-bottom:4px; }ul { font-family:tahoma,helvetica,sans-serif;color:#333333;list-style-type:square;margin-top:8px;margin-bottom:8px; }li { font-family:tahoma,helvetica,sans-serif;color:#33333;margin-top:4px; }.emphasize { color:#333333;background-color:#C8E3FF;padding:5px;}.note { color:#CC6600; }a { font-family:tahoma,helvetica,sans-serif;text-decoration:underline;color:#336699; }a:visited { color:#001166; }a:hover { text-decoration:none; }</style></head><body><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td><h1>Anmeldung fehlgeschlagen</h1><br><h2>Was ist passiert ?</h2><p>Der Aufruf der URL http://10.5.1.150:8000/sap/opu/odata/sap/ZCM_TEST_V5_SRV/PayrqSet/ wurde aufgrund fehlerhafter Anmeldedaten abgebrochen.</p></td></tr><tr><td> </td></tr><tr><td class="emphasize"><strong>Hinweis</strong><br>Die Anmeldung wurde im System GWD ausgeführt. Hierbei wurden keine Anmeldedaten bereitgestellt.</td></tr><tr><td> </td></tr><tr><td><p>  </p><h2>Was können Sie tun ?</h2><ul><li> Falls Sie noch über keine Benutzerkennung verfügen, so wenden Sie sich an Ihren Systemadministrator. </li></ul></br><p class="note">Fehlercode: ICF-LE-http-c:001-l:-T:-C:6-U:-P:-L:6-X:CBC8A013038D1EE486AE76E3D8B54E1D_CBC8A013038D1EE486AE76E3D3D34E1D_1-x:B77319E4C51EF1AFAE1DCBC8A013038D</p></br><p> HTTP 401 - Unauthorized</br><p> Ihr SAP Internet Communication Framework Team</p></td></tr></table></body></html>
    Please let me know if anyone has worked on ODATA+MBO+SUP2.1.3. I know this is not the recommended approach but i have to follow this scenario and i know it can be achieved through this approach. JUst need your assistance experts.
    Thanks & Regards
    Rahul

Maybe you are looking for