1
我的ASP.NET MVC 3应用程序有一个Web服务,它在AX中创建一个新的销售订单。在AX中,我创建了一个现在有1个方法的OnlineOrder类。它是生成销售参考。下面是我的web服务代码:无法让Axapta.CreateAxaptaObject()正常工作
public AxaptaObject order;
public void CreateOrder()
{
AxaptaStart();
order = Axapta.CreateAxaptaObject("OnlineOrder");
AxaptaStop();
}
public string GetSalesRef(string username, string delivery, string reference)
{
AxaptaStart();
string number = order.Call("orderCreate", username, delivery, reference).ToString();
AxaptaStop();
return number;
}
然后在我的控制器我调用这些方法:
client.CreateOrder();
string number = client.GetSalesRef(user.Username, order.deliverymethod, order.custorder).ToString();
这不工作,没有例外的信息显示,其只是一个空白信息。我相信order
AxaptaObject不是OnlineOrder
类型,因此它无法调用这些方法。我将如何实例化对象以使用orderCreate
方法?
编辑:
如果我做的:
public string CreateOrder(string username, string delivery, string reference)
{
AxaptaStart();
order = Axapta.CreateAxaptaObject("OnlineOrder");
string number = order.Call("orderCreate", username, delivery, reference).ToString();
AxaptaStop();
return number;
}
这工作,但这不是因为我想更多的方法在未来,我将添加到我的网上订单对象的有效解决方案不想在我的web服务中使用1种方法全部打电话给他们
但是,这也需要这一切都在我的web服务的1方法wouldnt它?我将如何使用不同方法中的相同“订单”对象? – CallumVass 2012-02-28 08:14:31
不,它不会。 'order'对象可以像例子那样从包装方法中返回(或保存在一个成员变量中)。所有对COM的调用都隐藏在隐藏了丑陋细节的包装类中。它也使得来自调用者的代码看起来很好(r)。 – 2012-02-28 11:01:46