quinta-feira, 28 de julho de 2022

launch.json

Olá, com o launch.json é possível criar vários ambientes para conexão de degub.

Abaixo segue um exemplo de launch.json (07/2022):

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "totvs_language_debug",
            "request": "launch",
            "name": "Smart Client 27 Debug",
            "program": "${command:AskForProgramName}",
            "smartclientBin": "C:/TOTVS/R27/smartclient/smartclient.exe",
            "cwb": "${workspaceFolder}",
            "isMultiSession": true,
            "enableTableSync": true,
            "enableMultiThread": true
        },
        {
            "type": "totvs_language_debug",
            "request": "launch",
            "name": "Smart Client 33 Debug",
            "program": "${command:AskForProgramName}",
            "smartclientBin": "C:/TOTVS/TOTVS_R33/tec/smartclient/smartclient.exe",
            "cwb": "${workspaceFolder}",
            "isMultiSession": true,
            "enableTableSync": true,
            "enableMultiThread": true
        },
        {
            "name": "debug chrome po ui",
            "type": "chrome",
            "request": "launch",
            "url": "http://localhost:4200/#",
            "webRoot": "${workspaceFolder}/taf-thf/",
            "sourceMapPathOverrides": {
                "webpack:/": "${webRoot}/",
                "/./": "${webRoot}/",
                "/src/": "${webRoot}/",
                "/": "",
                "/./~/": "${webRoot}/node_modules/"
            }
        }
    ],
    "lastPrograms": [
        {
            "args": [],
            "label": "sigataf",
            "description": ""
        },
        {
            "args": [],
            "label": "xxx",
            "description": ""
        }
    ],
    "lastProgramExecuted": "xxx",
    "lastProgramArgumens": []
}

tabelas debug advpl

É possível exibir as tabelas ao debugar o produto, utilize o enabletablesync no launch.json.

Exemplos de configuração abaixo:



Ex da tag: "enableTableSync": true

Ex: launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "totvs_language_debug",
            "request": "launch",
            "name": "Smart Client 27 Debug",
            "program": "${command:AskForProgramName}",
            "smartclientBin": "C:/TOTVS/R27/smartclient/smartclient.exe",
            "cwb": "${workspaceFolder}",
            "isMultiSession": true,
            "enableTableSync": true,
            "enableMultiThread": true
        },
        {
            "type": "totvs_language_debug",
            "request": "launch",
            "name": "Smart Client 33 Debug",
            "program": "${command:AskForProgramName}",
            "smartclientBin": "C:/TOTVS/TOTVS_R33/tec/smartclient/smartclient.exe",
            "cwb": "${workspaceFolder}",
            "isMultiSession": true,
            "enableTableSync": true,
            "enableMultiThread": true
        },
        {
            "name": "debug chrome po ui",
            "type": "chrome",
            "request": "launch",
            "url": "http://localhost:4200/#",
            "webRoot": "${workspaceFolder}/taf-thf/",
            "sourceMapPathOverrides": {
                "webpack:/": "${webRoot}/",
                "/./": "${webRoot}/",
                "/src/": "${webRoot}/",
                "/": "",
                "/./~/": "${webRoot}/node_modules/"
            }
        }
    ],
    "lastPrograms": [
        {
            "args": [],
            "label": "sigataf",
            "description": ""
        },
        {
            "args": [],
            "label": "xxx",
            "description": ""
        }
    ],
    "lastProgramExecuted": "xxx",
    "lastProgramArgumens": []
}

quarta-feira, 16 de fevereiro de 2022

pesquisa grid tabela mvc advpl

É possível ativar a pequisa de todas as colunas da grid em telas desenvolvidas com ADVPL MVC.

Utilize o parâmetro GridSeek no objeto da view.

oView:SetViewProperty('VIEW_T0O','GRIDSEEK', {.t.}) //Adiciona a pesquisa por campos no Grid.


Outras Refs:

1)

https://devforum.totvs.com.br/914-filtrar-um-grid-em-mvc

Filtrar um Grid em MVC

oView:SetViewProperty( 'ViewGrid' , 'ENABLENEWGRID' ) 

oView:SetViewProperty( 'ViewGrid', "GRIDNOORDER") 

oView:SetViewProperty( 'ViewGrid', "GRIDFILTER", {.T.}) 

oView:SetViewProperty( 'ViewGrid', "GRIDSEEK", {.T.})

2)

https://tdn.totvs.com/display/framework/FWFormView

Tipo de formulário: FormGrid habitado com o ENABLENEWGRID

Aceita o uso de * no ID.

Descrição: 

Define se será exibida ou nao a opcao de pesquisa no grid.

aParam : Deve ser passado um array com a estrutura abaixo,

se o array não for passado, o default é exibir a pesquisa no grid:

[1] ExpL: Se Verdadeiro habilita, Se falso desabilita
Exemplo: oView:SetViewProperty("VIEW_ZA2", "GRIDSEEK", {.T.})


quinta-feira, 9 de dezembro de 2021

Cannot execute Linter

 Está com falha para compilar os fontes em advpl ?

Apresenta o erro Cannot execute Linter. Includes not defined?

1. Acesse o configure server view















2.  Insira o caminho do include ( utilize um diretório curto, e no caminho, a cada subdiretório, utilize 2 barras caídas para esquerda ), ex:


"C:\\TOTVS\\ch12\\p10r200"






















3. Salve o arquivo modificado "servers.json"

4. Feche o Visual Code

5. Pare e suba os serviços

6. Abra o Vs Code e compile o fonte.

quinta-feira, 25 de novembro de 2021

Paginação API Advpl FWAdapterBase

Foi criada a WAdapterBaseV2(), classe para facilitar a criação de API com filtros e paginação e Hash Campos JSON to Protheus.

A partir do exemplo acima é possível realizar filtros no retorno do GET, abaixo exemplos utilizando paginação e o padrão oData.

Obs. Endereço e conteúdo da comparação deve ser ajustado de acordo com o ambiente utilizado.
Filtro utilizando paginação
Filtro utilizando o padrão oData
Filtro utilizando ordenação
Filtro informando os campos que serão retornados


Ver mais na referência do tdn totvs:

segunda-feira, 10 de maio de 2021

Connection token was not informed - Falha ao Compilar

Conectou no ambiente Protheus para compilar e/ou debugar no visual code?
Mesmo conectado, não consegue compilar nenhum fonte?
Apresenta a mensagem Connection token was not informed?


Recomendação:
Então exclua a configuração e recrie novamente, informando ambiente, usuário e senha.

Possivelmente a compilação passará a funcionar.

quinta-feira, 22 de abril de 2021

usuário único sql server

No SqlSever, devido falha no restore, o bd pode ficar preso com usuário único.
Para soltar o banco rode o comando com read_write, conforme:


 USE master;

GO

ALTER DATABASE R27

SET SINGLE_USER

WITH ROLLBACK IMMEDIATE;

GO

ALTER DATABASE R27

SET READ_WRITE;

GO

ALTER DATABASE R27

SET MULTI_USER;

GO

segunda-feira, 5 de abril de 2021

Instalação Protheus PostgreSQL

Abaixo um processo de como configurar o banco de dados postgres no protheus.

1° Baixar o postgres ( ex: postgressql 12.6.1)

https://www.postgresql.org/download/windows/

Opção: Advanced users can also download a zip archive of the binaries,

postgresql-12.6-1-windows-x64.exe

2° Instalar o postgres, se atentar a porta e senha na instalação ( anotar ).
Link para auxiliar na instalação:
https://www.devmedia.com.br/instalando-postgresql/23364

3° Abrir o pgadmin4 e criar um banco de dados

Atenção, abaixo documentação oficial da totvs sobre collations homologados:

https://tdn.totvs.com/display/tec/DBAccess+-+Collation%2C+Character+Type+e+Encoding

https://tdn.totvs.com/display/public/PROT/PostgreSQL

PostgreSQL - Funções do banco de dados e caracteres acentuados

Ao utilizar um banco de dados PostgreSQL instale e configure os parâmetros LC_COLLATE (collation), LC_CTYPE (character type) e ENCODING, conforme relacionado na tabela Banco de Dados, Collation, Character Type e Code Set/Encoding.

Quando utilizado o encoding LATIN1 – diferente do encoding indicado na tabela Banco de Dados, Collation, Character Type e Code Set/Encoding, funções do banco de dados que manipulam caracteres – por exemplo lower()/upper(), não suportam/tratam caracteres acentuados. Exemplo:

SQL> select upper('acentuação'), lower('ACENTUAÇÃO')
+----------+----------+
|column1   |column2   |
+----------+----------+
|ACENTUAçãO|acentuaÇÃo|
+----------+----------+

Comando para alteração, caso necessário

update pg_database set encoding = pg_char_to_encoding('WIN1252') where datname = 'postgres';
















4° Instalar o driver do postgres.

psqlodbc_x64.zip

https://www.postgresql.org/ftp/odbc/

Após a instalação, abrir novamente o odbc.

5° Configurar o odbc

Opção postgreSql Ansi

Informar o nome do banco, ex: postgres, server localhost, porta e senha informada na instalação.














6° Testar acesso no DbAccess



















































quinta-feira, 1 de abril de 2021

launch.json 1 ou mais configurações - Protheus

É possível configurar um ou mais tipo de perfis para debug no visual code.
Exemplo: foi baixado o plugin totvs advpl e o debug for chrome para desenvolver aplicações angular.
Ora você deseja debugar no sistema totvs ora no navegador.

debug remote protheus (po-ui)
debug chrome (po-ui)

Para isso no visual code, configure o launch.json conforme:
















.

{
    "version""0.2.0",
    "configurations": [
        {
            "name""debug remote protheus",
            "type""totvs_language_debug",
            "request""launch",
            "program""${command:AskForProgramName}",
            "cwb""${workspaceFolder}",
            "smartclientBin""C:/TOTVS/R27/smartclient/smartclient.exe",
            "isMultiSession"true,
            "enableTableSync"true,
            "enableMultiThread"true
        },
        {
            "name""debug chrome po ui",
            "type""chrome",
            "request""launch",
            "url""http://localhost:4200/#",
            "webRoot""${workspaceFolder}/xxx-thf/",
            "sourceMapPathOverrides": {
                "webpack:/""${webRoot}/",
                "/./""${webRoot}/",
                "/src/""${webRoot}/",
                "/""",
                "/./~/""${webRoot}/node_modules/"
            }
        }
    ],
    "lastPrograms": [
        {
            "args": [],
            "label""sigaxxx",
            "description"""
        },
        {
            "args": [],
            "label""xxx",
            "description"""
        }
    ],
    "lastProgramExecuted""xxx"
}

Comando Restore SQL Server

 Abaixo um comando útil que pode ajudar a restaurar a base, caso a interface do sql esteja travando.

RESTORE DATABASE test2

  FROM DISK = 'c:\temp\test.bak'

  WITH REPLACE,

  MOVE 'test' TO 'c:\temp\test2.mdf',

  MOVE 'test_log' TO 'c:\temp\test2.ldf';