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