in ddm-bpm-extension/src/main/java/com/epam/digital/data/platform/bpms/extension/delegate/connector/soap/TrembitaSoapConnectorDelegate.java [99:132]
protected void executeInternal(DelegateExecution execution) throws Exception {
responseVariable.on(execution).set(Spin.XML(Map.of()));
var responseType = responseTypeVariable.from(execution).get();
var trembitaSystemName = systemNameVariable.from(execution).getOrThrow();
var soapAction = trembitaSoapActionVariable.from(execution).getOrThrow();
var payload = payloadVariable.from(execution).getOrThrow();
var contentType = contentTypeVariable.from(execution).getOrThrow();
var registryProperties = getTrembitaRegistryProperties(trembitaSystemName);
var payloadStream = new ByteArrayInputStream(payload.getBytes());
var soapMessage = MessageFactory.newInstance().createMessage(null, payloadStream);
log.debug("Start adding trembita system headers");
addSystemTrembitaHeader(soapMessage, registryProperties, trembitaSystemName);
log.debug("Trembita system headers added successfully");
var payloadOutputStream = new ByteArrayOutputStream();
soapMessage.writeTo(payloadOutputStream);
var payloadString = payloadOutputStream.toString();
log.debug("Start sending soap http request");
var soapHttpResponse = soapHttpConnector.createRequest()
.url(registryProperties.getUrl())
.soapAction(soapAction)
.contentType(contentType)
.payload(payloadString)
.execute();
log.debug("Got response with status: {}", soapHttpResponse.getStatusCode());
var response = STRING_RESPONSE_TYPE.equals(responseType) ? soapHttpResponse.getResponse()
: Spin.XML(soapHttpResponse.getResponse());
responseVariable.on(execution).set(response);
}