flowExecute

Version 26.1.9526


flowExecute


以与 Flow API 相同的方式处理工作流。这意味着单个消息将作为一个连续过程在多个端口中进行处理。允许调用一个以触发(Trigger)端口开始并以终结(Terminal)端口结束的完整工作流。有关更多信息,请参阅 端口分类

必须使用管理员 API 用户和 authtoken 通过 connector.rsc/flowexecute 端点调用此操作。

必选参数

  • connectorId:工作流中第一个端口的 ID。

可选参数

  • WorkspaceId:工作流所在 工作区 的 ID。如果未指定,操作将使用默认(Default)工作区。
  • MessageData:作为 UTF-8 文本的输入消息数据。
  • MessageName:输入消息的文件名。
  • HeaderName#:要包含在消息中的消息头名称列表(以逗号分隔)。
  • HeaderValue#:要包含在消息中的消息头值列表(以逗号分隔)。
  • InputEncoding:输入消息数据的格式。可用值为 UTF-8BASE64HEX。默认值为 UTF-8。
  • OutputEncoding:输出消息数据的格式。可用值为 UTF-8BASE64HEX。默认值为 UTF-8。

输出参数

  • Result:结果。可用值为:SuccessErrorWarningPendingSkipped
  • MessageData:如果 Result 不是 Error、Pending 或 Skipped,则为 UTF-8 格式的输出消息数据。
  • MessageName:输出消息的文件名。
  • ErrorMessage:如果 Result 为 Error 或 Warning,则为详细的错误信息。
  • LastConnectorId:工作流中最后一个端口的 ID。
  • LastWorkspaceId:工作流中最后一个工作区的 ID。
  • MessageId:消息 ID。

示例

此示例显示了在 ArcScript 端口(触发端口)中此操作可用的输入和输出。它通过指定端口 ID 和所在的工作区来定义工作流中的第一个端口。它还定义了通过工作流处理的文件名及其内容。最后,使用管理员 API 用户和 authtoken 通过 connector.rsc/flowexecute 端点调用 flowExecute 操作。

<!--Required:Define first connector in the flow--> 
<arc:set attr="flow.connectorid" value="Script_ChangeName"/> 
<!--Define workspace where flow is located, if not set this uses the Default workspace--> 
<arc:set attr="flow.workspaceid" value="Default"/> 
<!--Set filename of file to pass through flow as messagename attribute--> 
<arc:set attr="flow.messagename" value="[Filename]"/> 
<!--Get contents of message to pass to flow and set as messagedata attribute--> 
<!--Note this loads the contents of the file as a string--> 
<arc:set attr="in.file" value="[Filepath]" /> 
<arc:call op="fileRead" in="in" out="out" > 
  <arc:set attr="flow.messagedata" value="[out.file:data]" /> 
</arc:call> 

<!--Set a header and its value preserving the original filename, to reference later--> 
<arc:set attr="flow.headername#1" value="origfilename"/> 
<arc:set attr="flow.headervalue#1" value="[Filename]"/> 

<!--You must call this operation through connector.rsc and pass in a valid authtoken -->
<arc:call op="connector.rsc/flowExecute" authtoken="test:0d1V7j2r2Z7a9z1Y6z8y" in="flow" out="status"> 
  <!-- This if statement checks if the message encountered an error during processing. If yes, the message is finalized as Error in this script.--> 
  <arc:if exp="[status.result | equals('Error')]" >
    <arc:throw code="FlowFailed" desc="The message failed to be processed by the flowExecute call due to the following error: [status.ErrorMessage | def]" /> 
  </arc:if>
</arc:call>