Ir para conteúdo principal

Web Método CreateRequest

Web Método CreateRequest da Interface SOAP do CAP Workflow

Escrito por Luis Fernando Gushiken

CreateRequest

Cria uma nova solicitação de acordo com os parâmetros informados.

Disponível no Web Service CAPRequests.asmx

Parâmetros

  • issuerLogOnName [String]: Nome do Solicitante  (somente Administradores do CAP podem informar um solicitante diferente do usuário atualmente autenticado)

  • servicePath [String]: Caminho do Workflow

  • cultureName [String]: Nome da Cultura (utilizado para identificação do Workflow, Área, localização de Atributos e Etapas e/ou no retorno de valores em um idioma específico)

  • metadataValues [MetadataValue[]]: Arranjo de Atributos

Exemplo de Solicitação/Resposta SOAP (v1.2)

POST /Services/CAPRequests.asmx HTTP/1.1
Host: nossocap.capworkflow.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <CreateRequest xmlns="http://iteris.cap.webservices">
      <issuerLogOnName>string</issuerLogOnName>
      <servicePath>string</servicePath>
      <cultureName>string</cultureName>
      <metadataValues>
        <MetadataValue>
          <Name>string</Name>
          <Value>string</Value>
          <DisplayValue>string</DisplayValue>
          <DisplayMode>None or ReadOnly or Edit or Required or Hidden</DisplayMode>
          <Attachments>
            <MetadataAttachment xsi:nil="true" />
            <MetadataAttachment xsi:nil="true" />
          </Attachments>
          <Type>None or Text or Number or DateTime or Choice or YesNo or Attachment or ListLookup or Password or People or MultilineText or Hyperlink or Table</Type>
        </MetadataValue>
        <MetadataValue>
          <Name>string</Name>
          <Value>string</Value>
          <DisplayValue>string</DisplayValue>
          <DisplayMode>None or ReadOnly or Edit or Required or Hidden</DisplayMode>
          <Attachments>
            <MetadataAttachment xsi:nil="true" />
            <MetadataAttachment xsi:nil="true" />
          </Attachments>
          <Type>None or Text or Number or DateTime or Choice or YesNo or Attachment or ListLookup or Password or People or MultilineText or Hyperlink or Table</Type>
        </MetadataValue>
      </metadataValues>
    </CreateRequest>
  </soap12:Body>
</soap12:Envelope>

---

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <CreateRequestResponse xmlns="http://iteris.cap.webservices">
      <CreateRequestResult>int</CreateRequestResult>
    </CreateRequestResponse>
  </soap12:Body>
</soap12:Envelope>

Exemplo de Utilização em PowerShell via New-WebServiceProxy

$baseUrl = "https://env.capworkflow.com";
$userName = "test.user@capworkflow.com";
$password = "MyVeryStrongPassword@123";
# Cria o proxy para o serviço de autenticação do CAP.
$wsAuth = New-WebServiceProxy -Uri "$baseUrl/Services/CAPAuthentication.asmx" -Namespace "CAP.Services";
# Atribui um Cookie Container ao proxy para armazenar o cookie de autorização a ser retornado.
$wsAuth.CookieContainer = New-Object System.Net.CookieContainer;
# Realiza a autenticação do usuário.
$wsAuth.Login($userName, $password);
# Como o proxy do PowerShell não suporta passar as informações de autenticação no momento da sua criação,
# é necessário baixar a definição do serviço em um etapa anterior, passando o cookie de autorização através
# de uma nova sessão web.
$authSession = New-Object Microsoft.PowerShell.Commands.WebRequestSession;
$authSession.Cookies = $wsAuth.CookieContainer;
$wsReqWsdl = Invoke-WebRequest -Uri "$baseUrl/Services/CAPRequests.asmx?wsdl" -Method Get -WebSession $authSession;
$wsReqWsdl.Content | Out-File -FilePath "D:\temp\wsReq.wsdl" -Encoding utf8;
# Cria o proxy para o serviço de configuração do CAP.
$wsReq = New-WebServiceProxy -Uri "D:\temp\wsReq.wsdl" -Namespace "CAP.Services";
# Atribui o Cookie Container com o cookie de autorização ao proxy.
$wsReq.CookieContainer = $wsAuth.CookieContainer;
# Metadados (Valores de Atributos):
$metadataValues = New-Object Iteris.CAP.Services.MetadataValue[] 13;
$metadataValue = New-Object Iteris.CAP.Services.MetadataValue;
$metadataValue.Name = "Texto";
$metadataValue.Value = "Valor Texto";
$metadataValues[0] = $metadataValue;
$metadataValue = New-Object Iteris.CAP.Services.MetadataValue;
$metadataValue.Name = "Texto Multilinha";
$metadataValue.Value = "Valor Texto`r`nMultinha";
$metadataValues[1] = $metadataValue;
$metadataValue = New-Object Iteris.CAP.Services.MetadataValue;
$metadataValue.Name = "Hyperlink";
$metadataValue.Value = "http://www.iteris.com.br/cap";
$metadataValues[2] = $metadataValue;
$metadataValue = New-Object Iteris.CAP.Services.MetadataValue;
$metadataValue.Name = "Senha";
$metadataValue.Value = "MyVeryStrongPassword@123";
$metadataValues[3] = $metadataValue;
$metadataValue = New-Object Iteris.CAP.Services.MetadataValue;
$metadataValue.Name = "Número";
$metadataValue.Value = "12345,67";
$metadataValues[4] = $metadataValue;
$metadataValue = New-Object Iteris.CAP.Services.MetadataValue;
$metadataValue.Name = "Data";
$metadataValue.Value = [DateTime]::Today.ToString([System.Globalization.CultureInfo]::GetCultureInfo("pt-BR"));
$metadataValues[5] = $metadataValue;
$metadataValue = New-Object Iteris.CAP.Services.MetadataValue;
$metadataValue.Name = "Data e Hora";
$metadataValue.Value = [DateTime]::Now.ToString([System.Globalization.CultureInfo]::GetCultureInfo("pt-BR"));
$metadataValues[6] = $metadataValue;
$metadataValue = New-Object Iteris.CAP.Services.MetadataValue;
$metadataValue.Name = "Escolha";
$metadataValue.Value = "Opção 2";
$metadataValues[7] = $metadataValue;
$metadataValue = New-Object Iteris.CAP.Services.MetadataValue;
$metadataValue.Name = "Sim/Não";
$metadataValue.Value = "true";
$metadataValues[8] = $metadataValue;
$metadataValue = New-Object Iteris.CAP.Services.MetadataValue;
$metadataValue.Name = "Consulta - Estado";
$metadataValue.Value = "São Paulo";
$metadataValues[9] = $metadataValue;
$metadataValue = New-Object Iteris.CAP.Services.MetadataValue;
$metadataValue.Name = "Consulta - Cidade";
$metadataValue.Value = "Osasco";
$metadataValues[10] = $metadataValue;
$metadataValue = New-Object Iteris.CAP.Services.MetadataValue;
$metadataValue.Name = "Pessoas e Grupos";
$metadataValue.Value = "usuario1@capworkflow.com;usuario2@capworkflow.com";
$metadataValues[11] = $metadataValue;
$metadataValue = New-Object Iteris.CAP.Services.MetadataValue;
$metadataValue.Name = "Anexos";
$metadataValue.Attachments = New-Object Iteris.CAP.Services.MetadataAttachment[] 2;
$MetadataAttachment = New-Object Iteris.CAP.Services.MetadataAttachment;
$MetadataAttachment.FileName = "Anexo1.txt";
$MetadataAttachment.ContentType = "text/plain";
$MetadataAttachment.Base64Content = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("Conteúdo do arquivo texto 1"));
$metadataValue.Attachments[0] = $metadataAttachment;
$MetadataAttachment = New-Object Iteris.CAP.Services.MetadataAttachment;
$MetadataAttachment.FileName = "Segundo Arquivo.txt";
$MetadataAttachment.ContentType = "text/plain";
$MetadataAttachment.Base64Content = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("Conteúdo do segundo arquivo"));
$metadataValue.Attachments[1] = $metadataAttachment;
$metadataValues[12] = $metadataValue;
# Cria a solicitação.
$wsReq.CreateRequest(
    "test.user@capworkflow.com",
    "Workflows de Exemplo/Todos os Atributos",
    "pt-BR",
    $metadataValues
);

Exemplo de Utilização em PowerShell via Invoke-WebRequest

$baseUrl = "https://env.capworkflow.com";
$userName = "test.user@capworkflow.com";
$password = "MyVeryStrongPassword@123";
# Montagem da mensagem SOAP com os parâmetros de autenticação.
$soapMessage = @"
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <Login xmlns="http://iteris.cap.webservices">
      <userLogOnName>$userName</userLogOnName>
      <password>$password</password>
    </Login>
  </soap12:Body>
</soap12:Envelope>
"@;
# Requisição POST passando a mensagem SOAP e armazenando
# o cookie de autorização na variável de sessão $authSession.
Invoke-WebRequest -Uri "$baseUrl/Services/CAPAuthentication.asmx" -Method Post -ContentType "application/soap+xml; charset=utf-8" -Body $soapMessage -SessionVariable authSession;
# Montagem da mensagem SOAP com os parâmetros necessários.
$reqSoapMessage = @"
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
<CreateRequest xmlns="http://iteris.cap.webservices">
<issuerLogOnName>test.user@capworkflow.com</issuerLogOnName>
<servicePath>Workflows de Exemplo/Todos os Atributos</servicePath>
<cultureName>pt-BR</cultureName>
<metadataValues>
<MetadataValue>
<Name>Texto</Name>
<Value>Valor Texto</Value>
</MetadataValue>
<MetadataValue>
<Name>Texto Multilinha</Name>
<Value>
Valor Texto
Multinha
</Value>
</MetadataValue>
<MetadataValue>
<Name>Hyperlink</Name>
<Value>http://www.iteris.com.br/cap</Value>
</MetadataValue>
<MetadataValue>
<Name>Senha</Name>
<Value>MyVeryStrongPassword@123</Value>
</MetadataValue>
<MetadataValue>
<Name>Número</Name>
<Value>12345,67</Value>
</MetadataValue>
<MetadataValue>
<Name>Data</Name>
<Value>7/11/2014 0:00:00</Value>
</MetadataValue>
<MetadataValue>
<Name>Data e Hora</Name>
<Value>7/11/2014 17:33:52</Value>
</MetadataValue>
<MetadataValue>
<Name>Escolha</Name>
<Value>Opção 2</Value>
</MetadataValue>
<MetadataValue>
<Name>Sim/Não</Name>
<Value>true</Value>
</MetadataValue>
<MetadataValue>
<Name>Consulta - Estado</Name>
<Value>São Paulo</Value>
</MetadataValue>
<MetadataValue>
<Name>Consulta - Cidade</Name>
<Value>Osasco</Value>
</MetadataValue>
<MetadataValue>
<Name>Pessoas e Grupos</Name>
<Value>usuario1@capworkflow.com;usuario2@capworkflow.com</Value>
</MetadataValue>
<MetadataValue>
<Name>Anexos</Name>
<Attachments>
<MetadataAttachment>
<FileName>Anexo1.txt</FileName>
<ContentType>text/plain</ContentType>
<Base64Content>U2F1ZGHDp8O1ZXMgZGUgdW0gYXJxdWl2byB0ZXh0byBnZXJhZG8gbm8gUG93ZXJTaGVsbCEhIQ==</Base64Content>
</MetadataAttachment>
<MetadataAttachment>
<FileName>Segundo Arquivo.txt</FileName>
<ContentType>text/plain</ContentType>
<Base64Content>U2F1ZGHDp8O1ZXMgZGUgb3V0cm8gYXJxdWl2byB0ZXh0byBnZXJhZG8gbm8gUG93ZXJTaGVsbCEhIQ==</Base64Content>
</MetadataAttachment>
</Attachments>
</MetadataValue>
</metadataValues>
</CreateRequest>
  </soap12:Body>
</soap12:Envelope>
"@;
# Requisição POST passando a mensagem SOAP e a variável
# de sessão $authSession criada no momento da autenticação.
Invoke-WebRequest -Uri "$baseUrl/Services/CAPRequests.asmx" -Method Post -ContentType "application/soap+xml; charset=utf-8" -Body $reqSoapMessage -WebSession $authSession;

Exemplo de Utilização em PowerShell via Invoke-WebRequest e Basic Authentication

$baseUrl = "https://env.capworkflow.com";
$userName = "test.user@capworkflow.com";
$password = "MyVeryStrongPassword@123";
# Montagem da mensagem SOAP com os parâmetros necessários.
$reqSoapMessage = @"
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
<CreateRequest xmlns="http://iteris.cap.webservices">
<issuerLogOnName>test.user@capworkflow.com</issuerLogOnName>
<servicePath>Workflows de Exemplo/Todos os Atributos</servicePath>
<cultureName>pt-BR</cultureName>
<metadataValues>
<MetadataValue>
<Name>Texto</Name>
<Value>Valor Texto</Value>
</MetadataValue>
<MetadataValue>
<Name>Texto Multilinha</Name>
<Value>
Valor Texto
Multinha
</Value>
</MetadataValue>
<MetadataValue>
<Name>Hyperlink</Name>
<Value>http://www.iteris.com.br/cap</Value>
</MetadataValue>
<MetadataValue>
<Name>Senha</Name>
<Value>MyVeryStrongPassword@123</Value>
</MetadataValue>
<MetadataValue>
<Name>Número</Name>
<Value>12345,67</Value>
</MetadataValue>
<MetadataValue>
<Name>Data</Name>
<Value>7/11/2014 0:00:00</Value>
</MetadataValue>
<MetadataValue>
<Name>Data e Hora</Name>
<Value>7/11/2014 17:33:52</Value>
</MetadataValue>
<MetadataValue>
<Name>Escolha</Name>
<Value>Opção 2</Value>
</MetadataValue>
<MetadataValue>
<Name>Sim/Não</Name>
<Value>true</Value>
</MetadataValue>
<MetadataValue>
<Name>Consulta - Estado</Name>
<Value>São Paulo</Value>
</MetadataValue>
<MetadataValue>
<Name>Consulta - Cidade</Name>
<Value>Osasco</Value>
</MetadataValue>
<MetadataValue>
<Name>Pessoas e Grupos</Name>
<Value>usuario1@capworkflow.com;usuario2@capworkflow.com</Value>
</MetadataValue>
<MetadataValue>
<Name>Anexos</Name>
<Attachments>
<MetadataAttachment>
<FileName>Anexo1.txt</FileName>
<ContentType>text/plain</ContentType>
<Base64Content>U2F1ZGHDp8O1ZXMgZGUgdW0gYXJxdWl2byB0ZXh0byBnZXJhZG8gbm8gUG93ZXJTaGVsbCEhIQ==</Base64Content>
</MetadataAttachment>
<MetadataAttachment>
<FileName>Segundo Arquivo.txt</FileName>
<ContentType>text/plain</ContentType>
<Base64Content>U2F1ZGHDp8O1ZXMgZGUgb3V0cm8gYXJxdWl2byB0ZXh0byBnZXJhZG8gbm8gUG93ZXJTaGVsbCEhIQ==</Base64Content>
</MetadataAttachment>
</Attachments>
</MetadataValue>
</metadataValues>
</CreateRequest>
  </soap12:Body>
</soap12:Envelope>
"@;
# Monta o valor do cabeçalho de autenticação para Basic Authentication.
$credential = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("$($userName):$password"));
# Requisição POST passando a mensagem SOAP e o cabeçalho
# de autenticação básica.
Invoke-WebRequest -Uri "$baseUrl/Services/CAPRequests.asmx" -Method Post -ContentType "application/soap+xml; charset=utf-8" -Body $reqSoapMessage -Headers @{ "Authorization" = "Basic $credential" };
Isto respondeu à sua pergunta?