Histórico da Página
Sintaxe
XFILIAL( <cAlias> ,<cFil>)
Propósito
Retorna a filial utilizada por um determinado arquivo e na qual o usuário se logou no sistema.
...
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.
...
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 ' '