Question
· Oct 11, 2017

Deployment package does not automatically include Soap Webclients

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 process.

The concerned classes are both extend to %Soap.WebClient and are used by two %Ens.BusinessOperation that have methods that invoke methods in the WebClients. The webclient-classes were automatically generated via SOAP import. Here is an excerpt of one of the business operations:

Class SalesForce.Custom.SoapClient Extends Ens.BusinessOperation
{

Parameter ADAPTER = "EnsLib.SOAP.OutboundAdapter";

Property Adapter As EnsLib.SOAP.OutboundAdapter;

Parameter INVOCATION = "Queue";

Method CreateAccount(pRequest As SalesForce.Custom.Request.CreateAccountRequest, Output pResponse As SalesForce.Response.createResponse) As %Library.Status
{
 Set ..Adapter.WebServiceClientClass = "SalesForce.WebClient.Soap"
 
 Set header=##class(SalesForce.tns.SessionHeader).%New()
 Set header.sessionId = pRequest.SessionId
 Do ..Adapter.%Client.HeadersOut.SetAt(header, "SalesForce.tns.SessionHeader")
 
 Set tSC = ..Adapter.InvokeMethod("create",.result,pRequest.Accounts) Quit:$$$ISERR(tSC) tSC
 Set tSC = pRequest.NewResponse(.pResponse) Quit:$$$ISERR(tSC) tSC
 Set pResponse.result=$get(result)
 Quit $$$OK
}

....

Discussion (1)1
Log in or sign up to continue