GUID 函数

适用于: 画布应用 Copilot Studio Desktop 流 模型驱动应用 Power Platform CLI Dataverse 函数

将 GUID (全局唯一 GUID 标识符)字符串转换为值,或创建新 GUID 值。

描述

使用该GUID函数将具有十GUIDGUID六进制表示形式的字符串转换为可以传递给数据库的值。 Microsoft Dataverse 和 SQL Server 等数据库系统使用 GUID 值作为键。

该字符串可以包含大写或小写字母,但必须采用以下格式之一的 32 个十六进制数字:

  • “123e4567-e89b-12d3-a456-426655440000”( 标准位置中的连字符)
  • “123e4567e89b12d3a456426655440000”( 无连字符)

如果未指定参数,该函数将 GUID创建新的参数。

若要将 GUID 值转换为字符串,请将其用于字符串上下文。 该值 GUID 转换为带有连字符和小写字母的十六进制字符串。

生成新 GUID函数时,该函数使用伪随机数创建版本 4 IETF RFC 4122GUID。 将字符串转换为 a GUID时,该函数通过接受 32 个十六进制数字的任何字符串支持任何 GUID 版本。

易失函数

GUID 在不使用参数的情况下使用可变函数。 每次计算该函数时会返回不同的值。

在数据流公式中使用可变函数时,仅当重新计算公式时,它才会返回不同的值。 如果公式中没有其他任何更改,则在应用处于打开状态时会保留相同的值。

例如,如果将标签控件的 Text 属性设置为 GUID(),则应用处于活动状态时它不会更改。 仅当你关闭并重新打开应用时,才会获得其他值。

如果函数是其他更改的公式的一部分,则会重新计算该函数。 例如,如果将 Label 控件的 Text 属性设置为此公式,则用户每次更改文本输入控件的值时都会生成一个GUID:

TextInput1.Text & “ ” & GUID()

行为公式中使用GUID时,每次计算公式时都会对其进行计算。 有关详细信息,请参阅本主题后面部分的示例。

语法

GUID( [ GUIDString ] )

  • GUIDString –可选。 具有十六进制表示形式的 GUID文本字符串。 如果未提供字符串,该函数将创建一个新 GUID函数。

GUID动态

  • 动态 – 必需。 表示 GUID. 的动态值 可接受的值取决于非类型化提供程序。 对于 JSON,动态值应 GUID 表示为 JSON 字符串。

示例

基本用法

基于十六进制字符串表示形式返回 GUID 值:

GUID( "0f8fad5b-d9cb-469f-a165-70867728950e" )

还可以提供不带 GUID 连字符的字符串。 此公式返回相同的 GUID 值:

GUID( "0f8fad5bd9cb469fa16570867728950e" )

在上下文中使用该值,以将新数据库记录的状态字段设置为完整的值:

Patch( Products, Default( Products ), { Status: GUID( "F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4" ) } )

你可能不想向用户显示 GUID,但 GUID 可以帮助你调试应用。 若要在上一示例中创建的记录中显示“状态”字段的值,请将 Label 控件的 Text 属性设置为以下公式:

First( Products ).Status

标签控件显示 f9168c5e-ceb2-4faa-b6bf-329bf39fa1e4

创建 GUID 的表

  1. Button 控件的 OnSelect 属性设置为以下公式:

    ClearCollect( NewGUIDs, ForAll( Sequence(5), GUID() ) )
    

    此公式创建一个单列的表,用于循环五次,从而得到五个 GUID。

  2. 添加 Data table 控件,将其 Items 属性设置为 NewGUIDs,并显示字段。

  3. 按住 Alt 键并选择按钮。

    该数据表显示了 GUID 的列表:

    显示具有五个不同 GUID 值的数据表的屏幕。

  4. 再次选择该按钮以显示新的 GUID 列表:

    显示包含五个不同 GUID 值的新集的数据表的同一屏幕。

若要生成单个 GUID 而不是表,请使用以下公式:

Set( NewGUID, GUID() )