Проверьте ваучеры, интегрированные в подсчет с промежуточного стола - PullRequest
0 голосов
/ 03 июня 2019

Если у меня есть 5 ваучеров в промежуточной таблице базы данных сервера SQL, и я импортировал все 5 ваучеров в счет с использованием API Tally XML.

Как проверить и перепроверить ваучеры между подсчетом и SQL, используя только номер ваучера?

Должен ли я читать сводную информацию о ваучерах из счета и затем извлекать номера ваучеров из данных XML? После извлечения номеров ваучеров я могу сравнить их с промежуточной таблицей.

Как я могу просто экспортировать только номер ваучера или одно конкретное поле из отчета в подсчете?

1 Ответ

1 голос
/ 04 июня 2019

Знаете ли вы номер ваучера после импорта в Tally? В зависимости от ответа на этот вопрос я обновлю свой ответ.

Случай 1: Если вы знаете номер ваучера, вы можете использовать Tally XML для запроса этого конкретного номера ваучера, и если вы получите положительный ответ, то этот ваучер существует в подсчете. Не нужно читать резюме ваучера. Вам просто нужно будет найти определенный тег элемента в ответе XML - если этот элемент существует = ваучер существует.

Случай 2: Но я предполагаю, что вы не знаете номер ваучера, который был создан во время импорта. В таком случае. Это будет немного сложнее. Дайте мне знать, и я обновлю любое решение, которое у меня есть.

- Обновление -

После обсуждения (см. Комментарии) я обновляю ответ в соответствии с делом 1. Структура XML-запроса -

<ENVELOPE>
  <HEADER>
    <VERSION>1</VERSION>
    <TALLYREQUEST>EXPORT</TALLYREQUEST>
    <TYPE>COLLECTION</TYPE>
    <ID>FindParticularVoucher</ID>
  </HEADER>
  <BODY>
    <DESC>
      <STATICVARIABLES>
        <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
        <SVCURRENTCOMPANY>FOO COMPANY</SVCURRENTCOMPANY>
        <VCHNO>ABC1234</VCHNO>
      </STATICVARIABLES>
      <TDL>
        <TDLMESSAGE>
          <COLLECTION NAME="FindParticularVoucher" ISINITIALIZE="YES">
            <TYPE>Voucher</TYPE>
            <FILTER>GetInvoiceVoucher</FILTER>
          </COLLECTION>
          <VARIABLE NAME="VCHNO">
            <TYPE>String</TYPE>
          </VARIABLE>
          <SYSTEM TYPE="FORMULAE" NAME="GetInvoiceVoucher">$VoucherNumber = $$String:##VCHNO</SYSTEM>
        </TDLMESSAGE>
      </TDL>
    </DESC>
  </BODY>
</ENVELOPE>

Не забудьте изменить название компании и номер ваучера в тегах SVCURRENTCOMPANY и VCHNO Xml.

Вы можете получить сложный XML-ответ. Все, что вам нужно сделать, это найти XML-узел с именем Voucher в узле сбора - Конверт / Тело / Данные / Сбор / Ваучер. Если этот VoucherNode существует = ваш ваучер существует в подсчете. В этом случае вам не нужно экспортировать какие-либо данные или номер ваучера.

...