Ajude o site desativando o bloqueador de anúncio
Cabeçalho

Busca SM0. FWLoadSM0 e FWSM0Util

Autor: Eurai Criado: 16/09/2023 Atualizado: 29/11/2025 ADVPL
Postagem

📌 Consultando SM0 no Protheus — Exemplos Práticos com cEmpAnt, cFilAnt e xx_FILIAL

 

Salve salve, blz? 😄

 

A seguir, algumas formas eficientes de buscar informações da tabela SM0 utilizando cEmpAnt, cFilAnt ou mesmo xx_FILIAL. Esses exemplos podem ajudar bastante ao trabalhar com multiempresa e multifilial no Protheus 🔍.

 

aEmpresas := FWLoadSM0()
cM0CGC    := ''
nPos      := aScan( aEmpresas, { |UD| UD[02] == cFilAnt } )

If nPos > 0
    cTenantId := aEmpresas[nPos, SM0_GRPEMP] + ',' + aEmpresas[nPos, SM0_CODFIL]
    cSM0_NOME := aEmpresas[nPos, SM0_NOMRED]
    cM0CGC    := aEmpresas[nPos, SM0_CGC]
Endif

 

 

// Irá retornar todos os dados da Filial logada em um array bidimensional
FWSM0Util():GetSM0Data()
FWSM0Util():GetSM0Data()[1][1]: "M0_CODIGO"
FWSM0Util():GetSM0Data()[1][2]: "99"

// Retorna a razão social
FWSM0Util():getSM0FullName("99", "01")

// Retorna os dados solicitados.
// Array de 3 posições, contendo Nome + Valor
FWSM0Util():GetSM0Data(cEmpAnt, cFilAnt, {'M0_CODIGO','M0_CODFIL','M0_CGC'} )

FWSM0Util():GetSM0Data(cEmpAnt,cFilAnt, {'M0_CODIGO','M0_CODFIL','M0_CGC'} )[1]: Array {size=2}
FWSM0Util():GetSM0Data(cEmpAnt,cFilAnt, {'M0_CODIGO','M0_CODFIL','M0_CGC'} )[1][1]: "M0_CODIGO"
FWSM0Util():GetSM0Data(cEmpAnt,cFilAnt, {'M0_CODIGO','M0_CODFIL','M0_CGC'} )[1][2]: "99"

FWSM0Util():GetSM0Data(cEmpAnt,cFilAnt, {'M0_CODIGO','M0_CODFIL','M0_CGC'} )[2]:
FWSM0Util():GetSM0Data(cEmpAnt,cFilAnt, {'M0_CODIGO','M0_CODFIL','M0_CGC'} )[2][1]: "M0_CODFIL"
FWSM0Util():GetSM0Data(cEmpAnt,cFilAnt, {'M0_CODIGO','M0_CODFIL','M0_CGC'} )[2][2]: "01       "

FWSM0Util():GetSM0Data(cEmpAnt,cFilAnt, {'M0_CODIGO','M0_CODFIL','M0_CGC'} )[3]:
FWSM0Util():GetSM0Data(cEmpAnt,cFilAnt, {'M0_CODIGO','M0_CODFIL','M0_CGC'} )[3][1]: "M0_CGC"
FWSM0Util():GetSM0Data(cEmpAnt,cFilAnt, {'M0_CODIGO','M0_CODFIL','M0_CGC'} )[3][2]: "00XXXXXX000WWW"


aEmpresas := FWSM0Util():GetSM0Data(cEmpAnt,cFilAnt, {'M0_CODIGO','M0_CODFIL','M0_NOMECOM','M0_CGC'} )
If Len(aEmp) >= 4
    cTenantId := aEmpresas[01,02] + ',' + aEmpresas[02,02]
    cSM0_NOME := aEmpresas[03,02]
    cM0CGC    := aEmpresas[04,02]
Endif

 

 

Gostou? Compartilhe com seus amigos e deixe um comentário! 😎

Um abraço, e até a próxima! 👋

 

#protheus #advpl #sm0 #multifilial #multiempresa #fwsm0util #totvsprotheus #dicasadvpl #programacaoadvpl #consulta sm0 #fwloadsm0 #tabelasm0

ASSINE A NEWSLETTER

Cadastrando...

PIX uDesenv

PIX QR Code para depósito

Clique para doar

Parceiros

Tudo em ADVPL - Blog parceiro

Blog ADVPL