如何向 Acumatica PXDataFieldParam 对象声明和添加参数?

How can I declare and add parameters to an Acumatica PXDataFieldParam object?

我正在使用 Acumatica PXDatabase.Update 方法更新 Acumatica 实例中的记录。我的代码如下,更新两个字段并使用另外两个作为限制器:

PXDatabase.Update<xTACProjectTask>(new PXDataFieldAssign<xTACProjectTask.dueDate>(tmpRow.Cells[indexMap["Due Date"]].Value.ToString())
                                                  , new PXDataFieldAssign<xTACProjectTask.startDate>(tmpRow.Cells[indexMap["Start Date"]].Value.ToString())
                                                  , new PXDataFieldRestrict<xTACProjectTask.projectID>(tmpRow.Cells[indexMap["TAC Project ID"]].Value.ToString())
                                                  , new PXDataFieldRestrict<xTACProjectTask.taskCD>(tmpRow.Cells[indexMap["TAC Task ID"]].Value.ToString()));

PXDatabase.Update 命令使用包含 PXDataFieldAssign 和 PXDataFieldRestrict 参数的 PXDataFieldParam 数组,上面的示例在 PXDatabase.Update 方法中创建了这些参数的新实例 - 但我想找到一个方法首先声明 PXDataFieldParam 对象,然后有条件地将 PXDataFieldAssign 对象添加到其中,最后将该 PXDataFieldParam 数组传递给方法。

我想像这样声明它,但我似乎找不到正确的方法:

PXDataFieldParam[] pfp = **????**;
PXDataFieldParam pf;

pf = new PXDataFieldAssign<xTACProjectTask.dueDate>(tmpRow.Cells[indexMap["Due Date"]].Value.ToString());
pfp.Append(pf);
pf = new PXDataFieldAssign<xTACProjectTask.startDate>(tmpRow.Cells[indexMap["Start Date"]].Value.ToString());
pfp.Append(pf);
pf = new PXDataFieldRestrict<xTACProjectTask.projectID>(tmpRow.Cells[indexMap["TAC Project ID"]].Value.ToString());
pfp.Append(pf);
pf = new PXDataFieldRestrict<xTACProjectTask.taskCD>(tmpRow.Cells[indexMap["TAC Task ID"]].Value.ToString());
pfp.Append(pf);

PXDatabase.Update<xTACProjectTask>(pfp);

有什么办法吗?

为什么不定义一个 List,然后在调用 PXDatabase.Update 方法时使用 .ToArray() 方法,而不是定义一个 PXDataFieldParam 数组。

PXDataFieldParam pf = null;
List<PXDataFieldParam> dbParams = new List<PXDataFieldParam>();
pf = new PXDataFieldAssign<SOLine.orderDate>(Accessinfo.BusinessDate);
dbParams.Add(pf);

PXDatabase.Update<SOLine>(dbParams.ToArray());