You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

重写CopyTask函数添加备注字段时遇'Tasks不存在'编译错误

Acumatica重写CopyTask函数解决'Tasks'上下文不存在错误

问题描述

为给任务添加备注字段,重写CopyTask函数时编写了如下代码:

public delegate PMTask CopyTaskDelegate(PMTask task, Int32 ProjectID, DefaultFromTemplateSettings settings);
[PXOverride]
public PMTask CopyTask(PMTask task, Int32 ProjectID, DefaultFromTemplateSettings settings, CopyTaskDelegate baseMethod)
{
  PMTask dst = Tasks.Insert(new PMTask { TaskCD = task.TaskCD, ProjectID = ProjectID });
  dst.RateTableID = task.RateTableID ?? Project.Current.RateTableID;
  ...
}

运行时触发编译错误:

\App_RuntimeCode\ProjectEntry.cs(80): error CS0103: The name 'Tasks' does not exist in the current context

解决方案

在Acumatica的ProjectEntry图中,任务对应的数据视图标准名称是**Task(单数形式)**,而非代码中写的Tasks(复数)。只需将代码中的Tasks替换为Task即可解决该错误。

修改后的完整代码示例(含备注字段复制逻辑):

public delegate PMTask CopyTaskDelegate(PMTask task, Int32 ProjectID, DefaultFromTemplateSettings settings);
[PXOverride]
public PMTask CopyTask(PMTask task, Int32 ProjectID, DefaultFromTemplateSettings settings, CopyTaskDelegate baseMethod)
{
  PMTask dst = Task.Insert(new PMTask { TaskCD = task.TaskCD, ProjectID = ProjectID });
  // 复制费率表ID
  dst.RateTableID = task.RateTableID ?? Project.Current.RateTableID;
  // 复制备注字段(根据实际字段名调整,示例用NoteText)
  dst.NoteText = task.NoteText;
  // 其他字段复制逻辑...
  
  return dst;
}

额外注意事项:

  • 重写函数必须返回创建的任务对象dst,否则会导致数据不完整
  • 备注字段的具体名称需根据你使用的Acumatica版本确认,部分版本可能使用NoteID关联备注记录,需对应处理

内容的提问来源于stack exchange,提问作者Xavier LARTEM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 17:11:07