FWMSPrinter com exception de visual components 12.1.25

Bom dia,

tinha um serviço rodando em REST que usava o FWMSPrinter para gerar pdf`s no servidor diretamente, porém atualizando o ambiente o mesmo parou de funcionar.

Agora obtenho o erro JOB THREADS DOESN'T SUPPORT REMOTE/VISUAL COMPONENTS que antes não acontecia.

Como utilizo somente pra gerar o pdf com o parametro lDisabeSetup com true, acredito que seja um erro, alguém sabe alguma versão que isso volta a funcionar ou ainda não foi corrigido?

Att.

Vinicius,

Antes o binário gerava exceção quando um componente de interface era criado em uma thread sem interface, como um job. Porém em determinado momento isso foi removido e deixou de gerar error.log... Mas acabaram notando diversos comportamentos inesperados, pois existia um objeto de interface sem interface (estranho né), então voltaram o comportamento de gerar exceção.

Tivemos de dar manutenção em inúmeros fontes por conta dessa volta de comportamento, normalmente verificamos com o IsBlind se existe interface, mas também é possível utilizar a função GetRemoteType, que vai retornar um número negativo no caso de job.


O que você pode tentar fazer é o seguinte, ao instancia a FWMsPrinter, enviar o parâmetro lDisableSetup conforme o retorno do GetRemoteType:


oPrint := FWMSPrinter():New("teste", IMP_PDF, /*lAdjustToLegacy*/, /*cPathInServer*/, GetRemoteType() == -1)


Documentação:

https://tdn.totvs.com/display/tec/GetRemoteType

Deu certo, mas não tenho certeza se somente esse LDisableSetup resolve, no meu tive que passar mais booleans conforme: oPDF := FWMSPrinter():New(cFilePrint, IMP_PDF, .F., /cPathDest/, .T.,.T.,.F.)

Obrigado Daniel vc é o cara!