Blog Advpl

Exibir todos os fontes do RPO

Você conhece a função GetFuncArray() ?

Retorna um ou mais arrays contendo os dados das funções contidas no RPO – Repositório Portável de Objetos, a partir de uma máscara.As vezes é importante você extrar principalmente os fontes de usuário para saber o que tem dentro do seu fonte.

 

Sintaxe: GetFuncArray( < cMascara >, [ @aTipo ], [ @aArquivo ], [ @aLinha ], [ @aData ], [ @aHora ] )

Nome Tipo Descrição Obrigatoriedade
cMascara caractere Indica a máscara que será utilizada para realizar a busca. Observação: Podem ser utilizados caracteres do tipo curinga (“?” ou “*”). x
aTipo vetor Indica o array que será alimentado com o tipo da função encontrada.
aArquivo vetor Indica o array que será alimentado com o nome do arquivo que contém o código fonte.
aLinha vetor Indica o array que será alimentado com o número da linha correspondente a declaração da função no arquivo do código fonte.
aData vetor Indica o array que será alimentado com a data da última modificação do arquivo que contém o código fonte.
aHora vetor Indica o array que será alimentado com a hora da última modificação do arquivo que contém o código fonte.

 

Exemplo:

#include 'protheus.ch'

User Function FonteRPO()
    Local nCount	:= 0
    Local aFuncao 	:= {}     // Para retornar a origem da função: FULL, USER, PARTNER, PATCH, TEMPLATE ou NONE
    Local aType		:= {}     // Para retornar o nome do arquivo onde foi declarada a função
    Local aFile		:= {}     // Para retornar o número da linha no arquivo onde foi declarada a função
    Local aDate		:= {}     // Para retornar a data da última modificação do código fonte compilado
    Local aTime		:= {}     // Para retornar a hora da última modificação do código fonte compilado
    Local cMascara	:= "U_*"  // Neste caso, será exibido todos os fontes de usuário, seja fontes feitas por você ou Totvs.
    Local cFile		:= ""
    Local cFuncao	:= ""
    Local cTipoFonte:= ""
    Local aArquivos := {}

    aFuncao := GetFuncArray(cMascara, aType, aFile, aLine, aDate, aTime)

    For nCount := 1 To Len(aFuncao)
        cFile	   	:= aFile[nCount]
        cTipoFonte 	:= Alltrim(aType[nCount])
        cFuncao		:= aFuncao[nCount]

        aadd(aArquivos,{cFuncao, cFile, aType[nCount], DtoC(aDate[nCount]), aTime[nCount]})
    Next
    
Return

 

Fonte: https://tdn.totvs.com/display/tec/GetFuncArray

Sair da versão mobile