Nesse documento vamos explicar como criar filtros para o Banco de Conhecimento. No exemplo a seguir vamos filtrar para que o usuário tenha acesso apenas aos conhecimentos adicionados por ele. Para esse exemplo criamos o campo ACB_CODUSR com a propriedade de VISUALIZAR e no inicializador padrão, usamos a função PSWID() para gravar o código do usuário que efetuou a inclusão do conhecimento.


Para filtrar o browse da rotina de banco de conhecimento (FATA340/MPDOCTAB) utilizamos o ponto de entrada MPFILBRW conforme exemplo abaixo.


#INCLUDE "PROTHEUS.CH"

User Function MPFILBRW()

	Local cQuery as CHARACTER

	cQuery:= 'ACB_CODUSR = __cUserId'

  return cQuery

  • Ponto de entrada disponível a partir da LIB 20260117.


Para filtrar o GRID da opção de vinculo do banco de conhecimento existente nas "Outras Ações" das rotinas utilizamos o ponto de entrada MSDOCFIL, conforme exemplo abaixo.

User Function MSDOCFIL()

Local aArea := GetArea()
Local lRet := .F.
Local nRecno := PARAMIXB[1]

AC9->(dbGoTo(nRecno))

DbSelectArea("ACB")
dbSetOrder(1)
DBSEEK(xFilial("ACB") + AC9->AC9_CODOBJ)

If ACB_CODUSR = __cUserId

    lRet := .T.

Endif

RestArea(aArea)

Return(lRet)
 


Para filtrar a consulta padrão chamada no GRID da opção de vinculo do banco de conhecimento existente nas "Outras Ações" das rotinas, deve-se efetuar os passos abaixo:

  1. Criar uma nova consulta padrão com as mesmas características da consulta ACBOBJ;
  2. Adicionar o filtro abaixo na consulta padrão:
    ACB_CODUSR = __cUserId
  3. Associar a nova consulta ao campo AC9_CODOBJ.
  • Não recomendamos a adição do filtro diretamente na consulta ACBOBJ pois o mesmo será excluído no processo de migração de release.