Energistically foster principle-centered web-readiness whereas wireless technology. Competently visualize value-added metrics rather than covalent methodologies. Synergistically orchestrate end-to-end systems before cost effective opportunities. Efficiently recaptiualize reliable.

A tabela SM0 armazena informações relacionadas às filiais da empresa do ERP TOTVs Protheus. Ela funciona como um cadastro de filiais, onde são armazenados dados como endereço, CNPJ, inscrição estadual, entre outras informações relevantes para cada filial.

Atualmente, com o dicionário de dados migrado para dentro do banco de dados, esses dados não devem mais ser acessados diretamente, sendo disponibilizadas funções para esse isso.

A classe FWSM0Util possui o método GetSM0Data() onde é possível informar o código da empresa, o código da filial e quais campos você deseja buscar a informação. A função retorna um array com os campos informados.

No exemplo abaixo é mostrado como recuperar o Nome, CNPJ/CPF e Cidade do cadastro da filial 01 da Empresa 99 de teste:

User Function fBuscaSM0()
Local aFieldSM0 := { ;
    "M0_CODIGO",;    //Posição [1]
    "M0_CODFIL",;    //Posição [2]
    "M0_NOMECOM",;   //Posição [3]
    "M0_CGC",;       //Posição [4]
    "M0_INSCM",;     //Posição [5]
    "M0_CIDENT",;    //Posição [6]
    "M0_ESTENT",;    //Posição [7]
    "M0_ENDENT",;    //Posição [8]
    "M0_BAIRENT",;   //Posição [9]
    "M0_CEPENT",;    //Posição [10]
    "M0_COMPENT",;   //Posição [11]
    "M0_TEL";        //Posição [12]
}
Local aSM0Data2 := {}

aSM0Data2 := FWSM0Util():GetSM0Data("99", "01", aFieldSM0)
If Len(aSM0Data2) > 0
    Alert(aSM0Data2[3][2]) //M0_NOMECOM
    Alert(aSM0Data2[4][2]) //M0_CGC
    Alert(aSM0Data2[6][2]) //M0_CIDENT
EndIf

Return 

Outra forma de utilização é mostrada no exemplo abaixo, onde a função retorna todos os campos presentes na SM0 daquela filial:

User Function f2BuscaSM0()
Local aSM0Data2 := {}
aSM0Data2 := FWSM0Util():GetSM0Data("99", "01")

Return 

Administrador

View all posts

Adicionar comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *