当前位置: 首页 > 知识库问答 >
问题:

使用Cadence CLI工具时,如何传递复杂对象作为输入?

李鸿
2023-03-14

下面是一个示例工作流及其输入结构:

func MyWorkflow(ctx cadence.Context, input MyWorkflowParameters) error {
    ...
}

type MyWorkflowParameters struct {
    SomeString: string,
    SomeInteger: int32
} 

在启动工作流或向工作流发出信号时,将上述复杂结构作为输入参数传递给 Cadence CLI 工具的最佳方法是什么?

共有2个答案

仲鸿风
2023-03-14

Cadence命令行工具的输入参数根据您的工作流期望接受几种不同格式的值。以下是三种情况的示例:

1.单整数或字符串:

--input 12345
--input “my-string"

2.复杂对象:

当参数是您示例中的结构时,您需要传递有效的JSON编码对象,如下例所示:

-input“{ SomeString”:“my-string”,“some integer”:12345 }”

3. 多个参数:

如果您有一个需要多个参数的工作流,您需要传递一个空格分隔的字符串,其中字符串的每个部分都对应于工作流所需的特定参数。下面的示例显示了如何连续传递一个整数、一个字符串和一个结构参数:

--input '12345 "second param" {"SomeString":"my-string","SomeInteger":12345}'

与此相关,在工作流中接受输入参数的推荐方式是使用单个struct参数。尽管JSON中的语法糖有点污染了CLI命令,尤其是当您需要传递的只是一个参数时,当您开始向工作流传递更多参数时,这是值得的。

蒋星驰
2023-03-14

对于多个参数,使用数组:

--input '["a","b",123]'
 类似资料:
  • 问题内容: 我已经成功地建立了一个快速测试,以创建一个“类似REST的”服务,该服务返回序列化为JSON的对象,并且这非常容易且快速(基于本文)。 但是,虽然返回桃子一样的JSON格式的对象很容易,但我还没有看到任何处理非原语输入参数的示例。如何传递复杂的对象作为参数?我正在使用Apache CXF,但也欢迎使用其他框架(例如杰克逊)的示例:) 客户端可能类似于构建javascript对象,将其传

  • 问题内容: 我有一个对象,其中包含多个通用键值道具,我想将它们传递给一些jsx。像这样: 我希望这可以作为传递单个道具的功能: 这可能吗? 问题答案: 这可能吗? 是的,为什么您认为不可能,但是发送方式不正确。 的含义是: 因此,如果您默认不指定任何值,它将采用。要传递对象,您需要这样编写: 更新: 如果您有一个对象,并且希望将所有属性作为单独的属性传递,则将其编写为:

  • 问题内容: 我试图将对象从我的应用程序委托传递到另一个类的通知接收器。 我想传递整数。现在我有: 在接收器中: 在执行通知的类中: 但是我想将对象传递给另一个类。 问题答案: 您必须使用“ userInfo”变体,并传递一个包含messageTotal整数的NSDictionary对象: 在接收端,您可以按以下方式访问userInfo字典:

  • 问题内容: 我在JavaScript中有以下复杂对象,其中包含过滤器选项 我想传递给ASP.NET MVC4 WebApi控制器GET 使用jQuery ajax调用 ASP.NET控制器方法中的“过滤器”对象为“空”。如果我将其更改为POST,则过滤器对象将正确传递。有没有办法将复杂的对象传递给GET? 我不想将参数分离到URL,因为会有许多参数使效率低下,很难拥有可选参数,并且即使添加了新参数

  • 我在JavaScript中有以下包含过滤器选项的复杂对象 我想传递给 ASP.NET MVC4 WebApi 控制器 GET 使用jQuery ajax调用 ASP。NET控制器方法为“null”。如果我将其更改为POST,则过滤器对象将正确传递。有没有方法将复杂对象传递给GET? 我不想分离出URL的参数,因为会有很多参数,这会使它效率低下,很难有可选的参数,这样即使添加了新参数,方法签名也保持

  • 我正在开发将复杂数据从window.open()传递到MVC Controller action方法参数的javascript功能。我能够通过构建查询字符串并从控制器中的[FromQuery]检索它们来实现它。 但我的问题是,我想将数据作为模型对象传递。在窗户里可以吗。打开() 下面是我的javascript代码 如您所见,我可以在URL中传递数据,但它似乎是公开的。那么,有没有办法传入var u