0

Silverlight o-data サービスを使用して、次のようにエンティティ SalesOrder にデータを保存しようとすると、アプリケーションから crm 2011 と対話します。

Private void beginSave()
{
SalesOrder orderHeader = new SalesOrder();

orderHeader.TransactionCurrencyId = new EntityReference(){ Id = new Guid("77D695B5-ACB4-E111-97BC-00155D55B216"), LogicalName="transactioncurrency" };
orderHeader.AccountId = new EntityReference() { Id = new Guid(MyClassGeneralOrder.customerId), LogicalName = "account" };
orderHeader.Name = "My Name";
Money totalAmount = new Money(); Money totalAmountBase = new Money(); 
Money totalTaxe = new Money(); Money totalAmountLessFreight = new Money();
totalAmount.Value = (decimal)MyClassGeneralOrder.InvoiceTotal;
totalAmountBase.Value = (decimal)MyClassGeneralOrder.totalRetail;
totalTaxe.Value = (decimal)MyClassGeneralOrder.totalCharges;
totalAmountLessFreight.Value = (decimal)MyClassGeneralOrder.totalNet;
orderHeader.TotalAmount = totalAmount;
orderHeader.TotalAmount_Base = totalAmountBase;
orderHeader.TotalTax = totalTaxe;
orderHeader.TotalAmountLessFreight = totalAmountLessFreight;
orderHeader.Description = element.Name;
orderHeader.PriceLevelId = new EntityReference() { Id = new Guid("03C5C4CB-EBD0-E111-8140-00155D55B216"), LogicalName="pricelevel" };

_context.AddToSalesOrderSet(orderHeader);
_context.BeginSaveChanges(SaveCallback, orderHeader);

}


private void SaveCallback(IAsyncResult result)
{
_context.EndSaveChanges(result);

}

関数 EndSaveChanges (結果) で、次のエラー メッセージが表示されます: : « The Currency Cannot Be null ». 「orderHeader.TransactionCurrencyId」フィールドが null ではないため、理由がわかりません。

4

2 に答える 2

0

他のすべての通貨フィールドに値が入力されていると思いますか?

例外をスローしているプラ​​グインの結果として起動している別のプラグインがある可能性があります。それはいつも私を噛むようです。作業中のプラグインを除く他のすべてのプラグインを無効にしてみてください...

それでも問題が解決しない場合は、crmサーバー側のトレースをオンにします。より良いエラー情報が得られます。CRM診断ツールを使用して、トレースログをオンにします:http://crmdiagtool2011.codeplex.com

于 2012-12-21T15:46:57.050 に答える
0

ほとんどの場合、Guid が間違っており、null になります。使用している正しい GUID であることを確認してください。エンティティに対して高度な検索を実行し、正しい GUID を見つけます。GUID をハード コードすることはお勧めできません。ソリューションを他の組織にデプロイすると、機能しません。

于 2013-12-17T00:18:02.967 に答える