segunda-feira, 21 de agosto de 2023

Protheus Teste Grupo Empresa 99

Apoio para criar uma Base de Teste para acesso com o Grupo de Empresas 99 e com acesso de até dois usuários. Para criar filiais na Empresa Teste (99), sem a necessidade de consumir licenças realize os procedimentos abaixo:

Na Lib esta chumbado a empresa teste como 99 filial 01 até a filial 03, sendo que os nomes delas tem que ser conforme abaixo.
01 - MATRIZ
02-  FILIAL02
03 - FILIAL03

Diferente disso ele não considera como empresa Teste, e será  necessário o apontamento para o serviço de licenças.

Instalação do License Server Virtual.

Baixe o instalador do License Server Virtual correspondente ao seu Sistema Operacional.

Via Portal: Home/ Protheus/ TOTVSTEC-FRAMEWORK/ INSTALADORES 

Link direto: https://suporte.totvs.com/portal/p/10098/download#000006/368/TFINSTALL/

Instalação do License Server

Efetue o processo de instalação, conforme orientações abaixo:

Windows: https://tdn.totvs.com/display/framework/TOTVS+License+Server+Virtual#TOTVSLicenseServerVirtual-Instala%C3%A7%C3%A3oWindows

Na tela do Wizard de Configuração do TOTVS ID, clique em Cancelar:

Como iremos instalar um ambiente para uso do Grupo de Empresa 99 e será apenas um ambiente de testes, não será necessário efetuar a configuração do TOTVS ID.

Instalação do Protheus

Importante: Precisa do License instalado.

Antes de executar o instalador é necessário ter criado/configurado ODBC e banco de dados previamente.

https://tdn.totvs.com/display/tec/DBAccess++Como+criar+uma+fonte+de+dados+para+uso+com+Microsoft+SQL+Server

Efetue a instalação de acordo com as instruções da documentação abaixo
https://tdn.totvs.com/display/public/PROT/Instalador+Protheus+Windows+12.1.27

Observações:

- Na tela do Wizard de Configuração do License Server, informe o endereço IP de instalação do License Server e a mesma porta informada durante o processo de instalação 

do License Server "Porta do serviço de licenciamento (conexão ERP)", o valor padrão é 5555.

- Caso não lembre qual a porta de licenciamento informada na instalação do License Server, acesse o diretório de instalação, pasta \bin\appserver, 

localize e abra o arquivo Appserver.ini.

Pesquise pela seção [LICENSESERVER], a porta está informada na Tag port.

No exemplo abaixo, a porta do serviço de Licenciamento do License Server é a 5555:

[LICENSESERVER]
Enable=1
Port=5555
ShowStatus=0
EnableNumber=1
LicenseFile=lsinitialize.inf
IPCGOTIMEOUT=45000
IPCRETURNTIMEOUT=90000
NUMBERVAL=1
STATELESSREUSECONN=60
AUTOSAVENUMBER=1

Para logar no sistema:

Usuário: admin
Senha: vazio (apenas 1 espaço )

Exemplo do INI para base teste:

[P122210]
SourcePath=C:\totvs\P122210\apo
RootPath=C:\totvs\P122210\protheus_data
StartPath=\system\
RpoDb=top
RpoLanguage=portuguese
RpoVersion=120
LocalFiles=ctree
localdbextension=.dtc
Logprofiler=0
TopMemoMega=1
dbserver=localhost
dbdatabase=MSSQL
dbalias=P122210
dbport=7890
startsysindb=1
specialkey=P122210

[TCP]
TYPE=TCPIP
Port=1235

[DRIVERS]
ACTIVE=TCP
MULTIPROTOCOLPORT=1
MULTIPROTOCOLPORTSECURE=0

[General]
InstallPath=C:\
BUILDKILLUSERS=1
consolelog=1
Segmento=YddTQHWW=VZF=yhu
Serie===AV
MAXSTRINGSIZE=30
MAXQUERYSIZE=31960
APP_Environment=P122210

[LICENSECLIENT]
SERVER=localhost
PORT=5555
enable=1

Referência.:
https://centraldeatendimento.totvs.com/hc/pt-br/articles/4404775838103-MP-FRAME-Criar-uma-Base-de-Teste-para-acesso-com-o-Grupo-de-Empresas-99

License Server Virtual 3.6.0 (23-07-17-TOTVSLICENSE_3.6.0_WINDOWS)
https://tdn.totvs.com/display/public/framework/TOTVS+License+Server+Virtual#TOTVSLicenseServerVirtual-Instala%C3%A7%C3%A3oWindows

segunda-feira, 12 de dezembro de 2022

Instalação Protheus Oracle

Tutorial de como configurar o oracle 21c Express para utilizar junto ao Protheus Release 12.1.33 no Windows 10 Pro.

1. Instalação Oracle
2. Conexão no DBeaver
3. Variáveis de Ambiente
4. Configurações do BD ( collation )
5. ODBC
6. Validação com DBAccess
7. Ex appserver.ini C/ Oracle


1. Instalação Oracle

Baixar o oracle "express" direto do site oficial.

https://www.oracle.com/br/database/technologies/xe-downloads.html














Avançar

Colocar senha ( sa ) minúsculo

Instalar





















Permitir acesso




















Aguardar demora um pouco \ Selecionar Português Brasil













































localhost:1521
1521/XEPDB1

usuário: system
senha: sa

Instalação do Oracle Concluída.

2. Conexão no DBeaver

host:
localhost
Port: 1521
DataBase: XE
Opção: Service Name

User: system
Password: sa
Role: Normal
Client: OraDB21Home1

























NetworkAlias: <alias>
TNS name:  não informar
User name: system
Password: sa






































































Conexão com Dbeaver concluído.


3. 
Configuração das variáveis de ambiente.

Propriedades do Sistema \ Avançado \ Variáveis de Ambiente \ Variáveis do sistema \





















































1) ORACLE_BASE
C:\app\denis.souza\product\21c


2) ORACLE_HOME
C:\app\denis.souza\product\21c\dbhomeXE


3) ORACLE_SID
Xe

4) PATH
C:\app\denis.souza\product\21c\dbhomeXE\bin
(Essa variável já existe, mas parece que ele cria este caminho
dentro dela sozinho, após instalação)

5) TNS_ADMIN

C:\app\denis.souza\product\21c\homes\OraDB21Home1\network\admin
( com esse deu certo )

C:\app\denis.souza\product\21c\dbhomeXE\network\admin
( com esse não deu certo )

6) USERNAME
SYSTEM


Ex:
tnsnames.ora 
C:\app\denis.souza\product\21c\homes\OraDB21Home1\network\admin )

# tnsnames.ora Network Configuration File: C:\app\denis.souza\product\21c\homes\OraDB21Home1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <HOSTNAME + .(Domínio) + .local>)(PORT = <1521>))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

LISTENER_XE =
  (ADDRESS = (PROTOCOL = TCP)(HOST = <HOSTNAME + .(Domínio) + .local>)(PORT = <1521>))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

Ex: 

<HOSTNAME + Domínio + .local>

UFON99999999.uf01.local

Configurações de variáveis de sistema concluído.


4. Configurações do BD ( collation )

Executar o MSDOS como administrador de sistema

Rodar os seguintes comandos:

C:\windows\system32>
sqlplus









SQL> connect sys / 280679 as sysdba;

(Obs: connect sys / senha as sysdba;)

Caso a autenticação falhe, faça a alteração no sqlnet.ora.
DE:
SQLNET.AUTHENTICATION_SERVICES= (NTS)
PARA:
SQLNET.AUTHENTICATION_SERVICES= (NONE)
REF:
https://cursos.alura.com.br/forum/topico-o-que-fazer-ness-caso-ora-12638-falha-na-recuperaoo-de-credencial-87424

SQL> alter system set nls_length_semantics=CHAR scope=both;

SQL> SHUTDOWN IMMEDIATE;

SQL> startup restrict;

SQL> alter database character set INTERNAL_USE WE8MSWIN1252;

SQL> shutdown;

SQL> startup;

Comandos rodados com sucesso.

SELECT * FROM NLS_DATABASE_PARAMETERS;

SELECT value$ FROM sys.props$ WHERE name= 'NLS_CHARACTERSET';






5. ODBC

Adicionar\ S
elecionar: Oracle em OraDB21Home1





















Data Source Name: XE
Description: XE
TNS Service Name: não informar
User Id: system















TEST CONNECTION


















Service Name: XE
UserName: system
Password: sa






































ODBC configurado com sucesso.


6. Validação com DBAccess

No dbaccess.ini colocar o caminho da oci


[ORACLE/XE]
user=system
clientlibrary=C:\app\denis.souza\product\21c\dbhomeXE\bin\oci.dll
password=“ÿ
TableSpace=
IndexSpace=
LogAction=0
Disable=0
environments=XE

[ORACLE]
environments=XE















































Configuração com Dbaccess concluída com sucesso.


7. Ex appserver.ini C/ Oracle

[XE]
SOURCEPATH=C:\TOTVS\TOTVS_R33\Protheus\apo
ROOTPATH=C:\TOTVS\TOTVS_R33\Protheus\protheus_data_ora
STARTPATH=\system\
RPODB=TOP
RPOLANGUAGE=PORTUGUESE
RPOVERSION=120
LOCALFILES=CTREE
LOCALDBEXTENSION=.dtc
StartSysInDB=1
TOPMEMOMEGA=1
PICTFORMAT=DEFAULT
DATEFORMAT=DEFAULT
SpecialKey=xXE
DBDataBase=ORACLE
DBALIAS=XE
DBserver=LOCALHOST
DBPORT=7891
BUILDKILLUSERS=1

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: