Ao chamar o serviço 'simpleStartProcess' do ECMWorkflowEngineService não encontrei na documentação uma explicação/exemplo de como deve ser passado o parâmetro 'cardData', apenas encontrei algo aqui:
http://tdn.totvs.com/pages/releaseview.action?pageId=73084007
Onde só diz que deve ser passado um 'String cardData[][]', mas passando por exemplo apenas [] não funciona.
Fico grato pela ajuda
Este dado é uma hashMap com chave e valor.
Em java seria algo assim:
Map<String , String> formulario = new HashMap<String, String>();
formulario .put("campo1", "valor1");
formulario .put("campo2", "valor2");
formulario .put("campo3", "valor3");
formulario .put("campo4", "valor4");
Ou ainda como um matriz bidimensional:
String tabela[][] = {
{"Campo1", "Campo2", "Campo3", "Campo4"},
{"Valor1", "Valor2", "Valor3", "Valor4"}
};
Pela propriedade String[][], parece ter feito em .net esse client, ficaria dessa forma, em java seria uma classe StringArrayArray, que fica instanciada no próprio cliente
C#
string[][] arr1 = new string[2][];
arr1[0] = {"Campo1", "Valor1"};
arr1[1] = {"Campo2", "Valor2"};
Java
StringArrayArray stringArrayArray = new StringArrayArray();
StringArray field = new StringArray();
field.getItem().add("nome"); // nome do campo.
field.getItem().add("Leandro Carlos Pereira"); // valor do campo.
stringArrayArray.getItem().add(field);
Pessoal, caso eu queira mandar vários campos, como devo implementar? pq tentei com vários as add e não deu certo!
No final das contas consegui fazer isso utilizando o serviço "startProcessClassic" juntamente de uma biblioteca JavaScript para cliente Soap.
Ficando algo como isso:
var prm = new SOAPClientParameters(); // Função da biblioteca externa
prm.add("companyId", 12); // company ID
prm.add("username", remetente); // login do usuario para abrir conexão com ws
prm.add("password", senha); // senha
prm.add("processId", 'Meu Processo'); // id do processo
prm.add("choosedState", 0); // numero da proxima atividade proxima atividade
prm.add("colleagueIds", ["00001"]); // id dos usuarios que vão poder assumir a tarefa
prm.add("comments", ""); // comentarios
prm.add("userId", "00001"); // id do usuario solicitante
prm.add("completeTask",true); // status de conclusão de atividade TRUE ou FALSE
prm.add("attachments",""); // anexos (array de 0 ou mais anexos)
prm.add("appointment", ""); // apontamentos da tarefa
prm.add("managerMode", false); // modo gestor TRUE ou FALSE
prm.add("cardData", [
{key:'numero_protocolo',value:protocolo},
{key:'nome_solicitante',value:nome_solicitante},
{key:'nome_completo',value:nome},
{key:'is_processo_automatico',value:'true'}]);
// cardData contendo os campos
Agradeço pela ajuda!