Buscando informações da empresa com a FWSM0Util

No artigo de hoje, vou mostrar como buscar as informações da SM0 usando a função FWSM0Util.

Se você pretende migrar o dicionário para o banco de dados, ou pretende utilizar as boas práticas de programação em AdvPL, a tabela de empresas SM0 não deve mais ser acessada diretamente, e para isso foi disponibilizado algumas funções pela TOTVS.

Uma das funções, é a FWSM0Util, onde é possível informar o código da empresa, o código da filial e quais campos você deseja buscar a informação.

Dessa forma, a rotina irá retornar um Array com os campos e você consegue usar na sua customização.

No exemplo abaixo, nós iremos criar uma variável, que terá a lista de campos que queremos buscar, chamada de aFieldSM0. Depois iremos usar a função, buscando as informações conforme a filial que veio na query. E por último, se veio informações, iremos atualizar nossas variáveis que podemos utilizar depois na customização.

Obs.: O retorno da FWSM0Util, é um array sendo que cada linha é um campo da SM0, e a posição 1 é o nome do campo, e a posição 2 é o conteúdo.

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 := {}

//... Aqui você pode montar sua query, ou alguma outra tratativa na sua lógica, no meu caso, montei uma query e busquei o F2_FILIAL

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

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação