我使用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
@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值。