其他信息

本节提供有关方法、事件、参数和元数据的其他信息。
  • 您可以设置要部署配方的特定目标。目标的结构必须与在配方模式中保存的结构相同。
  • 您可以通过列表视图或使用 NetLogic 来使用配方。
  • 配方参数是在配方模式编辑器中选择的条目或数据条目。列表视图中表示的配方参数始终为只读。
  • 对于某些任务,配方引入了大量插入/更新/删除操作。这可能会增加完成操作所需的时间,尤其是对于远程数据库和高延迟场景。为了防止数据丢失,支持最小化事务管理。事务管理不可自定义。
    重要提示: 为了防止在使用数据记录器和事件记录器发生数据丢失,强烈建议不要使用用于配方的同一个数据库。
  • 您可以在同一个项目中同时使用旧版配方模式和新配方模式,但可能需要手动调整。
  • 查询
    EmbeddedDatabase
    的示例:
    SELECT R.*, M.* FROM Recipes AS R LEFT JOIN "RecipeMetadata_RecipeSchema1" AS M ON R.Id = M.RecipeId WHERE R.RecipeSchemaName = 'RecipeSchema1' ORDER BY R.Name

方法

下表介绍方法及相关参数:
可通过 IDE 和 C# API 使用的方法
方法
输入参数
输出参数
CreateRecipe
  • 配方ID [配方ID]
  • 结果 [创建配方结果代码]
    • 成功:配方已成功创建
    • 缺少配方ID:调用该方法时使用了空配方ID
    • RecipeAlreadyExist:已存在同名且版本相同的配方
    • 存储错误:访问存储区时出错
    • 错误:发生错误
DuplicateRecipe
  • 配方ID [配方ID]
  • NewRecipeId [配方ID]
  • 结果 [复制配方结果代码]
    • 成功:配方已成功复制
    • 通用错误:配方复制期间发生常规错误
    • 存储错误:访问存储时出错(例如,数据库错误)
    • 源配方名称意外为空:提供的源配方名称为空或 null
    • 目标配方名称意外为空:提供的目标配方名称为空或 null
    • 源配方不存在:在存储区中未找到源配方
    • 目标配方已存在:具有目标名称的配方已存在
    • 未找到目标:未找到用于配方复制的目标节点
RenameRecipe
  • 配方ID [配方ID]
  • NewName [String]
  • 结果 [重命名配方结果代码]
    • 成功:配方已成功重命名
    • 通用错误:配方重命名期间发生常规错误
    • 存储错误:访问存储时出错(例如,数据库错误)
    • 配方名称意外为空:提供的配方名称为空或 null
    • 源配方不存在:在存储区中未找到源配方
    • 目标配方已存在:具有目标名称的配方已存在
DeleteRecipe
  • 配方ID [配方ID]
  • 结果 [删除配方结果代码]
    • 成功:配方已成功删除
    • 通用错误:删除配方期间发生常规错误
    • 存储错误:访问存储时出错(例如,数据库错误)
    • 配方名称意外为空:提供的配方名称为空或 null
    • 配方不存在:在存储区中未找到指定配方
重构
无。这是唯一的异步方法。操作完成后,将调度一个事件(重构已完成)。
GetDataItems
  • 配方ID [配方ID]
  • 结果 [Getdataitems结果代码]
    • 成功:已成功检索到数据项
    • 未找到配方:在存储区中未找到指定的配方
    • 存储错误:访问存储时出错(例如,数据库错误)
    • 通用错误:检索数据项时发生常规错误
SetRecipeDataItemValue
  • 配方ID [配方ID]
  • ItemRelativeBrowsePath [String]
  • DataItemRelativeBrowsePath [String]
  • ElementAccess [ElementAccess]
  • 值 [BaseDataType]
  • 结果 [设置配方数据条目值结果代码]
    • 成功:配方数据项值已成功设置
    • 通用错误:设置数据条目值时发生常规错误
    • 存储错误:访问存储时出错(例如,数据库错误)
    • 未找到数据条目:在配方中未找到指定的数据项
    • 配方名称意外为空:提供的配方名称为空或 null
    • 未找到配方:在存储区中未找到指定的配方
SetRecipeMetadataValue
  • 配方ID [配方ID]
  • MetadataName [String]
  • 值 [BaseDataType]
  • 结果 [设置配方元数据值结果代码]
    • 成功:配方元数据值已成功设置
    • 通用错误:设置元数据值时发生常规错误
    • 存储错误:访问存储时出错(例如,数据库错误)
    • 配方名称意外为空:提供的配方名称为空或 null
    • 未找到配方:在存储区中未找到指定的配方
    • 未找到元数据:在配方中未找到指定的元数据字段
TransferFromEditModelToStore
  • RequesterNodeId [NodeId]
  • 配方ID [配方ID]
  • 结果 [从编辑模型传输到存储结果代码]
    • 成功配方已创建:配方已成功创建并从编辑模型传输到存储区
    • 成功配方已更新:配方已成功更新并从编辑模型传输到存储区
    • 通用错误:从编辑模型传输到存储区期间发生常规错误
    • 存储错误:访问存储时出错(例如,数据库错误)
    • 未找到请求者节点:未找到请求者节点
    • 配方名称意外为空:提供的配方名称为空或 null
    • 未找到目标:未找到用于传输的目标节点
    • EditModelNodeNotFound:未找到编辑模型节点
TransferFromEditModelToTarget
  • RequesterNodeId [NodeId]
  • TargetNodeId [NodeId]
  • 错误策略 [错误策略Datatype]
  • 结果 [从编辑模型传输到目标结果代码]
    • 成功:配方已成功从编辑模型传输到目标
    • 通用错误:从编辑模型传输到目标期间发生常规错误
    • 存储错误:访问存储时出错(例如,数据库错误)
    • 未找到请求者节点:未找到请求者节点
    • 未找到目标:未找到用于传输的目标节点
    • EditModelNodeNotFound:未找到编辑模型节点
    • 数据不匹配:编辑模型数据与目标结构不匹配
TransferFromStoreToEditModel
  • RequesterNodeId [NodeId]
  • 配方ID [配方ID]
  • 结果 [从编辑模型传输到目标结果代码]
    • 成功:配方已成功从编辑模型传输到目标
    • 通用错误:从编辑模型传输到目标期间发生常规错误
    • 存储错误:访问存储时出错(例如,数据库错误)
    • 未找到请求者节点:未找到请求者节点
    • 未找到目标:未找到用于传输的目标节点
    • EditModelNodeNotFound:未找到编辑模型节点
    • 数据不匹配:编辑模型数据与目标结构不匹配
TransferFromStoreToTarget
  • 配方ID [配方ID]
  • TargetNodeId [NodeId]
  • 错误策略 [错误策略Datatype]
  • 结果 [TransferFromStoreToTargetResultCode]
    • 成功:配方已成功从存储区转移到目标
    • 通用错误:从存储区传输到目标期间发生常规错误
    • 存储错误:访问存储时出错(例如,数据库错误)
    • 配方名称意外为空:提供的配方名称为空或 null
    • 未找到配方:在存储区中未找到指定的配方
    • 未找到目标:未找到用于传输的目标节点
    • 数据不匹配:配方数据与目标结构不匹配
TransferFromTargetToEditModel
  • RequesterNodeId [NodeId]
  • TargetNodeId [NodeId]
  • 错误策略 [错误策略Datatype]
  • 结果 [从目标传输到编辑模型结果代码]
    • 成功:配方已成功从目标传输到编辑模型
    • 通用错误:从目标传输到编辑模型期间发生常规错误
    • 存储错误:访问存储时出错(例如,数据库错误)
    • 未找到请求者节点:未找到请求者节点
    • 未找到目标:未找到用于传输的目标节点
    • EditModelNodeNotFound:未找到编辑模型节点
    • 数据不匹配:目标数据与编辑模型结构不匹配
TransferFromTargetToStore
  • 配方ID [配方ID]
  • TargetNodeId [NodeId]
  • Overwrite [Bool]
  • 错误策略 [错误策略Datatype]
  • 结果 [TransferFromTargetToStoreResultCode]
    • 成功配方已创建:配方已成功创建并从目标传输到存储区
    • 成功配方已更新:配方已成功更新并从目标传输到存储区
    • 通用错误:从目标传输到存储区期间发生常规错误
    • 存储错误:访问存储时出错(例如,数据库错误)
    • 配方名称意外为空:提供的配方名称为空或 null
    • 配方已存在:存储区中已存在同名的配方
    • 未找到目标:未找到用于传输的目标节点
    • 数据不匹配:目标数据与存储区结构不匹配
仅可通过 C# API 使用的方法
方法
输入参数
输出参数
GetRecipes
无输入参数
  • 结果 [Getrecipes结果](数组)
    • 成功:已成功检索到配方
    • 存储错误:访问存储区时出错
    • 通用错误:检索配方时发生常规错误
GetRecipeMetadataValue
  • 配方ID [配方ID]
  • MetadataName [String]
  • 结果 [获取配方元数据值结果]
    • 成功:已成功检索到配方元数据值
    • 通用错误:检索元数据值时发生常规错误
    • 存储错误:访问存储区时出错
    • 配方名称意外为空:提供的配方名称为空或 null
    • 未找到配方:在存储区中未找到指定的配方
    • 未找到元数据:在配方中未找到指定的元数据字段
GetRecipeMetadataValues
配方ID [配方ID]
  • 结果 [获取配方元数据值结果]
    • 成功:已成功检索到配方元数据值
    • 通用错误:检索元数据值时发生常规错误
    • 存储错误:访问存储区时出错
    • 配方名称意外为空:提供的配方名称为空或 null
    • 未找到配方:在存储区中未找到指定的配方
GetRecipeDataItemValue
  • 配方ID [配方ID]
  • ItemRelativeBrowsePath [String](数组)
  • DataItemRelativeBrowsePath [String](数组)
  • ElementAccess [ElementAccess]
  • 结果 [获取配方数据条目值结果]
    • 成功:已成功检索到配方数据项的值
    • 通用错误:检索数据项值时发生常规错误
    • 存储错误:访问存储区时出错
    • 未找到数据条目:在配方中未找到指定的数据项
    • 配方名称意外为空:提供的配方名称为空或 null
    • 未找到配方:在存储区中未找到指定的配方
CreateEditModel
  • ParentNodeId [NodeId]
  • RequesterNodeId [NodeId]
  • TargetNodeId [NodeId]
  • 配方ID [配方ID]
  • 结果 [创建编辑模型结果代码]
    • 成功:编辑模型已成功创建
    • 通用错误:创建编辑模型时发生常规错误
    • 存储错误:访问存储区时出错
    • 未找到父节点:未找到编辑模型的父节点
    • 未找到请求者节点:未找到请求者节点
TransferFromStores
配方ID [配方ID]
  • 结果 [从存储传输结果代码]
    • 成功:已成功从存储区传输配方
    • 通用错误:从存储区传输过程中发生常规错误
    • 存储错误:访问存储区时出错
    • 未找到配方:在存储区中未找到指定的配方
    • 未找到目标:未找到用于传输的目标节点
TransferToStore
  • 配方ID [配方ID]
  • 结果 [传输到存储结果代码]
    • 成功:配方已成功传输到存储区
    • 通用错误:传输到存储区过程中发生常规错误
    • 存储错误:访问存储区时出错
传输到目标
  • TargetNodeId [NodeId]
  • ErrorPolicy [ErrorPolicy]
  • 结果 [传输到目标结果代码]
    • 成功:配方已成功传输到目标
    • 通用错误:传输到目标过程中发生常规错误
    • 存储错误:访问存储区时出错
    • 未找到目标:未找到用于传输的目标节点
    • 数据不匹配:配方数据与目标结构不匹配
TransferFromTarget
  • TargetNodeId [NodeId]
  • ErrorPolicy [ErrorPolicy]
  • 结果 [从目标传输结果代码]
    • 成功:已成功从目标传输配方
    • 通用错误:从目标传输期间发生常规错误
    • 存储错误:访问存储区时出错
    • 未找到目标:未找到用于传输的目标节点
    • 数据不匹配:目标数据与配方结构不匹配
SetDataItemValue
  • ItemId [NodeId]
  • DataItemRelativeBrowsePath [String](数组)
  • ElementAccess [ElementAccess]
  • DataTypeId [NodeId]
  • 值 [BaseDataType]
  • 结果 [设置数据条目值结果代码]
    • 成功:数据条目值已成功设置
    • 通用错误:设置数据条目值时发生常规错误
    • 存储错误:访问存储区时出错
    • 未找到数据条目:未找到指定的数据项。

事件

配方模式包括以下事件:
重构已完成
在重构方法完成时触发。
配方应用程序事件
当 TransferFromStoreToTarget 或 TransferEditModelToTarget 完成时触发。

参数和元数据

您可以创建、编辑和存储具有无限参数和元数据的配方模式。您可以定义和存储自定义元数据,例如作者或创建日期或关联的图片,从而增强配方的可追溯性和上下文理解。

数据库表

配方模式模型结构可以存储在数据库中,用于保留有关变量是单独存在还是作为对象的一部分的信息。配方参数按行展示,具体组织结构如下:
  • 配方:
    • Id(主键)[UInt32]
    • 名称 [String]
    • 版本 [String]
    • RecipeSchemaName [String]
    • RecipeSchemaNamespaceUri [String]
    • RecipeSchemaTimestamp [日期时间]
    • CreatedAt [日期时间]
    • ModifiedAt [日期时间]
  • RecipeItems:
    • Id(主键)[UInt32]
    • 配方ID [UInt32]
    • RelativeBrowsePath [String]
    • TypeId [String]
  • RecipeDataItems:
    • Id(主键)[UInt32]
    • RecipeItemId [UInt32]
    • RelativeBrowsePath [String]
    • ElementAccess [String]
    • DataTypeId [String]
    • 值 [String]
  • 配方元数据:
    • Metadata1 [UserDefined]
    • Metadata2 [UserDefined]
    • Metadata_n [UserDefined]
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal