如何限制Tally XML导出响应中的嵌套字段

huangapple go评论91阅读模式
英文:

How to limit nested fields in Tally XML Export Response

问题

For the given XML request, you want to limit the response to only include the "LedgerName" field under "ALLLEDGERENTRIES.LIST" and the "StockItemName" field under "INVENTORYALLOCATIONS.LIST." To achieve this, you can specify the desired fields in your request like this:

<ENVELOPE>
<HEADER>
<VERSION>1</VERSION>
<TALLYREQUEST>Export</TALLYREQUEST>
<TYPE>Collection</TYPE>
<ID>Vouchers</ID>
</HEADER>
<BODY>
<DESC>
<STATICVARIABLES>
<SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
<SVCURRENTCOMPANY>CompanyName</SVCURRENTCOMPANY>
<SVFROMDATE TYPE="Date">01-01-2023</SVFROMDATE>
<SVTODATE TYPE="Date">01-01-2023</SVTODATE>
</STATICVARIABLES>
<TDL>
<TDLMESSAGE>
<COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No"
ISINTERNAL="No" NAME="Vouchers">
<TYPE> Vouchers : VoucherType</TYPE>
<CHILDOF>$$VchTypeSales</CHILDOF>
<BELONGSTO>Yes</BELONGSTO>
<NATIVEMETHOD>DATE</NATIVEMETHOD>
<NATIVEMETHOD>VOUCHERTYPENAME</NATIVEMETHOD>
<NATIVEMETHOD>ENTEREDBY</NATIVEMETHOD>
<NATIVEMETHOD>PARTYLEDGERNAME</NATIVEMETHOD>
<NATIVEMETHOD>VOUCHERNUMBER</NATIVEMETHOD>
<NATIVEMETHOD>ALLLEDGERENTRIES.LIST:LEDGERNAME</NATIVEMETHOD>
<NATIVEMETHOD>ALLLEDGERENTRIES.LIST:INVENTORYALLOCATIONS.LIST:STOCKITEMNAME</NATIVEMETHOD>
</COLLECTION>
</TDLMESSAGE>
</TDL>
</DESC>
</BODY>
</ENVELOPE>

In this modified request, I have specified only the "LEDGERNAME" field under "ALLLEDGERENTRIES.LIST" and the "STOCKITEMNAME" field under "INVENTORYALLOCATIONS.LIST" to be included in the response.

英文:
<ENVELOPE>
<HEADER>
<VERSION>1</VERSION>
<TALLYREQUEST>Export</TALLYREQUEST>
<TYPE>Collection</TYPE>
<ID>Vouchers</ID>
</HEADER>
<BODY>
<DESC>
<STATICVARIABLES>
<SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
<SVCURRENTCOMPANY>CompanyName</SVCURRENTCOMPANY>
<SVFROMDATE TYPE="Date">01-01-2023</SVFROMDATE>
<SVTODATE TYPE="Date">01-01-2023</SVTODATE>
</STATICVARIABLES>
<TDL>
<TDLMESSAGE>
<COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No"
ISINTERNAL="No" NAME="Vouchers">
<TYPE> Vouchers : VoucherType</TYPE>
<CHILDOF>$$VchTypeSales</CHILDOF>
<BELONGSTO>Yes</BELONGSTO>
<NATIVEMETHOD>DATE</NATIVEMETHOD>
<NATIVEMETHOD>VOUCHERTYPENAME</NATIVEMETHOD>
<NATIVEMETHOD>ENTEREDBY</NATIVEMETHOD>
<NATIVEMETHOD>PARTYLEDGERNAME</NATIVEMETHOD>
<NATIVEMETHOD>VOUCHERNUMBER</NATIVEMETHOD>
<NATIVEMETHOD>ALLLEDGERENTRIES.LIST:LEDGERNAME</NATIVEMETHOD>
<NATIVEMETHOD>ALLLEDGERENTRIES.LIST:INVENTORYALLOCATIONS.LIST:STOCKITEMNAME</NATIVEMETHOD>
</COLLECTION>
</TDLMESSAGE>
</TDL>
</DESC>
</BODY>
</ENVELOPE>

I want to limit the fields in the response against above mentioned XML request, I am successfully able to do it for direct voucher fields but unable to get only "LedgerName" field under the ALLLEDGERENTRIES.LIST and "StockItemName" field under the INVENTORYALLOCATIONS.LIST.

When I send request to tally with the mentioned body it returns all the fields under ALLLEDGERENTRIES.LIST as well as INVENTORYALLOCATIONS.LIST.

答案1

得分: 0

这是一个XML报告生成的示例,其中包括了一些关于凭证和相关信息的字段。请注意,此XML通过TallyConnector生成,使用了对象导向的方式(凭证扩展了BaseTallyObject),这也在TDL中得到了支持。同时,从C#类生成TDL的功能并未向公众发布。

英文:

Its little complicated,

we need to create a new Report to achieve this.

I tried to restrict child fields but didn't find a way without creating custom report.

I will provide sample custom voucher report. with minimal fields, if you want more fields, you can customize it.

Input XML

<ENVELOPE>
<HEADER>
<VERSION>1</VERSION>
<TALLYREQUEST>EXPORT</TALLYREQUEST>
<TYPE>DATA</TYPE>
<ID>TC_VOUCHER</ID>
</HEADER>
<BODY>
<DESC>
<STATICVARIABLES>
<SVEXPORTFORMAT>$$SysName:xml</SVEXPORTFORMAT>
</STATICVARIABLES>
<TDL>
<TDLMESSAGE>
<REPORT ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_VOUCHER">
<FORM>TC_VOUCHER</FORM>
</REPORT>
<FORM ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_VOUCHER">
<PART>TC_VOUCHER</PART>
<XMLTAG>Voucher.LIST</XMLTAG>
</FORM>
<PART ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_BASETALLYOBJECT">
<LINE>TC_BASETALLYOBJECT</LINE>
<REPEAT>TC_BASETALLYOBJECT:TC_BASETALLYOBJECTCOLLECTION</REPEAT>
<SCROLLED>Vertical</SCROLLED>
</PART>
<PART ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_TALLYOBJECT">
<LINE>TC_TALLYOBJECT</LINE>
<REPEAT>TC_TALLYOBJECT:TC_TALLYOBJECTCOLLECTION</REPEAT>
<SCROLLED>Vertical</SCROLLED>
</PART>
<PART ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_VOUCHER">
<LINE>TC_VOUCHER</LINE>
<REPEAT>TC_VOUCHER:TC_VOUCHERCOLLECTION</REPEAT>
<SCROLLED>Vertical</SCROLLED>
</PART>
<PART ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_VOUCHERLEDGER">
<LINE>TC_VOUCHERLEDGER</LINE>
<REPEAT>TC_VOUCHERLEDGER:ALLLEDGERENTRIES</REPEAT>
<SCROLLED>Vertical</SCROLLED>
</PART>
<LINE ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_BASETALLYOBJECT">
<FIELDS>TC_GUID</FIELDS>
<XMLTAG>BASETALLYOBJECT</XMLTAG>
</LINE>
<LINE ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_TALLYOBJECT">
<FIELDS>TC_ALTERID,TC_MASTERID</FIELDS>
<XMLTAG>TALLYOBJECT</XMLTAG>
<USE>TC_BASETALLYOBJECT</USE>
</LINE>
<LINE ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_VOUCHER">
<FIELDS>TC_DATE,TC_VOUCHERTYPE,TC_VOUCHERNUMBER</FIELDS>
<XMLTAG>VOUCHER</XMLTAG>
<EXPLODE>TC_VOUCHERLEDGER:Yes</EXPLODE>
<USE>TC_TALLYOBJECT</USE>
</LINE>
<LINE ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_VOUCHERLEDGER">
<FIELDS>TC_LEDGERNAME,TC_AMOUNT</FIELDS>
<XMLTAG>ALLLEDGERENTRIES.LIST</XMLTAG>
</LINE>
<FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_GUID">
<SET>$GUID</SET>
<XMLTAG>GUID</XMLTAG>
</FIELD>
<FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_ALTERID">
<SET>$AlterId</SET>
<XMLTAG>ALTERID</XMLTAG>
</FIELD>
<FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_MASTERID">
<SET>$MasterId</SET>
<XMLTAG>MASTERID</XMLTAG>
</FIELD>
<FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_DATE">
<SET>$Date</SET>
<XMLTAG>DATE</XMLTAG>
</FIELD>
<FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_VOUCHERTYPE">
<SET>$VOUCHERTYPENAME</SET>
<XMLTAG>VOUCHERTYPENAME</XMLTAG>
</FIELD>
<FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_VOUCHERNUMBER">
<SET>$VoucherNumber</SET>
<XMLTAG>VOUCHERNUMBER</XMLTAG>
</FIELD>
<FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_LEDGERNAME">
<SET>$LEDGERNAME</SET>
<XMLTAG>LEDGERNAME</XMLTAG>
</FIELD>
<FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_AMOUNT">
<SET>$AMOUNT</SET>
<XMLTAG>AMOUNT</XMLTAG>
</FIELD>
<COLLECTION ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="TC_VOUCHERCOLLECTION">
<TYPE>VOUCHERS</TYPE>
<NATIVEMETHOD>ALTERID</NATIVEMETHOD>
<NATIVEMETHOD>ALLLEDGERENTRIES.LEDGERNAME</NATIVEMETHOD>
</COLLECTION>
</TDLMESSAGE>
</TDL>
</DESC>
</BODY>

</ENVELOPE>

OuputXML

&lt;VOUCHER.LIST&gt;
&lt;VOUCHER&gt;
&lt;GUID&gt;52889497-5b6b-403d-8f83-224e3c7759b4-00001484&lt;/GUID&gt;
&lt;ALTERID&gt;8816&lt;/ALTERID&gt;
&lt;MASTERID&gt;5252&lt;/MASTERID&gt;
&lt;DATE&gt;1-Apr-23&lt;/DATE&gt;
&lt;VOUCHERTYPENAME&gt;Sales&lt;/VOUCHERTYPENAME&gt;
&lt;VOUCHERNUMBER&gt;1&lt;/VOUCHERNUMBER&gt;
&lt;ALLLEDGERENTRIES.LIST&gt;
&lt;LEDGERNAME&gt;ABCD India Pvt Ltd&lt;/LEDGERNAME&gt;
&lt;AMOUNT&gt;35,070.00&lt;/AMOUNT&gt;
&lt;/ALLLEDGERENTRIES.LIST&gt;
&lt;ALLLEDGERENTRIES.LIST&gt;
&lt;LEDGERNAME&gt;Sales&lt;/LEDGERNAME&gt;
&lt;AMOUNT&gt;35,070.00&lt;/AMOUNT&gt;
&lt;/ALLLEDGERENTRIES.LIST&gt;
&lt;/VOUCHER&gt;
&lt;/VOUCHER.LIST&gt;

Note: This XML is generated through TallyConnector and uses object orientation(Voucher Extends BaseTallyObject) which is also supported in TDL
and AutoTDL generation from C# class feature is not released to public.

huangapple
  • 本文由 发表于 2023年8月5日 03:45:18
  • 转载请务必保留本文链接:https://go.coder-hub.com/76838781.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定