# SOAP V1 (Descontinuado)

{% hint style="warning" %}
O SOAP V1 foi descontinuado e não é mais atualizado. Consulte as documentações das versões mais recentes da *feature*: [SOAP V2](https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/web-protocols/soap-v2) e [SOAP V3](https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/web-protocols/soap-v3).
{% endhint %}

O **SOAP V1** invoca SOAP *endpoints* de um *pipeline*. Ele utiliza um *template* Apache FreeMarker para gerar a mensagem de solicitação SOAP e converte a resposta de SOAP para JSON, tentando ao máximo não corromper a conversão.

## Parâmetros&#x20;

Dê uma olhada nas opções de configuração do componente. Parâmetros suportados por [expressões Double Braces](https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/double-braces/overview) estão marcados com (DB).

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor Padrão</th><th>Tipo de Dado</th></tr></thead><tbody><tr><td><strong>URL</strong></td><td>URL a ser chamada - pode conter os parâmetros seguindo o padrão {:param1}, que serão substituídos pela propriedade correspondente da mensagem de entrada.</td><td>-</td><td><em>String</em></td></tr><tr><td><strong>Content Type</strong></td><td>Configura o Content Type e a codificação.</td><td>-</td><td><em>String</em></td></tr><tr><td><strong>SOAP Action</strong></td><td><em>Header</em> de chamada XML.</td><td>-</td><td><em>String</em></td></tr><tr><td><strong>Account</strong></td><td>Conta a ser utilizada pelo componente.</td><td>-</td><td><em>String</em></td></tr><tr><td><strong>Template</strong></td><td><em>Template</em> Apache FreeMarker para que a mensagem SOAP seja enviada na solicitação.</td><td>-</td><td><em>String</em></td></tr><tr><td><strong>Connection Timeout</strong></td><td>Tempo de expiração da conexão (em milissegundos).</td><td>-</td><td><em>Integer</em></td></tr><tr><td><strong>Reading Timeout</strong></td><td>Tempo máximo para leitura (em milissegundos).</td><td>-</td><td><em>Integer</em></td></tr><tr><td><strong>Stop On Client Error</strong></td><td>Se ativada, a opção vai gerar um erro para suspender a execução do <em>pipeline</em>.</td><td>-</td><td><em>Boolean</em></td></tr><tr><td><strong>Stop On Server Error</strong></td><td>Se ativada, a opção vai gerar um erro para suspender a execução do <em>pipeline</em>.</td><td>-</td><td><em>Boolean</em></td></tr><tr><td><strong>Advanced Settings</strong></td><td>Configurações avançadas.</td><td>-</td><td>-</td></tr><tr><td><strong>Allow Insecure Calls To HTTPS Endpoints</strong></td><td>Quando ativada, a opção permite que chamadas não seguras a <em>endpoints</em> HTTPS sejam feitas.</td><td>-</td><td><em>Boolean</em></td></tr><tr><td><strong>Enable Retries</strong></td><td>Quando ativada, a opção permite que sejam feitas novas tentativas.</td><td>-</td><td><em>Boolean</em></td></tr><tr><td><strong>Maximum Number Of Retries Before Giving Up</strong></td><td>Número máximo de tentativas antes de desistir da chamada.</td><td>-</td><td><em>Integer</em></td></tr><tr><td><strong>Time To Wait Before Each Retry</strong></td><td>Tempo máximo entre tentativas (em milissegundos).</td><td>-</td><td><em>Integer</em></td></tr></tbody></table>

## Fluxo de Mensagens <a href="#fluxo-de-mensagens" id="fluxo-de-mensagens"></a>

### Entrada <a href="#entrada" id="entrada"></a>

O componente espera uma mensagem no seguinte formato:

```
{
	header: {
		"headerA":"valueA",
		"headerB":"valueB"
	},
	body: {
		// message structure that will be replaced by the Dust template
}
```

### Saída <a href="#sada" id="sada"></a>

* com sucesso

```
{
    status: XXX,
    body: {},
    headers: {}
}
```

* com erro

```
{
    error: "error message",
    code: XXX,
    body: {},  
    headers: {}
}
```

{% hint style="info" %}
Para alguns erros, *body* e *headers* estão indisponíveis.
{% endhint %}

## SOAP V1 em Ação <a href="#soap-v1-em-ao" id="soap-v1-em-ao"></a>

### Sobre o template variável <a href="#sobre-o-template-varivel" id="sobre-o-template-varivel"></a>

O nome da variável também pode conter menos (-), ponto (.) e dois pontos (:) em qualquer posição, mas devem conter uma barra invertida (\\) antes. Do contrário, eles podem ser interpretados como operadores.

### **Sobre substituição de números** <a href="#sobre-substituio-de-nmeros" id="sobre-substituio-de-nmeros"></a>

```html
  <#assign x=42>
  ${x}
  ${x?string}  <#-- the same as ${x} -->
  ${x?string.number}
  ${x?string.currency}
  ${x?string.percent}
  ${x?string.computer}
```

Saída

```
  42  
  42  
  42  
  $42.00  
  4,200%  
  42
```

**Formato de número**

```
<#setting number_format="0.####">
```

**Para verificar se o campo não é nulo:**

```
<#if varTest??>${varTest}</#if>
```

### &#x20;Reprodução de chamadas SoapUI no SOAP V1 <a href="#reproduo-de-chamadas-soapui-no-soap-v1" id="reproduo-de-chamadas-soapui-no-soap-v1"></a>

![](https://content.gitbook.com/content/SKBJ6ZiEWBU93x170HH4/blobs/fvRQYgGn4I2kbNBZkAox/soapv1.png)
