Hola existe forma de hacer Update de un dato de un formulario via webservices

Hola existe forma de hacer Update de un dato de un formulario via webservices. Tienen un ejemplo. Lo quiero realizar de un proceso ajeno al formul

Existe sim aqui está a documentação http://tdn.totvs.com/pages/releaseview.action?pageId=73084007 (procurar por updateCardData).

Exemplo (Usando no JavaScript):


                var soapRequest = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.dm.ecm.technology.totvs.com/"><soapenv:Header/>';
        soapRequest +=         '<soapenv:Body>';
        soapRequest +=             '<ws:updateCardData>';
        soapRequest +=                 '<companyId>'+WCMAPI.organizationId+'</companyId>';
        soapRequest +=                 '<username>'+myUser+'</username>';
        soapRequest +=                 '<password>'+myPass+'</password>';
        soapRequest +=                 '<cardId>'+documentId/cardId+'</cardId>';
        soapRequest +=                 '<cardData>';
        soapRequest +=                     '<item>';
        soapRequest +=                         '<field>'+fieldName+'</field>';
        soapRequest +=                         '<value name="'+fieldName+'">'+value+'</value>';
        soapRequest +=                     '</item>';
        soapRequest +=                     '<item>';
        soapRequest +=                             '<field>'+field2Name+'</field>';
        soapRequest +=                             '<value name="'+field2Name+'">'+value2+'</value>';
        soapRequest +=                         '</item>';
        soapRequest +=                 '</cardData>';
        soapRequest +=             '</ws:updateCardData>';
        soapRequest +=         '</soapenv:Body>';
        soapRequest +=     '</soapenv:Envelope>';

        var parser = new DOMParser();
        WCMAPI.Create({
            url: WCMAPI.serverURL + "/webdesk/ECMCardService?wsdl",
            contentType: "text/xml;charset=utf-8",
            dataType: "xml",
            data: parser.parseFromString(soapRequest, "text/xml")
        });

As variáveis utilizadas são:

myUser: Usuário para a requisição. myPass: Senha do usuário. documentId/cardId: Número do formulário a ser atualizado; fieldName: Campo value: Valor

Exemplo (Usando em eventos do formulário):


  //Servico "<url_fluig>/webdesk/ECMCardService?wsdl"cadastrado com o código "CardService"
    var cardServiceProvider = ServiceManager.getServiceInstance("CardService");
    var cardServiceLocator = cardServiceProvider.instantiate("com.totvs.technology.ecm.dm.ws.ECMCardServiceServiceLocator");
    var cardService = cardServiceLocator.getCardServicePort();
    var cardFieldDtoArray = cardServiceProvider.instantiate("com.totvs.technology.ecm.dm.ws.CardFieldDtoArray");
    var cardField = cardServiceProvider.instantiate("com.totvs.technology.ecm.dm.ws.CardFieldDto");

    //Seta valor no campo com name = 'nome'
    cardField.setField("nome");
    cardField.setValue("Valor alterado via WS dentro de um evento workflow");

    var vetCardFields = new Array();
    vetCardFields.push(cardField);
    cardFieldDtoArray.setItem(vetCardFields);

    //Altera o(s) campo(s) do registro de formulário.
    //updateCardData(tenantId, login, senha, codRegistroForm, cardFieldDtoArray);
    cardService.updateCardData(1, "adm", "adm", 8, cardFieldDtoArray);

Muchas Gracias Guilherme voy a probar eso.

Seu problema foi solucionado?

Hola Guilherme, intenté utilizar el código adjunto desde un widget como desde un evento del workflow, pero no logré que funcionara. Me queda dudas porque actualmente utilizo el mismo servicio con el método create y si funciona. Me dejó dudas el user y pass, que en el create no los utilizo.

Se você olhar a documentação (Utilização de Webservices - TOTVS Fluig - TDN) o mesmo WebService do exemplo tem um método de criação de card, porém na documentação ele diz que precisa de usuário e senha. Nunca cheguei a testar sem passar esses parâmetros pra ver se funciona.

Çomo adiciona La password del wkuser?

Coloca como string mesmo. EX myUser = “user”; myPass = “1234”;

No caso o usuário e a senha são do requisitante do WS, você coloca o seu usuário e senha pra utilizar.

Hola Guilherme, estoy intentando aplicar el updatecarddata desde el evento del workflow afterStateLeave, pero no logro que funcione. tampoco tengo mensajes en el console. No se si a usted le ha ocurrido.

Esse exeplo que dei é para ser usado no JavaScript (esqueci de mencionar), se quiser usar em um evento procure updatecarddata aqui(hAPI - TOTVS Fluig - TDN) e encontrará um exemplo.

Guilherme, probé el ejemplo en el mismo evento que figura en http://tdn.totvs.com/display/public/fluig/hAP pero lamentablemente no actualiza el campo como tampoco puedo observar cual es el error porque no loguea el mismo en el console. No se si a usted le ha ocurrido.
Cual es su recomendación. Muchas gracias por su ayuda