Noot van de redactie: het volgende artikel is een fragment uit Neem de controle over het aanpassen van Tiger, een elektronisch boek van $ 5 dat kan worden gedownload van TidBits elektronische publicatie. In een uittreksel uit het boek uit mei 2005 bekeek Matt Neuburg Schijnwerper —dit artikel richt zich op Automator.
Het uiteindelijke doel van een computer is automatisering. Zelfs als je zoiets eenvoudigs doet als het bewerken van tekst in een tekstverwerker, automatiseer je acties die vreselijk vervelend zouden zijn als je ze zelf een voor een zou moeten uitvoeren. (Als je me niet gelooft, ruil je computer dan in voor een typemachine. Druk op de regelterugloop aan het einde van elke regel; vergeet niet om voor elke alinea extra spatie toe te voegen; krijg alle spelling goed; maak een fout en typ de hele pagina opnieuw - nee bedankt!)
Desalniettemin weet uw computer van tevoren niet alles wat u wilt doen, en er zijn momenten waarop u waarschijnlijk merkt dat u steeds dezelfde acties uitvoert. Of misschien zijn er dingen die je niet doet, omdat je weet hoe je het doet
zou kunnen doen, zou het vooruitzicht te vervelend en tijdrovend zijn. Dit is een slechte gang van zaken. Het betekent dat de rollen zijn omgedraaid: jij, de mens, wordt geautomatiseerd, in plaats van de computer.Sinds het begin van de computertijd is de traditionele manier om dit probleem op te lossen het schrijven van een nieuw computerprogramma dat de repetitieve of vervelende handelingen uitvoert. Maar het schrijven van een gloednieuw programma zou niet nodig moeten zijn als applicaties die je al op je computer hebt staan, de gewenste individuele stappen kunnen uitvoeren. Het probleem is om die applicaties die stappen zelf te laten uitvoeren, in plaats van dat je het stap voor stap moet doen. Daarom heeft Apple AppleScript gemaakt, waarmee je een reeks acties kunt samenstellen die je bestaande programma's kunnen uitvoeren, en die reeks vervolgens kunt instellen wanneer je maar wilt.
AppleScript is echter een programmeertaal en veel gebruikers hebben een afkeer van programmeertalen. Dus introduceerde Apple in Tiger een nieuwe automatiseringstechniek - een applicatie genaamd Automator, waarmee jij, de gebruiker, een reeks stappen kunt samenstellen (genaamd acties ) in een enkele reeks (a werkstroom ) zonder ook maar iets te programmeren. Een workflow kan worden opgeslagen als een document, dus als je eenmaal een workflow hebt gemaakt, kun je deze later weer openen en dezelfde reeks stappen in één beweging uitvoeren.
Tiger wordt geleverd met een aantal Automator-acties; deze acties worden opgeslagen in /System/Library/Automator. Je mag ook verwachten dat veel acties van derden zullen worden geschreven naarmate Tiger volwassen wordt; wanneer u dergelijke acties verkrijgt, slaat u ze op in /Library/Automator of in uw eigen gebruiker ~/Library/Automator.
Het is ook mogelijk dat een applicatie van derden zo is geschreven dat deze zijn eigen acties bevat; in dat geval zijn de acties beschikbaar in Automator, maar zie je ze niet als afzonderlijke bestanden. Wanneer u bijvoorbeeld bijwerkt naar de nieuwste versie van BB Bewerken, verschijnen er op magische wijze ongeveer 20 nieuwe acties voor het manipuleren van tekst in Automator.
Extra voor experts
Een toepassing die reageert op AppleScript (dat wil zeggen een scriptbaar applicatie) is een goede kandidaat om het doelwit te zijn van een Automator-actie, en achter de schermen, de het hart van een Automator-actie die gericht is op een scriptbare toepassing is doorgaans een AppleScript-script. Dus wanneer u een workflow in Automator bouwt, is het heel goed mogelijk dat u een reeks AppleScript-scripts aan elkaar rijgt, behalve dat u AppleScript niet hoeft te kennen; de scripts zijn al geschreven en je ziet ze nooit.
Maak een Automator-workflow
Met behulp van de acties die bij Tiger worden geleverd, kunt u direct acties aaneenrijgen om workflows te vormen, op manieren die u in staat stellen dingen te doen die u eerder voor onmogelijk had gehouden. Automator-workflows kunnen wel eens een belangrijk onderdeel worden van uw aanpassing van Tiger.
Om het proces van het maken van een Automator-workflow te illustreren, laten we ons ter illustratie een taak stellen. Ons voorbeeld zal uiterst eenvoudig zijn. Ik probeer je niet alles over Automator te leren; Ik wil het je gewoon laten zien, zodat je de basis begrijpt en niet bang bent om zelf te experimenteren.
Ik heb mensen dit vaak zien zeggen in een internetnieuwsgroep: "Ik heb een map vol met bestanden en ik wil de namen van die bestanden in een tekstverwerker weergeven. Hoe doe ik het?" Nu kunt u dit probleem op een aantal manieren oplossen. U kunt Terminal gebruiken, maar veel mensen houden niet van Terminal of zijn bang voor Unix-commando's. U kunt de freeware van Bare Bones Software gebruiken TextWrangler - maar misschien realiseer je je dat niet. Hoe dan ook, de echte vraag is: hoe kun je dit probleem voor jezelf oplossen?
Dit is het soort situatie waarin u zich tot Automator moet wenden en kijken of de toepassingen en acties op uw computer u kunnen helpen bij het uitvoeren van de gewenste taak. Laten we het doen!
Stap 1: Automator opstarten. (Het staat in de map Toepassingen.) Er wordt een nieuw werkstroomdocument geopend.
Laten we eens kijken naar wat we zien. Aan de linkerkant worden alle Automator-acties weergegeven (de kolom Actie). De lijst kan op twee manieren worden gefilterd: u kunt een of meer toepassingen selecteren in de lijst Toepassingen (in het bibliotheekkolom), om alleen de acties weer te geven die erop van toepassing zijn, en u kunt typen in het zoekveld bovenaan de raam. Aan de rechterkant is een groot leeg gebied waar je elke actie die je wilt gebruiken naar toe kunt slepen, waarbij je ze rangschikt om een reeks van boven naar beneden te vormen.
Stap 2: Denk na over het probleem. Hoe begint het? "Ik heb een map ..." Dus de eerste stap van uw reeks is het specificeren van de map. Klik op Toepassingen in de kolom Bibliotheek (omdat we alle acties willen doorzoeken) en typ
mapin het zoekveld om u te helpen acties te vinden die met mappen te maken hebben.
Stap 3: De eerste gevonden actie is Get Selected Finder Items. Klik erop om er meer over te lezen in het paneel onderaan de linkerkant. De beschrijving zegt: "Deze actie haalt de geselecteerde items op en geeft ze door aan de volgende actie."
Stap 4: Dit klinkt veelbelovend, maar het zou handiger zijn om niet te hoeven beginnen met het selecteren van de gewenste map; het zou beter zijn als er een dialoogvenster zou verschijnen met de vraag welke map we willen gebruiken. Wacht - de derde actie in de lijst is Vraag naar Finder-items. Klik erop en lees de beschrijving: "Met deze actie kan de gebruiker Finder-items kiezen in een dialoogvenster wanneer de workflow wordt uitgevoerd." Perfect! Sleep Vraag om Finder-items naar het hoofdgebied aan de rechterkant (zoals weergegeven in de bovenstaande schermafbeelding).
Stap 5: Zoals met veel acties, heeft deze bepaalde aanpasbare kenmerken. (De actie kan alleen op naam worden weergegeven of met alle kenmerken; om tussen deze weergavemodi te schakelen, klikt u op de driehoek links van de titel van de actie.) Het draait uit dat Vraag naar Finder-items een pop-upmenu Type heeft: we kunnen de soorten items beperken tot bestanden, mappen of beide. Uitstekend! We weten dat we een map willen kiezen om mee te werken, dus verander het pop-upmenu Type in Mappen. We bepalen ook de prompttekst die wordt weergegeven in het dialoogvenster Openen; in plaats van "Kies een Finder-item:", voer in
Kies een map om te vermelden:.
Stap 6: Een deel van het plezier van werken met Automator is dat u uw workflow meteen kunt testen, zelfs voordat deze is voltooid. Klik op de knop Uitvoeren rechtsboven in het venster.
Er verschijnt een dialoogvenster waarin u wordt gevraagd een map te kiezen! (Klik op Annuleren of OK om het te negeren.) Onze workflow werkt. Natuurlijk, tot nu toe niet Doen alles met de gekozen map.
Stap 7: Laten we dat oplossen. Gegeven een map, moeten we alle bestanden erin krijgen. Kijk terug naar de lijst met acties. Hmmm... Get Folder Contents ziet er veelbelovend uit; klik erop en lees de beschrijving. "Deze actie haalt de items uit de opgegeven mappen." Klinkt goed!
Stap 8: Sleep Get Folder Contents naar het hoofdgebied, na (hieronder) Ask for Finder Items.
Kijk wat er gebeurt. De twee acties komen op een specifieke manier samen. Een actie kan invoer hebben (gegevens die erin worden ingevoerd) en uitvoer (gegevens die worden geproduceerd). Om de ene actie op de andere te laten volgen, wilt u meestal dat de gegevens die door de eerste worden geproduceerd, aan de tweede worden doorgegeven. De samenvoeging tussen de acties in Workflow laat zien dat dit gebeurt. Ask for Finder Items produceert bestanden en mappen—de bestanden en mappen die door de gebruiker in het dialoogvenster zijn gekozen. (In dit geval produceert het slechts één item - een map - omdat dat is wat u daadwerkelijk in het dialoogvenster kiest.) Die bestanden en mappen worden vervolgens ingevoerd in Get Folder Contents. Dit werkt omdat de uitvoer van de eerste stap van hetzelfde type is als de invoer van de tweede stap: bestanden en mappen.
Tip: Deze benadering van programmeren wordt a genoemd informatiestroom diagram; elke stap produceert gegevens die worden doorgegeven aan de volgende stap, en de stappen worden visueel weergegeven als het invoeren van de uitvoer van een stap in de invoer van de volgende stap. Unix-programmeurs kennen hetzelfde concept door het begrip a pijp.
Stap 9: De tweede stap haalt nu de inhoud van de door u gekozen map op, maar geeft deze niet weer. Om dit probleem op te lossen, biedt Automator een speciale actie: Resultaten bekijken. Gebruik het zoekveld om het te vinden en sleep het aan het einde naar de reeks.
Stap 10: Voer de workflow nu opnieuw uit. Deze keer geeft Automator de inhoud van de gekozen map weer als een reeks Unix-paden, binnen Automator zelf. Nadat u voor uzelf heeft bewezen dat de workflow werkt, kunt u op de X in de rechterbovenhoek van Resultaten bekijken klikken om deze desgewenst uit de reeks te verwijderen; maar het kan geen kwaad om het daar te laten, aangezien de uitvoer hetzelfde is als de invoer - het zal de inhoud van de map onveranderd doorgeven.
Stap 11: Vervolgens willen we de Unix-paden van de vorige stap vastleggen in een tekstdocument. Type
tekstin het zoekveld en blader door de vermelde acties. Klik op elk ervan zodat u kunt lezen wat het doet. Wanneer je bij New TextEdit Document komt, zouden de bellen moeten afgaan. Het creëert een nieuw TextEdit-document en, nog belangrijker, het gebruikt tekst als invoer. Het creëert dus duidelijk een nieuw TextEdit-document met die tekst. Hmmm, tot nu toe hebben we alleen "Bestanden/Mappen" in onze gegevensstroom geproduceerd. Wat gebeurt er als we dat volgen met een actie waarvan de invoer "Tekst" is? Probeer het en zie! Sleep als laatste stap een nieuw tekstbestandsdocument in de reeks. Het sluit zich met succes aan bij de vorige stap! Dit laat zien dat wat we hebben gedaan acceptabel is; Automator zet de gegevens voor ons om.
Tip: Dit vermogen van Automator om het ene type gegevens automatisch in het andere om te zetten, is belangrijk, omdat het betekent dat u zich niet al te veel zorgen hoeft te maken over het type gegevens dat van de ene stap naar de andere wordt overgedragen. Als Automator de uitvoer van een actie niet kan converteren naar de invoer van de volgende actie, zal het weigeren zich bij hen aan te sluiten, de gegevenstypen worden in het rood weergegeven en u weet dat uw reeks niet zal werken.
Stap 12: Voer de werkstroom uit. (De onderstaande schermafbeelding toont de voltooide workflow.) Het werkt! U kiest een map en er verschijnt een Teksteditor-document met de padnamen van de bestanden en mappen erin.
Dat is alles wat er is om met Automator te werken. Elke workflow is zo, een eenvoudige reeks acties achter elkaar. Er is geen ingewikkelde looping of besluitvorming.
Bestudeer voor meer informatie de voorbeeldworkflows die zijn opgenomen (kijk onder Voorbeeldworkflows in de kolom Bibliotheek) en bekijk de acties die voor u beschikbaar zijn (alles in de kolom Actie). Denk aan workflows die u wilt maken. En als je Tiger gebruikt, vraag jezelf dan af of een activiteit die je uitvoert of zou willen uitvoeren, kan worden geautomatiseerd door deze uit te drukken als een workflow.
Extra voor experts
Als je een AppleScript-programmeur bent (of je speelt er gewoon een op tv), is een Automator-actie een geweldige manier om een script naar andere gebruikers te verspreiden, omdat het die gebruikers een kleine interface geeft om het gedrag van het script aan te passen, en omdat het hen in staat stelt het script op te nemen in een groter werkstroom. Zie mijn online artikel op om aan de slag te gaan met het schrijven van uw eigen Automator-acties MacDevCenter.com.
[ Matt Neuburg is een TidBits-redacteur en auteur van verschillende boeken over Mac-software; zijn laatste is Neem de controle over het aanpassen van Tiger ( TidBits elektronische publicatie, 2005). ]