BizTalk C# Functoid 生成动态日期
BizTalk C# Functoid Generate dynamic Dates
我遇到了一个小挑战,我可能需要一些关于如何使这成为可能的输入。
在我的解决方案中,我总是会收到一条特定的消息来触发它。
我想要做的是始终生成一个 StartDate 和一个 EndDate,但是一个 functoid 调用每个方法。
所以,例如,如果文件是在 2016-12-20 收到的
节点名称 EndDate 获取值(“2016-12-20 23:59:59.999999”),然后 StartDate 获取 2016-12-14 00:00:00.000000。
这是倒退一周。
两个不同的 functoid,所以每个都有一个方法,我们正在使用服务器时间,所以我们没有收到任何日期等。
感觉我需要做这样的事情
public string FormatDate(string outputFormat)
{
System.DateTime date;
if (System.DateTime.TryParseExact( System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.AssumeLocal, out date))
{
return date.ToString(outputFormat);
}
return "";
}
但是我无法理解这个
由于您从系统时间生成日期,因此您不必尝试解析任何内容。您可以只计算静态 DateTime.Today
属性 的值,其中包含当地时间午夜的今天日期。
Functoid 1:
DateTime startDate = DateTime.Today.AddDays(-6);
public string GetStartDate(string outputFormat)
{
return startDate.ToString(outputFormat);
}
Functoid 2:
public string GetEndDate(string outputFormat)
{
return startDate.AddDays(7).AddTicks(-1).ToString(outputFormat);
}
通过在两个函数中使用相同的 startDate 变量,您可以确保它不会在极不可能的情况下跳过一天,代码恰好在午夜运行。
我遇到了一个小挑战,我可能需要一些关于如何使这成为可能的输入。
在我的解决方案中,我总是会收到一条特定的消息来触发它。 我想要做的是始终生成一个 StartDate 和一个 EndDate,但是一个 functoid 调用每个方法。
所以,例如,如果文件是在 2016-12-20 收到的 节点名称 EndDate 获取值(“2016-12-20 23:59:59.999999”),然后 StartDate 获取 2016-12-14 00:00:00.000000。 这是倒退一周。
两个不同的 functoid,所以每个都有一个方法,我们正在使用服务器时间,所以我们没有收到任何日期等。 感觉我需要做这样的事情
public string FormatDate(string outputFormat)
{
System.DateTime date;
if (System.DateTime.TryParseExact( System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.AssumeLocal, out date))
{
return date.ToString(outputFormat);
}
return "";
}
但是我无法理解这个
由于您从系统时间生成日期,因此您不必尝试解析任何内容。您可以只计算静态 DateTime.Today
属性 的值,其中包含当地时间午夜的今天日期。
Functoid 1:
DateTime startDate = DateTime.Today.AddDays(-6);
public string GetStartDate(string outputFormat)
{
return startDate.ToString(outputFormat);
}
Functoid 2:
public string GetEndDate(string outputFormat)
{
return startDate.AddDays(7).AddTicks(-1).ToString(outputFormat);
}
通过在两个函数中使用相同的 startDate 变量,您可以确保它不会在极不可能的情况下跳过一天,代码恰好在午夜运行。