Problemas com afterProcessing

criei um evento afterProcessing pro meu formulário na intenção de enviar os dados pra um dataset customizado

este é meu afterProcessing


function afterProcessing(form){

    var titreceber = {  "tIPO"             : form.getValue("CTIPO"),
                           "vALOR"         : parseFloat(form.getValue("NVALOR")),
                           "cONTRATOMDW"    : form.getValue("CCONTRATOMDW"),
                           "dTEMISSAO"        : form.getValue("CDTEMISSAO"),
                           "dTRVENCTO"        : form.getValue("CDTRVENCTO"),
                           "cLIENTE"        : form.getValue("CCLIENTE"),
                           "cOMISSAO"        : parseFloat(form.getValue("NCOMISSAO")),
                           "tITULO"        : form.getValue("CTITULO"),
                           "pREFIXO"        : form.getValue("CPREFIXO"),
                           "pIMDW"            : form.getValue("CPIMDW"),
                           "vALCRUZ"        : parseFloat(form.getValue("NVALCRUZ")),
                           "hISTTIT"         : form.getValue("CHISTTIT"),
                           "nATUREZA"         : form.getValue("CNATUREZA"),
                           "lOJACLIENTE"     : form.getValue("CLOJACLIENTE"),
                           "qUANTIDADE"     : parseFloat(form.getValue("NQUANTIDADE")),
                           "tIPOFAT"         : form.getValue("CTIPOFAT"),
                           "vENDEDOR"         : form.getValue("CVENDEDOR"),
                           "dTVENCTO"         : form.getValue("CDTVENCTO"),
                           "cGC"             : form.getValue("CCGC")

    }


    var tituloStr = JSON.stringify(titreceber);
    var constrTitulo = DatasetFactory.createConstraint("titreceber", tituloStr, tituloStr, ConstraintType.MUST);

    var dataset = DatasetFactory.getDataset("ds_IncTitulo", null, new Array(tituloStr), null);
return dataset;

}

porem ao salvar os dados do relatório meu log apresenta o seguinte erro


ERROR [com.datasul.technology.webdesk.customization.CustomizationManager] (default task-323)  - Usuário Executor :
 willian.carlos - Substituto :
 Não - Executando evento : afterProcessingERRO AO EXECUTAR SCRIPT -> NOK - sun.org.mozilla.javascript.internal.EvaluatorException:
 Java class "[Ljava.lang.reflect.Constructor;
" has no public instance field or method named "toJSON". (<Unknown source>#26) in <Unknown source> at line number 26
WARN  [com.datasul.technology.webdesk.forms.business.CardIndexJSListener] (default task-323)
 Erro ao executar o evento afterProcessing não foi implementado para o fichário 35 na versão 23000 mensagem: sun.org.mozilla.javascript.internal.EvaluatorException:
 Java class "[Ljava.lang.reflect.Constructor;
" has no public instance field or method named "toJSON". (<Unknown source>#26) in <Unknown source> at line number 26.
WARN  [com.datasul.technology.webdesk.forms.business.CardBO] (default task-323) sun.org.mozilla.javascript.internal.EvaluatorException:
 Java class "[Ljava.lang.reflect.Constructor;
" has no public instance field or method named "toJSON".

a linha 26 a qual ele acusa o erro é esta var tituloStr = JSON.stringify(titreceber);

Opa Willian,

se o stringify do javascript se perde, tente assim, com o JSONUtil do fluig:


function afterProcessing(form) {

    var titreceber = {  "tIPO"             : form.getValue("CTIPO"),
            "vALOR"         : parseFloat(form.getValue("NVALOR")),
            "cONTRATOMDW"    : form.getValue("CCONTRATOMDW"),
            "dTEMISSAO"        : form.getValue("CDTEMISSAO"),
            "dTRVENCTO"        : form.getValue("CDTRVENCTO"),
            "cLIENTE"        : form.getValue("CCLIENTE"),
            "cOMISSAO"        : parseFloat(form.getValue("NCOMISSAO")),
            "tITULO"        : form.getValue("CTITULO"),
            "pREFIXO"        : form.getValue("CPREFIXO"),
            "pIMDW"            : form.getValue("CPIMDW"),
            "vALCRUZ"        : parseFloat(form.getValue("NVALCRUZ")),
            "hISTTIT"         : form.getValue("CHISTTIT"),
            "nATUREZA"         : form.getValue("CNATUREZA"),
            "lOJACLIENTE"     : form.getValue("CLOJACLIENTE"),
            "qUANTIDADE"     : parseFloat(form.getValue("NQUANTIDADE")),
            "tIPOFAT"         : form.getValue("CTIPOFAT"),
            "vENDEDOR"         : form.getValue("CVENDEDOR"),
            "dTVENCTO"         : form.getValue("CDTVENCTO"),
            "cGC"             : form.getValue("CCGC")
    }

    var tituloStr = JSONUtil.toJSON(titreceber);

    var constrTitulo = DatasetFactory.createConstraint("titreceber", tituloStr, tituloStr, ConstraintType.MUST);

    var dataset = DatasetFactory.getDataset("ds_IncTitulo", null, new Array(constrTitulo), null);

}

E tambem altere para new Array(constrTitulo), lhe passei errado na outra pergunta

vlw Diogo mas ainda recebo esta mensagem de retorno do wb
javax.xml.ws.soap.SOAPFaultException: INTERNAL SERVER ERROR {
“tIPO” : “”,
“cONTRATOMDW” : “”,
“dTEMISSAO” : “”,
“cLIENTE” : “”,
“cOMISSAO” : “”,
“tITULO” : “”,
“pREFIXO” : “”,
“pIMDW” : “”,
“vALCRUZ” : “”,
“dTRVENCTO” : “”,
“hISTTIT” : “”,
“nATUREZA” : “”,
“lOJACLIENTE” : “”

saberia me dizer o pq?

O dataset ds_IncTitulo foi gerado no painel de controle né? Edite ele lá no painel de controle, tem um botão “Configurar” no lado do nome da operação do WS, acesse ele e marque a opção “Listar Mensagens SOAP” e salve o dataset novamente. Ai vocẽ executa esse teu formulário denovo e anexe o arquivo server.log do fluig na sua pergunta. Vai ser melhor pra identificar.

Não consegui fazre o upload do arquivo então coloquei aqui o momento em que o formulario chama a função afterProcessing()



2018-07-05 17:00:00,225 INFO  [com.totvs.elearning.core.jobs.task.ApproveEnrollmentRequestTask] (LMS-ThreadPool3) ApproveEnrollmentRequest execute for Tenant{name='wcm', domain='wcm', id=13, fluigId=0}
2018-07-05 17:00:00,225 INFO  [com.totvs.elearning.core.jobs.task.ProcessWaitingListTask] (LMS-ThreadPool1) ProcessWaitingList execute for Tenant{name='wcm', domain='wcm', id=13, fluigId=0}
2018-07-05 17:00:00,437 INFO  [com.totvs.elearning.core.jobs.task.ProcessWaitingListTask] (LMS-ThreadPool1) ProcessWaitingList execute for Tenant{name='Sistema costa norte', domain='sistemaCostaNorteltda', id=27, fluigId=1}
2018-07-05 17:00:00,500 WARN  [org.hibernate.orm.deprecation] (LMS-ThreadPool3) HHH90000016: Found use of deprecated 'collection property' syntax in HQL/JPQL query [null.elements]; use collection function syntax instead [elements(null)].
2018-07-05 17:00:00,573 INFO  [com.totvs.elearning.core.jobs.task.ApproveEnrollmentRequestTask] (LMS-ThreadPool3) ApproveEnrollmentRequest execute for Tenant{name='Sistema costa norte', domain='sistemaCostaNorteltda', id=27, fluigId=1}
2018-07-05 17:00:23,795 INFO  [com.totvs.technology.ecm.services.cardpublisher.CardPublisherRest] (default task-226) saveNewCardItem documentVo.getInheritSecurity() true
2018-07-05 17:00:25,019 INFO  [com.datasul.technology.webdesk.dataset.DatasetFactory] (default task-226) Builder rodando sem o mobile 
2018-07-05 17:00:25,168 INFO  [com.totvs.technology.foundation.dataservice.service.WSWrapper] (default task-226) StubDir01
2018-07-05 17:00:25,169 INFO  [com.totvs.technology.foundation.dataservice.service.WSWrapper] (default task-226) dataservice.getDataServicePK().getCompanyId() 1
2018-07-05 17:00:25,189 INFO  [com.totvs.technology.foundation.dataservice.service.WSWrapper] (default task-226) getStubDirDynamic - stubDir C:\volume_fluig\wsstubs\Integração Mundi Ware x Protheus
2018-07-05 17:00:25,576 INFO  [org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean] (default task-226) Creating Service {http://177.68.159.175:54512/}TVCN_MUNDIWARE from WSDL: http://177.68.159.175:54512/ws/TVCN_MUNDIWARE.apw?WSDL
2018-07-05 17:00:25,905 INFO  [org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean] (default task-226) Creating Service {http://177.68.159.175:54512/}TVCNMUNDIWARESOAPService from class _175._159._68._177._54512.TVCNMUNDIWARESOAP
2018-07-05 17:00:26,218 INFO  [org.apache.cxf.services.TVCNMUNDIWARESOAPService.TVCN_MUNDIWARESOAPPort.TVCN_MUNDIWARESOAP] (default task-226) Outbound Message
---------------------------
ID: 1
Address: http://177.68.159.175:54512/ws/TVCN_MUNDIWARE.apw
Encoding: UTF-8
Http-Method: POST
Content-Type: text/xml
Headers: {Accept=[*/*], SOAPAction=["http://177.68.159.175:54512/INCTITRECEBER"]}
Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><INCTITRECEBER xmlns="http://177.68.159.175:54512/"><TITRECEBER><CGC>60820750000131</CGC><CLIENTE>000060</CLIENTE><COMISSAO>1.0</COMISSAO><CONTRATOMDW>FLUIG</CONTRATOMDW><DTEMISSAO>20180705</DTEMISSAO><DTRVENCTO>20180705</DTRVENCTO><DTVENCTO>20180705</DTVENCTO><HISTTIT>FLUIG</HISTTIT><LOJACLIENTE>01</LOJACLIENTE><NATUREZA>114</NATUREZA><PIMDW>FLUIG</PIMDW><PREFIXO>BOL</PREFIXO><QUANTIDADE>1.0</QUANTIDADE><TIPO>NF</TIPO><TIPOFAT>01</TIPOFAT><TITULO>000011</TITULO><VALCRUZ>100.0</VALCRUZ><VALOR>100.0</VALOR><VENDEDOR>000001</VENDEDOR></TITRECEBER></INCTITRECEBER></soap:Body></soap:Envelope>
--------------------------------------
2018-07-05 17:00:33,372 INFO  [org.apache.cxf.services.TVCNMUNDIWARESOAPService.TVCN_MUNDIWARESOAPPort.TVCN_MUNDIWARESOAP] (default task-226) Inbound Message
----------------------------
ID: 1
Response-Code: 200
Encoding: UTF-8
Content-Type: text/xml; charset=utf-8
Headers: {Content-Length=[470], Content-type=[text/xml; charset=utf-8], Date=[Thu, 05 Jul 2018 20:00:30 GMT], Last-modified=[Thu, 05 Jul 2018 20:00:30 GMT], MIME-version=[1.0], Server=[Protheus Web Server], Set-cookie=[SESSIONID=fed3f6d27b0ce1a4ca0145fe7f034862], X-Frame-Options=[SAMEORIGIN], XAPWSBUILD=[ADVPL WSDL Server 1.110216]}
Payload: <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><INCTITRECEBERRESPONSE xmlns="http://177.68.159.175:54512/"><INCTITRECEBERRESULT><CODIGO>1</CODIGO><MENSAGEM>Título a Receber Incluído com Sucesso no Protheus (SZ2).</MENSAGEM></INCTITRECEBERRESULT></INCTITRECEBERRESPONSE></soap:Body></soap:Envelope>
--------------------------------------
2018-07-05 17:00:33,443 WARN  [com.fluig.monitoring.jschronos.JSChronos] (default task-226) CustomizationManagerImpl.invokeFunction.createDataset executou por 8 segundos
2018-07-05 17:00:33,444 WARN  [com.fluig.monitoring.jschronos.JSChronos] (default task-226) params: [[null, [Lcom.totvs.technology.foundation.dataset.SearchConstraint;@34f04072, null], Thread = default task-226, datasetId = ds_incTitulo]
2018-07-05 17:00:33,444 WARN  [com.fluig.monitoring.jschronos.JSChronos] (default task-226) DatasetFactory.getDataset.ds_incTitulo executou por 8 segundos
2018-07-05 17:00:33,445 WARN  [com.fluig.monitoring.jschronos.JSChronos] (default task-226) params: [null, [FIELD_NAME=titreceber; INITIAL_VALUE={
  "tIPO" : "NF",
  "vALOR" : 100.0,
  "cONTRATOMDW" : "FLUIG",
  "dTEMISSAO" : "20180705",
  "dTRVENCTO" : "20180705",
  "cLIENTE" : "000060",
  "cOMISSAO" : 1.0,
  "tITULO" : "000011",
  "pREFIXO" : "BOL",
  "pIMDW" : "FLUIG",
  "vALCRUZ" : 100.0,
  "hISTTIT" : "FLUIG",
  "nATUREZA" : "114",
  "lOJACLIENTE" : "01",
  "qUANTIDADE" : 1.0,
  "tIPOFAT" : "01",
  "vENDEDOR" : "000001",
  "dTVENCTO" : "20180705",
  "cGC" : "60820750000131"
}; FINAL_VALUE={
  "tIPO" : "NF",
  "vALOR" : 100.0,
  "cONTRATOMDW" : "FLUIG",
  "dTEMISSAO" : "20180705",
  "dTRVENCTO" : "20180705",
  "cLIENTE" : "000060",
  "cOMISSAO" : 1.0,
  "tITULO" : "000011",
  "pREFIXO" : "BOL",
  "pIMDW" : "FLUIG",
  "vALCRUZ" : 100.0,
  "hISTTIT" : "FLUIG",
  "nATUREZA" : "114",
  "lOJACLIENTE" : "01",
  "qUANTIDADE" : 1.0,
  "tIPOFAT" : "01",
  "vENDEDOR" : "000001",
  "dTVENCTO" : "20180705",
  "cGC" : "60820750000131"
}; CONSTRAINT_TYPE=MUST; IS_LIKE_SEARCH=false; ], null]
2018-07-05 17:00:33,455 WARN  [com.fluig.monitoring.jschronos.JSChronos] (default task-226) CustomizationManagerImpl.invokeFunction.afterProcessing executou por 8 segundos
2018-07-05 17:00:33,455 WARN  [com.fluig.monitoring.jschronos.JSChronos] (default task-226) params: [[FormController [companyId=1, documentId=115, version=1000, cardIndex=35]], Thread = default task-226, ]
2018-07-05 17:00:33,705 WARN  [org.apache.activemq.artemis.core.client] (EJB ASYNC - 19) AMQ212051: Invalid concurrent session usage. Sessions are not supposed to be used by more than one thread concurrently.: java.lang.Exception: trace

Por esse log ele incluiu no protheus corretamente: soap:Body1Título a Receber Incluído com Sucesso no Protheus (SZ2).

Onde ocorre o erro?

na verdade este dataset ds_IncTitulo era customizado e devo ter errado em algo e ele não incluia exclui e deixei no modo gerado no painel e resolveu tudo muito obrigado Diogo