Como passar o parâmetro 'cardData' do simpleStartProcess

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!