= Scripts = [[TOC(heading=Inhoudsopgave)]] [[TOC(heading=Beheershandleiding, compact, depth=1, Documentatie/Beheershandleiding/*)]] [[TOC(heading=Hoofdstukken, titleindex, compact, Documentatie, Releases, ImplementatieBladen, Events)]] OpenAC heeft, naast de gewone functionaliteit van het programma, ook ''scripts'' die ongewone acties uitvoeren of die bijzondere queries op de database loslaten. Deze scripts staan bij de OpenAC programmatuur en kunnen [#handmatig met de hand] of [#gepland als geplande taak] worden uitgevoerd. Scripts doen speciale dingen met OpenAC. Hierdoor is het van belang om de scripts met de nodige voorzichtigheid te draaien. == Scripts Draaien == Voor het uitvoeren van een script zijn er drie stukken informatie nodig: - Waar is OpenAC geinstalleerd? Dit scrijven we verder als ''''. Als OpenAC op een reguliere manier is geinstalleerd zou dit {{{C:\Program Files\OpenAC}}} kunnen zijn. - Welke versie van de [Documentatie/Beheershandleiding/Runtime OpenAC runtime] wordt er gebruikt? De meeste installaties hebben Python 2.5, sommige Python 2.4. - Welk script moet er worden uitgevoerd? Een lijst van beschikbare scripts staat op deze pagina [#scripts hieronder], of kijk in ''/scripts/'' voor de namen van alle scripts die met OpenAC geinstalleerd zijn. Elke adaptatie kan ook zijn eigen scripts hebben, die in de adaptatiemap staan. Scripts worden het beste vanaf de ''command-line'' uitgevoerd. Deze is op te starten als {{{cmd.exe}}}. Instructies voor specifieke Windows versies staan hieronder. Als de command-line is opgestart, dan kunt u met het commando {{{cd }}}'''' naar de juiste map gaan. Eenmaal in de juiste map, gebruik het juiste commando van de [Beheershandleiding/Runtime runtime], een spatie, {{{script.py}}} en de naam van het script om uit te voeren. Indien geen script wordt opgegeven klaagt het programma dat er geen script opgegeven is en doet verder niks. In de screenshot hieronder worden de volgende twee opdrachten uitgevoerd: {{{ cd "C:\Users\adriaan\AppData\OpenAC Docs\v1.222" Python25\python.exe script.py }}} Het eerste commando zorgt ervoor dat het commando op de juiste plek wordt uitgevoerd (op deze machine is OpenAC op een ongewone plek geinstalleerd). De tweede voert het script uit (zonder naam van een script, dus we verwachten ook dat het klaagt). [[Image(script-geen.PNG)]] === Command Line Starten === ||= Windows 7 =||= Windows XP =|| || Klik op start en vul in het zoekveld {{{cmd}}} in en druk op enter. De command-line start op. || ''TODO: hier screenshots maken.'' De command-line opstarten in Windows XP lijkt erg op het opstarten onder Windows 7. || || [[Image(start-win7.PNG,class=align-left)]] || || === Parameters voor Scripts === Na {{{python.exe script.py}}} volgen vier dingen: - de naam van het script zelf (bijvoorbeeld {{{backup.py}}}) - (''optioneel'') de adaptatie om te gebruiken - (''optioneel'') een mailadres waar de uitvoer van het script naartoe gestuurd wordt - (''optioneel'') een of meer parameters voor het script Hieronder volgen vier voorbeelden met verschillende combinaties van parameters. In alle gevallen draaien we het script {{{svn.py}}} (beschikbaar vanaf v1.224). We kiezen optioneel om de adaptatie op die van Nijmegen in te stellen, om de resultaten naar de helpdesk te sturen, om zowel de adaptatie als het mailadres in te stellen (''en let op dat hier de volgorde belangrijk is! '') en om het script {{{svn.py}}} zelf een parameter te geven (nl. "info", waardoor het script iets nuttigs afdrukt). {{{ Python25\python.exe adaptatie:ac_nijmegen script.py Python25\python.exe mailto:tickets@fenac.nl script.py Python25\python.exe adaptatie:ac_nijmegen mailto:tickets@fenac.nl script.py Python25\python.exe script.py info }}} === Instellingen voor Scripts === Scripts gebruiken dezelfde instellingen als de laatste OpenAC-sessie. Het is dus zaak om OpenAC minimaal één keer op de reguliere manier te starten en te controleren of alle instellingen correct zijn. == Een geplande taak aanmaken == Controleer eerst dat het script met de hand gedraaid kan worden zoals hierboven omschreven staat. De runtime en parameters zijn hierbij in het bijzonder van belang. * Open "Geplande taken" vanuit het configuratiescherm. De wizard "Taak plannen" zal worden gestart. * Blader naar python.exe in de runtime map (Python25 of Python24) in de ''''. * Geef de taak een naam. * Geef aan wanneer de taak moet worden uitgevoerd. * Voltooi de wizard. Vink op de laatste pagina moet de optie "Geavanceerde eigenschappen voor deze taak openen wanneer ik op Voltooien klik" aan. Dit is nodig om de argumenten en de werkdirectory in te stellen. * Vul de opdrachtregel achter "Uitvoeren" aan met {{{script.py}}} '''' ''''. * Het is belangrijk dat achter "Beginnen in" de '''' wordt ingevuld. Dit is de werkdirectory. == Beschikbare Scripts == Deze lijst met scripts omvat alleen de scripts die voor alle AC's van belang zijn. De individuele adaptaties kunnen nog meer scripts bevatten die alleen op de lokale situatie van die adaptatie of dat AC van toepassing zijn. Scriptnamen worden in dit lijstje zonder "{{{.py}}}" weergegeven. Die kan je bij de scriptnaam ook weglaten (maar ''niet'' bij {{{script.py}}}!). TODO: '''verstuur herinneringen script''' TODO: '''switches script''' TODO: '''andere scripts''' TODO: '''lijstje van adaptatie scripts''' === Backup === De naam van dit script is {{{backup}}}. Dit script schrijft een actuele backup naar de verzameldirectory. De verzameldirectory is degene die is ingesteld bij het maken van een OpenAC backup. Om die in te stellen of te controleren, start OpenAC gewoon op als admin en kies Bestand -> Backup Maken. Het invulveld dat daar verschijnt bevat de instelling voor het maken van backups. === SVN Cleanup === De naam van dit script is {{{svn_cleanup}}}. Dit script kan problemen met het versiebeheer van OpenAC oplossen. Als het niet lukt om OpenAC op te starten omdat het over versiebeheerproblemen klaagt, kan dit script een oplossing bieden. Voor een meer rigoreuze oplossing zie script [#svn_client SVN Client]. === SVN Client === De naam van dit script is {{{svn}}}. Beschikbaar vanaf v1.224. Dit script voert algemene versiebeheertaken uit, al dan niet met de instellingen van OpenAC. Dit script heeft een parameter nodig om aan te geven welke bewerking het uit moet voeren. Als er geen parameters meegegeven worden dan drukt het script een volledige handleiding af op het scherm. Sommige mogelijke parameters voor dit script: - {{{info}}} geef informatie over de huidige OpenAC versie. - {{{server}}} geef informatie over de versie van OpenAC beschikbaar op de server van de FENAC. Hierbij worden de proxy-instellingen van OpenAC gebruikt. Zorg ervoor dat die goed ingesteld staan bij instellingen. - {{{serverc}}} geef informatie over de versie van OpenAC beschikbaar op de server van de FENAC. Maak hierbij ''geen'' gebruik van de proxy instellingen van OpenAC. In combinatie met {{{server}}} is het mogelijk om hiermee netwerkproblemen veroorzaakt door proxy-instellingen uit te zoeken. - {{{status}}} laat de status van de OpenAC versie zien. Hierbij worden regels afgedrukt met een letter of symbool vooraan om aan te geven wat de status is. ''?'' geeft een bestand aan dat onbekend is bij versiebeheer; dat zou normaal gesproken niet voor moeten komen. ''M'' geeft een bestand aan dat veranderd is in de lokale versie; die kunnen via versiebeheer ingeleverd worden. Andere letters (''A'' en ''C'') kunnen voorkomen maar geven een probleem met de installatie aan. - {{{scrub}}} is een stoomwals die over alle versiebeheer problemen heen walst door dingen lukraak weg te gooien. Als OpenAC niet wil opstarten vanwege versiebeheerproblemen en ook niet bijgewerkt kan worden en script {{{svn_cleanup}}} biedt geen soelaas, dan kan ''scrub'' helpen. Omdat dit een paardemiddel is moet ook nog de dag van de week (eerste twee letters) als parameter meegegeven worden, al is het maar om te voorkomen dat je dit per ongeluk draait en alle veranderingen aan sjablonen en codetabellen kwijtraakt. === Periodieke TOREN-import === De naam van dit script is {{{periodiek_toren_import}}}. Geef het script een parameter, {{{import}}}. Het script doet het volgende: * Alle bestanden uit de TOREN-importmap met een bepaalde bestandsextensie worden ingelezen. De TOREN-importmap en de bestandextensie kunnen worden ingesteld via '''Beheer->Instellingen''' in OpenAC. * Als er een structuurfout zit in het importbestand, of als de import voortijdig wordt afgebroken, dan wordt het importbestand verplaatst naar de map "'''mislukt'''". Het script "periodiek_toren_import" garandeert dat elke verrichting uit een importbestand maar één keer wordt verwerkt, dus een bestand kan zonder gevaar op dubbele verrichtingen meerdere keren worden geïmporteerd. * Verrichtingen die niet kunnen worden verwerkt worden weggeschreven als een kommagescheiden bestand in de map "'''fouten'''". * Nadat een TOREN-bestand is geïmporteerd wordt het verplaatst naar de map "'''behandeld'''". * Bestanden uit de map "mislukt" kunnen worden teruggezet naar de TOREN-importmap met "'''script.py periodiek_toren_import herstel'''". === Verstuur DBC's === De naam van dit script is {{{verstuur_dbcs}}}. Het script voert de acties uit het scherm DBC's versturen automatisch uit.