Bestanden Lus

Deze actie wordt gebruikt om het begin van een lus aan te geven. Deze lus doorloopt een lijst met bestanden en/of mappen aan de hand van een opgegeven bestand-/mapfilter. De acties binnen deze lus worden herhaaldelijk uitgevoerd; het aantal keren is gelijk aan het aantal bestanden/mappen dat de opgegeven filter oplevert.


Voorbeeld

Stel u wilt alle CSV-bestanden in de map D:\Documents\Import verplaatsen naar de map D:\Documents\Verwerkt. De lus zou er dan als volgt uit kunnen zien:



In stap 1 staat deze actie (Bestanden Lus). Dit is het begin van de lus. In deze actie is een filter gedefinieerd welke aangeeft dat er een bestandenlijst moet worden aangemaakt met alle CSV-bestanden in de map D:\Documents\Import.


Stel, deze bestandenlijst bestaat uit de volgende bestanden:


D:\Documents\Import\Factuur 20135377.CSV

D:\Documents\Import\Factuur 20135389.CSV

D:\Documents\Import\Factuur 20135412.CSV


Deze bestandenlijst bestaat uit 3 bestanden. Dit betekent dat de lus 3x wordt doorlopen en dat de acties binnen deze lus (= acties in stap 2 en 3) ook 3x worden uitgevoerd.

Beschrijving algemene parameters

Omschrijving (optioneel)

Uitleg voor deze parameter vind u hier.

Standaard map

Hier kunt u een map opgeven welke moet worden gebruikt voor de bij parameter Filter te betrekken bestanden en/of mappen opgegeven filters zonder mapaanduiding.


Voorbeeld

In bovenstaand voorbeeld is de standaard map ingesteld op:

D:\Documents\Import


In de filter ziet u op de eerste regel staan:

Facturen*.CSV


Aangezien deze filter geen mapaanduiding bevat, zal de standaard map hiervoor worden gebruikt. De uit te voeren filter luidt dan:

D:\Documents\Import\Facturen*.CSV


Indien een filter wel een mapaanduiding bevat, dan zal de standaard map niet gebruikt worden. Dit geldt voor de filter op de tweede regel in het voorbeeld:

D:\Documents\*.CSV


Bij deze filter zal gezocht worden in de map D:\Documents en dus niet in de standaard map.

Filter te betrekken bestanden en/of mappen

Hier geeft u één of meerdere filters op voor bestanden/mappen welke betrokken moeten worden in de door de lus te gebruiken lijst met bestanden/mappen.


Elke filter voert u in op een nieuwe regel. U kunt dus niet meerdere filters op een regel invoeren.

U kunt een bestand direct aanwijzen via een bestandspad, zoals bijvoorbeeld D:\Documents\Archief\Import.XML, maar u kunt desgewenst ook werken met "wildcards" (* en ?), zoals bijvoorbeeld D:\Documents\Archief\*.XML.


Indien u alleen een map opgeeft, zoals bijvoorbeeld D:\Documents\Archief, worden alle bestanden in die map meegenomen. Dit wordt dan gezien als D:\Documents\Archief\*.*.


Indien u een filter opgeeft zonder mapaanduiding, zoals bijvoorbeeld Facturen*.CSV, dan zal deze toegepast worden in de opgegeven standaard map (parameter Standaard map).


NB: Indien u verwijst naar bestanden op andere servers, dan kunt u het beste UNC-paden gebruiken.

Filter uit te sluiten bestanden en/of mappen

Hier geeft u één of meerdere filters op voor bestanden/mappen welke uitgesloten moeten worden in de door de lus te gebruiken lijst met bestanden/mappen.


Elke filter voert u in op een nieuwe regel. U kunt dus niet meerdere filters op een regel invoeren.

U kunt een bestand direct aanwijzen via een bestandspad, zoals bijvoorbeeld D:\Documents\Archief\Import.XML, maar u kunt desgewenst ook werken met "wildcards" (* en ?), zoals bijvoorbeeld D:\Documents\Archief\*.XML.


Indien u alleen een map opgeeft, zoals bijvoorbeeld D:\Documents\Verwerkt, worden alle bestanden in die map meegenomen. Dit wordt dan gezien als D:\Documents\Verwerkt\*.*.


Indien u een filter opgeeft zonder mapaanduiding, zoals bijvoorbeeld Inkoop*.CSV, dan zal deze toegepast worden in de opgegeven standaard map (parameter Standaard map).


NB: Indien u verwijst naar bestanden op andere servers, dan kunt u het beste UNC-paden gebruiken.

Neem bestanden op in resultaat/Neem mappen op in resultaat

De opgegeven filters kunnen bestanden en/of (sub)mappen opleveren. Via deze twee opties kunt u bepalen welk type u in de door de lus gebruikte lijst wilt laten opnemen.


Voorbeeld

Indien u beide opties aanvinkt kan de lijst een mix van bestanden en mappen opleveren, zoals bijvoorbeeld:


D:\Import\Facturen\Facturen 2013-03-06.CSV

D:\Documents\Order 2013-03-04.CSV

D:\Documents\Archief\

Verborgen bestanden meenemen/Systeem bestanden meenemen

Met deze opties kunt u aangeven of ook verborgen en/of systeembestanden meegenomen moeten worden.


Systeembestanden zijn bestanden van Windows. Verborgen bestanden zijn bestanden welke het kenmerk Verborgen hebben; dit kunt u opvragen via de eigenschappen van het bestand in de Windows Verkenner, zoals bijvoorbeeld:


Doorloop submappen

Indien deze optie niet wordt aangezet en u bijvoorbeeld de map D:\Documents opgeeft, zullen alleen de bestanden in die map worden meegenomen, maar niet de bestanden in eventuele submappen, zoals bijvoorbeeld D:\Documents\Verwerkt\.


Indien u deze optie wel aanzet, zullen ook alle submappen (en ook eventuele submappen daarvan; aantal niveaus diep is ongelimiteerd) in de opgegeven map worden meegenomen.

Genereer fout indien een bron bestand niet bestaat

Indien een bij de filters opgegeven bestandspad of map niet bestaat, zal er een fout worden gegenereerd indien deze optie aan is gezet. Indien u deze optie niet aanzet en het opgegeven bestandspad of map bestaat niet, dan zal deze zonder fout (of waarschuwing) worden overgeslagen.

Lus naam

U kunt deze lus een naam geven. Indien de lus een naam heeft kunnen andere acties deze lus direct aanwijzen. Voor praktische voorbeelden hiervan verwijs ik u naar de acties Verlaat Lus en Vervolg Lus.

Maximum aantal lus iteraties

In BPM Server zit er altijd een beperking op het maximum aantal lus-iteraties. Anders gezegd: het aantal keren dat een lus kan worden doorlopen is niet onbeperkt. Dit is om te voorkomen dat de lus oneindig wordt vervolgd.


Indien u hier niets invoert geldt de standaard waarde welke u kunt instellen in de instellingen.

Indien het aantal lus-iteraties het ingestelde maximum heeft bereikt zal de lus worden verlaten en zal dit als waarschuwing in het taaklog worden geregistreerd.

Actie bij fout

Uitleg voor deze parameter vind u hier.

Beschrijving parameters in tabblad "Vul geheugenvelden"

In dit tabblad bepaalt u in welke geheugenvelden de bestand/map gegevens van de resulterende bestanden/mappen lijst worden geplaatst.


Deze actie Bestanden Lus is het begin van een lus en bepaalt ook hoe vaak de lus wordt doorlopen (iteraties). Indien de opgegeven filters bijvoorbeeld een lijst van 3 bestanden oplevert, zal de lus 3x worden doorlopen.


Voorbeeld

Stel de opgegeven filters geven als resultaat de volgende lijst met bestanden:


D:\Import\Facturen\Facturen 2013-03-03.CSV

D:\Import\Facturen\Facturen 2013-03-06.CSV

D:\Import\Facturen\Facturen 2013-03-12.CSV


De lijst bestaat uit 3 bestanden, wat betekent dat de lus 3x wordt doorlopen.


De 1e keer dat de lus wordt doorlopen, zullen de in dit tabblad opgegeven geheugenvelden worden gevuld met de gegevens van het 1e bestand in de lijst:

D:\Import\Facturen\Facturen 2013-03-03.CSV


De 2de keer dat de lus wordt doorlopen, zullen de in dit tabblad opgegeven geheugenvelden worden gevuld met de gegevens van het 2de bestand in de lijst:

D:\Import\Facturen\Facturen 2013-03-06.CSV


De 3de keer dat de lus wordt doorlopen, zullen de in dit tabblad opgegeven geheugenvelden worden gevuld met de gegevens van het 3de bestand in de lijst:

D:\Import\Facturen\Facturen 2013-03-12.CSV


Bij elke iteratie (= elke keer dat een lus wordt doorlopen) zal de huidige positie in de lijst dus opschuiven naar het volgende item. De huidige positie wordt ook wel een "cursor" genoemd.

Plaats bestandspad in dit geheugenveld

In dit geheugenveld zal het bestandspad, van het huidige bestand in de lus, worden geplaatst. Bijvoorbeeld: D:\Import\Facturen\Facturen 2013-03-03.CSV. U kunt hier een geheugenveld kiezen van het type Tekst.

Plaats bestandsnaam in dit geheugenveld

In dit geheugenveld zal de bestandsnaam, van het huidige bestand in de lus, worden geplaatst. Bijvoorbeeld: Facturen 2013-03-03.CSV. U kunt hier een geheugenveld kiezen van het type Tekst.

Plaats mapnaam in dit geheugenveld

In dit geheugenveld zal de mapnaam, van het huidige bestand in de lus, worden geplaatst. Bijvoorbeeld: D:\Import\Facturen\. U kunt hier een geheugenveld kiezen van het type Tekst.

Plaats bestandsgrootte (bytes) in dit geheugenveld

In dit geheugenveld zal de bestandsgrootte in bytes (1Kb = 1024 bytes), van het huidige bestand in de lus, worden geplaatst. Bijvoorbeeld: 1255. U kunt hier een geheugenveld kiezen van het type Numeriek of Tekst.

Plaats datum gewijzigd van bestand in dit geheugenveld

In dit geheugenveld zal de bestandsdatum, van het huidige bestand in de lus, worden geplaatst. Bijvoorbeeld: 13-3-2013 10:37:02. U kunt hier een geheugenveld kiezen van het type Datum/tijd of Tekst.

Beschrijving parameters in tabblad "Datum filters"


In dit tabblad kunt u filters invoeren voor de datum laatst gewijzigd van bestanden en mappen.

Vanaf datum/Tot en met datum

Hier kunt u een datum/tijd waarde opgeven. Zoals u in het voorbeeld kunt zien kunt u desgewenst ook op tijd selecteren.

Ouderdom in dagen hoger dan/Ouderdom in dagen lager dan

Hier kunt u aangeven dat het bestand, of de map, een ouderdom in dagen moet hebben welke hoger of lager is dan het getal wat u hier opgeeft.


Voorbeelden berekening ouderdom in dagen

Stel huidige datum/tijd is: 13-03-2016 14:15.


Op 13-03-2016 14:15 is de ouderdom in dagen: 0.

Op 13-03-2016 12:00 is de ouderdom in dagen: 0,1.

Op 13-03-2016 02:15 is de ouderdom in dagen: 0,5.

Op 12-03-2016 14:15 is de ouderdom in dagen: 1.

Op 11-03-2016 14:15 is de ouderdom in dagen: 2.

Ouderdom in uren hoger dan / Ouderdom in uren lager dan

Hier kunt u aangeven dat het bestand, of de map, een ouderdom in uren moet hebben welke hoger of lager is dan het getal wat u hier opgeeft.


Voorbeelden berekening ouderdom in uren

Stel huidige datum/tijd is: 13-03-2016 14:15.


Op 13-03-2016 14:15 is de ouderdom in uren: 0.

Op 13-03-2016 12:00 is de ouderdom in uren: 2,25.

Op 13-03-2016 02:15 is de ouderdom in uren: 12.

Ouderdom in minuten hoger dan / Ouderdom in minuten lager dan

Hier kunt u aangeven dat het bestand, of de map, een ouderdom in minuten moet hebben welke hoger of lager is dan het getal wat u hier opgeeft.


Voorbeelden berekening ouderdom in minuten

Stel huidige datum/tijd is: 13-03-2016 14:15.


Op 13-03-2016 14:15 is de ouderdom in minuten: 0.

Op 13-03-2016 12:00 is de ouderdom in uren: 135.

Beschrijving parameters in tabblad "Inhoud filters"


In dit tabblad kunt u tekstbestanden (TXT, CSV, XML, etc.) filteren op hun inhoud.


Voorbeeld

Deze filtermogelijkheid kan bijvoorbeeld van nut zijn bij importbestanden. Het kan namelijk voorkomen dat bepaalde bestanden geen inhoud hebben (bestandsgrootte 0) of dat deze niet de inhoud hebben die u verwacht of nodig hebt.


Stel u wilt een bestandenlijst hebben van CSV-bestanden waarin verkoopfactuur mutaties staan. In de map C:\Import staan de volgende twee bestanden klaar:


D:\Import\Facturen 2013-03-16.CSV

D:\Import\Facturen 2013-03-18.CSV


Nu blijkt dat, door een fout bij degene die dit bestand heeft aangemaakt en klaargezet, het eerste bestand (Facturen 2013-03-16) geen verkoopfactuur boeking bevat, maar in plaats daarvan een memoriaal boeking. Dit is een type boeking dat de betreffende taak niet verwacht en zeer waarschijnlijk op zal stuklopen.


Dit kunnen we oplossen door een filter op de inhoud toe te passen. We weten bijvoorbeeld dat een verkoopfactuur boeking altijd minimaal een kopregel bevat dat begint met:


0;V;


De V staat hier voor dagboek Verkoop. We kunnen dus een inhoudfilter toepassen die controleert of de inhoud van het bestand deze tekst bevat. Indien dat niet zo is, zoals bij een bestand met daarin een memoriaal boeking, zal het bestand niet in de resulterende bestandenlijst worden opgenomen.


U kunt één of meerdere inhoudfilters aanmaken. Hiervoor zijn de volgende knoppen beschikbaar:


Pictogram

Betekenis

Toevoegen nieuwe inhoud filter

Wijzigen inhoud filter

Verwijder inhoud filter


Het venster waarin u de inhoudfilter aanmaakt of wijzigt:


Extensie

Een inhoudfilter wordt alleen uitgevoerd voor een bestand met de hier opgegeven extensie.

Moet bevatten

Hier geeft u de tekst op (case insensitive) welke de inhoud van het bestand moet bevatten.

Zoek ASCII tekst

Wanneer u deze optie aanvinkt zal het bestand in kleine delen worden doorlopen totdat de tekst is gevonden. Grote voordeel is dat de tekst sneller gevonden kan worden (zeker indien deze zich aan het begin bevindt) en er minder geheugen nodig is. Enige nadeel is dat er alleen gezocht kan worden op 'normale' tekens. Dit houdt in dat er wel wordt gezocht op 'e', maar niet op 'é'.


NB: Indien u wilt controleren op meer dan 1 tekst in de inhoud, dan kunt u dit bereiken door meerdere inhoud filters voor dezelfde extensie aan te maken.