logo
logo

Доработки экспорт и импорт XML: "Валюта не найдена"

список тем создать тему

экспорт и импорт XML: "Валюта не найдена"

Версия:

Тип: Ошибка
Статус: Отклонено
Важность: Если время будет
Ошибка 2.0.217 #148
Описание
Версия 218 скачанная сегодня, 1 октября 2011
 
Сделал экспорт нескольких операций, посмотрел формат, на основе его сделал файл с одной операцией, при попытке импорта говорит "Валюта не найдена.". Сразу подумал что я что-то накосячил, взял исходный файл экспорта (который выгрузил вначале), с ним такая же история - на все операции ругается на валюту.
 
PS Очень рад, что вы пошли в сторону такого простого формата, как XML, а то с этими Екселями, openофисами сложно что-то сделать адекватное и автоматическое.
Теперь можно написать простецкий скрипт, который будет перегонять банковские выписки в xml в нужном формате, и легко вносить в программу!
Последовательность действий
Выгрузить пару операций в XML, и загрузить (импортировать) обратно, на все ругается "Валюта не найдена."
 
Сам пробовал ещё свой файл загружать, всё таже ошибка:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<ability-cash>
  <transactions>
    <transaction>
      <date>2011-07-07</date>
      <expense>
        <executed />
        <expense-account>
          <name>Безнал/карточки</name>
          <currency>RUR</currency>
        </expense-account>
        <expense-amount>-2228.0000</expense-amount>        
        <category classifier='Статья'>\Разные статьи расхода\Гардероб\Одежда</category>
      </expense>
      <comment>для души</comment>
    </transaction>
  </transactions>
</ability-cash>

Файлы: import.xml
Ну как бы, это не баг а фича. Если в 217-й сборке валюты брались, в том числе, и из файла, в который импортируются данные, то теперь все валюты и счета должны быть определены в импортируемом xml. Просто определите все валюты и счета в xml-файле и он должен импортироваться без проблем.
 
Кстати, по задумке, примерно аналогичное поведение должно быть и в отношении классификаторов. В Вашем примере есть ссылка на классификатор "Статья", если программа не ругнулась, это баг, его нужно исправлять. Программа должна ругаться на отсутствие классификатора, но не категории.
Dervish:
Ну как бы, это не баг а фича...

 
Понял, спасибо! У вас нет где-то хотя бы какой-то маленькой документации по формату файла? Я надеялся, что импорт-экспорт будет очень толерантным и будет "хавать" всё подряд, а оказалось что есть куча нюансов))
В общем, если сделать экспорт в xml, то там почти все видно. Структура документа именно такая, какая нужна. Добавить к этой структуре можно только вот что:
 
1. AbilityCash поддерживает только кодировку utf-8, попытка импортировать xml в другой кодировке добром не закончится.
 
2. К любому тегу в потоке импорта можно добавить атрибут ref="...", где вместо многоточия можно указать "местоположение" данного тега в исходном документе. Например, модуль импорта, конвертирующий данные из Excel-я может подставлять в этот атрибут название листа и ячейки исходного документа. Если при импорте будет замечена ошибка, AbilityCash прочитает значения атрибута ref для ошибочного тега и всех его родителей, сконкатенирует все значения и добавит получившееся в сообщение об ошибке. Ну а пользователь сможет найти в исходном документе ошибочное место.