Ir para conteúdo principal

Web Método CompleteTask

Web Método CompleteTask da Interface SOAP do CAP Workflow

Luis Fernando Gushiken avatar
Escrito por Luis Fernando Gushiken
Atualizado há mais de 2 anos

CompleteTask

Completa uma tarefa de acordo com os parâmetros informados.

Disponível no Web Service CAPRequests.asmx

Parâmetros

  • 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)

  • requestId [Integer]: ID da Solicitação

  • taskTitle [String]: Título da Etapa a ser completada

  • metadataValues [MetadataValue[]]: Arranjo de Atributos

  • outcome [OutcomeType]: Resultado (Continue, Return, ReturnToIssuer, Interrupt, Cancel)

  • comments [String]: Comentários da Etapa

  • returnToActionOrder [Integer]: Índice da Etapa para a qual Retornar (somente quando configurado no Fluxo e quando o resultado for passado como Return)

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>
    <CompleteTask xmlns="http://iteris.cap.webservices">
      <cultureName>string</cultureName>
      <requestId>int</requestId>
      <taskTitle>string</taskTitle>
      <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>
      <outcome>None or Continue or Return or ReturnToIssuer or Interrupt or Escalate or Skipped or Cancel</outcome>
      <comments>string</comments>
      <returnToActionOrder>int</returnToActionOrder>
    </CompleteTask>
  </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>
    <CompleteTaskResponse xmlns="http://iteris.cap.webservices" />
  </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 = "It3r1509";
$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.CompleteTask(
    "pt-BR",
    2224,
    "Aprovação do Administrador",
    $metadataValues,
    "Continue",
    "Aprovação do administrador continuada informando todos os atributos necessários",
    $null
);

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>
    <CompleteTask xmlns="http://iteris.cap.webservices">
      <cultureName>pt-BR</cultureName>
      <requestId>2224</requestId>
      <taskTitle>Aprovação do Administrador</taskTitle>
      <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>It3r1509</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>
      </metadataValues>
      <outcome>Continue</outcome>
      <comments>Aprovação do administrador continuada informando todos os atributos necessários</comments>
    </CompleteTask>
  </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>
    <CompleteTask xmlns="http://iteris.cap.webservices">
      <cultureName>pt-BR</cultureName>
      <requestId>2224</requestId>
      <taskTitle>Aprovação do Administrador</taskTitle>
      <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>It3r1509</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>
      </metadataValues>
      <outcome>Continue</outcome>
      <comments>Aprovação do administrador continuada informando todos os atributos necessários</comments>
    </CompleteTask>
  </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?