Páginas filhas
  • totvs.framework.file.ExtractResource

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Classe que efetua a extração de um resource do repositório de objetos para um diretório no rootpath do server, apenas efetua a extração caso seja necessário.

Para determinar se é necessário extrair novamente o arquivo faz a comparação do MD5 do conteudo do arquivo em relação ao arquivo físico.

Métodos:

  • GetCodResourceLog
  • IsResourceOk
  • GetLog
  • GetRooPath
  • SetRootPath
  • GetPathResFile
  • NeedReload
  • ExtractOneResource
  • DeleteLastResource


Exemplo

Bloco de código
titleExemplo
linenumberstrue
collapsetrue
#include "protheus.ch"

/*/{Protheus.doc} TestExtRes
    Função para testar a classe ExtractResource
@author Caio.Lima
@since 01/08/2022
/*/
Function U_TestExtRes()
    oResource := totvs.framework.file.ExtractResource():New()

    oResource:ExtractOneResource("CNTA330", "APP")
    ConOut(oResource:GetLog())
    oResource:IsResourceOk()
    oResource:DeleteLastResource()
Return


...

GetCodResourceLog
Retorna o código do log de extração do resource

...

IsResourceOk
Retorna se o arquivo de resource está ok, ou seja, presenta na pasta
de rootpath e atualizado em relação ao RPO

...

GetLog
Retorna o log definido na classe

...

GetRooPath
Metodo para retornar o caminho padrão de extração do arquivo
caso a propriedade extensao esteja informada retorna tb a extensao como parte do caminho
sempre retorna o caracter de barra no final do caminho

...

SetRootPath
Metodo para definir o caminho padrão de extração do arquivo
caminho de extração deve ser no servidor a partir da protheus_data

...

GetPathResFile
Retorna o nome do resource concatenado com o rootpath

...

NeedReload
Metodo para verificar se o resource precisa ser extraido novamente
@param cMD5, codigo md5 a ser comparado, caso seja passado não será utilizado
        o arquivo fisico para comparar com o md5 do RPO
@return True caso precise fazer o reload no arquivo e false caso não precise.

ExtractOneResource
    metodo para extrair um resource do RPO
    retorna true apenas caso tenha feito a extração,
    caso tenha retornado false é necessário utilizar o metodo isResourceOk
    para determinar se o resource está disponivel na pasta, junto com o metodo GetLog e GetCodResourceLog
@param cResource, Indica o nome do recurso no repositório a ser salvo em disco
        pode ser passado junto com a extensao
@para cExtensao, extensao do arquivo a ser extraido, caso seja passado 
        não deve ser passado no resource, a extensão será utilizada com uma pasta na extrasao do arquivo.
@param cMD5, codigo md5 do aruivo, caso seja passado não irá utilizar o md5 do arquivo fisico
        será utilizado esse parametro para determinar se o arquivo precisa ser atualizado
@param lUpdateExt, parametro interno, determina se de deve atualizar a varivel cExtensao da classe
@return logical, retorna true caso tenha extraido com sucesso o arquivo
        retorna false caso não tenha feito a extração,
        se o recurso já está na pasta rootpath definida, tb irá retornar false

...

DeleteLastResource
    Deleta o resource extraído
@return nRet, retorna 0 caso tenha conseguido deletar, ou -1 caso não tenha deletado