mirror of
https://gitee.com/langsisi_admin/serein-flow
synced 2026-04-17 13:26:34 +08:00
修复了无选定目标节点的FlowCall节点时,会抛出异常的情况
This commit is contained in:
@@ -35,8 +35,8 @@ namespace Serein.Library
|
|||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// <para>是否为显式参数(固定值/表达式)</para>
|
/// <para>是否为显式参数(固定值/表达式)</para>
|
||||||
/// <para>如果为 true ,则使用UI输入的文本值作为入参数据(过程中会尽可能转为类型需要的数据)。</para>
|
/// <para>如果为 true ,则使用UI输入的文本值作为入参数据。</para>
|
||||||
/// <para>如果为 false ,则根据 ArgDataSourceType 调用相应节点的GetFlowData()方法,获取返回的数据作为入参数据。</para>
|
/// <para>如果为 false ,则在当前流程上下文中,根据 ArgDataSourceNodeGuid 查找到对应节点,并根据 ArgDataSourceNodeGuid 判断如何获取其返回的数据,以此作为入参数据。</para>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[PropertyInfo(IsNotification = true)]
|
[PropertyInfo(IsNotification = true)]
|
||||||
private bool _isExplicitData ;
|
private bool _isExplicitData ;
|
||||||
@@ -50,6 +50,7 @@ namespace Serein.Library
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 方法入参若无相关转换器特性标注,则无需关注该变量。该变量用于需要用到枚举BinValue转换器时,指示相应的入参变量需要转为的类型。
|
/// 方法入参若无相关转换器特性标注,则无需关注该变量。该变量用于需要用到枚举BinValue转换器时,指示相应的入参变量需要转为的类型。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[Obsolete("转换器特性将在下一个大版本中移除")]
|
||||||
[PropertyInfo]
|
[PropertyInfo]
|
||||||
private Type _explicitType ;
|
private Type _explicitType ;
|
||||||
|
|
||||||
|
|||||||
@@ -172,6 +172,11 @@ namespace Serein.NodeFlow.Model.Operation
|
|||||||
#region 类型检查
|
#region 类型检查
|
||||||
bool checkTypeState = true;
|
bool checkTypeState = true;
|
||||||
List<ParameterDetails> toPds = new List<ParameterDetails>();
|
List<ParameterDetails> toPds = new List<ParameterDetails>();
|
||||||
|
if(ToNode.MethodDetails.ParameterDetailss is null)
|
||||||
|
{
|
||||||
|
SereinEnv.WriteLine(InfoType.WARN, "目标节点没有入参参数,无法进行连接");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (ToNode.MethodDetails.ParameterDetailss.Length > 0)
|
if (ToNode.MethodDetails.ParameterDetailss.Length > 0)
|
||||||
{
|
{
|
||||||
var fromNoeReturnType = fromNode.MethodDetails.ReturnType;
|
var fromNoeReturnType = fromNode.MethodDetails.ReturnType;
|
||||||
@@ -460,17 +465,18 @@ namespace Serein.NodeFlow.Model.Operation
|
|||||||
NodeConnectChangeEventArgs.ConnectChangeType.Remove));
|
NodeConnectChangeEventArgs.ConnectChangeType.Remove));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
var toNodePd = ToNode.MethodDetails.ParameterDetailss[ArgIndex];
|
||||||
ToNode.MethodDetails.ParameterDetailss[ArgIndex].ArgDataSourceNodeGuid = FromNode.Guid;
|
toNodePd.ArgDataSourceNodeGuid = FromNode.Guid;
|
||||||
ToNode.MethodDetails.ParameterDetailss[ArgIndex].ArgDataSourceType = ConnectionArgSourceType;
|
toNodePd.ArgDataSourceType = ConnectionArgSourceType;
|
||||||
FromNode.NeedResultNodes[type].Add(ToNode);
|
FromNode.NeedResultNodes[type].Add(ToNode);
|
||||||
|
toNodePd.IsExplicitData = false;
|
||||||
if (ToNode.ControlType == NodeControlType.Script)
|
if (ToNode.ControlType == NodeControlType.Script)
|
||||||
{
|
{
|
||||||
// 脚本节点入参确定/改变来源时,更改对应的入参数据类型
|
// 脚本节点入参确定/改变来源时,更改对应的入参数据类型
|
||||||
ToNode.MethodDetails.ParameterDetailss[ArgIndex].DataType = FromNode.MethodDetails.ReturnType;
|
toNodePd.DataType = FromNode.MethodDetails.ReturnType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
await TriggerEvent(() =>
|
await TriggerEvent(() =>
|
||||||
{
|
{
|
||||||
flowEnvironmentEvent.OnNodeConnectChanged(
|
flowEnvironmentEvent.OnNodeConnectChanged(
|
||||||
|
|||||||
Reference in New Issue
Block a user