记录模式定义中 String 或 Blank 类型的属性

问题描述 投票:0回答:1

在 Copilot Studio 中,我从 HTTP 响应接收一个对象,其中属性之一可以是字符串值或空白 (null)。但是,我无法弄清楚如何在变量类型的架构编辑器中定义该类型。如果我这样定义

kind: Record
properties:
  firstName: String
  lastName: String
  middleName: String   <--- This should be String or Blank (null)

middleName
属性为 null 时,我在 Copilot Studio 中收到错误:
Error Message: The provided value for path ‘Topic.Response.middleName’ cannot be parsed into ‘StringDataType’ type. Provided value: Error Code: ValueParsingError

我可以将类型设置为

Any

middleName: Any

并让它以这种方式工作,但除非必要,否则我不喜欢使用它。 有没有办法将属性类型定义为

String or Blank

我尝试了基于 TypeScript 语法或 JSON 定义的不同变体,例如:

middleName: String | Blank

middleName: String or Blank

middleName: [String, Blank]

middleName: ["String", "Blank"]

middleName: ["string", "null"]

但是所有这些定义都会导致对话框窗口中出现错误,显示

Unknown $kind: "undefined"

是否可以将类型定义为

String or Blank
还是我一直使用
Any
类型?

type-definition microsoft-copilot
1个回答
0
投票

在 Copilot Studio 的架构定义格式中,您需要显式允许属性为 String 或 Null。如果值为 null,则简单地将属性定义为 String 将导致解析错误。相反,您可以为该属性使用 Union 类型,它允许多种可能的类型,例如 String 或 Null。

以下是修复架构定义的方法:

种类:记录 特性: 名: 种类:字符串 姓: 种类:字符串 中间名字: 种类: 联盟 其中之一: - 种类:字符串 - 种类:空

它的作用:

kind:Union 定义 middleName 可以是多种类型之一。 oneOf: [String, Null] 明确告诉模式 middleName 可以是 String 值或 Null。 这确保了如果 HTTP 响应返回 middleName 为 null,则不会导致解析错误,并且如果它是有效字符串,也将被正确处理。

© www.soinside.com 2019 - 2024. All rights reserved.