获取案例活动的TaskID

时间:2016-07-26 18:46:05

标签: acumatica

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

2 个答案:

答案 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值。