Question Tom Philippi · Jan 31, 2018

I am running InterSystems Ensemble 2016.2 on ubuntu and trying to connect to a remote MS SQL server database.

Insofar, I have successfully configured my ubuntu machine to connect to the remote MS SQL server database using unix-odbc. That is:

  • Telnet connection works
  • tsql (test sql) connection works
  • isql command succesfully connects to sql server and I am able to execute queries on ubuntu.
  • The DSN for the isql command are defined in /etc/odbc.ini and /etc/odbcinst.ini and should be available systemwide.
  • The DSN in the odbcinst.ini uses the microsoft odbc driver 13 for Sql Server for linux. 
1
0 734
Question Tom Philippi · Jan 17, 2018

We are trying to make an ODBC connection via our intersystems ensemble (2016.2 running on ubuntu). However, when I am testing the connection I receive a pop-up that: "Http object response incomplete or invalid.0,#R". Note that the iodbctrace.log remains empty (and it is working because on the first try it registered a 459 error that I should activate kerberos, which I did). Any advise where I should look?
I have taken the following actions:

1. Expand the cacheodbc.ini in the mgr directory as follows:

5
0 1674
Question Tom Philippi · Jan 8, 2018

I have a database which needs to be synced to another system and considering to use the SQL Inbound adapter to 'watch' the database. The other system, however, has a bulk API so I'd prefer to send multiple SQL rows in a single message to that system. The SQL Inbound adapter seems to trigger a single call (to a process or business operation) per SQL-row. However, the documentation here: http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY… in example 5 seems to suggest that if I exclude a KeyFieldName I get multiple rows in my

3
0 823
Question Tom Philippi · Dec 13, 2017

Recently viewed a demo on the new Dynamic Objects in InterSystems (we are still running 2016.1); together with the upcoming IRIS data platform I started thinking about possibilities of building dynamic databases. That is, I can imagine some projects were it might be really nice to store dynamic objects and then run sql queries on them without ever defining the fields of the dynamic objects (i.e. not at storage, but only if you run your sql query). If there is any system where this might be possible it is InterSystems Cache.  Of course, Ithis might not be a good idea for an entirety of reasons,

3
0 825
Question Tom Philippi · Nov 27, 2017

I am calling a business rule from one of my business processes and I noticed that when the business rule reports an error that the business process calling that rule just stops without any errors. Resultingly it fails to trigger the scope - catch-all construction that is surrounding the business rule. I know that it is possible to view the errors in business rules in the business rules log, but I really like to push an error message to Ens.Alert or something similar when my business rules report an error. How do I achieve that?

2
0 361
Question Tom Philippi · Nov 27, 2017

How do I set an URL when I post a httpRequest via SendFormArray of my Ensemble Business Operation. Here is my code: 

Class CareHome.RestApiClient Extends EnsLib.REST.Operation
{
Parameter INVOCATION = "Queue";
Method Login(pRequest As CareHome.Request.LoginRequest, Output pResponse As Ens.StringResponse)
{

set tURL = ..Adapter.URL_"login/login"

1
0 924
Question Tom Philippi · Nov 23, 2017

I have an Ensemble installation and just build my first RestService (using %CSP.Rest that forwards them to my Business Service). This works nice and fine when I use postman to make REST calls over http (port 57772). However when I attempt to make a request using https over port 443 I receive the following error:

7
0 965
Question Tom Philippi · Nov 7, 2017

I have an Ensemble installation with an FTP business operation which I would like to connect to a server over SSL in explicit mode (see also: https://www.rebex.net/kb/tls-ssl-explicit-implicit/default.aspx). I keep running into timeouts while attempting to do this via Ensemble. Does Ensemble actually support SSL in explicit mode??? Because I can't seem to find any setting where to switch it on.

1
0 592
Question Tom Philippi · Oct 11, 2017

I just deployed my production from test to acceptance but I found that the deployment misses some Soap Webclient classes which are used by my business operation components. I have used the management portal to create the deployment (i.e. production settings -> Export) and I expected that all classes used by the production were automatically included. Apparantly, that is not the case. Is this default behaviour for Ensemble? And can I somehow force Ensemble to automatically include these classes? I now have to manually select these operations to add them to the export and that is an error prone

1
0 329
Question Tom Philippi · Aug 23, 2017

I have a call in a business process that returns a response which may contain a collection of error message. I use the following code in my response builder to extract the messge value from the first error and map them to a context variable:

Set    context.ErrorMessage   callresponse.result.GetAt(1).errors.GetAt(1).message

2
0 374
Question Tom Philippi · Aug 16, 2017

So I have an ensemble soap client which I use to send a message. The target web service is, however, giving a soapfault stating that my message misses the "SoapAction http header".

When I copy paste the message from my Cache Soap Log and fire it from Soap UI I get a proper response from the target web service. This suggests that my intersystems installation is somehow not including or losing some http headers. 

I am running Ensemble 2016.2 SUSE on an ubuntu machine.

Here is the InterSystems message with the http headers from Soap UI:

2
0 1058
Question Tom Philippi · Aug 16, 2017

I'd like to access and view the soap log. Apparently there is a global for that (^ISCSOAP) (http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…), but insofar I have been unsuccessful finding the exact cache command for viewing the soap log or changing it so that it logs both incoming and outgoing traffic. Can anyone enlighten me?

I.e. I am trying stuff like:

set ^ISCSOAP("Log") = io   

write ^ISCSOAP("Log)

but those don't work.

5
1 4368
Question Tom Philippi · Aug 15, 2017

I have an imported WSDL from SalesForce and I am trying to send a login-request to the SalesForce-servers via InterSystems. The login requires a username and a password in the body, and an organizationId in the header. I am having trouble filling the organizationId in the header.

Via SoapUI I can send a successfull message to the SalesForce-servers. The message should look like this:

4
0 3124
Question Tom Philippi · Aug 14, 2017

I am trying to import the SalesForce Enterprise WSDL in InterSystems Ensemble Studio using the SOAP Add-In. However, when I do so I receive a class dependency loop, Error #5316 during compilation. The WSDL is the standard WSDL provided with SalesForce and works fine in SoapUI. In the SalesForce WSDL it is allowed for an object A to include an object B as an element, while at the same time object B is allowed object A as an element. I think this is what causes the class dependency loop for InterSystems. Does anyone has any suggestion how I can circumvent this error? Rewriting the WSDL is not an

7
0 844
Question Tom Philippi · Aug 7, 2017

Okay, so I ran into a rather odd bug. I have a remote test machine (tst-intersystems) running for which I accidently opened a lot of windows in my Studio (i.e. 500+). The result is that the studio runs out of memory and crashes. Now, every time I try to connect to this remote machine studio immediately attempts to open all windows effectively not allowing me to start studio anymore.

2
0 715
Question Tom Philippi · May 9, 2017

I'd like to have production specific settings for different environments (OTAP). I have set the system default settings on my production to override the default settings. However, this does not seem to work. It is my understanding that the system default settings override the settings I have set on the production (I thought I heard my Sales Engineer say this). However, reading the documentation I am not sure of this reading either. However, when I clear the values for the adapters on my production my system default settings are still not apply.

8
0 1082
Question Tom Philippi · Apr 20, 2017

We are in the process of setting enabling SSL on a soap web service exposed via InterSystems, but are running into trouble. We have installed our certificates on our webserver (Apache 2.4) and enabled SSL over the default port 57772. However, we now get an error when sending a soap message to the web service (it used to work over http). Specifically the CSP gateway refuses to route te emssage the soap web service:

1
0 1242
Question Tom Philippi · Apr 18, 2017

I have built an Ensemble SOAP service (EnsLib.SoapService.Service) as a business service which accepts soap requests from another application. To secure the traffic between the SOAP service and the application i'd like to enable SSL. I see that in the management portal I can upload the certificates, chains and keys and save them as an SSL / TLS configuration. However, it is not clear to me how I apply this SSL / TLS configurtion to the soap service I am running. I would expect something under Security -> Applications -> Web Applications or even on the business service running in production 

2
0 1823
Question Tom Philippi · Mar 18, 2017

I have a Enslib.REST.operation which I want to use to send a JSON message. In Ensemble I am using the request message to the Business operation as an input for ObjectToJsonStream function so I can send it out (this is the way to go right?). However, I am now running into the fact that one of the attributes (template_name) contains an underscore and that I am not allowed to use the underscore to define the property in my ensemble RequestMessage:

Property template_name As %String;

What's the best way to resolve this?

1
0 425
Question Tom Philippi · Mar 15, 2017

I am relatively new to ensemble, but I am trying to build a REST operation using the enslib.Rest.Operation but I can't seem to get it to work at all. I am completely at loss here because the errors I am receiving are very unclear. I have tried a few different variants using PostURL and SendFormDataArray but I got errors on all variants. Suggestions are welcome.

The call I am trying to product is a simple ping message to the Mandrill APIat https://mandrillapp.com/API/1.0/users/ping.json (for more details see: https://mandrillapp.com/api/docs/users.JSON.html#method=ping).

2
0 1090
Question Tom Philippi · Feb 20, 2017

I have a business operation in an ensemble production to which I can send a test message which requires a date input. However, I can not seem to find out how I write the date in the test message. 1980-01-01, 01-01-1980, 50000 (cache integer encoding). But I constantly get an error:  <ZODAT> zDateOfBirthDisplayToLogical+1^Ckey.Customer.1

2
0 642
Question Tom Philippi · Feb 16, 2017

I have one Ensemble EnsLib.File.OutboundAdapter which has several methods, each writing a different file. In my Ensemble Production I have configured this FileAdapter to write to a certain directory, but i'd rather have each method write to a different (sub)directory instead of writing all files to the same directory. How can I achieve that without splitting the methods into different business operations?

The current code just sets the filename and the output:

set tSC = ..Adapter.PutString(filename,output)

3
0 629