我使用Acumatica Web API获取案例活动的TaskID(屏幕ID - SP203010)。现在升级到6.0版后,我没有得到它。我也试过了不同的属性,但似乎没有什么能让我得到那个TaskID。
我将这些活动存储到我的数据库中,从Acumatica合作伙伴门户中删除并避免导入重复活动,我将其与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。
答案 0 :(得分:2)
在Acumatica 6.0表格中,EPActivity分为CRActivity,SMEmail和PMTimeActivity。原始表已重命名为Obsolete_EPActivity。
现在,NoteID是所有表的关键字段。 SMEmail和PMTimeActivity包含RefNoteID字段 - 来自CRActivity的外键。
您可以在表中找到值对TaskID和NoteID - Obsolete_EPActivity
答案 1 :(得分:1)
@Krunal,正如Ken所说,在升级到6.0值对后,TaskID和NoteID仅在Obsolete_EPActivity表中可用。应该使用Obsolete_EPActivity表将过时的TaskID整数值替换为实际的NoteID GUID。
无法通过Web服务访问Obsolete_EPActivity表。升级到6.0后,Acumatica仅在CRActivity表中插入新活动。
为避免重复活动,您必须在数据库中存储实际的NoteID GUID,而不是过时的TaskID整数值,并在导入记录时比较GUID。
对于以前导入的活动,您还必须将TaskID值替换为实际的NoteID GUID。根据存储在数据库中的CaseID,Subject和CreatedDateTime字段值搜索CRActivity记录,您应找到适当的记录并使用其NoteID替换旧的TaskID值。