[Resolvido]SC 9.7.009 - grid Geração de PDF repetindo o mesmo PDF anterior

Amigos,

Notei que os PDFs feito na grid, ficam com o mesmo nome aleatório da sessão, ai nos nosso servidores, ele não gera um PDF NOVO em cima ele carrega o PDF que já foi gerado na sessão.

Para contornar isso estou tendo que colocar no evento onScriptInit a macro sc_set_export_name(‘pdf’, $_Nome_PDF), para alterar o nome + data + hora + segundos, para ele não repetir o mesmo
nome e com isso gerar certo o PDF atualizado:

1 Curtida

problema de permissão na pasta tmp, pois a grid tenta gerar o pdf como está com o mesmo nome não consegue e carrega o pdf lá existente.

Não é problema na pasta /tmp se não ele nem conseguiria gerar ele com outro nome colocando o segundos com a macro sc_set_export_name(…

Pelo nome nativo na sessão do Scriptcase ficar sempre igual na geração ele esta carregando o mesmo do cache.

1 Curtida

Talvez porque consiga criar mas não sobrescrever
já aconteceu comigo.

Limpe a pasta e teste para ver se roda normal.
Depois rode novamente com filtros diferentes.

1 Curtida

Ok mas não é esse o caso, sempre que eu mando para produção atualizo
as app, eu passo o comando para refazer os chmods das permissões das pastas.

tente 777 nas pasta.

Testei com 777, fui em uma grid consulta genérica pesquisei um nome, gerou o html
fui em exportação, escolhi PDF, ai voltei mudei para pesquisar outro nome, gerou
o html, ai fui em exportação PDF, ele gerou o mesmo PDF anterior igualzinho,
até o nome do arquivo:

A data e hora desse pdf coincide com a execução do mesmo pela grid?
GUID não deveria ser o mesmo dentro do nome do arquivo pdf.

Fui via ‘FTP’ verificar o arquivo pdf gerado, o Scriptcase gerou o outro arquivo corretamente com o mesmo nome, é alguma coisa relacionada ao aproveitamento do cache para extensão .pdf não sei se é os navegadores ou a hospedagem, vou investigar mais.

Marcando isso como resolvido, porque eu descobri como fazê-lo.

Postando a solução para outros para referência futura.

  1. Navegue até o seu arquivo httpd.conf (/usr/local/apache/conf/httpd.conf) e abra-o usando seu editor de texto favorito. Se você não tiver acesso a esta pasta/arquivo, abra seu arquivo .htaccess. na raiz /www
  2. Por baixo das linhas “#LoadModule”, adicione o seguinte;
RewriteEngine On
RewriteRule .* - [E=noabort:1]
RewriteRule .* - [E=noconntimeout:1]

# Instruir o navegador a sempre verificar a versão mais recente de seus arquivos usando as diretivas do Apache.
<IfModule mod_headers.c>
	<FilesMatch "(?i)^.*\.(css|htm|html|gif|jpg|jpeg|js|png|pdf|xls|xlsx|doc|docx|csv|rtf)$">
		Header set Cache-Control "max-age=0,must-revalidate"
	</FilesMatch>
</IfModule>

O servidor diz ao navegador para verificar as versões mais recentes dos arquivos CSS, HTM, GIF, JPG, JPEG, JS, PNG e PDF. Você pode editar esta lista para o conteúdo de seus corações. Se a versão no servidor for diferente da que o navegador tem em seu cache, o navegador baixará uma nova cópia e atualizará seu cache.

1 Curtida

Mas aí deixa de aproveitar o cache, obrigando a renderização sempre que as páginas forem carregadas, correto?

Não o navegador é obrigado por esse comando a checar se a versão do cache é igual a data que ele tem se não ele carrega do servidor a cópia mais recente, que era o que não estava acontecendo.

1 Curtida