Thursday, January 3, 2013

ഇന്ന് 3 ജനുവരി 2013, ഞാന്‍ ബ്ലോഗിങ്ങ് ആരംഭിച്ചു . ഒരു രസത്തിനു വേണ്ടിയാണോ എന്ന് ചോതിച്ചാല്‍  അല്ല , കുറച്ചു കാര്യവും ഉണ്ട്. എന്തിനാണെന്നോ മലയാളത്തില്‍ ഇതു വരെ ഞാന്‍ നപ്രോഗ്രമ്മിങ്ങിനെ പറ്റിയുള്ള ഒരു നല്ല  സൈറ്റ് കാണ്ടിട്ടില്ല. അത് കൊണ്ട് അതിനുള്ള ഒരു എളിയശ്രമം നടത്തിനോക്കാം എന്ന് കരുതി ...........
Sample code for Integrating tally 9 with vb.net

''
'' XML input
''

Dim strXmlData As String = "<ENVELOPE>" & _
                                "<HEADER>" & _
                                    "<TALLYREQUEST>Import Data</TALLYREQUEST>" & _
                                    "<TYPE>DATA</TYPE>" & _
                                    "<ID>Vouchers</ID>" & _
                                "</HEADER>" & _
                                "<BODY>" & _
                                    "<IMPORTDATA>" & _
                                        "<REQUESTDESC>" & _
                                            "<REPORTNAME>Vouchers</REPORTNAME>" & _
                                            "<STATICVARIABLES>" & _
                                                "<SVCURRENTCOMPANY>Company</SVCURRENTCOMPANY>" & _
                                            "</STATICVARIABLES>" & _
                                        "</REQUESTDESC>" & _
                                        "<REQUESTDATA>" & _
                                            "<TALLYMESSAGE>" & _
                                                "<VOUCHER VCHTYPE=""Receipt"" ACTION=""Create"">" & _
                                                    "<VOUCHERNUMBER>GNL-000000219M</VOUCHERNUMBER>" & _
                                                    "<DATE>20121212</DATE>" & _
                                                    "<NARRATION></NARRATION>" & _
                                                    "<VOUCHERTYPENAME>Receipt</VOUCHERTYPENAME>" & _
                                                    "<PARTYLEDGERNAME>Consultation</PARTYLEDGERNAME>" & _
                                                    "<EFFECTIVEDATE>20121212</EFFECTIVEDATE>" & _
                                                    "<ALLLEDGERENTRIES.LIST>" & _
                                                        "<LEDGERNAME>Consultation</LEDGERNAME>" & _
                                                        "<ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>" & _
                                                        "<AMOUNT>200</AMOUNT>" & _
                                                    "</ALLLEDGERENTRIES.LIST>" & _
                                                    "<ALLLEDGERENTRIES.LIST>" & _
                                                        "<LEDGERNAME>cash</LEDGERNAME>" & _
                                                        "<ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE>" & _
                                                        "<AMOUNT>-200</AMOUNT>" & _
                                                    "</ALLLEDGERENTRIES.LIST>" & _
                                                "</VOUCHER>" & _
                                                "<VOUCHER VCHTYPE=""Receipt"" ACTION=""Create"">" & _
                                                    "<VOUCHERNUMBER>GNL-000000220M</VOUCHERNUMBER>" & _
                                                    "<DATE>20121212</DATE>" & _
                                                    "<NARRATION></NARRATION>" & _
                                                    "<VOUCHERTYPENAME>Receipt</VOUCHERTYPENAME>" & _
                                                    "<PARTYLEDGERNAME>Registration</PARTYLEDGERNAME>" & _
                                                    "<EFFECTIVEDATE>20121212</EFFECTIVEDATE>" & _
                                                    "<ALLLEDGERENTRIES.LIST>" & _
                                                        "<LEDGERNAME>Registrationd</LEDGERNAME>" & _
                                                        "<ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>" & _
                                                        "<AMOUNT>100</AMOUNT>" & _
                                                    "</ALLLEDGERENTRIES.LIST>" & _
                                                    "<ALLLEDGERENTRIES.LIST>" & _
                                                        "<LEDGERNAME>cash</LEDGERNAME>" & _
                                                        "<ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE>" & _
                                                        "<AMOUNT>-100</AMOUNT>" & _
                                                    "</ALLLEDGERENTRIES.LIST>" & _
                                                "</VOUCHER>" & _
                                            "</TALLYMESSAGE>" & _
                                        "</REQUESTDATA>" & _
                                    "</IMPORTDATA>" & _
                                "</BODY>" & _
                        "</ENVELOPE>"



''
''Following code creates a web request and using this request we can read/write data from/to tally 9
''
 Dim cookies As CookieContainer = New CookieContainer()
 Dim HttpWReq As HttpWebRequest = CType(WebRequest.Create("http://localhost:9000"),   HttpWebRequest)
 With HttpWReq
     .KeepAlive = False
     .Connection = "localhost:9000"
     .Method = "POST"
     .ContentType = "text/xml"
     .CookieContainer = cookies
     .Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
     .ContentLength = Text.Encoding.UTF8.GetByteCount(strXmlData)
 End With

 Dim requestWriter As IO.StreamWriter = New IO.StreamWriter(HttpWReq.GetRequestStream())
 requestWriter.Write(strXmlData)
 requestWriter.Flush()
 requestWriter.Close()

 Dim responseReader As IO.StreamReader = New  IO.StreamReader(HttpWReq.GetResponse().GetResponseStream())
 Dim responseData As String = responseReader.ReadToEnd()

responseReader.Close()
HttpWReq.GetResponse().Close()
HttpWReq.Abort()