获取案例活动的任务 ID
Get TaskID for Case Activities
我正在使用 Acumatica Web API 获取案例活动的任务 ID(屏幕 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。
在 Acumatica 6.0 中 table EPActivity 在 CRActivity、SMEmail 和 PMTimeActivity 上拆分。原来的 table 改名为 Obsolete_EPActivity.
现在 NoteID 是所有 table 的关键字段。 SMEmail 和 PMTimeActivity 包含 RefNoteID 字段 - 来自 CRActivity 的外键。
您可以在 table - Obsolete_EPActivity
中找到值对 TaskID 和 NoteID
@Krunal,如 Ken 所述,升级到 6.0 后,TaskID 和 NoteID 值对仅在 Obsolete_EPActivity table 中可用。应该使用 Obsolete_EPActivity table 将过时的 TaskID 整数值替换为实际的 NoteID GUID。
无法通过 Web 服务访问 Obsolete_EPActivity table。升级到 6.0 后,Acumatica 仅在 CRActivity table.
中插入新活动
为避免重复活动,您必须在数据库中存储实际的 NoteID GUID 而不是过时的 TaskID 整数值,并在导入记录时比较 GUID。
对于之前导入的活动,您还必须将 TaskID 值替换为实际的 NoteID GUID。根据存储在数据库中的 CaseID、Subject 和 CreatedDateTime 字段值搜索 CRActivity 记录,您应该找到合适的记录并使用其 NoteID 替换旧的 TaskID 值。
我正在使用 Acumatica Web API 获取案例活动的任务 ID(屏幕 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。
在 Acumatica 6.0 中 table EPActivity 在 CRActivity、SMEmail 和 PMTimeActivity 上拆分。原来的 table 改名为 Obsolete_EPActivity.
现在 NoteID 是所有 table 的关键字段。 SMEmail 和 PMTimeActivity 包含 RefNoteID 字段 - 来自 CRActivity 的外键。
您可以在 table - Obsolete_EPActivity
中找到值对 TaskID 和 NoteID@Krunal,如 Ken 所述,升级到 6.0 后,TaskID 和 NoteID 值对仅在 Obsolete_EPActivity table 中可用。应该使用 Obsolete_EPActivity table 将过时的 TaskID 整数值替换为实际的 NoteID GUID。
无法通过 Web 服务访问 Obsolete_EPActivity table。升级到 6.0 后,Acumatica 仅在 CRActivity table.
中插入新活动为避免重复活动,您必须在数据库中存储实际的 NoteID GUID 而不是过时的 TaskID 整数值,并在导入记录时比较 GUID。
对于之前导入的活动,您还必须将 TaskID 值替换为实际的 NoteID GUID。根据存储在数据库中的 CaseID、Subject 和 CreatedDateTime 字段值搜索 CRActivity 记录,您应该找到合适的记录并使用其 NoteID 替换旧的 TaskID 值。