Sintaxe

 

XFILIAL( <cAlias> ,<cFil>)

 

 

Propósito

 

Retorna a filial utilizada por um determinado arquivo e na qual o usuário se logou no sistema.

 

 

Argumentos

 

<cAlias>

 

Define o alias do arquivo cuja filial será obtida. Se não for especificado, o arquivo tratado será o da área de trabalho corrente.

 

 

<cFil>

 

Traz o valor do campo filial daquele alias para uma filial diferente da filial logada no sistema. Este parâmetro é opcional, e é muito útil quando precisamos informar o valor do campo filial

de uma tabela em uma query. Seu valor default é a variável cFilAnt.

 

 

Utilização

 

Essa função é utilizada para permitir que pesquisas e consultas em arquivos trabalhem somente com os dados da filial corrente, dependendo, é claro, se o arquivo está compartilhado ou exclusivo (definição realizada no módulo Configurador – Dicionários de Dados (SX2)).

 

É importante salientar que essa função não tem como objetivo retornar apenas a filial corrente, mas retorná-la caso o arquivo seja exclusivo. Se o arquivo estiver compartilhado, a função retornará dois espaços em branco.

 

 

Exemplos

 

1- Nesse exemplo, a função POSICIONE() pesquisa o arquivo SB1, na ordem 1, para retornar o conteúdo do campo B1_DESC. Essa função utiliza a função XFILIAL() para obter a filial corrente.

 

LOCAL cDesc := “”

 

cDesc := POSICIONE(“SB1”, 1, xFilial(“SB1”) + AB2->AB2_CODPRO, “B1_DESC”)

 

2- Neste exemplo iremos demonstrar como utilizar o segundo parâmetro desta função, para a partir de um código completo de filial identificar o valor a ser utilizado:

Tabela SA6, compartilhada no nível de filial, utilizando as filiais D MG 01 e D RJ 01

xFilial('SA6','D MG 01') irá retornar 'D MG   '

xFilial('SA6','D RJ 01') irá retornar 'D RJ   '

Tabela SA1, compartilhada no nível de empresa, utilizando as filiais D MG 01 e D RJ 01

xFilial('SA1','D MG 01') irá retornar '       '

xFilial('SA1','D RJ 01') irá retornar '       '