| |
TCUMobile. Описание файлов обмена.
Для работы приложения TCUMobile2 требуется срез базы данных, содержащийся в файле TCUMobileBase.xml. Файл создается стандартными средствами VB.NET при сохранении объекта Dataset с использованием стандартной схемы. Поскольку данные из этого файла импортируются в приложение на мобильном устройстве теми же стандартными средствами, то важно, чтобы структура файла, тэги, описание таблиц и формата полей в точности соответствовали образцу из приложения (файл TCUMobileBase.xml с данными) к этому документу.
Схема работы следующая:
Перед выгрузкой данных в файл и их импортом в приложение TCUMobile2 производится синхронизация наладонника с компьютером с помощью приложения MS ActiveSync, т.е. синхронизируется содержимое папок «Мои документы» мобильного устройства и папки синхронизации на компьютере, например, «C:\Users\Elena\Documents\Мои документы на PocketPC» .
Приложение, обеспечивающее выгрузку данных в файл TCUMobileBase.xml должно поместить этот файл в папку синхронизации компьютера. После размещения указанного файла в эту папку автоматически начинается процесс синхронизации, по окончанию которого файл TCUMobileBase.xml появляется в папке «Мои документы» мобильного устройства. После этого приложение TCUMobile2 готово к работе.
Так как данные выгружаются из учетной системы в файл TCUMobileBase.xml под определенного торгового агента, то следует предусмотреть «привязку» папки синхронизации к торговому агенту. При выборе нужного торгового агента срез базы данных должен копироваться в определенную папку синхронизации, которая, в свою очередь, однозначно соответствует наладоннику, находящемуся у ранее выбранного торгового агента.
Для существенного уменьшения объема данных применяются различные методы, способствующие избегать размещения «лишних» данных в срезе базы данных. Например, с помощью списка представляемых торговым агентом категорий товаров ограничивается перечень товаров. Выгрузка перечня документов по клиентам, точки доставки которых лежат на маршрутах, обслуживаемых торговым агентом резко уменьшает перечень документов по взаиморасчетам в базе данных. Сам список клиентов ограничивается таким же способом.
Point - торговые точки (склады) и торговые агенты
| Имя поля | Тип поля и размер | Описание |
| point_number | Ключевое, длинное целое, счетчик | Уникальный идентификатор торговой точки либо агента. |
| name_point | Текстовый | Имя торговой точки либо агента. |
| Post | Логический | True – торговый агент, False - торговая точка (склад) |
| comm_agent | Логический | True - признак торгового агента. |
| agent_max_discount | Числовой, двойное с плавающей точкой | Максимально допустимая скидка, которую имеет право предоставлять данный торговый агент. |
| agent_si_allow | Логический | True – разрешена работа с расходными накладными. |
| agent_order_allow | Логический | True - агенту разрешено формирование заказа от клиента. |
| agent_cash_allow | Логический | True – разрешена работа с приходными кассовыми ордерами. |
| MyPoint | Логический | True – признак того, что торговый агент имеет доступ к данной торговой точке (складу) (для режима активных продаж). |
| MyAgent | Логический | True -для торгового агента, работающего с данным КПК. |
articl - статьи (группы движения денег и товаров)
| Имя поля | Тип поля и размер | Описание |
| articl_number | Ключевое, длинное целое, счетчик | Уникальный идентификатор статьи. |
| articl_name | Текстовый, 255 | Название статьи. |
| act_pass | Логический | True – пассивная операция, False – активная операция. |
| closed | Логический | True - закрытая статья, False - открытая статья. Признак используется для определения возможности включения данной статьи в список доступных статей. |
Tovar_ext товары из категорий, доступных данному торговому агенту.
| Имя поля | Тип поля и размер | Описание |
| kat_name | Текстовый | Наименование категории товаров |
| t_name | Текстовый | Наименование товара. |
| izmer_name | Текстовый | Наименование единицы измерения. |
| Kol | Числовой, двойное с плавающей точкой | Суммарное количество товара на всех торговых точках, доступных этому торговому агенту. В единицах измерения товара. |
| cena_rozn | Числовой, двойное с плавающей точкой | Розничная цена товара. |
| cena_rozn_sprav | Числовой, двойное с плавающей точкой | Розничная цена товара. |
| kol_in_pak | Числовой, двойное с плавающей точкой | Количество единиц товара в упаковке. |
| cena_rozn2 | Числовой, двойное с плавающей точкой | Цена розничная 2 (прайс-лист) |
| cena_rozn3 | Числовой, двойное с плавающей точкой | Цена розничная 3 (прайс-лист) |
| cena_rozn4 | Числовой, двойное с плавающей точкой | Цена розничная 4 (прайс-лист) |
| cena_rozn5 | Числовой, двойное с плавающей точкой | Цена розничная 5 (прайс-лист) |
| tovar_number | Числовой, длинное целое | Уникальный идентификатор товара. |
Данная таблица должна быть отсортирована по kat_name, t_name
Tovar – список товаров для активных продаж, принадлежащие к категориям, доступным для данного торгового агента
| Имя поля | Тип поля и размер | Описание |
| kat_name | Текстовый | Наименование категории товаров |
| t_name | Текстовый | Наименование товара. |
| izmer_name | Текстовый | Наименование единицы измерения. |
| Kol | Числовой, двойное с плавающей точкой | Суммарное количество товара на всех торговых точках, доступных этому торговому агенту. В единицах измерения товара. |
| cena_rozn | Числовой, двойное с плавающей точкой | Розничная цена товара. |
| reestr_number | Числовой, длинное целое | Уникальный идентификатор реестровой записи товара. |
| point_number | Числовой, длинное целое | Идентификатор торговой точки, на которой находится товар. |
| cena_rozn_sprav | Числовой, двойное с плавающей точкой | Розничная цена товара. |
| kol_in_pak | Числовой, двойное с плавающей точкой | Количество единиц товара в упаковке. |
| cena_rozn2 | Числовой, двойное с плавающей точкой | Цена розничная 2 (прайс-лист) |
| cena_rozn3 | Числовой, двойное с плавающей точкой | Цена розничная 3 (прайс-лист) |
| cena_rozn4 | Числовой, двойное с плавающей точкой | Цена розничная 4 (прайс-лист) |
| cena_rozn5 | Числовой, двойное с плавающей точкой | Цена розничная 5 (прайс-лист) |
| tovar_number | Числовой, длинное целое | Уникальный идентификатор товара. |
Данная таблица должна быть отсортирована по kat_name, t_name
kat - категории товаров
| Имя поля | Тип поля и размер | Описание |
| kat_number | Ключевое, длинное целое, счетчик | Уникальный идентификатор категории товаров |
| kat_name | Текстовый | Имя категории товаров |
| top_kat | Числовой, длинное целое | Родительская категория для вложенной категории товаров. Ссылается на [kat_number]. |
| ext_kat_name | Поле МЕМО | Полный путь к товару по дереву групп товаров. |
izmer - единицы измерений
| Имя поля | Тип поля и размер | Описание |
| izmer_number | Ключевое, длинное целое, счетчик | Уникальный идентификатор единицы измерения. |
| izmer_name | Текстовый | Имя единицы измерения. |
| default_izmer | Логический | Единица измерения, устанавливаемая по умолчанию |
Client– клиенты, торговые точки которых принадлежат маршрутам, обслуживаемым данным торговым агентом.
| Имя поля | Тип поля и размер | Описание |
| s_name | Текстовый | Первый символ из поля наименования клиента |
| client_name | Текстовый | Наименование клиента |
| Address | Текстовый | Адрес клиента |
| Telefon | Текстовый | Телефон клиента |
| Saldo | Числовой, двойное с плавающей точкой | Сальдо на текущий момент. |
| client_number | Числовой, длинное целое | Уникальный идентификатор клиента |
| Days | Текстовый | |
Nakl_arhiv – перечень документов по клиентам данного торгового агента за период до текущей даты (период устанавливается произвольно при выгрузке данных в xml-файл)
| Имя поля | Тип поля и размер | Описание |
| nakl_number | Ключевое, длинное целое, счетчик | Уникальный идентификатор документа. |
| doc_number | Текстовый | Номер накладной по документу. |
| point2_number | Числовой, длинное целое | Уникальный идентификатор контрагента. Ссылается на client.client_number. |
| name_point | Текстовый | Название нашей торговой точки (склада) |
| date_utv | Дата/время | Дата утверждения документа. |
| sum_vzr | Числовой, двойное с плавающей точкой | Сумма документа, проходящая по взаиморасчету. |
| sum_opl | Числовой, двойное с плавающей точкой | Сумма оплаты по накладной. |
| Osn | Текстовый | Основание документа. |
| nakl_type | Числовой, длинное целое | Тип документа (приходная накладная, накладная на передачу и т.д. - см. список ниже). |
| rash_prih | Логический | True – приходный документ, False – расходный документ. |
| Utv | Логический | True – документ утвержден, содержит только утвержденные документы |
| Arhiv | Числовой, длинное целое | Всегда равно 1 |
| client_name | Текстовый | Наименование клиента |
| point1_number | Числовой, длинное целое | Идентификатор торговой точки (склада) |
| cli_group_name | Текстовый | Поле зарезервировано, содержит в себе символ «_» |
| articl_name | Текстовый | Название статьи, по которой проводится данный документ. |
| agent_number | Числовой, длинное целое | Уникальный идентификатор торгового агента, инициировавшего документ. |
| bundle_nakl_number | Числовой, длинное целое | Номер связанного документа. |
| delive_address | Текстовый | Адрес точки доставки. |
Данная таблица должна быть отсортирована по date_utv, nakl_number
Типы документов:
0 – расходная накладная
1 – приходная накладная
7 – приходный кассовый ордер
10 – списание задолженности
12 – перевод задолженности
16 – приходная накладная (возврат)
delive_point – перечень точек доставки, которые принадлежат маршрутам, обслуживаемым данным торговым агентом
| Имя поля | Тип поля и размер | Описание |
| delive_point_number | Ключевое, длинное целое, счетчик | Уникальный идентификатор точки доставки. |
| delive_address | Текстовый | Адрес точки доставки. |
| point_number | Числовой, длинное целое | Идентификатор клиента, для которого осуществляется доставка. |
| Days | Текстовый | Последовательность дней недели, в которые торговый агент посещает данную точку доставки (согласно маршрутам). 0 - воскресенье, 1 – понедельник, 2 – вторник и т.д. Например, при посещении клиента во вторник, четверг и субботу, значение поля равно «246». |
list – данная таблица не содержит данных, используется для создания необходимой структуры
| Имя поля | Тип поля и размер | Описание |
| list_number | Ключевое, длинное целое, счетчик |
| nakl_number | Числовой, длинное целое |
| reestr_number | Числовой, длинное целое |
| tovar_number | Числовой, длинное целое |
| t_name | Текстовый |
| kol_in_pak | Числовой, двойное с плавающей точкой |
| kol_pak | Числовой, двойное с плавающей точкой |
| kol_add | Числовой, двойное с плавающей точкой |
| kol | Числовой, двойное с плавающей точкой |
| cena_rozn | Числовой, двойное с плавающей точкой |
| sum_skid | Числовой, двойное с плавающей точкой |
Таблицы, которые выгружаются из КПК для последующего импорта в учетную систему.
Данные содержатся в двух текстовых файлах, поля таблиц разделены точками с запятой.
Nakl.csv – шапка документа
List.csv – тело документа
Перед выгрузкой данных из приложения TCUMobile2 производится синхронизация наладонника с компьютером с помощью приложения MS ActiveSync, т.е. синхронизируется содержимое папок «Мои документы» мобильного устройства и папки синхронизации на компьютере, например, «C:\Users\Elena\Documents\Мои документы на PocketPC» .
В начале выгрузки данных TCUMobile2 помещает в папку «Мои документы» КПК пустой текстовый файл-флаг TCUMobileRaw.txt, а затем копирует туда файлы Nakl.csv и List.csv с данными о заказах, продажах, оплатах. После автоматической синхронизации с помощью ActiveSync эти файлы (Nakl.csv, List.csv, TCUMobileRaw.txt) оказываются в папке синхронизации компьютера.
После этого программа, производящая импорт данных из TCUMobile2 и помещающая их в учетную систему должна импортировать данные согласно спецификации, указанной ниже. После этого Nakl.csv и List.csv необходимо скопировать в архив и хранить в качестве истории импорта. После успешного завершения импорта следует создать в папке синхронизакции пустой текстовый файл-флаг TCUMobileOK.txt, сигнализирующий приложению на КПК об успешном завершении операции. При появлении TCUMobileOK.txt в папке «Мои документы» приложение TCUMobile2 завершает операцию выгрузки данных, удаляет Nakl.csv, List.csv, TCUMobileRaw.txt и TCUMobileOK.txt из папки «Мои документы» и сообщает об успешном завершении операции.
Nakl.csv – шапка документа.
| Имя поля | Тип поля и размер | Описание |
| nakl_number | Ключевое, длинное целое, счетчик | Уникальный идентификатор документа. |
| doc_number | Текстовый | Номер накладной по документу. |
| point2_number | Числовой, длинное целое | Уникальный идентификатор контрагента. Ссылается на client.client_number. |
| name_point | Текстовый | Название нашей торговой точки (склада) |
| date_utv | Дата/время | Дата утверждения документа. |
| sum_vzr | Числовой, двойное с плавающей точкой | Сумма документа, проходящая по взаиморасчету. |
| sum_opl | Числовой, двойное с плавающей точкой | Сумма оплаты по накладной. |
| Osn | Текстовый | Основание документа. |
| nakl_type | Числовой, длинное целое | Тип документа. В наладоннике используются всего три типа документов: 0 - расходная накладная, 7 - приходный кассовый ордер, 18 - заказ. |
| rash_prih | Логический | True – приходный документ (приходный кассовый ордер), False – расходный документ (расходная накладная, заказ) |
| Utv | Логический | True – документ утвержден, содержит только утвержденные документы |
| Arhiv | Числовой, длинное целое | Всегда равно 1 |
| client_name | Текстовый | Наименование клиента |
| point1_number | Числовой, длинное целое | Идентификатор торговой точки (склада) |
| cli_group_name | Текстовый | Поле зарезервировано, содержит в себе символ «_» |
| articl_name | Текстовый | Название статьи, по которой проводится данный документ. |
| agent_number | Числовой, длинное целое | Уникальный идентификатор торгового агента, инициировавшего документ. |
| bundle_nakl_number | Числовой, длинное целое | Номер связанного документа. |
| delive_address | Текстовый | Адрес точки доставки. |
| delive_point_number | Числовой, длинное целое | Идентификатор точки доставки |
| ftp_upload | Логический | Используется для выгрузки через интернет. |
List.csv– тело документа
| Имя поля | Тип поля и размер | Описание |
| list_number | Ключевое, длинное целое, счетчик | Уникальный идентификатор записи в документе. |
| nakl_number | Числовой, длинное целое | Идентификатор документа. |
| reestr_number | Числовой, длинное целое | Идентификатор реестровой записи товара. |
| tovar_number | Числовой, длинное целое | Идентификатор товара. |
| t_name | Текстовый | Название товара. |
| kol_in_pak | Числовой, двойное с плавающей точкой | Количество единиц товара в упаковке. |
| kol_pak | Числовой, двойное с плавающей точкой | Количество упаковок в накладной. |
| kol_add | Числовой, двойное с плавающей точкой | Количество единиц товара, не вошедшее в упаковку. |
| kol | Числовой, двойное с плавающей точкой | Количество товара, указанное в документе. |
| cena_rozn | Числовой, двойное с плавающей точкой | Розничная цена товара. |
| sum_skid | Числовой, двойное с плавающей точкой | Сумма скидки указанной в накладной. |
| summa_rozn | Числовой, двойное с плавающей точкой | Сумма розничная для записи по данному товару |
| perc_skid | Числовой, двойное с плавающей точкой | Процент скидки, указанной в накладной. |
|