Boa tarde,
Gerei um WS client pelo link utilizando a rotina TOTVS GENERATE WS.
Ao compilar o WS apresenta a mensagem:
"message": "functions are not allowed in code. Use USER FUNCTION or STATIC FUNCTION."
Não possui function no fonte e não consigo identificar o erro, já comentei os métodos tudo.
Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.
Insira um function na rotina , embaixo coloca seu método.
User Function nome da rotina()
Return
Boa tarde Tiago, obrigado pelo retorno mas não entendi sua dica.
O gerador de WS criou uma user function pra controle interno:
User Function _DKWNZQS ; Return // “dummy” function - Internal Use
Ao compilar relata existir uma FUNCTION e não possui Function no fonte, apenas a USER FUNCTION.
vou colocar um exemplo de ws para ver se te ajuda.:
User Function WSFIN01()
Return
WSRESTFUL WPRCCPAGAR DESCRIPTION “Inclusão de Titulos”
//WSDATA idProduto as Char
WsMethod PUT Description “FIN” WsSyntax “/”
END WSRESTFUL
WSMETHOD PUT WSRECEIVE RECEIVE WSSERVICE WPRCCPAGAR
A função já possui um user function. linha 1 → User Function _DKWNZZZ ; Return ) linha 2 → WSCLIENT WSMarca …
tenta dessa forma sem o “;” e abrindo e fechando o parentese
User Function _DKWNZQS()
Return
Bom dia Tiago, inseri a imagem abaixo e mesmo assim apresenta o erro.
Se puder me envia o fonte para eu tentar compilar, vendo aqui não consigo ver erro no código.
Boa tarde @Tiago , Fonte em anexo junto a imagem do comentário abaixo.
...
O problema estava no tamanho das variáveis no WS.
Comentei conforme na imagem, alterei no restante do fonte e compilou.
Obrigado a todos que se propuseram a auxiliar.
Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.
biblioteca, usa essas :
#include “PROTHEUS.ch”
#include “RESTFUL.ch”
#INCLUDE ‘TBICONN.CH’
#INCLUDE ‘TOPCONN.CH’
vai ter um erro também na linha 70, retira o local
Oi Tiago, ai compilou? Aqui continuo com problema.
aqui compilou sim, deixei desse jeito o inicio.
#include “PROTHEUS.ch”
#include “RESTFUL.ch”
#INCLUDE ‘TBICONN.CH’
#INCLUDE ‘TOPCONN.CH’
User Function SXLHNTN()
Return // “dummy” function - Internal Use
/* -------------------------------------------------------------------------------
WSDL Service WSMarca
------------------------------------------------------------------------------- */
WSCLIENT WSMarca
Identifiquei o erro Tiago, obrigado pelo apoio. Coloquei junto a imagem.
Boa tarde. Considere utilizar a classe de binário TWSDLManager, pois possui suporte mais amplo ao padrão WSDL, além de métodos e propriedades que facilitam o uso do client.
Oi Carlos boa tarde, obrigado pelo retorno. O Client do WS foi gerado pelo Gerador automático. Quando se passa a URL e o gerador do VS Code gera o fonte.
dadinel
Setembro 3, 2021, 1:07am
18
Lucas, assim como o Carlos, acho válido você testar a classe TWSDLManager: Classe TWsdlManager - TOTVSTEC - TDN
dadinel
Setembro 3, 2021, 1:07am
19
Aqui mesmo no fórum eu já utilizei ela para exemplificar uma autenticação basic no SOAP: Autenticação no Header - Webservice SOAP
ti05
Setembro 3, 2021, 1:07am
20
No meu caso foi por que um dos métodos WS estava referenciando um serviço que não correspondia ao do rest no arquivo corrente.
Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.