Ir para conteúdo principal

Web Método CompleteTask

Web Método CompleteTask da Interface SOAP do CAP Workflow

Escrito por Luis Fernando Gushiken

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?