Hi,
I'm creating a Purchase Order with a web service call like this:
1.
DynamicsGP ws =
new
DynamicsGP();
2.
Policy policy = ws.GetPolicyByOperation(
"CreatePurchaseOrder"
, context);
3.
ws.CreatePurchaseOrder(purchaseOrder, context, policy);
It all works fine until i try to set ProjectKey and CostCategoryKey to PO line items.
Project accounting module is also installed.
The PO lines are created like this:
01.
PurchaseOrderLine poLine =
new
PurchaseOrderLine();
02.
poLine.Key =
new
PurchaseTransactionLineKey();
03.
poLine.Key.LineSequenceNumber = sequenceNumber;
04.
poLine.Key.PurchaseTransactionKey = purchaseOrder.Key;
05.
poLine.WarehouseKey =
new
WarehouseKey();
06.
poLine.WarehouseKey.Id = item.SiteKey;
07.
poLine.UofM = item.UnitOfMeasure;
08.
poLine.QuantityOrdered =
new
Quantity();
09.
poLine.QuantityOrdered.Value = Convert.ToDecimal(item.Quantity.Value);
10.
poLine.UnitCost =
new
MoneyAmount();
11.
poLine.UnitCost.Currency =
"USD"
;
12.
poLine.UnitCost.DecimalDigits = 2;
13.
poLine.UnitCost.Value = Convert.ToDecimal(item.UnitCost.Value);
14.
poLine.IsNonInventory = !item.IsInventoryItem.GetValueOrDefault(
false
);
15.
16.
poLine.ProjectKey =
new
ProjectKey();
17.
poLine.ProjectKey.Id = item.ProjectId;
18.
19.
poLine.CostCategoryKey =
new
CostCategoryKey();
20.
poLine.CostCategoryKey.Id = item.CostCategoryId;
When I added the code to set the ProjectKey and CostCategoryKey - lines 16 - 20, I started getting the following error from eConnect:
Exception type:
Microsoft.Dynamics.GP.eConnect.eConnectException
Exception message:
There is a duplicate XML element ProjNum in the document. Please correct it and try again.
Stack Trace:
at Microsoft.Dynamics.GP.eConnect.EntityMessageProcessor.ExtractStoredProcedureParameters(EntityMessage message, IEnumerable`1 xmlList)
at Microsoft.Dynamics.GP.eConnect.EntityMessageProcessor.ExecuteSqlCommands(XElement transactionNode, EntityMessage message)
at Microsoft.Dynamics.GP.eConnect.eConnectMethods.ProcessMessageImport(EntityMessage message)
at Microsoft.Dynamics.GP.eConnect.eConnectMethods.EntityImportImplementation(String connectionString, String sXML, Boolean isTransaction)
at Microsoft.Dynamics.GP.eConnect.eConnectMethods.CreateEntity(String connectionString, String sXML)
I was able to create a Purchase Order with the same parameters I'm passing to the web service call through the UI and all went fine.
Any help or advice is very much appreciated!
Thanks in advance!