segunda-feira, 28 de novembro de 2016

DEBUGAR WEBSERVICE - PROTHEUS 11.8


Abaixo, os procedimentos para efetuar o debug:

No Developer Studio:
1) Configurações\Editar\Aba Geral
Marcar permitir depuração de múltiplas threads

2) Colocar o ponto de parada no método.

3) Executar uma opção que não existe no repositório:
ex: u_xxx

Ao executar o debug, será apresentado a seguinte mensagem:
invalid function call: u_xxx

Não encerre a mensagem, continue com o aviso na tela.

4) Abrir o smartclient direto da aplicação e não do developer Studio,
ou solicitar que o usuário execute novamente a rotina no perfil dele.

5) Executar o menu que chama u_xxx

6) O ponto de parada, irá cair na linha marcada, basta percorrer as linhas e utilizar da forma que necessita.

REF.:

Fonte p/ debug:

#INCLUDE "APWEBSRV.CH"
#INCLUDE "PROTHEUS.CH"

// Fonte Exemplo para consumir o WS
User Function TesteWs()

Local oWs := NIL
oWs := WSWSTESTE():New()

If oWs:RETMENSAGEM()
alert('Mensagem : '+ oWs:cRETMENSAGEMRESULT)
Else
alert('Erro de Execução : '+GetWSCError())
Endif

Return

//Fonte do WebService
WSSERVICE WSTESTE DESCRIPTION "Serviço com a finalidade de mostrar um exemplo de webservice"
WSDATA cString as String
WSMETHOD RETMENSAGEM DESCRIPTION "Método que retorna uma mensagem"
ENDWSSERVICE
WSMETHOD RETMENSAGEM WSRECEIVE NULLPARAM WSSEND cString WSSERVICE WSTESTE
cMensagem := "Bem Vindo(a) ao UserFunction.com.br"
::cString := cMensagem
Return .T.

terça-feira, 22 de novembro de 2016

ENABLENUMBER Ambiente Protheus 11.8

Se você utilizava o hardlock, com a numeração dos códigos apontando nos arquivos SXF(atual+1) e SXE( SXF+1), cuidado!

Ao atualizar com o novo modelo de licenciamento (LS2014),
a opção de numeração volta a apontar diretamente para o hardlock (o default do instalador vem com a opção 1). Dessa forma, nos próximos acessos, o sistema exclui os arquivos SXE e SXF.

Ao logar no sistema, ficará a 'bagunça' nos códigos das rotinas de cadastro e movimentações, pois a numeração no hardlock não está equalizada com os arquivos SXE e SXF.

Para evitar isso, efetue backup dos arquivos SXE e SXF, atualize com o LS2014, nos appservers.ini, aponte novamente a opção EnableNumber para 0, restaure os arquivos SXE e SXF na system e pronto.

Observação:
ENABLENUMBER= 0 = SXE e SXF
ENABLENUMBER= 1 = Hard Lock

Ref:
http://tdn.totvs.com/pages/releaseview.action?pageId=235570751

quinta-feira, 10 de novembro de 2016

Trace TOP DBAccess Protheus

Afim de tentar descobrir o que está ocorrendo para alguma lentidão, abaixo os 
PROCEDIMENTOS PARA EFETUAR O TRACE:

1. No TopConnect acessar "Aba" Usuários.

2. Pedir ao usuário que entre no sistema.

3. Clicar no usuário desejado .

4. Clicar no botão inferior (Rastrear/Trace).

5. Pedir ao usuário que execute o procedimento desejado.

6. Salvar o (Rastrear/Trace).

Itens Download - Portal TOTVS

Para atualizar o release do protheus, ex: 11.5 para 11.8, abaixo os itens necessários para download:

00_DBACCESS
01_BINÁRIO
02_DICIONARIO
03_HELPS_CAMPOS
04_RPO
05_INCLUDES
06_UPDATE
07_PATCH
08_MENUS
* 09_ARQUIVOS
* 10_TSS
* 11_RDMAKE PADRAO
* 12_PROCEDURES

terça-feira, 8 de novembro de 2016

sexta-feira, 4 de novembro de 2016

Como habilitar LogProfiler Avaliação Desempenho Protheus (trace para rotinas ADVPL)

1) Vamos iniciar abrindo o arquivo de configuração de seus servidores, mais conhecido como appserver.

2) Para ativar o LogProfiler e necessário adicionar a clausula "LogProfiler=1" 
no ambiente que deseja monitorar.

Importante: Quando habilitamos o LogProfiler gera uma pequena queda de performance 
no ambiente (environment), por isso, recomendo utilizar um ambiente exclusivo para geração do trace.

Exemplo para habilitar o LogProfiler

[SEU AMBIENTE]
SourcePath=C:\P12.1.7\Protheus_data\apo
RootPath=C:\P12.1.7\Protheus_data\
StartPath=\system\
RpoDb=top
RpoLanguage=portuguese
RpoVersion=120
LocalFiles=ctree
localdbextension=.dtc
PictFormat=DEFAULT
DateFormat=DEFAULT
RegionalLanguage=BR
PanelServer=localhost
PanelPort=1231
HelpServer=localhost:8079
LOGPROFILER=1 (concordo) Voce deve habilitar o log no ambiente

[Drivers]
Active=TCP

[TCP]
TYPE=TCPIP
Port=1236

[General]
InstallPath=C:\P12
CONSOLELOG=1 
CONSOLEMAXSIZE=100999888

Deve-se habilitar o consolelog para que o trace seja gerado 
nos arquivos console.log e/ou console.bak

Importante: quando habilitamos o CONSOLELOG=1 os arquivos 
console.log e console.bak serão gravados dentro da 
pasta \System, porem existe a clausula "ConsoleFile" 
onde o administrador do sistema pode alterar o local de 
gravação do arquivo e seu nome físico, por este motivo devemos
prestar atenção a esta configuração.

Veja o exemplo:

[General]
InstallPath=C:\P12
CONSOLELOG=1
ConsoleFile=c:\Sistema\P11\Logs\Server_01.log (erro)   

(Quando utilizamos está opção o administrador do sistema pode 
alterar o nome do arquivo - Ponto de Atenção)

3) Antes de executar a rotina que sera monitorada e necessário 
limpar os arquivos de console.log e console.bak.
Observação: Você não ira conseguir limpar os arquivos se o serviço 
do appserver.exe estiver no ar, por isso, derrube o serviço e 
limpe os arquivos. (Antes de derrubar verifique se existem usuários 
conectados no sistema)

4) Vamos executar a rotina a ser monitorada.

Baixe o vídeo no link abaixo e veja o exemplo de geração do LogProfiler.

O LogProfiler não consegue enxergar processamento realizados por Stored Procedures, por este motivo antes de habilitar o monitoramento verifique se a rotina em questão possui procedures.
O LogProfiler e gerado dentro dos arquivos Console.Log e Console.bak (Caso tenha em seu ambiente)
Para utilização e necessário habilitar o ConsoleLog=1 na sessão "General" do arquivo appserver.ini

Maiores detalhes sobre o LogProfiler acesse o Link 

REF: