入队

将项添加到队列或消息队列。

命令可用性: 本地 IBM RPA SaaS 和 IBM RPA

Description

将项添加到队列或消息队列。 队列是线性数据结构,其中添加的第一个项是要处理的第一个项。

此命令支持 7 队列提供程序 和仅接受消息队列集合的本地队列。

脚本语法

IBM RPA 的专有脚本语言的语法与其他编程语言类似。 该脚本语法在脚本文件中定义命令的语法。 您可以在 IBM RPA Studio的 脚本 方式下使用此语法。

enqueue --collection(Queue<Variant>) [--isserver(Boolean)] [--priority(Numeric)] [--correlationid(String)] --value(Variant)

输入参数

下表显示了此命令中提供的输入参数的列表。 在表中,您可以看到在 IBM RPA Studio的脚本方式及其 Designer 方式等效标签中工作时的参数名称。

设计器方式标签 脚本方式名称 必需的 接受的变量类型 Description
队列 collection Required Queue 要向其中插入项的队列。
队列提供程序 isserver Optional Boolean 启用以在使用 队列提供程序 而不是本地队列时入队。
优先级 priority Only when Queue Provider is True Number 要入队的每个项的优先级。
相关标识 correlationid Only when Queue provider is True Text 负责对具有相同标识的项进行分组的标识。 每个提供者都有自己的关于如何解释标识的规则。 请参阅 示例 3 以了解如何使用此参数。
插入的项 value Required Any 应该插入到集合中的项。

插入的项必须与来自 Queue 参数的集合中的项的类型相同。

priority 参数选项

队列提供程序 Description
活动消息队列 在 ActiveMQ中,值的范围是 0 到 9 , 0 是最低优先级。 缺省情况下,将禁用优先级队列。
Azure 队列存储器 Azure 队列存储器未提供本机支持通过排序自动对消息进行优先排序的队列机制。 使用 Azure Queue Storage 作为提供程序时,必须将此字段留空。 作为替代方法,您可以使用多个队列,一个用于高优先级消息,另一个用于低优先级消息。
IBM 消息队列 在 IBM MQ中,受支持的值范围从 0 到 9 ,其中 0 是最低优先级。 缺省值为 0。
Java 消息队列 在 Java 消息队列中,受支持的值范围从 0 到 9 ,其中 0 是最低优先级。 缺省值为 4。
Microsoft 消息队列 在 Microsoft 消息队列中,受支持的值范围从 0 到 7。 缺省值为 3。
Rabbit 消息队列 n RabbitMQ,受支持的值范围从 0 到 255 ,其中 0 是最低优先级。 此处要使用的建议范围为 1-10。 缺省值为 0。

示例

示例 1:使用入队命令在“队列”类型集合的最后位置插入项“John”。

defVar --name namesCollection --type Queue --innertype String --value "[Ana,Mary,Lucas,Victor]"
enqueue --collection "${namesCollection}" --value John
logMessage --message "${namesCollection}" --type "Info"
// The obtained result in "namesCollection" is: [Ana,Mary,Lucas,Victor,John].

示例 2: 在获取与队列提供程序 Active MQ 连接的连接之后,以及通过 Get Queue 命令获取 "Message Queue" 类型变量之后, 入队 命令在该队列的最后一个位置插入项 "Mary"。

defVar --name connection --type QueueConnection
defVar --name obtainedQueue --type MessageQueue
connectActiveMQ --queueprovider Training --fromconfiguration  connection=value
getQueue --connection ${connection} --fromconfiguration  --queue queueA obtainedQueue=value
enqueue --collection "${obtainedQueue}" --isserver  --priority 1 --value Mary

示例 3: 在获取与队列提供程序 Active MQ 连接的连接之后,以及通过 Get Queue 命令获取 "Message Queue" 类型变量之后, Enqueue 命令在队列中插入 4 名称。 其中一些名称具有用于对具有相同标识的项进行分组的相关标识。 然后,该命令从队列中除去第一个项 (即 "Mary") ,但由于优先级参数, "John" 是已除去的名称。

defVar --name connection --type QueueConnection
defVar --name obtainedQueue --type MessageQueue
defVar --name correlationID --type String --value names
defVar --name success --type Boolean
defVar --name retrievedName --type QueueMessage
connectActiveMQ --queueprovider Training --fromconfiguration  connection=value
getQueue --connection ${connection} --fromconfiguration  --queue queueA obtainedQueue=value
enqueue --collection "${obtainedQueue}" --isserver  --priority 6 --correlationid "${correlationID}" --value Mary
enqueue --collection "${obtainedQueue}" --isserver  --priority 3 --value Felix
enqueue --collection "${obtainedQueue}" --isserver  --priority 1 --correlationid "${correlationID}" --value John
enqueue --collection "${obtainedQueue}" --isserver  --priority 9 --correlationid names --value Emilly
peek --collection "${obtainedQueue}" success=success retrievedName=value
logMessage --message "Name retrieved from the queue: ${retrievedName}" --type "Info"