× Linguagem de Programação ADVPL

Perguntas Dúvida Roberto Alves - WS Produto x Fornecedor

Mais
10 anos 2 meses atrás #24940 por kanaamlrr

Boa tarde alguem me salva!
Estou programando um webservice para inclusão do produto x fornecedor (SA5 - MATA060)
Porem estou com problema nos campos obrigatorios no módulo SIGAQIE que nao utilizamos
Ex: A5_SITU, pelo modulo de compras consigo incluir com ele vazio (nem aparece) porem por web service ele diz ser obrigatório alguém sabe oque posso fazer?


Cara, no seu prepare enviroment você está definindo qual módulo?
Como ele está declarado no fonte?
Tente forçar o módulo compras (02)

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #24957 por asf.Roberto
Como faço isso Kanãam?
Ja tentei das seguintes formas:
1) PREPARE environment EMPRESA ("01") FILIAL ("01") MODULO "COM"
2) PREPARE ENVIRONMENT EMPRESA "01" FILIAL "01" USER 'ADMIN' PASSWORD 'XXXXX' TABLES "SA5" MODULO "COM"
3)RPCSetType(3)
PREPARE ENVIRONMENT EMPRESA "01" FILIAL "01" USER 'ADMIN' PASSWORD 'XXXXX' TABLES "SA5" MODULO "COM"
SetModulo("SIGACOM","COM")
4)RPCSetType(3)
PREPARE ENVIRONMENT EMPRESA "01" FILIAL "01" MODULO "COM"
SetModulo("SIGACOM","COM")
5)SetModulo("SIGACOM","COM")

E em todos os casos acima da o erro abaixo (as vezes muda o SX6 para SX2):
THREAD ERROR ([11716], JOB_WS_010101, THIS) 04/09/2014 17:33:24

Stack :
SX6 not open for GetMV in file .\miscfuncs.cpp at line 3595

e o webservice retorna em branco.

Oque pode ser?
Obrigado

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #24959 por kanaamlrr
Poste seu fonte aqui por favor.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #24960 por asf.Roberto
Segue abaixo:
#INCLUDE "APWEBSRV.CH"
#INCLUDE "PROTHEUS.CH"
#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"
#INCLUDE "TBICODE.CH"


//DADOS DE RETORNO OP METHODO GETOPDADOS
WSSTRUCT _RET      
	WSDATA   _cCodStatus    	AS string  OPTIONAL
	WSDATA   _cDescStatus		AS string  OPTIONAL
ENDWSSTRUCT  

//CRIA O WS
WSSERVICE WS_PSG1 DESCRIPTION "Web service para Integração"  

	
	//DADOS SA5
	WSDATA _acao As String
	WSDATA _codigo As String
	WSDATA _fornecedor As String
	WSDATA _loja As String
	WSDATA _referencia As String
	
	
	//DADOS DE RETORNO                      
	WSDATA _RET As _RET OPTIONAL
    //METHODOS DO WEBSERVERVICE
	WSMETHOD manutencaoProdFor   DESCRIPTION  "Efetua a manutenção na vinculação produto x fornecedor"
	
ENDWSSERVICE





WSMETHOD manutencaoProdFor WSRECEIVE _acao,_codigo,_fornecedor,_loja,_referencia WSSEND _RET WSSERVICE WS_PSG1
  	Local aArea     := GetArea()  
  	Local lWsReturn := .T.   
	Local aDados := {}
	Local cMsg := ""
	lMsErroAuto := .F.
  	
  	
	RPCSetType(3) 
        PREPARE environment EMPRESA ("01") FILIAL ("01") MODULO "COM"
  	SetModulo("SIGACOM","COM")
  	
  	::_RET     := WSClassNew('_RET')
  	
 
	aAdd(aDados,{"A5_PRODUTO",::_codigo,Nil})
  	aAdd(aDados,{"A5_FORNECE",::_fornecedor,Nil})
  	aAdd(aDados,{"A5_LOJA",::_loja,Nil})
  	aAdd(aDados,{"A5_CODPRF",::_referencia,Nil})
  //	aAdd(aDados,{"A5_SITU","B",Nil})    //<- NAO UTILIZAMOS MODULO SIGAQIE
  	
  	
  	
  	IF ::_acao == "I"
  		cMsg := "Registro incluido com sucesso!"
  		MSExecAuto({|x,y| Mata060(x,y)},aDados,3) //Inclusao
  	ELSEIF ::_acao == "A"
  		cMsg := "Registro alterado com sucesso!"
  		MSExecAuto({|x,y| Mata060(x,y)},aDados,4) //Aletaracao  	
  	ELSEIF ::_acao == "E"
  	  	cMsg := "Registro apagado com sucesso!"
  		MSExecAuto({|x,y| Mata060(x,y)},aDados,5) //Exclusao  	  	
  	ENDIF
  	
  	IF lMsErroAuto
     	::_RET:_cCodStatus     := "999"
		::_RET:_cDescStatus    := MostraErro()
	ELSE
        ::_RET:_cCodStatus     := "100"
		::_RET:_cDescStatus    := cMsg
	ENDIF
	
	RESET ENVIRONMENT
	
	RestArea(aArea)   
Return(lWsReturn)
Obriado

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #24961 por kanaamlrr
Remova a linha do SetModulo.
Somente no prepare env ele já irá abrir no módulo certo.
Se ele der erro, poste o erro com a linha que causou o erro.
Mas ele deve funcionar...

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #24981 por asf.Roberto
Olá Kanaãn
Não funcionou, segue erro:

THREAD ERROR ([4864], JOB_WS_010101, THIS) 08/09/2014 15:34:56

Stack :
SX6 not open for GetMV in file .\miscfuncs.cpp at line 3595
on SUPERGETMV(MATXFUNA.PRX) 07/02/2013 09:57:39 line : 5113

[build: 7.00.121227P-20131106]
[environment: PROTOTIPO]
[thread: 4864]
[dbthread: 8148]
[rpodb: Top]
[localfiles: CTREE]
[remark: WSServer SOAP REQUEST (WS_PSG1:MANUTENCAOPRODFOR) em 20140908 15:34:55 (running)]
[threadtype: WebJobExThread]
Called from MARELETABPRC(OMSA010.PRX) 27/12/2012 10:53:46 line : 12
Called from RSTMVBUFF(MATXFUNA.PRX) 07/02/2013 09:57:39 line : 5171
Called from CLEANALLFILTER(APLIB070.PRW) 19/02/2013 18:32:30 line : 1026
Called from __WSCONNECT(XMLWSVCS.PRW) 23/03/2012 14:34:12 line : 871

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.108 segundos
Joomla templates by a4joomla