XML-filter in GetConnector

Bij het aanroepen van een GetConnector kun je een filter (in XML-formaat) opgeven. Dit filter kan bij elke aanroep anders zijn, daarom noemen we dit een variabel filter.

Door het gebruik van een filter beperk je de hoeveelheid records. Als de hoeveelheid records desondanks te hoog is, gebruik je de optie 'GetDataWithOptions'.

Let op:

Om dit te testen moet je eerst een app connector toevoegen.

Koppel de te testen GetConnector aan de app connector.

Nadat je een gebruikersgroep aan de app connector gekoppeld hebt, maak je een token aan voor één van de gebruikers van deze gebruikersgroep. Deze token heb je nodig voor de aanroep van de GetConnector.

Inhoud

Structuur van de filter-XML

De structuur van de filter-xml is als volgt:

App_Conn GS Lokaal GetConnector - Filter - XML - Simple

Onderdelen van een filter:

  • FilterId: volgnummer. Als je een filter maakt in Profit, is het FilterId van het eerste filter 'Filter 1'. De volgende filters worden doorgenummerd.
  • FieldId: de veldnaam in de GetConnector.
  • Operatortype: het type filter, volgens de onderstaande lijst.

    Operator

    Werking

    Voorbeeld met de waarde 'NL' (alleen de filterregel wordt vermeld)

    1

    is gelijk aan

    <Field FieldId="CoId" OperatorType="1">NL</Field>

    2

    is groter of gelijk aan

    <Field FieldId="CoId" OperatorType="2">NL</Field>

    3

    is kleiner of gelijk aan

    <Field FieldId="CoId" OperatorType="3">NL</Field>

    4

    is groter dan

    <Field FieldId="CoId" OperatorType="4">NL</Field>

    5

    is kleiner dan

    <Field FieldId="CoId" OperatorType="5">NL</Field>

    6

    tekst komt voor in veld

    <Field FieldId="CoId" OperatorType="6">%NL%</Field>

    7

    Mogelijkheid 1:

    Is niet gelijk aan

    Precieze vergelijking van twee waarden:

    <Field FieldId="CoId" OperatorType="7">NL</Field>

    7

    Mogelijkheid 2:

    Tekst komt niet voor in veld

    Kijken of een waarde in een veld voorkomt:

    <Field FieldId="CoId" OperatorType="7">%NL%</Field>

    8

    veld is leeg

    Bij dit filter geef je alleen de operator op.

    <Field FieldId="CoId" OperatorType="8" />

    9

    veld is niet leeg

    Bij dit filter geef je alleen de operator op.

    <Field FieldId="CoId" OperatorType="9" />

     

    10

    veld begint met tekst

    <Field FieldId="CoId" OperatorType="10">NL%</Field>

    11

    tekst komt niet voor in veld

    <Field FieldId="CoId" OperatorType="11">%NL%</Field>

    12

    veld begint niet met tekst

    <Field FieldId="CoId" OperatorType="12">NL%</Field>

     

    13

    veld eindigt met tekst

    <Field FieldId="CoId" OperatorType="13">%NL</Field>

    14

    veld eindigt niet met tekst

    <Field FieldId="CoId" OperatorType="14">%NL</Field>

     

  • Bij OperatorType 6, 10, 11 en 12 moet gebruik worden gemaakt van wildcards, bijvoorbeeld "A%"(begint [niet] met A) of "%A%" (bevat [niet] A).

    Let op:

    Richt het filter zo efficiënt mogelijk in. Maak gebruik van operator type 1 = Gelijk aan. Filter waar mogelijk op sleutelvelden.

    Je mag geen tags gebruiken, zoals [vandaag]. Deze tags gelden namelijk niet in XML.

Voorbeelden

Aandachtspunten

  • In de filter-XML gebruik je 'true' en 'false' (kleine letters) in plaats van 'Ja' en 'Nee'.
  • In de filter-XML gebruik je voor een datum/tijd de notatie jjjj-mm-ddTuu:mm:ss.

    Voorbeeld:

    Een filter op het tijdstip 13:30 op 18 december 2019 leg je dus vast als:

    2019-12-18T13:30:00

Je kunt meerdere filters opgeven, hierbij geldt het volgende:

  • EN-filter

    Bij een EN-filter moet aan alle voorwaarden voldaan worden. Je plaatst alle filterregels in één filter.

    Voorbeeld:

    Filter op Administratie = 1 EN rekening = 8010.

    <Filters>

    <Filter FilterId="Filter 1">

    <Field FieldId="AccountNo" OperatorType="1">8010</Field>

    <Field FieldId="UnitId" OperatorType="1">1</Field>

    </Filter>

    </Filters>

  • OF-filter

    Bij een OF-filter moet aan minimaal één voorwaarde voldaan worden. Je plaatst de filterregels in verschillende filters.

    Voorbeeld:

    Filter op Rekening = 8010 of 8020.

    <Filters>

    <Filter FilterId="Filter 1">

    <Field FieldId="AccountNo" OperatorType="1">8010</Field>

    </Filter>

    <Filter FilterId="Filter 2">

    <Field FieldId="AccountNo" OperatorType="1">8020</Field>

    </Filter>

    </Filters>

    Voorbeeld: Veld is aangevinkt of niet

    Het veld Blocked is uitgeschakeld:

    <Filters>

    <Filter FilterId="Filter1">

    <Field FieldId="Blocked" OperatorType="1">false</Field>

    </Filter>

    </Filters>

    Voorbeeld: Gelijk aan

    Het veld Land gelijk is aan 'NL':

    <Filters>

    <Filter FilterId="Filter1">

    <Field FieldId="Land" OperatorType="1">NL</Field>

    </Filter>

    </Filters>

    Voorbeeld: OF-filter

    Het veld Name is niet gevuld OF bevat de tekst 'unknown':

    <Filters>

    <Filter FilterId="Filter1">

    <Field FieldId="Name" OperatorType="8" />

    </Filter>

    <Filter FilterId="Filter2">

    <Field FieldId="Name" OperatorType="6">%unknown%</Field>

    </Filter>

    </Filters>

    Voorbeeld: Snelfiltercriteria

    Filter op basis van de snelfiltertag @ (Veld begint met).

    <Filters>

        <Filter FilterId="Filter 1">

            <Field FieldId="CoId" OperatorType="15">@nl</Field>

        </Filter>

    </Filters>

XML-filter toevoegen via AFAS Connect

Je kunt een XML-filter maken en testen in AFAS Connect.

  1. Start https://connect.afas.nl en log in.
  2. Selecteer de GetConnector.
  3. Klik op Create filter.
  4. Vul de filterwaarden in. Dit werkt net zoals in Profit, maar je mag geen tags zoals [vandaag] gebruiken.

    Klik op Show XML om het filter te zien of XML om de SOAP-aanroep met het filter te zien.

Direct naar

  1. GetConnector Bouwen en testen
  2. Meegeleverde GetConnectoren
  3. GetConnector toevoegen
  4. GetConnector testen
  5. XML-filter voor aanroep GetConnector
  6. Skip/Take, sortering en outputformaat
  7. GetConnector aanpassen