Het aanpassen van een FlowForce-servertaak

In onze eerdere post, getiteld "Automatiseer data-mapping en -transformatie met FlowForce Server", hebben we een taak genaamd SimpleMapAndTransform aangemaakt om het data-mappingproces te automatiseren met MapForce Server en HTML-rapporten te genereren met StyleVision Server. Nadat de FlowForce Server-taak meerdere keren is uitgevoerd, hebben we veel uitvoerbestanden verzameld in dezelfde map die we gebruiken om invoerbestanden te verwerken, evenals tijdelijke tussenliggende bestanden in de map "workFiles", zoals te zien is op de afbeelding hieronder.

In dit artikel gaan we de functionaliteit verbeteren om ordelijkere resultaten te genereren en onnodige tijdelijke bestanden te verwijderen.

Herstructurering van de output

Ten eerste kunnen we meer stappen toevoegen binnen de "voor elke" lus die invoerbestanden verwerkt, om de nieuwe .gpx- en .html-bestanden die door de datamapping en -transformatie zijn aangemaakt, naar de map "completedInput" te verplaatsen. Dit zijn stappen 3 en 4 in de onderstaande reeks.

De optie "werkmap" in elke stap kan ook de uitvoer omleiden. Echter, de variabele die we gebruiken om elk invoerbestand voor verwerking te selecteren, bevat het volledige pad en de bestandsnaam. Daarom is het eenvoudiger om die string te blijven gebruiken en alle uitvoerbestanden te verplaatsen wanneer de verwerking is voltooid.

Ons StyleVision ontwerp voor het rapport bevat een grafiek die als een .png-bestand wordt opgeslagen, los van het hoofd- .html-document. De laatste stap in het proces gebruikt een systeemcommando om alle .png-bestanden van de invoermap naar de map met de voltooide resultaten te verplaatsen.

De opdrachtregel functie stelt u in staat om elke geldige opdracht van het besturingssysteem te definiëren als een taakstap in FlowForce Server. In deze taak bevinden we ons nog steeds binnen de "voor elke"-lus, dus de .png-bestanden worden verplaatst samen met het bijbehorende .html-document. We hebben een wildcard gebruikt voor de .png-bestandsnaam, omdat de .png-bestanden niet precies dezelfde naamgevingsconventie volgen als de invoerdocumenten. Het wildcardpatroon werkt ook voor StyleVision-ontwerpen die meerdere grafieken per rapport genereren.

Stappenplan voor huishoudelijke taken

Het is een goede gewoonte om de inhoud van werkmappen periodiek te legen. Onze applicatie gebruikt de map "workFiles" om de inhoud van het .pxf-bestand uit te breiden voor het genereren van rapporten. De screenshot van deze map, te zien in de afbeelding bovenaan deze tekst, toont het XML-schema, werkbestanden voor het ontwerp, .XSLT-bestanden om verschillende rapportformaten te genereren, en tijdelijke werkbestanden.

We kunnen een opruimstap toevoegen na de "for-each"-lus in onze taak, zodat deze direct na de verwerking wordt uitgevoerd. Echter, de FlowForce Server maakt het mogelijk om meerdere instanties van dezelfde taak tegelijkertijd uit te voeren. Het zou vervelend zijn als één instantie de map "workFiles" leegmaakt terwijl een andere instantie deze nog steeds gebruikt!

Een betere oplossing is om een aparte taak voor het opschonen te definiëren en deze in te plannen op een moment waarop de hoofdtaak niet actief is. Hier is een voorbeeld van een zeer eenvoudige opschooftaak voor de map "workingFiles", waarbij de opdrachtregel functie opnieuw wordt gebruikt:

We hebben een wildcard gebruikt om alles in de map "workFiles" te verwijderen, maar die optie is mogelijk niet geschikt in alle gevallen. Als het .pxf-bestand .css-stijlbladen of afbeeldingen bevat die nodig zijn voor het .html-document, dan zijn meer specifieke stappen nodig om de bestanden op te schonen.

Functie-initiatoren

De oorspronkelijke taak "SimpleMapAndTransform" is gepland om elke 15 minuten te draaien, van 8:30 tot 17:00, van maandag tot en met vrijdag. Zoals hierboven vermeld, is de opruimtaak gepland om één keer per dag te draaien, om 19:00 uur. De startpagina van de webinterface van FlowForce Server toont de planning van de taken:

Hier is een snelle truc die u kunt gebruiken om een FlowForce Server-taak te testen terwijl u deze definieert. Elke taak kan meerdere kalendergebeurtenissen als trigger hebben. We kunnen een "éénmalige" trigger definiëren om een nieuwe taak direct te testen en deze in te plannen voor slechts een paar seconden in de toekomst:

We kunnen direct feedback krijgen door het FlowForce serverlog te raadplegen, waarin de details van elke taakstap worden weergegeven.

FlowForce Server is beschikbaar voor Windows, Linux en binnenkort ook voor Mac OS. Om zelf aan de slag te gaan, klik hier om een gratis proefversie te downloaden!