Classe responsável por manipular arquivos Binary no banco de conhecimento.
Métodos:
New()
Sintaxe:
MPFilesBinary():New() → oFb
Descrição:
Instância a classe MPFilesBinary()
Parâmetros:
Vazio
Retorno:
- oFb → Objeto - Objeto da classe MPFilesBinary()
Register()
Sintaxe:
- MPFilesBinary():Resgister( lShowProcess ) → aRet
Descrição:
- Registra os dados na FILES_BINARY
Parâmetros:
Nome Tipo Descrição Obrigatório Padrão lShowProcess Lógico Define se exibe barra de processamento X
Retorno:
aRet → Array - Se processado com sucesso retorna lista do arquivo com seu UUID registrado.
aRet[1][1] - Caminho do arquivo. Ex.: 'C:/TOTVS/arquivo.txt' aRet[1][2] - UUID registrado
WriteFB()
Sintaxe:
- MPFilesBinary():WriteFB( oProcess, lEnd )
Descrição:
- Grava os dados na FILES_BINARY
Parâmetros:
Nome Tipo Descrição Obrigatório Padrão oProcess Objeto Objeto da barra de processamento NIL lEnd Lógico Passado como referência, recebe se houve cancelamento durante o processo .F.
Retorno:
Vazio
ReadFB()
Sintaxe:
- MPFilesBinary():ReadFB( cUUID, cDir, cArq, lAskOver ) → lOk
Descrição:
Leitura dos dados na FILES_BINARY
Parâmetros:
Nome Tipo Descrição Obrigatório Padrão cUUID Caracter UUID do File Binary X cDir Caracter Diretório ondo o arquivo será gravado. X cArq Caracter Nome do arquivo. X lAskOver Lógico Indica se pergunta se deve sobrepor o arquivo. .T.
Retorno:
- lOk → Lógico - Status do processamento
DeleteFB()
Sintaxe:
- MPFilesBinary():DeleteFB( cUUID ) → lDeleted
Descrição:
- Deleta o arquivo no banco de dados (Delete físico).
Parâmetros:
Nome Tipo Descrição Obrigatório Padrão cUUID Caractere UUID do File Binary X
Retorno:
- lDeleted → Lógico - Indica se foi possível a deleção
GetFB()
Sintaxe:
- MPFilesBinary():GetFB()
Descrição:
- Getter File/Lista de arquivos atribuída para processamento
Parâmetros:
- Vazio
Retorno:
- Vazio ou Arquivo/Lista
SetFB()
Sintaxe:
- MPFilesBinary():SetFB( xFiles ) → lOk
Descrição:
- Setter arquivo/lista que será processada
Parâmetros:
Nome Tipo Descrição Obrigatório Padrão xFiles Caractere ou Array Pode ser um arquivo ou lista de arquivos X
Retorno:
- lOk -> Lógico - Sucesso na atribuição
SetBlockSize()
Sintaxe:
- MPFilesBinary():SetBlockSize( nSize )
Descrição:
- Setter tamanho Blocksize para read/write do file
Parâmetros:
Nome Tipo Descrição Obrigatório Padrão nSize Numérico Tamanho do Blocksize 1mb
Retorno:
- Vazio
SizeFB()
Sintaxe:
- MPFilesBinary():SizeFB( cUUID, cUnitOfMeasurement, , lRound, nRound ) → cSize
Descrição:
- Verifica o tamanho de um determinado arquivo no banco de dados
Parâmetros:
Nome Tipo Descrição Obrigatório Padrão cUUID Caracter UUID do File Binary X cUnitOfMeasurement Caracter Unidade de medida que será retornado o tamanho do arquivo 'B' lRound Lógico Indica se será ou não arredondado o tamanho do arquivo .F. nRound Numérico Indica a quantidade de casas decimais para arredondamento. 3
Retorno:
- cSize → Caractere - Tamanho do arquivo
saveAlias()
Sintaxe:
- MPFilesBinary():saveAlias()
Descrição:
- Guarda a área de trabalho inicial
Parâmetros:
- Vazio
Retorno:
- Vazio
restoreAlias()
Sintaxe:
- MPFilesBinary():restoreAlias()
Descrição:
- Restaura a área de trabalho inicial
Parâmetros:
- Vazio
Retorno:
- Vazio
Exemplo:
#Include 'protheus.ch' /*{Protheus.doc}User function TstFBin() Função de teste - DDL da FILES_BINARY e usabilidade da classe MPFilesBinary e utilização */ User function TstFBin() Local oFB AS OBJECT Local aProcess AS ARRAY Local aReturn AS ARRAY Local nA AS NUMERIC Local cFileName AS CHARACTER Local cDrive AS CHARACTER Local cDir AS CHARACTER Local cNome AS CHARACTER Local cExt AS CHARACTER Local cSize AS CHARACTER Local lShowProcess AS LOGICAL Local lDeleted AS LOGICAL lShowProcess := .T. /**Instância a classe FILES_BINARY */ oFB := MPFilesBinary():New() /**Nova Dialog para seleção de arquivos - Função disponível apenas em builds superiores a 7.00.170117A. - Função não disponível para Smartclient Webapp (via Browser), nesse caso utilizar a cGetFile.*/ cFileName := tFileDialog( "All files (*.*) ","Arquivo",,, .F. ) /** Seta o arquivo/lista que será processada Pode ser passado uma lista de arquivos, Exemplo: aFiles := {c:\tmp\file1,c:\tmp\file2,c:\tmp\file3} */ oFB:SetFB( cFileName ) /** Retorna a lista de arquivos atribuída para processamento*/ aProcess := oFB:GetFB( cFileName ) VarInfo("Arquivos a serem processados", aProcess) /**Permite setar um novo BlockSize para read/write do file Default (1024 * 1024)*/ oFB:SetBlockSize(2048 * 1024) /**Grava os dados na FILES_BINARY lShowProcess - Se utiliza barra de processando Method Register, Se processado com sucesso retorna a array. aRet[n][1] Arquivo processado aRet[n][2] UUID registrado do arquivo*/ aReturn := oFB:Register(lShowProcess) VarInfo("Arquivos processados", aReturn) /**Irá fazer o download do arquivo no diretório original (utilizado na tFileDialog) */ If !Empty( aReturn ) For nA := 1 To Len( aReturn ) SplitPath( aReturn[nA][1], @cDrive, @cDir, @cNome, @cExt ) /**Recupera o arquivo gravado na FILES_BINARY @param 1 cUUID | character | UUID do File Binary @param 2 cDir | character | Diretorio onde arquivo sera gravado @param 3 cArq | character | Nome do arquivo @param 4 lAskOver | logical | Indica se pergunta se deve sobrepor o arquivo. Padrão .T. @return Logical, se o processamento foi executado com sucesso. */ oFB:ReadFB( aReturn[nA][2] , cDrive+cDir , "ryve_" + cValToChar(nA) + "_" + cNome + cExt) /**Verifica o tamanho do arquivo no banco de dados @param 1 cUUID | Character | UUID do File Binary @param 2 cUnitOfMeasurement | Character | Unidade de medida que será retornado o tamanho do arquivo @param 3 lRound | Logical | Indica se será ou não arredondado o tamanho do arquivo @param 4 nRound | Numeric | Indica a quantidade de casas decimais para arredondamento. Opcional. Padrão 3 @return cSize | Character | Tamanho do arquivo */ cSize := oFB:SizeFB(aReturn[nA][2]) /**Deleta um arquivo no banco de dados @param cUUID | Character | UUID do File Binary @return lDeleted | Logical | Indica se foi possível a deleção */ lDeleted := oFB:DeleteFB(aReturn[nA][2]) MSGINFO( "Arquivo : " + aReturn[nA][1] + CRLF + ; "UUID : " + aReturn[nA][2] + CRLF + ; "Tamanho : " + cSize + CRLF + ; "Deletado com sucesso : " + cValToChar(lDeleted) + CRLF + ; "Local de download : " + (cDrive + cDir + "TstFBin_" + cValToChar(nA) + "_" + cNome + cExt) + CRLF ,; "Informações"; ) Next nA EndIf Return
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas