Sunday, October 4, 2009

Automator是什么东西


Automator是用来处理工序流程(Workflow)的工具。

Workflow(工序流程)的作用
工序流程本身是一个既简单又复杂的概念。每个流程可以包括若干节点(nodes)或环节,而流程就是将这些环节连接起来,对流程的执行其实就是按部就班地一步步将按照预定的环节走完。复杂的流程中,环节可能有叉道(forks)、或有条件和选择(conditional)、或着形成回路(loop)。举个例子来说,用户到某个部门提交申请。对于申请审批这一工序,大致就可以分这几个环节: 1。 用户提交申请。2。有关人员接到申请后,审核。3。批复。这看起来就是一个很简单的序列(sequence)。但是在实际生活中,这个工序可能更复杂。比如:这个申请本身是申办证件。在第2步审核时,如果发现用户表格填写不对,那就在批复时就要退表。而如果审核批准了,那下一步就应该是证件办理。也就是说审核的结果将成为一种条件。再如果,用户提交申请时同时交费,那么在收到申请时,就要分拣。表格要送审,支票要送至财会部门上帐。这样在分拣时所产生的两种结果将同时走不同的渠道,这就是在工序中就行成了叉道。
工序流程之所以重要主要在于两个方面:1.在有明确的目标的前提下,设计流程将有助于获得实现目标的最经济的捷径,同时也有助于看清各个环节,分析可能遇到的情况和实现目标的必要条件,便于对项目的全景和可能遇到的问题以及解决方法的了解。2。工序流程对于经常性、重复性操作具有非常现实的意义。而就Automator来说,所针对的就是重复性操作和批量处理。在电脑的使用当中,对于一次性的操作,直接手动操作要比先考虑流程迅速的多。因此,当使用Automator的时候,除了目的和要实现何种结果必须明确外,还应该考虑你将要设计的流程和所采取的步骤以后是否会经常用到。
重要概念
除了流程以外,要弄明白Automator,还要先注意几个概念。
电脑从诞生发展到现在,都是基于处理器(Processor)的模式。现在大家一提到处理器,就想到的是芯片,而忘掉了其原有的内含。处理器其实就是加工机。概念上电脑和给谷子脱壳的脱壳机差不多,都是用户往机器里送些东西,再给机器若干指令,经机器加工后,产生一些新结果,脱壳机吃下个谷物,然后吐出了脱了壳的谷物。而你向电脑输入了些数据,经过处理后,也给你相应的结果。在电脑里你送入的数据叫输入(input),而经过加工后所产生的数据叫输出(output)。这种加工机的概念在Automator中体现得非常明显。输入(Input)、输出(Output)、操作(Actions) 和结果(Results),这些都是要在使用Automator时所碰到的概念。
工序举例
其实,就Automator的用户界面而言,无论是Tiger版的还是Leopard版的,使用起来都很简单,但大多数用户即使知道它有助于重复性操作,也对它无所是从。其主要原因是想不到自己在什么场合会有经常性、重复性的操作。以下一些例子或许能对大家有所启发:
1。把Apple Mail里的所有加了标记(Flag)的邮件转换成文本文件、甚至是PDF文件(需要下载免费的Text to PDF Workflow)。
2。把.Mac相册里的所有照片导入iphoto里去。
3。通过搜索iCal来查找本月过生日的朋友的信息,并使用iCal来按时间给那些朋友自动发祝贺邮件。
4。把所有图片都自动修改尺寸。
用户经常抱怨没有苹果版的FlashGet,不能快速下在某网站的所有图片。但是用Automator建立一个简单的工序,就可以帮你下载网页上的所有图片,甚至是自动将这些图片装包,并用电子邮件邮给自己的同好。
局限和不足
Automator的确有一定的局限性。一方面,工序流程可以非常复杂,而Automator能够处理的是序列性的步骤,虽然Automator的一些动作(Actions)里可以具有过滤功能(Filter),比如,如果文件名里有marbles,就对此文件归档。。。等等。但是它自身所能处理的条件很有限,就上例中,它能处理文件名中带有marbles的文件,但是不能在同一工序中同时将文件名中不带有marbles的文件挪到废止篓里清除。在Mac OS 10.4里的Automator本身不能处理回路(loop),而Leopard内的Automator增加了这个功能。
另外,除了苹果自身的一些应用具有动作指令可以用与Automator以外,第三方软件提供对Automator的支持的操作(Actions)不是很多。虽然Automator本身具有运行Apple Script(脚本文件)和Shell Script的功能,可以完成相当复杂的流程,但是懂得使用AppleScript(脚本)或Shell Script的人就更少。
但是对于高级用户而言,他们自己也可以写Automator的操作,这些操作可以用AppleScript和/或Objective-C或其它脚本来写。但是这几种情况所生成的操作有一定的差别。 AppleScript所制作的操作,只有在应用支持脚本的情况下,才能控制应用,而Objective-C的操作要求该应用必须有应用可编程界面(API)。纯AppleScript的操作不可以直接调用系统框架和其他系统资源,而Objective-C、混合性AppleScript或Shell Script操作则可以。对于一些向提示用户让用户输入信息这类的小操作,以上几种操作都可以完成。
界面介绍 (Mac OS 10.4版Automator)
Automator的使用本身很容易。从应用文件夹打开Automator。Automator的左上第一栏为资源库(Library),里面是可以具备Automator操作的应用、工序样本,以及你所编写或安装的Automator流程。中间一栏为操作(Action),显示的从资源库里所选择的应用的所有操作。如果从资源库里直接点击应用文件夹,该文件夹里所有应用的操作就显示全部显示在操作栏下。左下方一栏为操作提示。从操作栏选择一个操作以后,左下栏就显示它的作用,以及所需要的输入(input)和可能产生的结果。右侧空间为工作空间。工作空间右上角有个运行(Run)键。制作工序流程时,从操作栏里把操作按次序拉到工作空间栏,然后点击运行键就可以试运行你的工序。
Automator的菜单上有三个存储(Save)。如果仅用”存储”(Apple+S),所存文件将为workflow文件。如果用”存储为”(Apple+Option+S),将允许你选择是否是workflow文件还是应用。workflow文件和应用的区别,在于workflow文件需要Automator应用打开,本身不能运行,要借助Automator的运行功能(Apple+r 或点击运行键)才可以运行该工序。而应用则可以独立的运行。最后一个存储是存为插件。插件本身也不能运行,而是做为其它应用或系统的功能。支持Automator插件的应用有Finder、文件夹操作、iCal示警、图片捕捉、打印流程和脚本菜单。做为Finder的插件,可以通过Ctl点击Finder窗口或桌面,从所调出的菜单里Automator选项中开启。脚本菜单则需要先将AppleScript设置为显示菜单,就会在屏幕标志时间地方的左侧出现一个脚本图标。从点击该图标所显示的菜单里就可以找到你的Automator插件。

No comments:

Post a Comment