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;









sexta-feira, 28 de dezembro de 2018

json protheus visual code

Abaixo, modelo Json ( user settings ), utilizado no Visual Code Versão 1.24.1.




{ "editor.fontFamily": "Consolas, 'MS Linedraw', monospace", "files.encoding": "windows1252", "advpl.selectedEnvironment": "PROT14DB2", "advpl.environments": [ { "smartClientPath": "C:\\protheus\\PROT14DB2\\bin\\smartclient\\", "environment": "PROT14DB2", "serverVersion": "131227A", "server": "XXX9999", "port": "5089", "user": "admin", "passwordCipher": "MHNLNG5pRzhsOUcyMjNid0xvS3B4NDJBQTJSeHF3eXRJWXZtU0hDcTBxK21Kamk1NThjbHJhaTh4Ti9uM0VabnNQa3AxeFd1VDNtSklJR1Z6MlU2RGkxWG9Cc3FFZEhsdk1DQ1NDdTZ6Q1A1Wk92Q0dnR05PMHZndHRqaVIwMUM=", "includeList": "C:\\protheus\\INCLUDES\\PROTHEUS\\", "language": "PORTUGUESE", "rpoType": "TOP" }, { "smartClientPath": "C:\\protheus\\P11V1\\protheus\\bin\\smartclient\\", "environment": "PROTP11", "serverVersion": "131227A", "server": "XXX9999", "port": "5090", "user": "admin", "passwordCipher": "MHNLNG5pRzhsOUcyMjNid0xvS3B4NDJBQTJSeHF3eXRJWXZtU0hDcTBxK21Kamk1NThjbHJhaTh4Ti9uM0VabnNQa3AxeFd1VDNtSklJR1Z6MlU2RGkxWG9Cc3FFZEhsdk1DQ1NDdTZ6Q1A1Wk92Q0dnR05PMHZndHRqaVIwMUM=", "includeList": "C:\\protheus\\INCLUDES\\PROTHEUS\\", "language": "PORTUGUESE", "rpoType": "TOP" } , { "smartClientPath": "C:\\protheus\\P12Mnt-PROT\\bin\\smartclient\\", "environment": "P12117MNTPROTDB", "serverVersion": "170117A", "server": "XXX9999", "port": "5091", "user": "admin", "passwordCipher": "WTJBcStTdWd0ekYwWDk4ZjB6VGJ1dnVHOEdkT094QlZyRE0vL3M2Zm51WTNBWWxnclVHZ2dlakF2SUIrZ1QvQXV1aHBVSEN6ZEEyOXk1cmRFWlZPWGQrU1VBY0pGNmg3K3ZORDRVRWplN3IwRHJ1LzBzbi9hSmEwdkFEak9sbUM=", "includeList": "C:\\protheus\\INCLUDES\\PROTHEUS\\", "language": "PORTUGUESE", "rpoType": "TOP" } , { "smartClientPath": "C:\\protheus\\EXTRATORSQL\\bin\\smartclient\\", "environment": "EXTRATORSQL", "serverVersion": "131227A", "server": "XXX9999", "port": "5092", "user": "admin", "passwordCipher": "d2kvM2FGNzkxQmI3Z0E0SHUwaFdHNW5CNzZjWm51by9yTUoyZHVkby96Nm5CaWk4eGU1Zjlhc3dQVmhpMjNSUFVOaHIxTERKSGRXc1dxNkg5OThlbzlURjVLU0lONldyUnZwdjczVG9nVlM5WTA4Szc4Sm5kVXJYdTNnTGlnT0Q=", "includeList": "C:\\protheus\\INCLUDES\\PROTHEUS\\", "language": "PORTUGUESE", "rpoType": "TOP" } ], "advpl.startProgram": "SIGAFAT", "advpl.authorization_generation": "20180101", "advpl.authorization_validation": "20190101", "advpl.authorization_permission": "1", "advpl.authorization_code": "XXXXXXXXXXXXXXXXXXXXXXXXX", "advpl.compileFolderRegex": ".*\\.(prw|prx|apw|aph|tres|png|bmp|tres)", "advpl.pathPatchBuild": "C:\\protheus\\patch\\", "advpl.debug_multiThread": false, "advpl.debug_ignoreSourceNotFound": true, "advpl.debug_showTables": true, "advpl.debug_showPrivates": true, "advpl.debug_showPublic": true, "advpl.debug_showStatics": true, "workbench.colorTheme": "Visual Studio Dark", "mssql.connections": [ { "server": "XXX9999", "database": "XXXXXXX", "authenticationType": "Integrated", "profileName": "sa", "password": "XXX" } ], "git.ignoreMissingGitWarning": true, "explorer.confirmDelete": false }