+6 votos
78 visitas
Há uma demanda para exclusão de arquivos do BDOC sem a necessidade de remoção do registro na tabela.
por (52 pontos)
editado por | 78 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 (865 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 (865 pontos)

Perguntas relacionadas

+9 votos
1 resposta
0 votos
1 resposta
+1 voto
1 resposta
perguntado 28 Jul, 2023 por Jeferson Stecklein (9 pontos) | 2 visitas
Melhores Apr 2026
  1. CeceliaWysel

    5 Pontos

  2. VernonSchaw

    5 Pontos

  3. MargieOsterh

    5 Pontos

200 pontos
Melhores 2026 Apr 06 - 12
  1. danilo.pereira

    96 Pontos

  2. danilo.pereira

    96 Pontos

  3. danilo.pereira

    96 Pontos

  4. willian.metalsystem

    69 Pontos

  5. henrique.muller

    62 Pontos

  6. luciano.fronza

    61 Pontos

  7. luciano.fronza

    61 Pontos

  8. luciano.fronza

    61 Pontos

  9. diuari.molinari

    52 Pontos

  10. diuari.molinari

    51 Pontos

518 perguntas
567 respostas
389 comentários
772 usuários