Melhorias


ç

Situação/Requisito:

Os desenvolvedores de segmentos entre outras áreas precisam saber quais campos estão presentes em um certo grupo da SXG

Solução/Implementação:

Foi criado um método na classe FWSX3Util que retorna todos os campos presentes em um grupo da SXG


Método estático criado:
GetAllGroupFields = Retorna todos os campos presentes em um certo grupo da SXG


Exemplo de uso:

aFields := FWSX3Util():GetAllGroupFields( "033" )


FWSX3UTIL.PRW

FWSXGUTIL.PRW

Chamados relacionados:

DFRM1-10562

Situação/Requisito:

Na execução e criação de relatório RM Report está sendo exigida autenticação por parte do sistema RM.

Solução/Implementação:

Realizada a implementação para autenticação usando dois novos parâmetros: MV_RMWSUSR e MV_RMWSPSW.
O parâmetro MV_RMWSUSR é para receber o código do usuário.
O parâmetro MV_RMWSPSW é para receber a senha do usuário.

O preenchimento destes parâmetros passa a ser obrigatório para o funcionamento adequado da integração Protheus x RM Reports.


CFGX013.PRW
CALLRM.PRW

Chamados relacionados:

DFRM1-12022

Situação/Requisito:

Funcionalidade onde possa analisar requisições HTTP/HTTPS e ter um diagnóstico.

Solução/Implementação:

Criado a Funcionalidade onde possa analisar requisições HTTP/HTTPS e ter um diagnóstico

FWHTTPANALYZER.PRW
FWHTTPCLIENT.PRW
FWHTTPPROXY.PRW
FWHTTPREQUEST.PRW
FWUIHTTPANALYZER.PRW

Chamados relacionados:

DFRM1-9740

Situação/Requisito:

A função FillGetDB continua a utilizar de RDD local ( DBF/CTREE ) mesmo com o dicionário migrado ao banco de dados.

Solução/Implementação:

A função FillGetDB foi alterada para criar o alias temporário com a FWTemporaryTable quando o dicionário estiver migrado ao banco de dados.

A liberação desta correção será realizada futuramente através do pacote de LIB versão 20180914, qual contemple os fontes abaixo relacionado(s):

APLIB172.PRW
MSGETDB.PRW

Chamados relacionados:

DFRM1-9393

Situação/Requisito:

Criar serviço de teste de conexão para RM TReports

Solução/Implementação:

Desenvolvido o endpoint /parameters conforme a documentação de provedores integrados do RM TReports  e criado serviço de testes

FWDBDATAPROVIDER.PRW

Chamados relacionados:

DFRM1-13890

Situação/Requisito:

Desenvolver endpoints para permitir a leitura de parâmetros pela aplicação RM TReports

Solução/Implementação:

Desenvolvido o endpoint /parameters conforme a documentação de provedores integrados do RM TReports no TDN

FWDBDATAPROVIDER.PRW

Chamados relacionados:

DFRM1-13889

Situação/Requisito:

Necessidade de enviar informações de uso do sistema para acessos no ambiente que não consomem licença

Solução/Implementação:

Adicionado tratamento para enviar ao LS o acesso de uso no ambiente que não consomem licenças

APLIB090.PRW
FWCANUSETAF.PRW
FWLSClIENT.PRX
TBICON.PRW
FWGETRPORELEASE.PRX

Chamados relacionados:

DFRM1-13642

Situação/Requisito:

A função FwGetSX5 está considerando os espaços em branco a direita da chave na SX5.

Solução/Implementação:

A função FwGetSX5 foi alterada de maneira a sempre efetuar um Trim no parâmetro cKey e também no campo X5_CHAVE..

FWGETSX5.PRW

Chamados relacionados:

DFRM1-8084

Situação/Requisito:

A equipe da Russia criou uma ferramenta chamada UTCTool para geração de casos de teste de rotinas em MVC. A ferramenta é baseada em um evento herdado da FWModelEvent e esse evento precisa ser acoplado no modelo de dados quando o caso de teste é executado. Preciso de uma funcionalidade no MVC que permita adicionar/remover um evento genericamente, de todos os modelos de dados. 

Solução/Implementação:

Criado função para permitir instalar e desinstalar a função nova.

FWFORMMODEL.PRX

FWFORMVIEW.PRW

FWMVCEVENTGENERIC.PRW

 

Chamados relacionados:

DFRM1-13377


Bugs


Situação/Requisito:

Não conformidade em alteração de linhas de grid CSS customizados

Solução/Implementação:

Ajustado o programa para recuperar o CSS customizado na troca de linha do grid Pai

FWFORMGRID.PRW

Chamados relacionados:

DFRM1-10142

Situação/Requisito:

EventViewer não está realizando uma chamada ao Mingle

Solução/Implementação:

Corrigido o programa para fazer um processo ao mesmo tempo, Mingle, independente da chave de seqüência gerada

Chamados relacionados:

DFRM1-11957

Situação/Requisito:

Embedded Audit Trail não esta removendo a trigger quando o Banco é Oracle para reaplica-la novamente

Solução/Implementação:

Efetuado tratamento para validar o formato da lista das tabelas do SX2 quando o Banco for Oracle e corrigida a criação da função de captura do login para as triggers do Audit Trail

FWATTMKTRIG.PRW

Chamados relacionados:

DFRM1-11688

Situação/Requisito:

Ao tentar limpar o filtro e salvar, de um relatório já personalizado anteriormente, o filtro vazio não estava sendo salvo

Solução/Implementação:

A função SaveFilter, responsável por salvar o filtro criado na personalização, estava validando o filtro criado pelo usuário, porém como o filtro estava vazio ele era ignorado pela função, portanto a mesma foi alterada para quando o filtro estiver vazio, atualizar o filtro já existente, ou seja, limpar o filtro já existente

Report14.prw
FWFilterEdit.PRW

Chamados relacionados:

DFRM1-11186

Situação/Requisito:

Ao criar um filtro na consulta genérica era gerado error.log, o erro só era reproduzido quando a consulta genérica era alterada para ter filtros de relação e o filtro fosse executado na tabela relacionada, sendo filtro de data

Solução/Implementação:

O método ExecuteFilter da FWBrwTable estava gerando error.log quando o filtro possuía mais de uma expressão a ser resolvida (#), pois a macro execução não compreendia o operador lógico presente na expressão ( AND, OR ), pois estavam no padrão SQL.

Para corrigir a situação, foi criado um novo método na FWBrwTable chamado ResolveFilter, esse método utiliza da função __TRFil2Exp, que percorre a expressão do filtro e executa cada par de octothorpe (#) de uma vez, evitando erros de macro execução.

Obs1.: A função __TRFil2Exp foi isolada em um único fonte para melhorar a organização e manutenção do código.

Obs2.: Foi criada a função FWTamSX3, que é igual a presente na pasta de infraestrutura do TFS, visando a LIB ficar cada vez mais desacoplada de segmentos e também para que segmentos possa utilizar da mesma eliminando problemas detectados pelo SonarQube.

Report02.prw
FWTRFil2Expression.prw
FWBrwTable.PRW
FWTamSX3.prw

Chamados relacionados:

DFRM1-11594

Situação/Requisito:

Ao navegar por todas as opções no botão de configurar do Browse está gerando error.log

Solução/Implementação:

Corrigido o controle de objetos na navegação do menu de configuração do browse

FWBrwConfig.prw

Chamados relacionados:

DFRM1-10858

Situação/Requisito:

Ao vincular um privilégio ao usuário, na seleção de empresa (grupo), é gerado um erro de array out bounds, por conta de acesso indevido ao array

Solução/Implementação:

A função FWAccessSM0 estava gerando erro de array out bounds, isso ocorria por conta do loop efetuado no array, também por efetuar o aDel e aSize do mesmo, deixando-o menor dentro do loop.

Para a correção, o loop passou a ser efetuado via um while, pois dessa forma a expressão de tamanho do array é sempre reavaliada, assim quando o mesmo acaba diminuindo, o while reavalia e sai do loop, evitando acesso a índices inexistentes.

CFGA512.PRX

Chamados relacionados:

DFRM1-10249

Situação/Requisito:

No cadastro do MILE, ao utilizar acelerador para preenchimento dos campos utilizando MVC, gerava erro por recursividade em instâncias de codeblock

Solução/Implementação:

Implementado um controlador para somente executar o load do modelo sendo utilizado novamente quando trocar o id

CFGA600.prw

Chamados relacionados:

DFRM1-11893

Situação/Requisito:

Solicitada melhoria para colocar as aspas de forma automática quando utilizada consulta padrão em campo Range nos Perguntes

Solução/Implementação:

Adicionadas aspas simples no retorno da consulta padrão quando a mesmo é retornada em campo tipo Range.

Libfunc.prw

Chamados relacionados:

DFRM1-11919

Situação/Requisito:

No Wizard do Banco de Conhecimento, os campos de usuário tem o conteúdo replicado ao incluir um novo conhecimento

Solução/Implementação:

Adicionado tratamento para executar o inicializador padrão ou inicializar os campos de usuário quando incluído um novo conhecimento pelo Wizard.

FwSX3Util.prw
Matxfunc.prx

Chamados relacionados:

DFRM1-10812

Situação/Requisito:

Schedule não apresenta as filiais para configurar novo agendamento

Solução/Implementação:

Ajustado o programa para trabalhar com uma cópia do cache de filiais do objeto do usuário autenticado.

FwSchF3SM0.prw

Chamados relacionados:

DFRM1-10925

Situação/Requisito:

Ao utilizar a função MSGetDB com uma tabela temporária criada pela função FWTemporaryTable, o campo de sequência da grid não incrementa corretamente. Essa ocorrência não é reproduzida caso a tabela seja criada pelo CriaTrab()

Solução/Implementação:

Adicionado tratamento para o correto auto incremento no MsGetDB independente se o campo compõe o índice

MsGetDb.prw

Chamados relacionados:

DFRM1-10626

Situação/Requisito:

Os workshops precisam de uma função da LIB para retornar os campos de uma tabela

Solução/Implementação:

O nome do método é FWSX3Util():GetAllFields(), que recebe duas notificações na seguinte ordem:

cAlias - Alias da tabela de retorno dos campos
Virtuais - Se o retorno também trará os campos virtuais, a opção opcional com o valor padrão verdadeiro.

FWSX3Util.prw

Chamados relacionados:

DFRM1-11791

Situação/Requisito:

Ao atingir o limite de 990 linhas de tabelas auditadas na rotina Aplicador, e apertar a seta para baixo para incluir mais uma linha, em vez de aparecer uma linha em branco, ele efetua a pintura do grid com os valores da última tabela cadastrada

Solução/Implementação:

Corrigido o controle de registros no grid e aumentado o limite de registros no grid do cadastro de tabelas do Embedded AuditTrail.

CFGA710.PRW
FWBrowse.PRW
FWFormGrid.PRW

Chamados relacionados:

DFRM1-10853

Situação/Requisito:

Não está sendo possível utilizar o SIGAPAF e logar no SIGALOJA em ambiente TOP

Solução/Implementação:

Existia um IFNDEF TOP no módulo SIGAPAF que impedia a sua execução em ambiente TOP, esse IF foi removido, permitindo assim a utilização do SIGAPAF ( SIGALOJA ) em ambiente TOP.

ApLib000.prw

Chamados relacionados:

DFRM1-12099

Situação/Requisito:

O erro abaixo ocorre pelo fato de estar sendo utilizado o alias como NEW e no Informix a palavra NEW é reservada. Alterando para outro nome o erro não ocorre.

THREAD ERROR ([10628], nilton, NAR-W10K) 13/08/2018 07:12:16
: Error : -201 (37000) (RC=-1) - [Informix][Informix ODBC Driver][Informix]A syntax error has occurred.
( From tInformixConnection::GetQueryFile )

Solução/Implementação:

Efetuada a alteração do nome do alias na montagem da query para não ficar igual ao nome reservado utilizado em banco Informix.

ApUpd030.prw

Chamados relacionados:

DFRM1-11990

Situação/Requisito:

Não conformidade ao tentar personalizar o relatório CTBR040 (TReport).


Solução/Implementação:

A personalização do relatório estava gerando erro por conta da função SaveFilter, a mesma foi criada para sempre receber um objeto no segundo parâmetro:
Static Function SaveFilter( aFilter, oSection )

Porém nem sempre essa seção recebida está instanciada, pois é possível omitir a seção de filtros do relatório, como é o caso do CTBR040, sendo assim a função era chamada com o valor NIL.
Para correção, a função passou a receber o parâmetro oSection como opiconal (OPTIONAL) e tratando o mesmo somente em caso diferente de NIL, corrigindo assim a não conformidade.


REPORT14.PRW

Chamados relacionados:

DFRM1-11573

Situação/Requisito:

Ao utilizar o servidor de e-mail TSEBR, os relatórios são enviados corretamente por e-mail, porém o "Esqueceu sua Senha" não funciona.


Solução/Implementação:

Aumentado o tempo de timeout para o envio de senha por e-mail.

AP5MAIL.PRW

Chamados relacionados:

DFRM1-11289

Situação/Requisito:

Ao utilizar opção de incluir direto pelo Menu Funcional, o mesmo está direcionando para o Browser da rotina e não para inclusão.

Solução/Implementação:

O método GetMenuDef da classe FWUIMenuF estava criando o bloco de código para MDI igual ao padrão ( ADV ), porém para MDI é necessário informar o CARGO do mesmo, assim a nova thread MDI consegue chamar as funções necessárias que setam o browse para já ser aberto de uma determinada forma, como por exemplo a inclusão.
Para correção, os blocos de função e hyperlink do menu foram corrigidos, de forma a setar a variável pública oApp:Cargo com os valores corretos, dessa forma a nova thread MDI executa as funções presentes no Cargo do FWApp e abre corretamente a rotina quando a mesma é chamada via o Menu Funcional.


FWUIMENUF.PRW

Chamados relacionados:

DFRM1-10693

Situação/Requisito:

Não conformidade ao utilizar na msgetdad campo tipo lógico na tela.

Solução/Implementação:

Corrigido a apresentação do campo tipo lógico na tela.


MSGETDAD.PRW 

Chamados relacionados:

DFRM1-12289

Situação/Requisito:

Ao utilizar a classe FWPreparedStatement e chamar o método SetString com um valor que contenha '?', está gerando um query inconsistente, pois o método GetFixQuery está confundindo o valor setado pelo SetString com um valor a set setado.

Solução/Implementação:

O método GetFixQuery foi alterado para deixar de fazer o StrTran, o mesmo agora verifica a posição da '?' e substitui utilizando de SubStr, sempre pegando a posição da próxima '?' com base na última encontrada mais o tamanho do valor inserido na query ( parâmetro setado ), dessa forma a substituíção dos valores sempre segue em frente, evitando alterar valores já inseridos.

A liberação desta correção será realizada futuramente através do pacote de LIB versão 20180914, qual contemple os fontes abaixo relacionado(s):


FWPREPAREDSTATEMENT.PRW

Chamados relacionados:

DFRM1-12175

Situação/Requisito:

PROTHEUS_EVENT_VIEWER_ está consumindo alto consumo de processamento quando possui serviço do Schedule ativo

Solução/Implementação:

Adicionado tratamento para a cada 500 execuções finalizar a thread da PROTHEUS_EVENT_VIEWER_ e iniciar uma nova

BOPROTHEUSEVENTVIEWER.PRW


Chamados relacionados:

DFRM1-11149

Situação/Requisito:

A consulta padrão não está posicionando no registro corretamente ao efetuar uma pesquisa, trocar o índice e selecionar para salvar o índice.

Solução/Implementação:

O seek falhava, pois o índice informado e salvo não continha nenhum valor que pudesse ser utilizado, esse é um comportamento inesperado no P12, pois o checkbox de salvar o índice nunca existiu em versões anteriores.
Para correção, antes de efetuar o seek, é verificado se o índice é o primeiro da lista de índices, caso não seja, é selecionado o primeiro índice, feito e seek e depois o índice anterior é restaurado, de forma ao usuário não perceber que o índice foi alterado antes de efetuar o seek.

FWLOOKUP.PRW
FWSEEK.PRW


Chamados relacionados:

DFRM1-10117

Situação/Requisito:

A ChangeQuery está entrando em loop em querys que começam com a palavra reservada WITH.

Solução/Implementação:

A ChangeQuery não conhece e trabalha com querys que começam com a palavra WITH, por isso a mesma entrava em loop.
Como a ChangeQuery não é homologada para trabalhar com querys que utilizem de WITH, a mesma passou a verificar a existência de WITH no começo da Query enviada e gerar exceção ( error.log) informando que a função não está apta a trabalhar com querys assim, ou seja, ao enviar uma Query que comece com WITH para a função ChangeQuery a mesma vai gerar error.log.

APLIB070.PRW


Chamados relacionados:

DFRM1-10883

Situação/Requisito:

Não conformidade ao subir serviço Ctree BoundServer com SX’s tendo a flag Huge Files.

Solução/Implementação:

Desabilitado a flag de Huge Files para os arquivos de dicionário de dados do Protheus.

APSDU.PRW


Chamados relacionados:

DFRM1-12334

Situação/Requisito:

Sistema tentava realizar a abertura de arquivos .csv em smartclient no sistema operacional MacOs através de shellexecute (não suportado pela plataforma).

Solução/Implementação:

Realizado tratamento para sempre perguntar onde gravar a exportação para csv e assim o próprio usuário define onde e quando realizar a abertura do arquivo.

AVISO.PRX
APLIB230.PRW

Chamados relacionados:

DFRM1-11161

Situação/Requisito:

Não conformidade na impressão de browse quando existia os caracteres Á Ì e usava encodeUTF8 duas vezes.

Solução/Implementação:

Realizado tratamento para evitar a não conformidade avaliando se conseguiu executar o encodeUTF8 novamente.

FWMSEXCELEX.PRX

Chamados relacionados:

DFRM1-12634

Situação/Requisito:

Não conformidade no agrupamento de visões criadas no browse das rotinas

Solução/Implementação:

Efetuado a criação de um scroll no painel de visões quando exceder o tamanho padrão

FWDROPDOWN.PRW

Chamados relacionados:

DFRM1-11313

Situação/Requisito:

Não conformidade ao utilizar rotina com a classe FWUIWorkSheet e setar um nickname na célula, sem informar valor não informar valor

Solução/Implementação:

A classe FWWorkSheet não estava validando corretamente a célula no método SetNickName, portanto antes de tentar usar o objeto, será validado se o mesmo existe, para tanto foi criada uma proteção no método LoadFromModel da classe FWModelSheet, que envia um valor de forçar a criação da célular para o método SetCellValue da classe FWUIWorkSheet, método também alterado para a criação dessa proteção

FWMODELSHEET.PRW
FWUIWORKSHEEET.PRW
FWWORRKSHEET.PRW


Chamados relacionados:

DFRM1-12440

Situação/Requisito:

Não conformidade ao buscar usuário SSO para executar desbloqueio do mesmo

Solução/Implementação:

Ajustada a mensagem de bloqueio que é apresentada para informar o usuário que foi validado/bloqueado para manutenção

FWUISKIN.PRW

Chamados relacionados:

DFRM1-11572

Situação/Requisito:

Não conformidade ao efetuar a personalização de um relatório gerado pelo TOTVS Report ( Relatório TOTVS ).

Solução/Implementação:

A geração do relatório dinâmica estava incorreta, gerando o array de filtros de usuário com apenas 3 posições, porém esse array possui 5 posições, portanto a geração do array que antes estava com " := Array(3)" passou a ficar como " := Array(5)" corrigindo assim o error.log de acesso a índice inexistente no array.

PREPORT.PRW

Chamados relacionados:

DFRM1-11419

Situação/Requisito:

Não conformidade em catálogo de endereços no Rest

Solução/Implementação:

O catálogo de endereços estava correto, porém o endereço informado no HTML do REST estava incorreto, corrigindo o endereço o catálogo voltou a funcionar corretamente

FWRESTSRV.PRW
FWRESTMODEL.PRX
FWURLCATALOG.PRW

Chamados relacionados:

DFRM1-11037

Situação/Requisito:

Não conformidade em filtro de de função com retorno de character ( string )

Solução/Implementação:

Foi criada uma verificação no retorno da função informada, caso seja um char ( string ) a função de validação de filtro passa a considerar um retorno válido

FWFILTEREDIT.PRW

Chamados relacionados:

DFRM1-9718

Situação/Requisito:

Dupla validação de campo "filial" em validação de filtro

Solução/Implementação:

O método de aplicação de filtro foi alterado, para quando os valores de limite de filiais serem iguais, fazer apenas uma comparação, dando mais performance a aplicação de filtros no browse

FWBrwTable.PRW

Chamados relacionados:

DFRM1-12690

Situação/Requisito:

Não conformidade em relatório por arquivo ou email

Solução/Implementação:

A função Ap5Wab foi corrigida, compilada e verificada no repositório

ADDBOOK.PRW


Chamados relacionados:

DFRM1-12887

Situação/Requisito:

News Letter exibindo não conformidade no Browse

Solução/Implementação:

Foi criado um tratamento para que o browser só seja exibido quando existe conexão a internet e o site está no ar

FWHASINTERNETACCESS.PRW
FWNEWSLETTER.PRW

Chamados relacionados:

DFRM1-12674



Situação/Requisito:

Ao adicionar uma linha no browse, o campo de auto incremento não está sendo incrementado corretamente.

Solução/Implementação:

O método AddLine da classe MsGetDB foi corrigido, o mesmo passou a verificar o campo com o valor do FieldPos e não mais com base no aHeader, evitando assim pegar o valor anterior com o FieldGet de um campo incorreto, com isso o incremento dos campos foi corrigido.

MSGETDB.PRW


Chamados relacionados:

DFRM1-12927



Situação/Requisito:

Não conformidade ao personalizar relatório e filtrar utilizando a expressão ESTÁ CONTIDO.

Solução/Implementação:

Adicionada opção de utilização de separador e seleção de qual separador utilizar para ser utilizado em operações de 'contido e não contido em'.

FWFILTEREDIT.PRW

Chamados relacionados:

DFRM1-11367

Situação/Requisito:

Não conformidade em privilégios após atualizações de rotinas

Solução/Implementação:

 Efetuado a correção na verificação em casos de itens novos em rotinas cadastradas no privilegio.

MPUSERACCOUNT.PRX

Chamados relacionados:

DFRM1-11400

Situação/Requisito:

Quando habilitado a terceira posição do array no método SetTpPlanilha, a opção apresentada na tela esta incorreta.

Solução/Implementação:

Corrigido o controle do array de opções de impressão em Planilha.

REPORT01.PRW

Chamados relacionados:

DFRM1-12224

Situação/Requisito:

Não conformidade em criação de filtro na rotina "Geração de Remitos"

Solução/Implementação:

 Fornecido o esforço para buscar uma estrutura dos campos da tabela temporária sem dados e montar uma estrutura dos campos utilizados no filtro.

FWBROWSE.PRW

Chamados relacionados:

DFRM1-12683

Situação/Requisito:

Não conformidade em privilégio para rotina cadastro FWEventViewer

Solução/Implementação:

 Corrigido o controle de privilégios para a rotina FWEventViewer

MPUSERACCOUNT.PRX

Chamados relacionados:

DFRM1-11673

Situação/Requisito:

Não conformidade ao trabalhar com o método init da classe FWUISchedulePersist

Solução/Implementação:

O método init passou a abrir os alias necessários de trabalho para o schedule, corrigindo assim o error.log alias inexistente ao efetuar a chamada do método init.

FWUISCHEDULEPERSIST.PRW


Chamados relacionados:

DFRM1-12398

Situação/Requisito:

Não conformidade em geração de relatório personalizado para impressão frente/verso

Solução/Implementação:

 Adicionado tratamento para gerar uma requisição de impressão para cada cópia ao invés de enviar uma única requisição com todas as cópias

FWMSSPOOL.PRW

Chamados relacionados:

DFRM1-11908

Situação/Requisito:

Não conformidade em função FWMsExcelEx

Solução/Implementação:

 Realizada a criação do método SetUTF8Encode que recebe um parâmetro lógico informando se vai usar ou não o codigo UTF8 para a escrita dos dados passados

FWMSEXCELEX.PRW

Chamados relacionados:

DFRM1-12765

Situação/Requisito:

Quando executada uma rotina automática (qualquer) via job ou pelo TDS (de maneira que requeira preparação de ambiente), o sistema não grava o nome do usuário que executou a ação no relatório CFGR700

Solução/Implementação:

 Realizado ajuste na preparação do ambiente para que os dados referentes a geração do audit sejam gravados corretamente.

TBICONN.PRW

Chamados relacionados:

DFRM1-11913

Situação/Requisito:

Ao criar um ValidUser com a expressão Positivo() .or. Vazio(), por exemplo, e existisse um valid no campo o valid era montado errado, da seguinte maneira: Valid1() .or. valid()2 .and. Positivo() .or. Vazio() . Desta maneira, somente seria validado como verdadeiro se o valid() fosse verdadeiro, ignorando o Positivo().

Solução/Implementação:

Efetuado tratamento para a correta junção dos valids, transformando o valid acima no seguinte valid: (valid1() .or. Valid2()) .and. (positivo() .or. vazio())

MSAUTOPR.PRW

Chamados relacionados:

DFRM1-13290

Situação/Requisito:

As perguntas do relatório do audittrail trail não existem na versão P12.

Solução/Implementação:

Ajustado a criação de perguntes no relatório.

AT_REPORT.PRW

Chamados relacionados:

DFRM1-11716

Situação/Requisito:

Ao utilizar o método ButtonCancelAction na View do MVC, está gerando não conformidade de variável não é um objeto

Solução/Implementação:

A classe da FormBar foi alterada para verificar se a variável do botão ainda está possui a instância do mesmo, para isso foi criada uma função no bloco de código do Action do botão, evitando assim tentar acessar diretamente objeto.

FWFORMBAR.PRW

Chamados relacionados:

DFRM1-12925

Situação/Requisito:

O News Letter está exibindo um browser com erros quando o da TOTVS está fora do ar ou o ambiente não possui acesso ao mesmo.

Solução/Implementação:

Foi criado um tratamento para que o browser só seja exibido quando existe acesso a internet e o site está no ar.

FWHASINTERNETACCESS.PRW
FWNEWSLETTER.PRW

Chamados relacionados:

DFRM1-12672

Situação/Requisito:

O método nHorSize() da FWMsPrinter não está retornando o tamanho da página mesmo após setar a página pelo método SetPaperSize.
O método GetTextWidth não traz o tamanho correto do texto/fonte.

Solução/Implementação:

O método SetPaperSize() foi corrigido para atualizar os valores de largura e altura da página, corrigindo assim o retorno do método nHorSize().
O método GetTextWidth foi alterado para receber um terceiro parâmetro referente ao tipo de cálculo, recebendo um numérico:
1 = getFontPixWidths
2 = CalcFieldSize

  1. = Default ( Padrão ) GetTextWidth, sendo o comportamento padrão e já existente

FWMSPRINTER.PRW

Chamados relacionados:

DFRM1-9725

Situação/Requisito:

Schedulle não respeita o numero de execuções por dia quando o intervalo passa da meia noite

Solução/Implementação:

Adicionado tratamento para respeitar corretamente a hora inicial do agendamento quando há troca de dia

FWBOSCHDPERIOD.PRW

Chamados relacionados:

DFRM1-13302

  • Sem rótulos