2015-11-17 59 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

您的代码应该工作。

相关问题