segunda-feira, 8 de fevereiro de 2021

Encode ADVPL Visual Code Protheus

Ao abrir arquvis em extensões diferentes é possível configurar em qual encode o arquivo será carregado, evitando problemas de encode indevido.

No arquivo settings.josn, use a tag, files.encoding, ex:

"[prw]": {
    "files.encoding": "windows1252",
    }


  "workbench.iconTheme": "vscode-icons",
    "[CH]": {
    "files.encoding": "windows1252",
    },
    "[ini]": {
    "files.encoding": "windows1252",
    },
    "[advpl]": {
    "files.encoding": "windows1252",
    },
    "[prw]": {
    "files.encoding": "windows1252",
    },
    "[PRW]": {
    "files.encoding": "windows1252",
    },
    "[python]": {
    "files.encoding": "utf8",
    },
    "[html]": {
    "files.encoding": "utf8",
    },
    "[pug]": {
    "files.encoding": "utf8",
    },
    "[javascript]": {
    "files.encoding": "utf8",
    },
    "[typescript]": {
    "files.encoding": "utf8",
    },
    "[php]": {
    "files.encoding": "utf8",
    },
    "[json]": {
    "files.encoding": "utf8",
    },
    "[css]": {
    "files.encoding": "utf8",
    },
    "editor.codeActionsOnSave": null

quinta-feira, 15 de outubro de 2020

Privilégios Protheus

A rotina de Privilégios no Protheus foi criada para facilitar a atribuição de direitos e simplificar seu processo de manutenção e administração.

Apesar da possibilidade de retirar o acesso através do parametrizador do menu do Usuário ou Grupo de Usuário, é recomendável utilizar o cadastro de Privilégios para este objetivo, pois isto facilita o processo de auditoria, desta forma, a visualização do menu no Sistema não é alterada e, somente, o acesso à rotina pode ser retirado.


O ponto mais importante aqui é saber que existe a função 
MPUserHasAccess,
que verifica se um usuário tem acesso a uma opção do a rotina.

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

Ex: MPUserHasAccess('ROTINA',1) Caso exista uma subrotina, deve existir a função estática do menudef.

Static Function MenuDef()

    Local aRotina as array

    aRotina := {}

    aAdd( aRotina, {'Configurações','SUB_ROTINA',0,3} )

Return( aRotina )


Links úteis:

Configurar Privilégio para controlar acesso a rotinas
https://tdn.totvs.com/pages/releaseview.action?pageId=271389653

Configuração de Privilégios no Protheus
https://userfunction.com.br/infraestrutura/sigacfg/privilegios-no-protheus/

Que tal padronizar os menus ?
Vídeo da 
userfunction: https://youtu.be/LOoZypSZ8GM

quarta-feira, 25 de março de 2020

Debug 191205P protheus

Configurações para compilar e debugar com o binário 191205P 

Todos S.O

Adicionar a chave ssl com true, definir o serverVersion, dentro da configuração do ambiente:
"ssl" : true
"serverVersion": "191205P",
Exemplo:
{
"name": "Docker",
"smartClientPath": "..../smartclient/",
"environment": "environment",
"includeList": ".../totvs/include/
"server": "localhost",
"port": "1201",
"user": "admin",
"serverVersion": "191205P",
"ssl" : true,
"passwordCipher": "changeIt=" ,
"enable": true
}

Windows

É necessário alterar o Bridge para o Alpha ( advpl.alpha_compile": true),  conforme:
    "advpl.startProgram": "SIGAFAT",
    "advpl.authorization_generation":  , 
    "advpl.authorization_validation":  ,
    "advpl.authorization_permission":  ,
    "advpl.authorization_code": ,
    "advpl.compileFolderRegex": ".*\\.(prw|prx|apw|aph|tres|png|bmp|tres)",
    "advpl.pathPatchBuild": "C:\\protheus\\patch\\",
"advpl.alpha_compile": true,
...
É necessário refazer o passwordCipher. 

Pois não é possível migrar a senha antiga.

fonte:

launch.json debug protheus

Problemas aos debugar? Recrie o arquivo launch.json

C:\...\.vscode\launch.json

"Clicar no fonte.prw + f5 p/ debugar ou
Clicar fora do fonte, no debug, +f5 para criar o 1° arquivo launch.json"

O json abaixo pode ser colocado no launch.json e deverá alterar o caminho do smartclient.

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Advpl Debug",
            "type": "advpl",
            "request": "launch",
            "args": [],
            "cwd": "${workspaceRoot}",
            "programRun": "${command:AskForProgramName}",
            "stopOnEntry": false,
            "enviromentInfo": "${command:GetEnvInfos}",
            "smartclientPath": "C:\\...\\protheus\\bin\\smartclient\\",
            "workspace": "${workspaceRoot}/"
        }
    ]


}

Espero que ajude!

segunda-feira, 2 de dezembro de 2019

Query Menu Protheus

Abaixo Query que retorna as informações sobre o menu x rotinas
com dicionário no banco de dados.

Parte 1

/*Filtro ID menu ( M_ID ) */
SELECT * FROM MPMENU_MENU MPN WHERE M_NAME LIKE '%SIGACOM%'

Parte 2

 SELECT
 M_ID, I_ID, I_TP_MENU, I_ITEMID, I_FATHER, F_FUNCTION, I_STATUS, I_ORDER, I_TABLES, I_ACCESS, I_DEFAULT, I_RESNAME, I_TYPE, I_OWNER, F_DEFAULT
 , I_MODULE, I18N1.N_DESC N_PT, I18N2.N_DESC N_ES, I18N3.N_DESC N_EN, KW1.K_DESC K_PT, KW2.K_DESC K_ES, KW3.K_DESC K_EN
 FROM MPMENU_MENU MPN
 INNER JOIN MPMENU_ITEM MPI ON I_ID_MENU = M_ID AND MPI.D_E_L_E_T_ = ' '
 LEFT JOIN MPMENU_FUNCTION MPF ON F_ID = I_ID_FUNC AND MPF.D_E_L_E_T_ = ' '
 INNER JOIN MPMENU_I18N I18N1 ON I18N1.N_PAREN_ID = I_ID AND I18N1.N_LANG = '1' AND I18N1.D_E_L_E_T_ = ' '
 INNER JOIN MPMENU_I18N I18N2 ON I18N2.N_PAREN_ID = I_ID AND I18N2.N_LANG = '2' AND I18N2.D_E_L_E_T_ = ' '
 INNER JOIN MPMENU_I18N I18N3 ON I18N3.N_PAREN_ID = I_ID AND I18N3.N_LANG = '3' AND I18N3.D_E_L_E_T_ = ' '
 LEFT JOIN MPMENU_KEY_WORDS KW1 ON KW1.K_ID_ITEM = I_ID AND KW1.K_LANG = '1' AND KW1.D_E_L_E_T_ = ' '
 LEFT JOIN MPMENU_KEY_WORDS KW2 ON KW2.K_ID_ITEM = I_ID AND KW2.K_LANG = '2' AND KW2.D_E_L_E_T_ = ' '
 LEFT JOIN MPMENU_KEY_WORDS KW3 ON KW3.K_ID_ITEM = I_ID AND KW3.K_LANG = '3' AND KW3.D_E_L_E_T_ = ' '
 WHERE
 M_ID ='8E937F58C6034840951B2647A180FFFA' AND MPN.D_E_L_E_T_ = ' ' ORDER  BY I_ORDER

sexta-feira, 29 de novembro de 2019

Instalação TSS 3.0 + TAF

TSS - Atualizações do TSS Totvs Sped Service - Release 12.1.25 | 12.1.27



Procedimentos de instalação do TSS para utilizar no REINF por exemplo.

Instalando e configurando TSS

1) Criar banco TSS Collation: Latin1_General_BIN

2) Criar conexão ODBC, ex: banco TSS_V12

3) Apontar para odbc criado.

4) Subir Serviço DBAccess / Configurar odbc criado no dbMonitor

5) Na central de Downloads, pesquise por TSS
Itens a serem atualizados: AppServer, Repositório, Pacote Acumulado ( patch ), Arquivo de Urls e schemas.

6) Copiar certificado para C:\\ Configurar TSS no TAF

SIGATAF\ Atualizações\Configs. TAF\Wizard Config. TSS
(2 = pré produção )
data início e-social > 01/01/2018

Campos importantes no sigamat
M0_NOMECOM: 
M0_TPINSC:        
M0_CGC:             
M0_INSC:            
M0_ESTENT:       
M0_CODMUN:   
M0_ESTCOB:

Dados \ Informações Software House


quarta-feira, 27 de novembro de 2019

Drop Table Sequence Oracle

Abaixo os comandos utilizados para limpar o BD oracle.

SELECT 'DROP TABLE ' || TABLE_NAME || ';' || ' COMMIT;'
   FROM ALL_SEQUE
   WHERE TABLESPACE_NAME = 'FIS175'
     AND TABLE_NAME IN(SELECT TABLE_NAME
                       FROM ALL_TABLES
                       WHERE TABLESPACE_NAME = 'FIS175')

select   DISTINCT 'DROP SEQUENCE '||SEQUENCE_OWNER||'."'||SEQUENCE_NAME||'";'
from     dba_sequences
where    sequence_owner = upper('FIS175')

REF:
https://www.dirceuresende.com/blog/apagando-todos-os-objetos-de-um-owner-no-oracle-database/

quinta-feira, 31 de outubro de 2019

� encondig query advpl protheus

Por Default no Visual Code(VS), em desenvolvimento ADVPL, utilizamos o encondig Windows1252.

Se utilizarmos outra ferramenta (notepad++ / excel) para identar ou codificar uma parte do código ".prw", depois colar no visual code e se essa ferramenta estiver com outro encondig configurado, poderemos ter alguns problemas no fonte.

Poderá ficar com alguns caracteres especiais ( ¿½ , � ) ou até mesmo não visíveis
em alguns encondigs e ocasionar erro na execução de algum programa.

Para verificar se está tudo ok, faça:

1- Na barra inferior, clicar em Windows 1252;



2- Reopen With Encondig UTF-8;

























3- Corrigir o problema do caracter, acentuação ou espaçamento indevido no fonte;
4- Salvar o fonte;
5- Clicar no Encondig UTF-8;
6- Selecionar SAVE With Encoding com a opção Western (Windows 1252);



segunda-feira, 20 de maio de 2019

Patch Protheus Lista Prw

No visual code (1.24.1), é possível gerar uma patch, através de uma relação de fontes.

1° Conectar em um ambiente que possua os fontes compilados;
2° Configurar no user.settings um diretório com o arquivo txt 
(que contenha uma lista de fontes .prw);

Ex: "advpl.pathPatchBuild""C:\\TOTVS\\patch\\"

3° Abrir o folder que contenha um arquivo txt com a lista de fontes;

4° Selecionar o arquivo txt e com o botão direito, clicar em Advpl, Patch Build - 
Cria um patch Patch(PTM) da lista de arquivo.

5° Será apresentado a seguinte mensagem no output
AdvPL Iniciado
Patch successful built! It's saved in:C:\TOTVS\patch\

6° Ao verificar o diretório, constará o arquivo gerado: tttp120.ptm;