Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
I am trying to create a new REST connection through the below mentioned line of code in C#:
var task= location.App(newAppIdentifier,noVersionCheck:true).Session.SendAsync(1,"CreateConnection",null, <<HOW TO Pass the required Json Params here>>);
My code example:
var task= location.App(newAppIdentifier,noVersionCheck:true).Session.SendAsync(1,"CreateConnection",null, new Object[]{qname,qConnectionURL,qType});
Kindly suggest me how to parse the required details into the Param Object[] args field of the Send Async Method?
You rarely use "SendAsync" directly when you work with the SDK as there are C# methods available for all engine API endpoints. In your case you want to use the "CreateConnection" endpoint in this interface:
Something like this:
using (var app = location.App(newAppIdentifier))
{
var connection = new Connection
{
Name = qName,
ConnectionString = qConnectionUrl,
Type = qType
};
app.CreateConnection(connection);
}
If you want to do the operation asynchronously, then you would replace the last line with this:
await app.CreateConnectionAsync(connection);
Hi Yko, I tried replicating your suggestion but , I am getting invalid parameter error.
I am trying to connect to qlikSense server via a C# Console application, the values for qName, qType and qConnectionstring have been tested in the engine-Api-explorer for creating a rest connection
-------->please refer below for the values assigned to the variables:
qname:"rest20";
qConnectionstring="CUSTOM CONNECT TO "+" \\\"provider= QvRestConnector.exe"+";"+"<urldetails>";
qType="QvRestConnector.exe".
Kindly help me resolving the above issue thank you.
I'm afraid I'm not familiar with how to use that endpoint. But from the SDK side it's simply a wrapper for this engine endpoint:
So I guess the problem in this case is to get the settings right for this instance:
https://help.qlik.com/en-US/sense-developer/September2020/APIs/EngineAPI/definitions-Connection.html
I can't really help you there, but what I typically do when I try to figure out what settings to use is to look at the websocket traffic in the browser when I do the operation there. So if you know how to create the connection through Qlik Sense, then open the developer tools in Chrome and check what the message looks like in the websocket traffic when you create it. You should be able to find the call to "CreateConnection" there.
Hi Yko,
I went through the Document link based on which i have rendered the code as mentioned below but on execution iam able to create an app but iam failing to create the rest data source with invalid parameters error
A)CODE FOR CONNECTING TO QLIKSENSE SERVER:
static void Main(string[] args)
{
var uri = new Uri("https://server.domain.com");
ILocation location = SetupConnection(uri);
RestDataSourceCreation(location);
}
private static ILocation SetupConnection(Uri uri)
{
ILocation location = Qlik.Engine.Location.FromUri(uri);
location.AsNtlmUserViaProxy(proxyUsesSsl: true);
return location;
}
---------------------------------------------------------------------------
B)CODE FOR CREATING APP AND CONFIGURING REST DATA SOURCE
private static void RestDataSourceCreation(ILocation location)
{
try
{
using (IHub hub = location.Hub(noVersionCheck: true))
{
string timeStamp = GetTimeStamp(DateTime.Now);
IAppIdentifier newAppIdentifier = location.CreateAppWithName("TestURLDataSourceAPP" + timeStamp);
string qName = "restConnection";
string qType = "QvRestConnector.exe";
string qConnectionString = "CUSTOM CONNECT TO" + " \\\"provider" + "=" + "QvRestConnector.exe" + ";" + "url" + "=" + "http://dummy.restapiexample.com/api/v1/employees;timeout=30;method=GET;httpProtocol=1.1;isKeepAlive=..."";
using (var app = location.App(newAppIdentifier))
{
var connection = new Connection { Name = qName, ConnectionString = qConnectionString.Trim(), Type = qType };
app.CreateConnection(connection);
}
}
}
In the above code iam not sure how to specify the connection string accurately:
1)Should we specify CONNECT TO & PROVIDER?
2)can you kindly suggest on how to specify the URL data source with required properties
I'm afraid I can't help you here. I'm not familiar with how to specify those connector settings. You might want to try an post your question on this forum:
I think you are more likely to find someone there who knows this part of the engine API.
Hi,
In Sense Windows Client communicates with the custom connector to get hold of the connection string.
With this information it can set proper qConnectionString value.