如何使用Dynamics NAV Web服务在Java中插入Line表?

时间:2015-05-21 03:25:20

标签: java web-services dynamics-nav

现在我使用Java开发应用程序会消耗NAV2015的Web服务,但是将数据插入到SalesLine表中很多天。

在Java之前,我使用.NET并且可以像这样完全插入SalesLine ......

using WebService;

SalesOrder_Service salesOrder;
SalesOrder_Service_Service service;
salesOrder = new SalesOrder_Service();
service = new SalesOrder_Service_Service();
service.UseDefaultCredentials = true;

service.Create(ref salesOrder);

Sales_Order_Line[] salesOrderLine = new Sales_Order_Line[1];
salesOrderLine[0] = new Sales_Order_Line();
salesOrderLine[0].Type = WebService.Type.Item;
salesOrderLine[0].Document_No = salesOrder.No;

// put SalesOrderLine into Header like this
salesOrder.SalesLines = salesOrderLine;

service.Update(ref salesOrder);

但现在在Java中我不知道如何将SalesLine插入Header。 我尝试的方式与在.NET中的方式相同,但看起来没有方法可以将数据从Line放到Header中。 实际上它有一个名为setSalesLines的方法(SaleOrderLineList arg0);但问题是SalesOrderLineList只有GET方法。

SalesOrder soHeader = soPort.read(docNo);

//method for set SalesLines requires SalesOrderLineList variable
soHeader.setSalesLines(SaleOrderLineList arg);

// So, I created the SalesOrderLineList 
SalesOrderLineList lineList = new SalesOrderLineList();

// But.. lineList has only get method. 
lineList.getSalesOrderLine();  

// More information
// This is another class for set data to SalesLine
SalesOrderLine saleOrderline = new SalesOrderLine();
saleOrderline.setNo(docNo);
saleOrderline.setDescription("zzZ");

如何将所有这些内容组合在一起? 谢谢你提前注意。

1 个答案:

答案 0 :(得分:0)

谢谢团队。

我们终于找到了。

SalesOrder soHeader = soPort.read(docNo);

SalesOrderLineList lineList = new SalesOrderLineList();

SalesOrderLine saleOrderline = new SalesOrderLine();
saleOrderline.setNo(docNo);
saleOrderline.setDescription("zzZ");

lineList.getSalesOrderLine().add(saleOrderline);
soHeader.setSalesLines(lineList);