cancel
Showing results for 
Search instead for 
Did you mean: 

how to call an functoin on XSJS from sapui5?

Former Member
0 Kudos

Let's say I have a file myFile.xsjs and I have a function myFunction(param){ ...logic inside}

How can I call this function from sapui5 controller? All the examples I've seen follow this format which doesn't really solve my problem.

jQuery.ajax({
    url : "url/to/your/Service.xsjs?" + query,
    success : function(response) {
        // will be called once the xsjs file sends a response
        console.log(response);
    },
    error : function(e) {
        // will be called in case of any errors:
        console.log(e);
    }
});

In this case there is a parameter being passed but not directly to the function. This casse works fine when you have only a few parameters that are single values. I'm going to have several parameters which are arrays, how can I accomplish this?

references
link1, link2

Accepted Solutions (0)

Answers (1)

Answers (1)

SergioG_TX
Active Contributor

for your scenario, you need to do an AJAX post from your UI and pass your arrays or other parameters to the XSJS service

on the XSJS side - you get query string params as:

var paramHello = $.request.parameters.get("hello");

and you get the body of your post as:

var body = $.request.body.asString();

then you can get the properties of your JSON object..

here is the documentation

https://help.sap.com/viewer/52715f71adba4aaeb480d946c742d1f6/2.0.01/en-US/c6bbca35b7734168ac585c0aef...

hope this helps

Former Member
0 Kudos

This doesn't seem to be working for me. When I run it simply doesn't go beyond that line. When I do var body = $.request.body it runs beyond that line but it doesn't bring the data.
Here is my ajax call

$.ajax({
   url: "../path/tomy/file.xsjs",
   type: "POST",
processData: false, contentType: false,
data: myArray, });
SergioG_TX
Active Contributor
0 Kudos

in your ajax call, your data has to be

data: JSON.stringify(myArray), // make sure you are serializing the object