2

我想使用 XML 将第三方应用程序与 HTTP 上的计数集成。当我尝试通过 HTTP 将分类帐导入计数时,它显示未知请求,无法处理

相同的 XML 格式,当我使用“Tally 网关”中的“导入数据”手动导入 Tally 时,它导入时没有错误并创建分类帐。

我是否缺少任何 HTTP 标头?目前,我将“Content-Type”设置为“text/xml”;我也试过“text/xml;charset=utf-16”;

使用相同的标头,当我以相同的方式尝试时,还有其他计数 XML 请求工作

 <!-- language: xml -->
    <?xml version="1.0" encoding="UTF-8"?>
<ENVELOPE>
  <HEADER>
    <TALLYREQUEST>Import Data</TALLYREQUEST>
  </HEADER>
  <BODY>
    <IMPORTDATA>
      <REQUESTDESC>
        <STATICVARIABLES>
          <SVCURRENTCOMPANY>Test</SVCURRENTCOMPANY>
        </STATICVARIABLES>
      </REQUESTDESC>
      <REQUESTDATA>
        <TALLYMESSAGE xmlns:UDF="TallyUDF">
          <LEDGER NAME="name2" RESERVEDNAME="">
            <ADDRESS.LIST TYPE="String">
              <ADDRESS>line1, line2</ADDRESS>
              <ADDRESS>city</ADDRESS>
            </ADDRESS.LIST>
            <LEDSTATENAME>Goa</LEDSTATENAME>
            <PINCODE>403001</PINCODE>
            <MAILINGNAME.LIST TYPE="String">
              <MAILINGNAME>name2</MAILINGNAME>
            </MAILINGNAME.LIST>
            <CURRENCYNAME>₹&lt;/CURRENCYNAME>
            <EMAIL>testvira@email.com</EMAIL>
            <WEBSITE />
            <INCOMETAXNUMBER>LSWI2278DF</INCOMETAXNUMBER>
            <COUNTRYNAME>India</COUNTRYNAME>
            <GSTREGISTRATIONTYPE>Regular</GSTREGISTRATIONTYPE>
            <PARENT>Sundry Debtors - Viras</PARENT>
            <NARRATION />
            <COUNTRYOFRESIDENCE>India</COUNTRYOFRESIDENCE>
            <EMAILCC>mysteryman@email.com</EMAILCC>
            <LEDGERPHONE>458923</LEDGERPHONE>
            <LEDGERCONTACT>Mystery Man</LEDGERCONTACT>
            <LEDGERMOBILE>6598765987</LEDGERMOBILE>
            <PARTYGSTIN>ASDF234kl56</PARTYGSTIN>
            <GSTNATUREOFSUPPLY>SEZ</GSTNATUREOFSUPPLY>
            <LANGUAGENAME.LIST>
              <NAME.LIST TYPE="String">
                <NAME>name2</NAME>
                <NAME>new name2</NAME>
              </NAME.LIST>
              <LANGUAGEID>1033</LANGUAGEID>
            </LANGUAGENAME.LIST>
            <PAYMENTDETAILS.LIST>
              <IFSCODE>ifsc code</IFSCODE>
              <BANKNAME>ScamNo1</BANKNAME>
              <ACCOUNTNUMBER>123456789</ACCOUNTNUMBER>
              <PAYMENTFAVOURING>name2</PAYMENTFAVOURING>
              <TRANSACTIONNAME>E-Payment</TRANSACTIONNAME>
              <SETASDEFAULT>No</SETASDEFAULT>
              <DEFAULTTRANSACTIONTYPE>Inter Bank Transfer</DEFAULTTRANSACTIONTYPE>
              <BENEFICIARYCODEDETAILS.LIST />
            </PAYMENTDETAILS.LIST>
            <LEDMULTIADDRESSLIST.LIST>
              <ADDRESS.LIST TYPE="String">
                <ADDRESS>Door No 1</ADDRESS>
                <ADDRESS>Road No 1</ADDRESS>
                <ADDRESS>Semmedu</ADDRESS>
              </ADDRESS.LIST>
              <EMAIL />
              <STATE>Tamil Nadu</STATE>
              <PINCODE>641114</PINCODE>
              <INCOMETAXNUMBER>LSWI2278DF</INCOMETAXNUMBER>
              <COUNTRYNAME>India</COUNTRYNAME>
              <GSTREGISTRATIONTYPE>Regular</GSTREGISTRATIONTYPE>
              <ADDRESSNAME>City Office</ADDRESSNAME>
              <PARTYGSTIN>ASDF234kl56</PARTYGSTIN>
              <CONTACTPERSON>maverick</CONTACTPERSON>
              <ISOTHTERRITORYASSESSEE>No</ISOTHTERRITORYASSESSEE>
            </LEDMULTIADDRESSLIST.LIST>
            <LEDMULTIADDRESSLIST.LIST>
              <ADDRESS.LIST TYPE="String">
                <ADDRESS>Door No 1</ADDRESS>
                <ADDRESS>Road No 1</ADDRESS>
                <ADDRESS>Semmedu</ADDRESS>
              </ADDRESS.LIST>
              <EMAIL />
              <STATE>Tamil Nadu</STATE>
              <PINCODE>641114</PINCODE>
              <INCOMETAXNUMBER>LSWI2278DF</INCOMETAXNUMBER>
              <COUNTRYNAME>India</COUNTRYNAME>
              <GSTREGISTRATIONTYPE>Regular</GSTREGISTRATIONTYPE>
              <ADDRESSNAME>Godown</ADDRESSNAME>
              <PARTYGSTIN>ASDF234kl56</PARTYGSTIN>
              <CONTACTPERSON>maverick</CONTACTPERSON>
              <ISOTHTERRITORYASSESSEE>No</ISOTHTERRITORYASSESSEE>
            </LEDMULTIADDRESSLIST.LIST>
          </LEDGER>
        </TALLYMESSAGE>
      </REQUESTDATA>
    </IMPORTDATA>
  </BODY>
</ENVELOPE>

我希望输出是一个 XML,上面写着 ledger created 但实际输出是 Unknown Request,无法处理

4

5 回答 5

3

看到这个已经很晚了,但是如果您仍然需要答案。对您的 XML 进行以下更改 -

使您的标题如下 -

  <HEADER>
    <VERSION>1</VERSION>
    <TALLYREQUEST>IMPORT</TALLYREQUEST>
    <TYPE>DATA</TYPE>
    <ID>ALL MASTERS</ID>
  </HEADER>

接下来在Body标签中,删除 RequestDesc 和 RequestData 标签并将结构更改为 -

  <BODY>
    <DESC>
      <STATICVARIABLES>
        <SVCURRENTCOMPANY>Test</SVCURRENTCOMPANY>
      </STATICVARIABLES>
    </DESC>
    <DATA>
      <TALLYMESSAGE>
        <LEDGER ACTION="CREATE">
           <NAME>name2</NAME>
           //OTHER LEDGER DETAILS GO HERE (same as you did with no changes)
        </LEDGER>
      </TALLYMESSAGE>
    <DATA>
  </BODY>

注意- 您需要创建 XML 属性ACTION并分配值CREATE。这与您通过其 GUI 在 Tally 中创建新分类帐时完全相同 - 将进入“帐户信息 > 分类帐 > 创建”,类似地,如果您想更改分类帐然后设置ACTION="ALTER "

于 2019-06-06T09:21:37.050 回答
2

<RequestDesc>, <RequestData>标签仅用于导出导入,它是<Desc> ,<Data>

于 2019-04-30T04:15:26.573 回答
0

这是根据最新版本更新/更改分类帐所需的最低 XML,即Tally ERP 9 Series A 6.6

<ENVELOPE>
  <HEADER>
    <VERSION>1</VERSION>
    <TALLYREQUEST>IMPORT</TALLYREQUEST>
  </HEADER>

  <BODY>
    <DATA>
      <TALLYMESSAGE>
        <LEDGER NAME="D1" ACTION="ALTER">
          <!-- Fields -->
        </LEDGER>
      </TALLYMESSAGE>
    <DATA>
  </BODY>
</ENVELOPE>

请注意,分类帐名称现在作为 XML 属性提及 <LEDGER NAME="D1" ACTION="ALTER">

大师的理货进口屏幕

于 2020-09-11T17:43:26.223 回答
0

我用 & 替换了 & ;

现在它没有显示错误未知请求

于 2020-12-24T08:16:07.860 回答
0

Maybe I am too late to answer this question. Even I had this problem, but finally I found out that problem was due to the character encoding of the XML file. What I did is as follows:

Goto SaveAs > Select- AllFiles > yourfilename.xml

(Below will be a character encoding dropdown choose- ANSI or UTF-8 only )

This resolved my problem and I was able to POST the XML file.

Hope it helps.

于 2020-07-09T23:15:56.997 回答