Call Yellowfin Business Intelligence services with C#

james mason shared this question 21 months ago
Answered

Hello All,

I'm trying to use Yellowfin services from my C# code. They are written on Java, so I've enabed JAX services as they recommend.


So JAX services are running at "localhost:8083/webservices/LegacyReportService?wsdl", and I cannot make them work as specified (I'm running RUNDASHBOARDREPORT method of the ReportService in Cassandra)


That's how I use it:

Web References to the YF services running on my localhost:

clcHJV4GQXn50r3NrJAz1BBREqU36i


Here I call the service

public static reportServiceResponse RunDashboardReport(Int32 reportId, Int32 tabId)
    {
        var rq = CreateYfRequest("RUNDASHBOARDREPORT");
        rq.reportId = reportId;
        rq.dashboardTabId = tabId;
        using (var srv = new LegacyReportServiceService())
        {
            var resp = srv.remoteReportCall(rq); // there is no "remoteAdministrationCall" as in the doc
            return resp;
        }
    }


    private static reportServiceRequest CreateYfRequest(String command)
    {
        var rq = new reportServiceRequest
        {
            loginId = "admin@yellowfin.com.au",
            password = "test",
            orgId = 1,    // This is the primary organization
            reportRequest = command
        };
        return rq;
    }
And I get "An exception of type 'System.InvalidOperationException' occurred in System.Xml.dll " when creating

new LegacyReportServiceService()

I've also tried to add it as a Service Reference, but the result is the same.


The YF team sais "We do have clients that are using .net and C# to develop their integration code. ...The support team has confirmed example code provided in development folder in the Yellowfin directory and WSDL code are accurate and are unable to replicate the errors you’ve identified in your original email."


Please help me to find out, what I'm doing wrong

Thanks

Comments (1)

photo
1

Hi James,

I am not incredibly familiar with C# integration, but this error makes it appear like the library is not being loaded properly.

Typically in languages other than Java I will use a SOAP client.

For example in python you would use:

from suds.client import Client 
admin_client = Client(url to the legacy service wsdl, cache=None, faults=False);
person = admin_client.factory.create('administrationPerson') 
Let me know if this helps, if not I can dig around to see if we do have a c# example available (though if it was not provided initially my guess is no)

Regards,

Nathan