7.9.4.2. Règles de filtrage pour l'indexation

[Remarque]Remarque

En règle générale, un catalogue est entièrement indexé, de sorte qu'aucune règle de filtrage n'est nécessaire.

Si l'on ne souhaite pas indexer toutes les pièces d'un catalogue, on peut définir des règles de filtrage.

En voici un exemple :

[settings]
GenerationFilterRules=ScriptFilterRule, ScriptFilterRuleErp

[GenerationFilterRule_ScriptFilterRule]
Catalogs=cat/lochplatten_ecat
AlgoTypes=IMG
LineScriptCallbackFile=filter.vbs
LineScriptCallbackFunction=checkLine
IndexTypes=Standard

[GenerationFilterRule_ScriptFilterRuleErp]
Catalogs=cat/lochplatten_ecat
AlgoTypes=IMG
LineScriptCallbackFile=filterErp.vbs
LineScriptCallbackFunction=checkLine
IndexTypes=Erp

Script filter.vbs :

function checkLine(table)
  dim nb = table.selectedRow.getNB()
  checkLine = (InStr(nb, "photo_noerp ") = 0
end function

Script filter_erp.vbs :

function checkLine(table)
  dim nb = table.selectedRow.getNB()
  checkLine = (InStr(nb, "photo_erp ") = 0
end function

[Important]Important

Si checkLine renvoie true, la ligne est filtrée et n'est donc pas indexée pour la recherche de photos. Dans cet exemple, toutes les pièces contenues dans le NB photo_noerp et toutes les pièces avec numéro ERP contenues dans le NB photo_erp auraient donc des empreintes pour la recherche de photos.

Comme alternative aux callbacks de script, il est également possible de filtrer via RegExp :

[GenerationFilterRule_LineFilterRule]
Catalogs=cat/lochplatten_ecat
AlgoTypes=IMG
LineFilterCount=1
LineFilterVar0=NB
LineFilterRegExp0=^(?!.*24041 Lg ).*
Conjunction=AND
IndexTypes=Standard

On peut aussi définir ces filtres au niveau du projet :

[GenerationFilterRule_ProjectFilterRule]
Catalogs=cat/lochplatten_ecat
AlgoTypes=IMG
IndexTypes=Standard
PrjRegExp=^(?!din_24041_lg\.prj$).*