获取案例活动的TaskID



我使用Acumatica Web API获取案例活动的任务ID(屏幕ID-SP203010)。现在,在将它升级到6.0版本之后,我没有得到它。我也尝试了不同的可用属性,但似乎没有什么能让我获得TaskID。

我将这些活动存储到我的数据库中,从Acumatica Partner Portal提取,为了避免导入重复的活动,我将其与TaskID进行了比较。

下面是我用来获取TaskID 的代码片段

SP203010WS.Screen context = new SP203010WS.Screen();
context.CookieContainer = new System.Net.CookieContainer();
context.AllowAutoRedirect = true;
context.EnableDecompression = true;
context.Timeout = 1000000;
context.Url = "https://sso.acumatica.com/Soap/SP203010.asmx";
PartnerPortalCreds loginCreds = GetCreds();
string username = loginCreds.PARTPRTUSE;
string password = loginCreds.PARTPRTPAS;
SP203010WS.LoginResult result = context.Login(username, password);
SP203010WS.Content content = context.GetSchema();
context.Clear();
string[][] export = context.Export
(
	new SP203010WS.Command[]
{
	new SP203010WS.Value
	{
		Value = currentAcumaticaCaseNo,
		LinkedCommand = content.Case.CaseID
	},
	content.Activities.Type,
	content.Activities.Summary,
	new SP203010WS.Field { FieldName="Body", ObjectName="Activities"},
	content.Activities.StartDate,
	content.Activities.CreatedBy,
	new SP203010WS.Field { FieldName="TaskID", ObjectName="Activities"},
},
	null,
	0, true, true
);

让我知道它在新版本中是否已被移动或弃用。我应该使用什么来代替TaskID,或者在哪里可以找到该TaskID。

在Acumatica 6.0表中,EPActivity在CRActivity、SMEmail和PMTimeActivity上进行了拆分。原始表已重命名为Obsolete_EActivity。

现在,NoteID是所有表上的关键字段。SMEmail和PMTimeActivity包含RefNoteID字段-CRActivity的外键。

您可以在表-Obsolete_EPActivity 中找到值对TaskID和NoteID

正如Ken所提到的,

@Krunal在升级到6.0后,值对TaskID和NoteID仅在Obsolete_EActivity表中可用。应该使用Obsolete_EActivity表将过时的TaskID整数值替换为实际的NoteID GUID。

无法通过Web服务访问Obsolete_EActivity表。升级到6.0后,Acumatica仅在CRActivity表中插入新的Activities。

为了避免重复的活动,您必须在数据库中存储实际的NoteID GUID,而不是过时的TaskID整数值,并在导入记录时比较GUID。

对于以前导入的活动,您还必须将TaskID值替换为实际的NoteID GUID。根据数据库中存储的CaseID、Subject和CreatedDateTime字段值搜索CRActivity记录,您应该找到合适的记录,并使用其NoteID替换旧的TaskID值。

最新更新