0

我们正忙于通过 Web 服务开发 Acumatica 和我们的应用程序之间的接口。我们正在使用 Savon gem 在 Ruby 中开发它。

我们有一些导出为我们需要的信息工作,比如这个用于供应商数据的导出:

我们发布以下 SOAP 调用(登录后):

<?xml version="1.0"?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://www.acumatica.com/typed/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  <env:Body>
    <tns:Export>
      <tns:commands>
        <tns:Command>
          <tns:FieldName>AcctCD</tns:FieldName>
          <tns:ObjectName>BAccount</tns:ObjectName>
          <tns:Value>Account code</tns:Value>
        </tns:Command>
        <tns:Command>
          <tns:FieldName>AcctName</tns:FieldName>
          <tns:ObjectName>BAccount</tns:ObjectName>
          <tns:Value>Account name</tns:Value>
        </tns:Command>
      </tns:commands>
      <tns:filters/>
      <tns:startRow>0</tns:startRow>
      <tns:topCount>0</tns:topCount>
      <tns:includeHeaders>false</tns:includeHeaders>
      <tns:breakOnError>false</tns:breakOnError>
    </tns:Export>
  </env:Body>
</env:Envelope>

到测试端点:

http://p3.tryacumatica.com/(W(10003))/Soap/AP303000.asmx?WSDL

我们也可以为库存和站点做同样的事情。但是,我们正在努力使其适用于采购订单。

我们发布以下内容:

<?xml version="1.0"?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://www.acumatica.com/typed/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  <env:Body>
    <tns:Export>
      <tns:commands>
        <tns:Command>
          <tns:FieldName>Type</tns:FieldName>
          <tns:ObjectName>POOrder</tns:ObjectName>
          <tns:Value>Type</tns:Value>
        </tns:Command>
        <tns:Command>
          <tns:FieldName>OrderNbr</tns:FieldName>
          <tns:ObjectName>POOrder</tns:ObjectName>
          <tns:Value>Order number</tns:Value>
        </tns:Command>
      </tns:commands>
      <tns:filters/>
      <tns:startRow>0</tns:startRow>
      <tns:topCount>0</tns:topCount>
      <tns:includeHeaders>false</tns:includeHeaders>
      <tns:breakOnError>false</tns:breakOnError>
    </tns:Export>
  </env:Body>
</env:Envelope>

到测试端点:

http://p3.tryacumatica.com/(W(3))/Soap/PO301000.asmx?WSDL

我们总是得到一个空洞的回应。有任何想法吗?

4

3 回答 3

0

好吧,我的第一个问题是为什么你需要一个完整的列表 PO ?这可能是一个巨大的数据。PO 有一个复合键 - 类型、OrderNbr 并且基本上使用导出命令,您必须指定像 EveryOrderNbr 这样的值

请参阅下面 的链接

于 2015-04-07T17:58:56.427 回答
0

+

SO的旧c#示例

            Content SO301000 = context.GetSchema();
        context.Clear();

        string[][] data = context.Export(new Command[] 
        { 
            SO301000.OrderSummary.ServiceCommands.EveryOrderType,
            SO301000.OrderSummary.ServiceCommands.EveryOrderNbr,
            SO301000.OrderSummary.OrderType,
            SO301000.OrderSummary.OrderNbr,
            SO301000.OrderSummary.Description,
            SO301000.OrderSummary.Hold,
        }, null,

        new Filter[]
        {

            new Filter { Field = SO301000.OrderSummary.OrderType, Condition = FilterCondition.Equals, Value = "IN", Operator = FilterOperator.And },
            new Filter { Field = SO301000.OrderSummary.OrderNbr, Condition = FilterCondition.Equals, Value = "23630843", Operator = FilterOperator.And }
        },
              0, false, true);
于 2015-04-07T18:04:08.860 回答
0

检查 PO 模块是否打开。还要检查用户是否有权查询 PO 对象。数据库是否收到查询?一种选择是从数据库端进行调试。查看数据库是否选择了从 Web 服务输入提交的查询。
我知道这些想法很简单,但值得一看。

于 2015-04-07T15:47:56.663 回答