打印机

一个单元打印所经过的四个打印队列(标签或报告,开始时或完成时),声明在模型上,按单元跟随或覆盖,以及一条命令怎么找到它的队列。

以 Markdown 查看

打印机是这个模型印出来的东西出来的地方。一个动作发出的每一条命令都属于四种组合之一,也就是出来的是什么(一张标签还是一份报告)和什么时候出来(在运行的开始时还是完成时),而每一种组合在每一个单元上正好有一个打印队列:一个安装在这台工作站上的 Windows 打印队列。模型声明那四个默认队列,每一个单元都从它们打印,除非它已经脱开、保留着自己的四个;而一条命令按它自己的组合来解析它的队列,绝不按把它归在一起的那个动作。这个屏幕(Process > 模型 > 定义 > 打印机)写着“这个模型的每一个单元打印所经过的工作站队列:每种类型和时机各一个,供它打印的标签和它发布的报告使用。”,并数出单元数和其中有多少个自成一体。

读取需要查看模型;每一次编辑都需要管理 Process 和一台没有被锁住的工作站。这个屏幕穿着每个定义屏幕共用的那一副样子(见定义)。

模型定义:四个槽位

标题栏写着“模型的默认队列。它们服务于每一个仍然跟随它们的单元,因此一张由相同工位组成的试验台只配置一次。”,并带着刷新队列(运行时写“正在刷新……”),按它就为屏幕的两半重新读取工作站已安装的队列。这份清单在屏幕打开时读一次。

这张表永远是同样四行,顺序如下:开始时的标签、完成时的标签、开始时的报告、完成时的报告。

显示什么
类型 标签或者报告
时机 开始或者完成
使用者 这个模型里有命令从这个槽位打印的那些动作,按名称写出,或者写“没有动作”。
打印队列 默认队列的名称,或者“未配置”(只有在确实有动作从这个槽位打印时才用警示色)。

工作站列不出它的队列时,表格上方有一条提示条写着打印队列不可用,并带上那次失败。在没有权限访问 Windows 打印后台的宿主上,这份清单干脆就是空的。

一个槽位的设置栏

点中一行会把这个槽位完整打开(“打印机 · 开始时的标签”),上面那一行说的是这种介质需要什么:

  • 标签:“标签是以原始打印机命令的形式送进队列的。Ganter Lab 把它们交给 Windows,无法确认标签真的出来了。”;
  • 报告:“文档以 PDF 的形式到达队列,因此请选一台文档打印机。用 Microsoft Print to PDF 做测试就可以。”
字段 是什么 取值 / 默认 效果
打印队列 “每一个仍然跟随模型的单元把这一类打印到哪里。” (未配置),然后是每一个已安装队列的名称;工作站已经不再安装的、存下来的名称仍然列出,写作“名称(未安装)”;默认(未配置)。 写在模型上:每一个跟随的单元立刻就从它打印。图例后面还会补上“由 … 使用”,写出从这个槽位打印的那些动作。

没有管理 Process 时,以及工作站被锁住时,卡片带着提示条“更改打印队列需要‘管理 Process’权限和一台可编辑的工作站。”,选择框被禁用。

按单元:单元列表

显示什么
单元 单元的名称。
队列 “跟随模型”,或者对脱开的单元写“4 项中设了 3 项,自己的”。这个模型有命令从某个槽位打印、而该槽位对这个单元当时生效时是空的,这一行就穿上警示色。

标题栏最末端的管理单元打开模型的页面。

一个单元的设置栏

点中一个单元会打开两张卡片。这个单元的队列从哪里来提供跟随模型的默认设置(“改上面的模型默认设置,这个单元会和试验台上其余的一起跟着变。”)或者有自己的队列(“这个单元自成一体。模型的默认设置不再影响它,改它也不会改变这里的任何东西。”)。脱开时从当时生效的东西起算:自己那四个槽位全是空的单元,取模型那四个的一份副本;重新跟随不抹掉任何东西,所以第二次脱开时,这个单元原来有什么就原样拿回什么。没有管理 Process 时以及工作站被锁住时,这个二选一是禁用的。

第二张卡片是当时生效的那四个槽位,单元跟随期间标题是当前生效:模型的默认设置(“从模型读取。给这个单元一套自己的队列,才能在这里更改。”),每一个选择框都被禁用;一旦脱开,标题变成这个单元自己的(“只有这个单元从这些队列打印。它的兄弟不受影响。”)。表格还是那同样四行:类型(介质的那句提醒作为单元格的悬停提示)、时机使用者,以及每一行一个打印队列选择框,提供的清单和模型那边一样。有队列错误时,那条提示条也在这张卡片上重复一遍。

一条命令怎么找到它的队列

在运行的边界上,流程所选中的每一个动作的每一条命令,都通过模型解析出它的队列:跟随的单元取模型上那条命令的种类和触发时机所对应的槽位;脱开的单元取它自己的。因此同一种组合的两条命令是有意共用一台打印机的,不管它们坐在哪些动作里,而把命令归组或重新排序也绝不会挪动一个队列。删掉一个动作也不动那些槽位,因为它们是按种类和触发时机来定的,不是按动作。

当时生效的槽位是空的时候会怎样,因介质而异,而且两种情况都不改变这次运行,也不会拦住别的命令:

  • 一张标签照样排出来,并记进这次运行的标签卷宗;它的发送记为一次失败的尝试,队列写作“(未配置)”,理由是“这个单元上没有为这张标签配置打印队列。”
  • 一份报告照样发布它的 PDF(命令要求把它冻结进运行时也照做);它的自动打印记为一次失败的尝试,理由是“这个单元上没有为这个动作配置打印队列。”

队列接受了只是“已送入队列”,绝不是真的印出来了的证明。队列名称是工作站本地的:一份被复制到另一台工作站的配置保留那些名称,而它们在被替换之前会读作“(未安装)”。

这个屏幕不做的事

  • 它什么也不打印:一张标签的测试打印在标签模板上,一份报告的样张在报告上,重新打印和重发在历史里。
  • 它不决定打印什么、什么时候打印:那是动作下面每个动作的那些命令,而一次运行发出哪些动作,是流程的事。
  • 它没有按动作或按流程的队列:每种组合、每个单元一个队列。
  • 它不安装任何队列:那份清单是 Windows 自己的,没有打印后台的宿主一个都列不出来。