Função de usuário em X6_conteuD

Pessoal, bom dia,

É possível colocar uma função de usuário em X6_conteuD?

Estou com um problema no parâmetro MV_1DUPNAT. Se eu estiver faturando pelo modulo de Faturamento esse campo deve ser SC5->C5_NATUREZ, mas como estou faturando de outro módulo resolvido trocar o conteudo padrão por uma função.

Preenchi X6_CONTEUD com minha função U_VTNATUREZ, e minha função foi escrita da seguinte forma:


User Function vtnaturez()

cNatureza := ""

If FwIsInCallStack('PLSTOSE1')

    If BT5->BT5_COBNIV = "1"
        cNatureza := BT5->BT5_NATURE
    Endif                          
//Nível de cobrança no subcontrato
    If BQC->BQC_COBNIV = "1"
      cNatureza := BQC->BQC_NATURE
    Endif 
//Nível de cobrança na família
    If BA3->BA3_COBNIV = "1"
       cNatureza := BA3->BA3_NATURE
    Endif
ELSE
    cNatureza := SC5->C5_NATUREZ 

Endif

Return (cNatureza)

Ao rodar o meu faturamento surgiu o seguinte erro:

THREAD ERROR ([252], paleite, TI_PALEITE) 23/07/2021 11:44:24 variable does not exist U_VTNATUREZ on MAFISINI(MATXFIS.PRX) 04/02/2020 08:39:40 line : 520

Pablo,

O parâmetro MV_1DUPNAT tem o seu conteúdo macro executado, logo para efetuar uma chamada de função, não basta o nome da mesma, ela precisa conter os parênteses no final para que a macro do ADVPL interprete a mesma como função e não como variável.

Edite o parâmetro MV_1DUPNAT pelo Configurador e coloque a função U_VTNATUREZ com parênteses no final:


U_VTNATUREZ()

Obrigado! Você foi TOP!

Pablo,

O parâmetro MV_1DUPNAT tem o seu conteúdo macro executado, logo para efetuar uma chamada de função, não basta o nome da mesma, ela precisa conter os parênteses no final para que a macro do ADVPL interprete a mesma como função e não como variável.

Edite o parâmetro MV_1DUPNAT pelo Configurador e coloque a função U_VTNATUREZ com parênteses no final:

U_VTNATUREZ()