gpt4 book ai didi

c# - 在 Dynamics CRM 2011 中将发票标记为已付款

转载 作者:行者123 更新时间:2023-11-30 13:49:51 24 4
gpt4 key购买 nike

根据 this question .

我正在尝试使用 Silverlight 在 Dynamics CRM 2011 中将现有发票标记为已付款。

根据documentation ,我需要做的就是设置状态代码 = 100001 和状态代码 = 2。

当我这样做时,我得到一个“NotFound”异常。

Guid invoiceID = new Guid("Existing Invoice Guid");
IOrganizationService orgService = OrgServiceFactory.GetInstance();

orgService.BeginRetrieve("invoice", invoiceID, new ColumnSet(new string[] { "invoiceid", "statecode", "statuscode" }), (result) =>
{
var fetchResp = orgService.EndRetrieve(result);

var statecodeAttrib = fetchResp.Attributes.Single(a => a.Key == "statecode");
OptionSetValue statecode = (OptionSetValue)statecodeAttrib.Value;
statecode.Value = 2;


var statuscodeAttrib = fetchResp.Attributes.Single(a => a.Key == "statuscode");
OptionSetValue statuscode = (OptionSetValue)statuscodeAttrib.Value;
statuscode.Value = 100001;

orgService.BeginUpdate(fetchResp, (updateResult) =>
{
/* Web Exception thrown here */
orgService.EndUpdate(updateResult);
Console.Write("");
}, orgService);

}, orgService);

如果我删除“状态代码”位,并尝试将状态代码设置为 2 -(已部分发货)或 4 -(已计费),它会按预期工作。

只有当我尝试同时设置两者时才会失败。如果我只是尝试设置 statuscode = 100001、100002、100003(完整、部分、已取消),它也会失败

还有其他方法可以将发票标记为已付款吗?

最佳答案

要更改记录的状态,您始终需要执行单独的 SetState 请求,而不是仅仅对状态和状态代码进行简单的更新。在您的情况下,您可以执行 SetStateDynamicEntitySetStateInvoice请求。

不幸的是,这些消息在 CRM 2011 中的 OData 服务中不可用。您需要做的是通过 Silverlight 使用 SOAP Web 服务。 SDK has a walkthrough ,如果你想抢先一步,SilverCRMSoap库是该演练的一个很好的快速实现。

关于c# - 在 Dynamics CRM 2011 中将发票标记为已付款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8117335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com