2015-11-17 58 views
0

如何將最新訂單產品添加到新創建的銷售訂單產品。 我從我的最後訂單中檢索了所有產品,但我不知道如何將它們添加到當前銷售/ salesOrderDetail。CRM 2013,從上次銷售訂單複製訂單產品

我需要在JavaScript中這樣做,我不能使用Csharp代碼。 函數retrieveproducts()運行良好,函數retrieveProductsCallBack(數據)必須在訂單上創建/複製檢索到的產品,但我不知道該怎麼做。歡迎任何建議和/或hulp。

//代碼示例

變種的SalesOrderID,的clientId;如果你改變

product.SalesOrderId = salesOrderID; 

product.SalesOrderId = {Id: salesOrderID, LogicalName: "SalesOrder"}; 

因爲SalesOrderId是一個實體引用

//this function is used to get products from last order 
    function RetrieveProducts() { 
     var odataQuery; 
     var oMyObject = window.dialogArguments; 
     clientId = oMyObject.customerid; 
     salesOrderID = oMyObject.salesorderid; 

     var entitySchemaName = "SalesOrder"; 
     if (document.getElementById("checkID").checked == true) { 
      odataQuery = "?$top=1&$select=order_details/IsPriceOverridden,order_details/IsProductOverridden,order_details/ProductId,order_details/SalesOrderId,order_details/UoMId&$orderby=CreatedOn desc&$expand=order_details&$filter=CustomerId/Id eq guid'" + clientId + "'"; 
     } 
     else { 
      odataQuery = "?$top=1&$select=order_details&$orderby=CreatedOn desc&$expand=order_details&$filter=CustomerId/Id eq guid'" + clientId + "'"; 
     } 

     SDK.REST.retrieveMultipleRecords(entitySchemaName, odataQuery, retrievedProductsCallBack, function (error) { alert(error.message); }, function() { }); 
    } 

    function retrievedProductsCallBack(data) { 

     for (var i = 0; i < data[0].order_details.results.length ; i++) { 
      var rec = data[0].order_details.results[i]; 
      var product = rec.ProductId; 

      var product = {}; 

      //Set ohter required attrbitues of products 
      product.SalesOrderId = salesOrderID; 
      product.ProductId = rec.ProductId; 
      product.Quantity = rec.Quantity; 


      //create quote product 
      SDK.REST.createRecord(product, "SalesOrderDetail", function() { }, function (error) { alert(error.message); }, function() { }); 
     } 
    } 
</script> 

回答

0

您的代碼應該工作。

相關問題