+6 votos
51 visitas
Há uma demanda para exclusão de arquivos do BDOC sem a necessidade de remoção do registro na tabela.
por (50 pontos)
editado por | 51 visitas

2 Respostas

+3 votos
Melhor resposta

A função de macro ClearFieldDocument permite excluir o arquivo fisicamente no BDoc sem alterar o registro: 

Public Sub EXCLUIRFISICAMENTE_OnClick()

ClearFieldDocument("NOME_DA_TABELA", "NOME_DO_CAMPO", CurrentQuery.FieldByName("HANDLE").AsInteger, False)

End Sub

O segredo é informar o último parâmetro False, que informa para não limpar o valor do campo arquivo na tabela.

É muito mais simples que utilizar o cliente do BDoc.

Lembrando que ao tentar visualizar o arquivo após a exclusão física, será exibido o erro "Não foi possível obter o documento do servidor".

por (861 pontos)
selecionada por
+1 voto

Para excluir arquivos diretamente no BDOC sem qualquer alteração no registro da tabela que contém o campo arquivo, basta acessar o BDOC diretamente via o cliente BDoc disponível na macro:

 

Public Sub EXCLUIRFISICAMENTE_OnClick()

Dim dc As Doc
Set dc = SuperServerClient("DOC")

' Seleciona a pasta onde se encontra o arquivo
dc.Select(GetFieldDocumentGroup("NOME_DA_TABELA"))

' Apaga o arquivo diretamente no BDoc
dc.Delete(GetFieldDocumentFile("NOME_DO_CAMPO", CurrentQuery.FieldByName("HANDLE").AsInteger))

Set dc = Nothing

End Sub

Lembrando que ao tentar visualizar o arquivo após a exclusão física, será exibido o erro "Não foi possível obter o documento do servidor".

por (861 pontos)

Perguntas relacionadas

423 perguntas
470 respostas
342 comentários
466 usuários