NetSuite发票创建MLI_LOCATION_REQUIRED,但是invoice.location无法设置 [英] NetSuite Invoice Creation MLI_LOCATION_REQUIRED but invoice.location unsettable

查看:102
本文介绍了NetSuite发票创建MLI_LOCATION_REQUIRED,但是invoice.location无法设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

似乎大多数人都在使用PHP Toolkit进行NetSuite Web服务交互.我不是,但是我将粘贴SOAP编码的请求/响应,以希望有人能够提供帮助(咳嗽 Suite Resources 咳嗽).

Seems like most people are using the PHP Toolkit for NetSuite webservices interaction; I am not, but I'll paste the SOAP encoded request/response in the hopes someone can help (coughSuite Resourcescough).

我正在尝试用一个发票项目创建一个新发票.我收到错误消息:

I'm trying to create a new invoice with a single invoice item. I get the error:

多地点库存错误(MLI_LOCATION_REQUIRED):此交易或其物料必须具有地点.

Multi-location Inventory Error (MLI_LOCATION_REQUIRED): this transaction or its items must have locations.

但是,当我尝试在发票本身上设置位置时,出现错误消息:

However when I try to set the location on the invoice itself I get the error:

由于以下原因之一,您无权设置元素位置的值:1)该字段为只读; 2)禁用相关功能; 3)该字段在创建或更新记录时可用,但在两种情况下都不可用.

You do not have permissions to set a value for element location due to one of the following reasons: 1) The field is read-only; 2) An associated feature is disabled; 3) The field is available either when a record is created or updated, but not in both cases.

[1] pry(main)> invoice.add

D, [2014-12-19T16:47:19.997923 #13995] DEBUG -- : HTTPI GET request to webservices.sandbox.netsuite.com (net_http)
I, [2014-12-19T16:47:20.464235 #13995]  INFO -- : SOAP request: https://webservices.sandbox.netsuite.com/services/NetSuitePort_2013_2
I, [2014-12-19T16:47:20.464378 #13995]  INFO -- : SOAPAction: "add", Content-Type: text/xml;charset=UTF-8, Content-Length: 2568
D, [2014-12-19T16:47:20.464926 #13995] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com" xmlns:platformCommon="urn:common_2013_2.platform.webservices.netsuite.com" xmlns:listRel="urn:relationships_2013_2.lists.webservices.netsuite.com" xmlns:tranSales="urn:sales_2013_2.transactions.webservices.netsuite.com" xmlns:actSched="urn:scheduling_2013_2.activities.webservices.netsuite.com" xmlns:setupCustom="urn:customization_2013_2.setup.webservices.netsuite.com" xmlns:listAcct="urn:accounting_2013_2.lists.webservices.netsuite.com" xmlns:tranBank="urn:bank_2013_2.transactions.webservices.netsuite.com" xmlns:tranCust="urn:customers_2013_2.transactions.webservices.netsuite.com" xmlns:tranInvt="urn:inventory_2013_2.transactions.webservices.netsuite.com" xmlns:listSupport="urn:support_2013_2.lists.webservices.netsuite.com" xmlns:tranGeneral="urn:general_2013_2.transactions.webservices.netsuite.com" xmlns:listMkt="urn:marketing_2013_2.lists.webservices.netsuite.com" xmlns:listWebsite="urn:website_2013_2.lists.webservices.netsuite.com" xmlns:fileCabinet="urn:filecabinet_2013_2.documents.webservices.netsuite.com" xmlns:listEmp="urn:employees_2013_2.lists.webservices.netsuite.com">
  <env:Header>
    <platformMsgs:passport>
      <platformCore:email>[REDACTED]</platformCore:email>
      <platformCore:password>[REDACTED]</platformCore:password>
      <platformCore:account>[REDACTED]</platformCore:account>
      <platformCore:role internalId="3"/>
    </platformMsgs:passport>
  </env:Header>
  <env:Body>
    <platformMsgs:add>
      <platformMsgs:record xsi:type="tranSales:Invoice">
        <tranSales:email>[REDACTED]</tranSales:email>
        <tranSales:isTaxable>false</tranSales:isTaxable>
        <tranSales:entity internalId="26017" externalId="[REDACTED]" type="customer"/>
        <tranSales:itemList>
          <tranSales:item>
            <tranSales:item internalId="152"/>
            <tranSales:line>1</tranSales:line>
            <tranSales:orderLine>1</tranSales:orderLine>
            <tranSales:amount>313</tranSales:amount>
            <tranSales:location internalId="1" type="location"/>
            <tranSales:revRecStartDate>2014-12-01T08:13:00.000Z</tranSales:revRecStartDate>
            <tranSales:revRecEndDate>2015-12-01T08:13:00.000Z</tranSales:revRecEndDate>
          </tranSales:item>
        </tranSales:itemList>
      </platformMsgs:record>
    </platformMsgs:add>
  </env:Body>
</env:Envelope>

D, [2014-12-19T16:47:20.465337 #13995] DEBUG -- : HTTPI POST request to webservices.sandbox.netsuite.com (net_http)
I, [2014-12-19T16:47:23.786293 #13995]  INFO -- : SOAP response (status 200)
D, [2014-12-19T16:47:23.786660 #13995] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Header>
    <platformMsgs:documentInfo xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com">
      <platformMsgs:nsId>WEBSERVICES_[REDACTED]_121920141668433096579618905_1be2c0a823e5</platformMsgs:nsId>
    </platformMsgs:documentInfo>
  </soapenv:Header>
  <soapenv:Body>
    <addResponse xmlns="urn:messages_2013_2.platform.webservices.netsuite.com">
      <writeResponse>
        <platformCore:status xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com" isSuccess="false">
          <platformCore:statusDetail type="ERROR">
            <platformCore:code>MLI_REQD</platformCore:code>
            <platformCore:message>Multi-location Inventory Error (MLI_LOCATION_REQUIRED): this transaction or its items must have locations.</platformCore:message>
          </platformCore:statusDetail>
          <platformCore:statusDetail type="WARN">
            <platformCore:code>WARNING</platformCore:code>
            <platformCore:message>Fake Billing Line Item: You have only 0 available across all locations (0 back ordered, 0 on order).</platformCore:message>
          </platformCore:statusDetail>
        </platformCore:status>
      </writeResponse>
    </addResponse>
  </soapenv:Body>
</soapenv:Envelope>

=> false
[2] pry(main)> invoice.location = ottawa
=> #<NetSuite::Records::Location:0x007fca96a5eea8
 @attributes=
  {:name=>"Ottawa",
   :is_inactive=>false,
   :addressee=>"Ottawa",
   :addr1=>"[REDACTED]",
   :city=>"Ottawa",
   :state=>"ON",
   :zip=>"[REDACTED]",
   :country=>"_canada",
   :addr_text=>"Ottawa\n[REDACTED]\nOttawa ON [REDACTED]",
   :override=>false,
   :make_inventory_available=>false},
 @external_id=nil,
 @internal_id="1">
[3] pry(main)> invoice.add
D, [2014-12-19T16:48:03.626321 #13995] DEBUG -- : HTTPI GET request to webservices.sandbox.netsuite.com (net_http)
I, [2014-12-19T16:48:04.090118 #13995]  INFO -- : SOAP request: https://webservices.sandbox.netsuite.com/services/NetSuitePort_2013_2
I, [2014-12-19T16:48:04.090331 #13995]  INFO -- : SOAPAction: "add", Content-Type: text/xml;charset=UTF-8, Content-Length: 2640
D, [2014-12-19T16:48:04.090841 #13995] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com" xmlns:platformCommon="urn:common_2013_2.platform.webservices.netsuite.com" xmlns:listRel="urn:relationships_2013_2.lists.webservices.netsuite.com" xmlns:tranSales="urn:sales_2013_2.transactions.webservices.netsuite.com" xmlns:actSched="urn:scheduling_2013_2.activities.webservices.netsuite.com" xmlns:setupCustom="urn:customization_2013_2.setup.webservices.netsuite.com" xmlns:listAcct="urn:accounting_2013_2.lists.webservices.netsuite.com" xmlns:tranBank="urn:bank_2013_2.transactions.webservices.netsuite.com" xmlns:tranCust="urn:customers_2013_2.transactions.webservices.netsuite.com" xmlns:tranInvt="urn:inventory_2013_2.transactions.webservices.netsuite.com" xmlns:listSupport="urn:support_2013_2.lists.webservices.netsuite.com" xmlns:tranGeneral="urn:general_2013_2.transactions.webservices.netsuite.com" xmlns:listMkt="urn:marketing_2013_2.lists.webservices.netsuite.com" xmlns:listWebsite="urn:website_2013_2.lists.webservices.netsuite.com" xmlns:fileCabinet="urn:filecabinet_2013_2.documents.webservices.netsuite.com" xmlns:listEmp="urn:employees_2013_2.lists.webservices.netsuite.com">
  <env:Header>
    <platformMsgs:passport>
      <platformCore:email>[REDACTED]</platformCore:email>
      <platformCore:password>[REDACTED]</platformCore:password>
      <platformCore:account>[REDACTED]</platformCore:account>
      <platformCore:role internalId="3"/>
    </platformMsgs:passport>
  </env:Header>
  <env:Body>
    <platformMsgs:add>
      <platformMsgs:record xsi:type="tranSales:Invoice">
        <tranSales:email>[REDACTED]</tranSales:email>
        <tranSales:isTaxable>false</tranSales:isTaxable>
        <tranSales:entity internalId="26017" externalId="[REDACTED]" type="customer"/>
        <tranSales:itemList>
          <tranSales:item>
            <tranSales:item internalId="152"/>
            <tranSales:line>1</tranSales:line>
            <tranSales:orderLine>1</tranSales:orderLine>
            <tranSales:amount>313</tranSales:amount>
            <tranSales:location internalId="1" type="location"/>
            <tranSales:revRecStartDate>2014-12-01T08:13:00.000Z</tranSales:revRecStartDate>
            <tranSales:revRecEndDate>2015-12-01T08:13:00.000Z</tranSales:revRecEndDate>
          </tranSales:item>
        </tranSales:itemList>
        <tranSales:location internalId="1" type="location"/>
      </platformMsgs:record>
    </platformMsgs:add>
  </env:Body>
</env:Envelope>

D, [2014-12-19T16:48:04.091365 #13995] DEBUG -- : HTTPI POST request to webservices.sandbox.netsuite.com (net_http)
I, [2014-12-19T16:48:05.738270 #13995]  INFO -- : SOAP response (status 200)
D, [2014-12-19T16:48:05.738785 #13995] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Header>
    <platformMsgs:documentInfo xmlns:platformMsgs="urn:messages_2013_2.platform.webservices.netsuite.com">
      <platformMsgs:nsId>WEBSERVICES_[REDACTED]_121920141668476805866012724_a7c7c427c826</platformMsgs:nsId>
    </platformMsgs:documentInfo>
  </soapenv:Header>
  <soapenv:Body>
    <addResponse xmlns="urn:messages_2013_2.platform.webservices.netsuite.com">
      <writeResponse>
        <platformCore:status xmlns:platformCore="urn:core_2013_2.platform.webservices.netsuite.com" isSuccess="false">
          <platformCore:statusDetail type="ERROR">
            <platformCore:code>INSUFFICIENT_PERMISSION</platformCore:code>
            <platformCore:message>You do not have permissions to set a value for element location due to one of the following reasons: 1) The field is read-only; 2) An associated feature is disabled; 3) The field is available either when a record is created or updated, but not in both cases.</platformCore:message>
          </platformCore:statusDetail>
        </platformCore:status>
      </writeResponse>
    </addResponse>
  </soapenv:Body>
</soapenv:Envelope>

=> false
[4] pry(main)>

推荐答案

在您的问题中张贴的"invoice.location" JSON数据([2] pry(main)> invoice.location = ottawa)在NetSuite内部的位置记录中将"make_inventory_available"字段设置为false.

Looking at the "invoice.location" JSON Data ([2] pry(main)> invoice.location = ottawa) posted in your question, i see you have "make_inventory_available" field set as false on the Location Record inside of NetSuite.

您可以尝试以下方法,让我知道它是否有效:

Could you try the below and let me know if it works:

  1. 在NetSuite用户界面中,导航到设置"->公司"->位置"(在分类"下).
  2. 使用内部ID"1"(即渥太华")编辑位置.
  3. 将使库存可用"复选框字段设置为true.
  4. 现在尝试通过在第一个soap xml请求([1] pry(main)> invoice.add)中发布的项目级别上设置位置字段来尝试执行invoice.add操作.

这篇关于NetSuite发票创建MLI_LOCATION_REQUIRED,但是invoice.location无法设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆