Imprimi Página | Fechar janela

Erro: Opção não disponível no Protheus

Impresso de: Helpfacil - Portal do conhecimento
Nome do Forum: ADVPL
Descrição do Forum: Dúvidas sobre a programação em ADVPL
URL:http://www.helpfacil.com.br/display_topic_threads.asp?ForumID=1&TopicID=44434
Data da Impressão: terça-feira, 11 de fevereiro de 2025 at 05:09


Topico: Erro: Opção não disponível no Protheus

Postado por: LUCADVPL
Assunto: Erro: Opção não disponível no Protheus
Data Postagem: terça-feira, 6 de fevereiro de 2024 at 18:51

Fala galera, tudo bem? Estou fazendo uma função para exportar os dados de uma tabela customizada(SZ1) para a tabela SA1, e estou com o erro: "Opção não disponível no Protheus Função: xMata Called by U_EXPSZ1"

Segue meu Fonte:

User Function EXPSZ1()
     Local dados := {}
     cCod    := SZ1->Z1_COD
     cLoja   := SZ1->Z1_LOJA
     cNome   := SZ1->Z1_NOME
     cNReduz := SZ1->Z1_NREDUZ
     cTipo   := SZ1->Z1_TIPO
     cEnd    := SZ1->Z1_END
     cBairro := SZ1->Z1_BAIRRO
     cEst    := SZ1->Z1_EST
     cMun    := SZ1->Z1_MUN


     DBSelectArea("SZ1")
     SZ1->(DbSetOrder(1))
     SZ1->(DbGoTop())

     While !SZ1->(Eof())
          aAdd(dados, SZ1->Z1_COD)
          aAdd(dados, SZ1->Z1_LOJA)
          aAdd(dados, SZ1->Z1_NOME)
          aAdd(dados, SZ1->Z1_NREDUZ)
          aAdd(dados, SZ1->Z1_TIPO)
          aAdd(dados, SZ1->Z1_END)
          aAdd(dados, SZ1->Z1_BAIRRO)
          aAdd(dados, SZ1->Z1_EST)
          aAdd(dados, SZ1->Z1_MUN)
          SZ1->(DbSkip())
          xMata(cCod, cLoja, cNome, cNReduz, cTipo, cEnd, cBairro, cEst, cMun)
     EndDo
return

User Function xMata(cCod, cLoja, cNome, cNReduz, cTipo, cEnd, cBairro, cEst, cMun)
     
     
     Local aDados := {}     

     Local aSA1Auto := {}     // cabeçalho
     Local aAI0Auto := {}     // itens
     Local nOpcAuto := 3      // 5.excluir - 3.inserir
     Local lRet := .T.

     Private lMsErroAuto := .F.

     //lRet := RpcSetEnv("T1","D MG 01","Admin")    //abertura de ambiente para rotinas automáticas, permitindo definir empresa e filial

     If lRet

          //----------------------------------
          // Dados do Cliente                 |
          //----------------------------------
         aAdd(aSA1Auto,{"A1_COD" ,Upper(AllTrim(cCod)) ,Nil})
        aAdd(aSA1Auto,{"A1_LOJA" ,Upper(AllTrim(cLoja)) ,Nil})
          aAdd(aSA1Auto,{"A1_NOME" ,Upper(AllTrim(cNome)) ,Nil})
          aAdd(aSA1Auto,{"A1_NREDUZ" ,Upper(AllTrim(cNReduz)) ,Nil})
          aAdd(aSA1Auto,{"A1_TIPO" ,Upper(AllTrim(cTipo)) ,Nil})
          aAdd(aSA1Auto,{"A1_END" ,Upper(AllTrim(cEnd)) ,Nil})
          aAdd(aSA1Auto,{"A1_BAIRRO" ,Upper(AllTrim(cBairro)) ,Nil})
          aAdd(aSA1Auto,{"A1_EST" ,Upper(AllTrim(cEst)) ,Nil})
          aAdd(aSA1Auto,{"A1_MUN" ,Upper(AllTrim(cMun)) ,Nil})
          //-------------------A-------------------------------------
          // Dados do Complemento do Cliente                         |
          //---------------------------------------------------------
          aAdd(aAI0Auto,{"AI0_SALDO" ,30 ,Nil})

          //------------------------------------
          // Chamada para cadastrar o cliente. |
          //------------------------------------
          MSExecAuto({|a,b,c| CRMA980(a,b,c)}, aSA1Auto, nOpcAuto, aAI0Auto)

          If lMsErroAuto
               lRet := lMsErroAuto
               nNok++
               MostraErro()// não usar via JOB
          Else
               nOk++
               Conout("Cliente Exportado com sucesso!") //opção 3
          
          EndIf

     EndIf


Return


Respostas:

Postado Por: EMERSON.EN
Data Postagem: terça-feira, 6 de fevereiro de 2024 at 19:09

uma user function deve ser chamada com U_ como prefixo

U_xMata(cCod, cLoja, cNome, cNReduz, cTipo, cEnd, cBairro, cEst, cMun)




Imprimir Página | Fechar Janela