Acumatica "Related Entity Description" 任务字段不计算

Acumatica "Related Entity Description" task field doesn't calculate

我有一个奇怪的问题。我正在尝试添加与潜在客户相关的任务。我编写了以下代码,它运行良好,并出现在活动的领导之下。但是,当我浏览任务时,"Related Entity Description" 字段是空白的。我查看了它背后的代码,似乎相关的实体描述应该从 Acumatica 6 中的 RefNoteId 自动计算。如果我在 lead/activity 下手动创建一个项目,那么所有其他 lead/activities 更新 "related entity description" 正确。查看源代码,该字段似乎是 myTask.Source 这是一个字符串值,我不确定应该将其设置为什么,因为它应该使用 noteid 自动计算。我查看了 SQL 数据库,手动创建的任务和我自动创建的任务(包括 NoteID)中的所有字段都是正确的,因此我似乎缺少某种 "update" 命令。我缺少什么才能让 "Related Entity Description" 正确计算?谢谢

private void followuphelper(int daysToFollowUp)
        {
            #region Event Handlers
            Contact curLead = Base.LeadCurrent.SelectSingle();
            CRTaskMaint graph = CRTaskMaint.CreateInstance<CRTaskMaint>();

            CRActivity myTask = new CRActivity();
            myTask.Subject = String.Format("FollowUp Lead");
            myTask.ClassID = 0;
            DateTime dueDate = DateTime.Now;
            myTask.StartDate = dueDate;
            myTask.EndDate = dueDate.AddDays(daysToFollowUp); //2 weeks

            myTask.RefNoteID = curLead.NoteID; 
            myTask.ContactID = curLead.ContactID; 

            CRActivity task = (CRActivity)graph.Tasks.Insert(myTask);

            Base.Actions.PressSave();
            graph.Actions.PressSave();
}

我刚刚验证了下面的代码,它确实显示了相关实体:

public class LeadMaintPXExt : PXGraphExtension<LeadMaint>
{
    public PXAction<Contact> FollowUpTask;
    [PXUIField(DisplayName = "FollowUp Task")]
    [PXButton()]
    private void followUpTask()
    {
        CRTaskMaint graph = PXGraph.CreateInstance<CRTaskMaint>();

        CRActivity myTask = new CRActivity();
        myTask.Subject = String.Format("FollowUp Lead Test");
        myTask.ClassID = 0;
        DateTime dueDate = DateTime.Now;
        myTask.StartDate = dueDate;
        myTask.EndDate = dueDate.AddDays(10);

        myTask.RefNoteID = Base.Lead.Current.NoteID;
        myTask.ContactID = Base.Lead.Current.ContactID;

        CRActivity task = (CRActivity)graph.Tasks.Insert(myTask);

        graph.Actions.PressSave();
    }
}

相关实体描述正在 Note table 中寻找匹配的 NoteID 记录。该记录会在需要时按需创建。对于 New Lead,如果您希望继续上述代码,则需要通过调用 PXNoteAttribute 的 GetNoteID 请求创建注释并保存记录。

示例:

PXNoteAttribute.GetNoteID<Contact.noteID>(Base.Lead.Cache, Base.Lead.Current);
Base.Actions.PressSave();

开箱即用的 Activity 操作(添加任务、添加事件等)在内部处理。如果您使用以下方法,所有初始化都在内部完成。

public class LeadMaintPXExt : PXGraphExtension<LeadMaint>
{
    public PXAction<Contact> FollowUpTask;
    [PXUIField(DisplayName = "FollowUp Task")]
    [PXButton()]
    private void followUpTask()
    {
        try
        {
            //out-of-box Activities -> "New Task" Action
            Base.Actions["NewTask"].Press();
        }
        catch (Exception ex)
        {
            if (ex is PXRedirectRequiredException)
            {
                CRTaskMaint graph = (ex as PXRedirectRequiredException).Graph as CRTaskMaint;
                if (graph != null)
                {
                    CRActivity myTask = graph.Tasks.Current;
                    myTask.Subject = String.Format("FollowUp Lead Test");
                    myTask.ClassID = 0;
                    DateTime dueDate = DateTime.Now;
                    myTask.StartDate = dueDate;
                    myTask.EndDate = dueDate.AddDays(10);

                    CRActivity task = graph.Tasks.Update(myTask);

                    graph.Actions.PressSave();
                }
            }
        }
    }
}