2016-04-13 1 views
2

Я разрабатываю приложение для масштабирования в swing. Теперь я хочу интегрироваться с Tally. Если я импортирую данные в Tally, я получаю такую ​​ошибку.Tally не импортирует данные из XML

Importing Data from 'New.xml' on 13-Apr-2016 at 14:11:51 

Importing Data to company: 'Technologies Pvt Ltd' 

ERROR: Voucher: ID:<REMOTEID:face3a8f-f920-4781-a14b-ed095d0b0145-00000006>,  Voucher Type: Payment, Source Voucher Number: 203, Voucher Number: , Date: 

Import Summary 
Created : 0 
Altered : 0 
Deleted : 0 
Combined: 0 
Ignored : 0 
Errors : 1 
---------------------------------------------- 

Это мой XML-файл.

<ENVELOPE> 
<HEADER> 
<TALLYREQUEST>Import Data</TALLYREQUEST> 
</HEADER> 
<BODY> 
<IMPORTDATA> 
<REQUESTDESC> 
<REPORTNAME>Vouchers</REPORTNAME> 
<STATICVARIABLES> 
<SVCURRENTCOMPANY>Technologies Pvt Ltd</SVCURRENTCOMPANY> 
</STATICVARIABLES> 
</REQUESTDESC> 
<REQUESTDATA> 
<TALLYMESSAGE xmlns:UDF="TallyUDF"> 
<VOUCHER REMOTEID="face3a8f-f920-4781-a14b-ed095d0b0145-00000006" VCHKEY="face3a8f-f920-4781-a14b-ed095d0b0145-0000a748:000000061" VCHTYPE="Payment" ACTION="Create" OBJVIEW="Accounting Voucher View"> 
<OLDAUDITENTRYIDS.LIST TYPE="Number"> 
<OLDAUDITENTRYIDS>-1</OLDAUDITENTRYIDS> 
</OLDAUDITENTRYIDS.LIST> 
<DATE>20160413</DATE> 
<GUID>face3a8f-f920-4781-a14b-ed095d0b0145-00000006</GUID> 
<NARRATION>100</NARRATION> 
<VOUCHERTYPENAME>Payment</VOUCHERTYPENAME> 
<VOUCHERNUMBER>203</VOUCHERNUMBER> 
<PARTYLEDGERNAME>Cash</PARTYLEDGERNAME> 
<CSTFORMISSUETYPE/> 
<CSTFORMRECVTYPE/> 
<FBTPAYMENTTYPE>Default</FBTPAYMENTTYPE> 
<PERSISTEDVIEW>Accounting Voucher View</PERSISTEDVIEW> 
<VCHGSTCLASS/> 
<DIFFACTUALQTY>No</DIFFACTUALQTY> 
<ISMSTFROMSYNC>No</ISMSTFROMSYNC> 
<ASORIGINAL>No</ASORIGINAL> 
<AUDITED>No</AUDITED> 
<FORJOBCOSTING>No</FORJOBCOSTING> 
<ISOPTIONAL>No</ISOPTIONAL> 
<EFFECTIVEDATE>20170331</EFFECTIVEDATE> 
<USEFOREXCISE>No</USEFOREXCISE> 
<ISFORJOBWORKIN>No</ISFORJOBWORKIN> 
<ALLOWCONSUMPTION>No</ALLOWCONSUMPTION> 
<USEFORINTEREST>No</USEFORINTEREST> 
<USEFORGAINLOSS>No</USEFORGAINLOSS> 
<USEFORGODOWNTRANSFER>No</USEFORGODOWNTRANSFER> 
<USEFORCOMPOUND>No</USEFORCOMPOUND> 
<USEFORSERVICETAX>No</USEFORSERVICETAX> 
<ISEXCISEVOUCHER>No</ISEXCISEVOUCHER> 
<EXCISETAXOVERRIDE>No</EXCISETAXOVERRIDE> 
<USEFORTAXUNITTRANSFER>No</USEFORTAXUNITTRANSFER> 
<EXCISEOPENING>No</EXCISEOPENING> 
<USEFORFINALPRODUCTION>No</USEFORFINALPRODUCTION> 
<ISTDSOVERRIDDEN>No</ISTDSOVERRIDDEN> 
<ISTCSOVERRIDDEN>No</ISTCSOVERRIDDEN> 
<ISTDSTCSCASHVCH>No</ISTDSTCSCASHVCH> 
<INCLUDEADVPYMTVCH>No</INCLUDEADVPYMTVCH> 
<ISSUBWORKSCONTRACT>No</ISSUBWORKSCONTRACT> 
<ISVATOVERRIDDEN>No</ISVATOVERRIDDEN> 
<IGNOREORIGVCHDATE>No</IGNOREORIGVCHDATE> 
<ISSERVICETAXOVERRIDDEN>No</ISSERVICETAXOVERRIDDEN> 
<ISISDVOUCHER>No</ISISDVOUCHER> 
<ISEXCISEOVERRIDDEN>No</ISEXCISEOVERRIDDEN> 
<ISEXCISESUPPLYVCH>No</ISEXCISESUPPLYVCH> 
<ISVATPRINCIPALACCOUNT>No</ISVATPRINCIPALACCOUNT> 
<ISSHIPPINGWITHINSTATE>No</ISSHIPPINGWITHINSTATE> 
<ISCANCELLED>No</ISCANCELLED> 
<HASCASHFLOW>Yes</HASCASHFLOW> 
<ISPOSTDATED>No</ISPOSTDATED> 
<USETRACKINGNUMBER>No</USETRACKINGNUMBER> 
<ISINVOICE>No</ISINVOICE> 
<MFGJOURNAL>No</MFGJOURNAL> 
<HASDISCOUNTS>No</HASDISCOUNTS> 
<ASPAYSLIP>No</ASPAYSLIP> 
<ISCOSTCENTRE>No</ISCOSTCENTRE> 
<ISSTXNONREALIZEDVCH>No</ISSTXNONREALIZEDVCH> 
<ISEXCISEMANUFACTURERON>No</ISEXCISEMANUFACTURERON> 
<ISBLANKCHEQUE>No</ISBLANKCHEQUE> 
<ISVOID>No</ISVOID> 
<ISONHOLD>No</ISONHOLD> 
<ORDERLINESTATUS>No</ORDERLINESTATUS> 
<VATISAGNSTCANCSALES>No</VATISAGNSTCANCSALES> 
<VATISPURCEXEMPTED>No</VATISPURCEXEMPTED> 
<ISVATRESTAXINVOICE>No</ISVATRESTAXINVOICE> 
<ISDELETED>No</ISDELETED> 
<CHANGEVCHMODE>No</CHANGEVCHMODE> 
<ALTERID/> 
<MASTERID/> 
<VOUCHERKEY>183927679483912</VOUCHERKEY> 
<EXCLUDEDTAXATIONS.LIST/> 
<OLDAUDITENTRIES.LIST/> 
<ACCOUNTAUDITENTRIES.LIST/> 
<AUDITENTRIES.LIST/> 
<DUTYHEADDETAILS.LIST/> 
<SUPPLEMENTARYDUTYHEADDETAILS.LIST/> 
<INVOICEDELNOTES.LIST/> 
<INVOICEORDERLIST.LIST/> 
<INVOICEINDENTLIST.LIST/> 
<ATTENDANCEENTRIES.LIST/> 
<ORIGINVOICEDETAILS.LIST/> 
<INVOICEEXPORTLIST.LIST/> 
<ALLLEDGERENTRIES.LIST> 
<OLDAUDITENTRYIDS.LIST TYPE="Number"> 
<OLDAUDITENTRYIDS>-1</OLDAUDITENTRYIDS> 
</OLDAUDITENTRYIDS.LIST> 
<LEDGERNAME>WATER EXP</LEDGERNAME> 
<GSTCLASS/> 
<ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE> 
<LEDGERFROMITEM>No</LEDGERFROMITEM> 
<REMOVEZEROENTRIES>No</REMOVEZEROENTRIES> 
<ISPARTYLEDGER>No</ISPARTYLEDGER> 
<ISLASTDEEMEDPOSITIVE>Yes</ISLASTDEEMEDPOSITIVE> 
<AMOUNT>-100.00</AMOUNT> 
<SERVICETAXDETAILS.LIST/> 
<BANKALLOCATIONS.LIST/> 
<BILLALLOCATIONS.LIST/> 
<INTERESTCOLLECTION.LIST/> 
<OLDAUDITENTRIES.LIST/> 
<ACCOUNTAUDITENTRIES.LIST/> 
<AUDITENTRIES.LIST/> 
<INPUTCRALLOCS.LIST/> 
<DUTYHEADDETAILS.LIST/> 
<EXCISEDUTYHEADDETAILS.LIST/> 
<SUMMARYALLOCS.LIST/> 
<STPYMTDETAILS.LIST/> 
<EXCISEPAYMENTALLOCATIONS.LIST/> 
<TAXBILLALLOCATIONS.LIST/> 
<TAXOBJECTALLOCATIONS.LIST/> 
<TDSEXPENSEALLOCATIONS.LIST/> 
<VATSTATUTORYDETAILS.LIST/> 
<COSTTRACKALLOCATIONS.LIST/> 
<REFVOUCHERDETAILS.LIST/> 
<INVOICEWISEDETAILS.LIST/> 
<VATITCDETAILS.LIST/> 
</ALLLEDGERENTRIES.LIST> 
<ALLLEDGERENTRIES.LIST> 
<OLDAUDITENTRYIDS.LIST TYPE="Number"> 
<OLDAUDITENTRYIDS>-1</OLDAUDITENTRYIDS> 
</OLDAUDITENTRYIDS.LIST> 
<LEDGERNAME>Cash</LEDGERNAME> 
<GSTCLASS/> 
<ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE> 
<LEDGERFROMITEM>No</LEDGERFROMITEM> 
<REMOVEZEROENTRIES>No</REMOVEZEROENTRIES> 
<ISPARTYLEDGER>Yes</ISPARTYLEDGER> 
<ISLASTDEEMEDPOSITIVE>No</ISLASTDEEMEDPOSITIVE> 
<AMOUNT>100.00</AMOUNT> 
<SERVICETAXDETAILS.LIST/> 
<BANKALLOCATIONS.LIST> 
<DATE>20170331</DATE> 
<INSTRUMENTDATE>20170331</INSTRUMENTDATE> 
<NAME>d29faa3c-2cb8-429e-9d50-cb4243b68a8d</NAME> 
<TRANSACTIONTYPE>Cheque</TRANSACTIONTYPE> 
<PAYMENTFAVOURING>Water Exp</PAYMENTFAVOURING> 
<CHEQUECROSSCOMMENT>A/c Payee</CHEQUECROSSCOMMENT> 
<UNIQUEREFERENCENUMBER>3CODSsNV01ippV7T</UNIQUEREFERENCENUMBER> 
<STATUS>No</STATUS> 
<PAYMENTMODE>Transacted</PAYMENTMODE> 
<BANKPARTYNAME>Water Exp</BANKPARTYNAME> 
<ISCONNECTEDPAYMENT>No</ISCONNECTEDPAYMENT> 
<ISSPLIT>No</ISSPLIT> 
<ISCONTRACTUSED>No</ISCONTRACTUSED> 
<AMOUNT>1000.00</AMOUNT> 
<CONTRACTDETAILS.LIST/> 
</BANKALLOCATIONS.LIST> 
<BILLALLOCATIONS.LIST/> 
<INTERESTCOLLECTION.LIST/> 
<OLDAUDITENTRIES.LIST/> 
<ACCOUNTAUDITENTRIES.LIST/> 
<AUDITENTRIES.LIST/> 
<INPUTCRALLOCS.LIST/> 
<DUTYHEADDETAILS.LIST/> 
<EXCISEDUTYHEADDETAILS.LIST/> 
<SUMMARYALLOCS.LIST/> 
<STPYMTDETAILS.LIST/> 
<EXCISEPAYMENTALLOCATIONS.LIST/> 
<TAXBILLALLOCATIONS.LIST/> 
<TAXOBJECTALLOCATIONS.LIST/> 
<TDSEXPENSEALLOCATIONS.LIST/> 
<VATSTATUTORYDETAILS.LIST/> 
<COSTTRACKALLOCATIONS.LIST/> 
<REFVOUCHERDETAILS.LIST/> 
<INVOICEWISEDETAILS.LIST/> 
<VATITCDETAILS.LIST/> 
</ALLLEDGERENTRIES.LIST> 
<PAYROLLMODEOFPAYMENT.LIST></PAYROLLMODEOFPAYMENT.LIST> 
<ATTDRECORDS.LIST></ATTDRECORDS.LIST> 
</VOUCHER> 
</TALLYMESSAGE> 
</REQUESTDATA> 
</IMPORTDATA> 
</BODY> 
</ENVELOPE> 

Есть ли ошибка в моем файле XML, пожалуйста, помогите мне. в Интернете недостаточно документа.

+0

Никакого тела, чтобы помочь мне –

ответ

0

Попробуйте передавая недопустимые данные XML, как это: <![CDATA[ {INVALID XML}]]>

0

Я видел этот пост, когда я пытался одной и той же задачи, которые вы делаете, хотите поделиться нечто, что я сделал для решения это может быть, это поможет вам идти дальше ..

код Java как ниже

TallyRequest.java

package tallyrequest; 

import java.io.BufferedReader; 
import java.io.ByteArrayInputStream; 
import java.io.ByteArrayOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.OutputStream; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import java.net.URLConnection; 

public class TallyRequest { 

    public String CreateRequest() { 
     String TXML = null; 

     TXML = "<ENVELOPE>" 
       + "<HEADER><TALLYREQUEST>Import Data</TALLYREQUEST></HEADER>" 
       + "<BODY>" 
       + "<IMPORTDATA>" 
       + "<REQUESTDESC><REPORTNAME>Vouchers</REPORTNAME><STATICVARIABLES><SVCURRENTCOMPANY>Crane</SVCURRENTCOMPANY></STATICVARIABLES></REQUESTDESC>" 
       + "<REQUESTDATA>" 
       + "<TALLYMESSAGE xmlns:UDF=\"TallyUDF\">" 
       + "<VOUCHER REMOTEID=\"00000001\" VCHTYPE=\"Receipt\" ACTION=\"Create\" OBJVIEW=\"Accounting Voucher View\">"  
       + "<DATE>20160701</DATE>" 
       + "<VOUCHERTYPENAME>Receipt</VOUCHERTYPENAME>" 
       + "<VOUCHERNUMBER>3</VOUCHERNUMBER>" 
       + "<PARTYLEDGERNAME>Cash</PARTYLEDGERNAME>" 
       + "<PERSISTEDVIEW>Accounting Voucher View</PERSISTEDVIEW>"  
       + "<ALLLEDGERENTRIES.LIST>" 
       + "<LEDGERNAME>Mahes</LEDGERNAME>" 
       + "<ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>" 
       + "<AMOUNT>0</AMOUNT>"  
       + "</ALLLEDGERENTRIES.LIST>" 
       + "<ALLLEDGERENTRIES.LIST>"  
       + "<LEDGERNAME>Cash</LEDGERNAME>" 
       + "<ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE>" 
       + "<AMOUNT>-150000.00</AMOUNT>"   
       + "</ALLLEDGERENTRIES.LIST>"  
       + "</VOUCHER>" 
       + "</TALLYMESSAGE>" 
       + "</REQUESTDATA>" 
       + "</IMPORTDATA>" 
       + "</BODY>" 
       + "</ENVELOPE>"; 
     return TXML; 
    } 

    public void SendToTally() throws Exception { 
     String Url = "http://127.0.0.1:9000/"; 

     String SOAPAction = ""; 

     String Voucher = this.CreateRequest(); 

     // Create the connection where we're going to send the file. 
     URL url = new URL(Url); 
     URLConnection connection = url.openConnection(); 
     HttpURLConnection httpConn = (HttpURLConnection) connection; 

     ByteArrayInputStream bin = new ByteArrayInputStream(Voucher.getBytes()); 
     ByteArrayOutputStream bout = new ByteArrayOutputStream(); 

     // Copy the SOAP file to the open connection. 

     copy(bin, bout); 

     byte[] b = bout.toByteArray(); 

     // Set the appropriate HTTP parameters. 
     httpConn.setRequestProperty("Content-Length", String.valueOf(b.length)); 
     httpConn.setRequestProperty("Content-Type", "text/xml; charset=utf-8"); 
     httpConn.setRequestProperty("SOAPAction", SOAPAction); 
     httpConn.setRequestMethod("POST"); 
     httpConn.setDoOutput(true); 
     httpConn.setDoInput(true); 

     // Everything's set up; send the XML that was read in to b. 
     OutputStream out = httpConn.getOutputStream(); 
     out.write(b); 
     out.close(); 

     // Read the response and write it to standard out. 

     InputStreamReader isr = new InputStreamReader(httpConn.getInputStream()); 
     BufferedReader in = new BufferedReader(isr); 

     String inputLine; 

     while ((inputLine = in.readLine()) != null) { 
      System.out.println(inputLine); 
     } 

     in.close(); 
    } 

    public static void copy(InputStream in, OutputStream out) 
      throws IOException { 

     // do not allow other threads to read from the 
     // input or write to the output while copying is 
     // taking place 

     synchronized (in) { 
      synchronized (out) { 

       byte[] buffer = new byte[256]; 
       while (true) { 
        int bytesRead = in.read(buffer); 
        if (bytesRead == -1) { 
         break; 
        } 
        out.write(buffer, 0, bytesRead); 
       } 
      } 
     } 
    } 

    public static void main(String[] args) throws Exception { 
     TallyRequest r = new TallyRequest(); 
     r.SendToTally(); 
    } 
} 

здесь это отправить вывод XML, как показано ниже

XML Message ниже

<ENVELOPE> 
    <HEADER> 
     <TALLYREQUEST>Import Data</TALLYREQUEST> 
    </HEADER> 
     <BODY> 
     <IMPORTDATA> 
      <REQUESTDESC> 
       <REPORTNAME>Vouchers</REPORTNAME> 
       <STATICVARIABLES> 
        <SVCURRENTCOMPANY>Crane</SVCURRENTCOMPANY> 
       </STATICVARIABLES> 
      </REQUESTDESC> 
      <REQUESTDATA> 
       <TALLYMESSAGE xmlns:UDF="TallyUDF"> 
        <VOUCHER REMOTEID="00000001" VCHTYPE="Receipt" ACTION="Create" OBJVIEW="Accounting Voucher View"> 
         <DATE>20160701</DATE> 
         <VOUCHERTYPENAME>Receipt</VOUCHERTYPENAME> 
         <VOUCHERNUMBER>3</VOUCHERNUMBER> 
         <PARTYLEDGERNAME>Cash</PARTYLEDGERNAME> 
         <PERSISTEDVIEW>Accounting Voucher View</PERSISTEDVIEW> 
         <ALLLEDGERENTRIES.LIST> 
          <LEDGERNAME>Mahes</LEDGERNAME> 
          <ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE> 
          <AMOUNT>0</AMOUNT> 
         </ALLLEDGERENTRIES.LIST> 
         <ALLLEDGERENTRIES.LIST> 
          <LEDGERNAME>Cash</LEDGERNAME> 
          <ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE> 
          <AMOUNT>-150000.00</AMOUNT> 
         </ALLLEDGERENTRIES.LIST> 
        </VOUCHER> 
       </TALLYMESSAGE> 
      </REQUESTDATA> 
     </IMPORTDATA> 
    </BODY> 
</ENVELOPE> 

приведенных выше код будет указывать гроссбух и законопроект, принятый от Явы подсчитывать для названия компании, когда XML сообщений передается в таблицу, убедитесь, что талли имеет те же аргументы, которые передаются или изменяются там, где это необходимо, иначе сообщение не пройдет, и вы получите сообщение об ошибке, которое можно увидеть в java-консоли, а также в файле tally.imp на Tally.ERP9 корень складной р. Если вы сомневаетесь в том, что структура XML-сообщений Tally из вашей таблицы просто извлекает резервную копию Ledger или любой другой, который когда-либо понадобился для отправки данных, чтобы получить формат .. или ссылайтесь на ссылки, которые были полезны для меня, чтобы отправить правильный формат XML ,

Full reference to Tally and Java integration based on SOAP

Architecture Reference

Более п.л. порадовала сделать комментарий разработки ваших потребностей, так что я постараюсь помочь вам!

0

@shimbu shambu, я также столкнулся с той же проблемой и разрешил ее, изменив значение даты в теге DATE. Эта проблема возникла из-за изменения даты, прошедшего в xml и текущей даты в tally.If вы используете образовательную версию tally, то вы не можете изменить дату в подсчете. Вы должны изменить его в XML-файле.