Acumatica 更改“联系人活动”选项卡上的默认排序

Acumatica 更改“联系人活动”选项卡上的默认排序,acumatica,acumatica-kb,Acumatica,Acumatica Kb,在“联系人”屏幕的“活动”选项卡上,我从外部源提取活动数据并创建相应的Acumatica活动。此活动创建是一个周期性的计划过程,因此不会实时创建活动。因此,外部活动的CreatedDateTime字段并不反映活动发生的实际时间 但是,我需要根据实际发生的时间对这些外部活动进行排序(而不是根据在Acuamtica中创建它们的时间),并按照与现有Acuamtica活动相关的正确顺序显示这些外部活动。但是联系人图的活动视图是按CreatedDateTime排序的,因此这些活动是根据Acuamtica创

在“联系人”屏幕的“活动”选项卡上,我从外部源提取活动数据并创建相应的Acumatica活动。此活动创建是一个周期性的计划过程,因此不会实时创建活动。因此,外部活动的
CreatedDateTime
字段并不反映活动发生的实际时间

但是,我需要根据实际发生的时间对这些外部活动进行排序(而不是根据在Acuamtica中创建它们的时间),并按照与现有Acuamtica活动相关的正确顺序显示这些外部活动。但是联系人图的活动视图是按
CreatedDateTime
排序的,因此这些活动是根据Acuamtica创建时间而不是实际时间显示的

我可以想出两种可能的解决方案,但我看不到实现这两种方案的方法

1。将
CRActivity.CreatedDateTime
字段设置为实际活动时间。
如果我们可以将创建的日期时间设置为活动的实际时间,那么“活动”选项卡的默认排序顺序将按照实际发生的时间顺序正确显示外部活动。然而,这个字段是一个默认的系统字段,我看不到一个好的方法来强制它成为Acumatica对象持久化时间之外的任何内容。有没有办法为
CreatedDateTime
字段指定一个值

2。修改“活动”选项卡的默认排序顺序。 我们可以将新活动的
StartDate
设置为它们发生的实际时间。因此,如果我们可以按开始日期而不是按创建日期时间对活动网格进行排序,这也会达到预期的效果。如果Activities视图是一个简单明了的
PXSelect
,那么我们只需在图扩展中创建一个新的
PXSelect
语句,并使用它作为网格的数据成员。但是,“活动”视图并不简单,
OrderBy
隐藏在
CRActivityListBase
类的
GenerateOriginalCommand
方法中。是否可以通过利用
CRActivityListBase
的所有功能来覆盖此
OrderBy


是否有一种可接受的方法来使用这两种方法中的任何一种,或者是否有一种可替代的方法来显示按实际时间排序的活动?

您可以使用
OrderByNew
替换排序,如下所示

公共类ContactMaintPXExt:pxGrapherExtension
{
公共覆盖无效初始化()
{
Base.Activities.OrderByNew();
}
}

谢谢,@DChhapgar!这正是我需要的。