Приветствую Вас Гость!
| Регистрация | Вход | RSS



Категории раздела

SimERP Web-import: описание функционала [2]
Подробное описание модулей и подходов SimERP

Пожалуйста, авторизуйтесь!

Поиск


[2023.02.05]
Перепрофилирование сайта (0)

Статьи

Главная » Статьи » Легаси (неактуальное) » SimERP Web-import: описание функционала

SimERP WebImport
Концепция веб-импорта в SimERP

В отличие от существующих разработок, модуль WebImport системы SimERP следует негласному правилу "одной кнопки". Т.е. функции и процедуры, составляющие некоторый единый план выполнения, скрыты от пользователя и хранятся в шаблонизированном виде в настройках конкретной операции. Такие настройки доступны Администратору системы или другим авторизованным лицам.
Словом, однажды настроенные, функции SimERP могут быть выполнены нажатием одной кнопки или меню.
Кроме прочего, импорт данных предоставляет дополнительные способы реализации некоторых аспектов, таких как кеширование данных, фильтрация, способ хранения результатов и пр. Главная особенность модуля SimERP WebImport (и отличие от тривиальных контент-грабберов) - таргетирование, настраиваемость и гибкость т.н. "Импортеров" SimERP.
Некоторые опции поставки SimERP предполагают наличие встроенных Импортеров, однако и создание собственного - задача, которая вполне по силам Администратору системы или лицу, имеющему даже базовые знания в области HTML (команда разработчиков SimERP также рассматривает создание Импортеров под заказ).
 
Сущность Импортера SimERP

Основная задача веб-Импорта - параметризованная загрузка и последующее сохранение данных.
Параметры выполнения импорта:
1. Адрес загрузки
2. Глубина "детализации" (уровень вложенности гиперссылок ресурса)
3. Тип хранения (файловая система или база данных)

Эти три параметра являются основными, и если основная задача импорта данных заключается лишь в загрузке из Интернета с последующим сохранением на жестком диске, то такую операцию можно возложить на персонал, при условии, что массив данных невелик. Однако такая ситуация все же редкость: чаще предприятия нуждаются в профильных данных (каталог продукции конкурентов, списки компаний в определенной сфере, словари, справочники, реестры документов и пр. - все это вводится вручную или покупаются у третьих лиц), ввод таких данных сопровождается (и должен сопровождаться) строгим контролем качества, а также своевременной классификацией вводимых элементов.
Кроме прочего, любой импорт частично теряет смысл, если данные поступают в необработанном, "грязном" или избыточном виде; примером может служить информация с веб-ресурсов, не располагающая интерфейсами для использования данных клиентами, а также отсутствие RSS-каналов.
Таким образом, нефильтрованные тексты способны значительно увеличить объем базы данных, замедлить выполнение запросов к БД, а также заметно ухудшить качество поиска (иногда - сделать его невозможным, если речь пойдет о кросс-запросах): наряду с полезными текстовыми данными пользователю будут выданы результаты поиска также в дополнительных разделах импортированных данных, не имеющих отношения к полезной информации, однако точно также соответствующих критериям поиска (!), и, как следствие, - неверная статистика, ложные выводы, отсутствие достоверной информации о положении дел (если речь идет о мониторинге в установленных срезах).
Для решения этих и других задач разработан механизм обработки данных перед сохранением, реализуемый неким сценарием импорта, или Фильтрацией (аналогия - триггеры в СУБД).
Такие сценарные подкоманды применяются на всех уровнях вложенности ссылок - главным образом с целью заблаговременно отсечь лишние данные, тем самым повысить качество обрабатываемого буфера, ускорить процесс обработки в целом, ограничиться лишь текстом, соответствующим неким критериям отбора.
Набор подкоманд (в контексте SimERP - Фильтры) входят в понятие Импортера, но не являются обязательными атрибутами, т.е. простейший Импортер может не выполнять фильтрации, а выполнять загрузку сайта согласно признакам ссылок "как есть", т.е. целиком.
На рисунке приведено диалоговое окно в режиме выполнения импорта данных.

 
Понятие Фильтра Импорта
 
Под Фильтром обычно понимают заранее подготовленный набор простейших команд, выполняющих действия над текстом.
Пример - отсечение данных до первого вхождения указанного текста, удаление блоков от вхождения указанного и вплоть до вхождения конечного участка, поиск и замена текстовых фрагментов и пр. Однако сложно ограничиться подобным набором, если речь идет об "осмысленном" Импорте с внесением данных в БД, при том что зачастую весьма важно соблюдение привязок записей к группам, классификаторам и т.д.
Например, в случае с препаратами целесообразно сперва убедиться в существовании в БД записи классификации препарата, его производителя, базового действующего вещества и пр. В таких случаях механизм сохранения в базе данных гарантирует целостность ссылок (ссылок записей в БД) благодаря каскадному внесению записей (в этом примере подразумевается наличие информации об указанных полях):
1. Сперва вносятся данные производителя: название компании
2. Вносится адрес компании с привязкой к созданной компании
3. Вносятся данные контактных лиц с такой же привязкой
4. Вносятся контакты данные лиц с привязкой к данным, сформированным в п.3
5. Сохраняется информация о классификаторе препарата
6. Сохраняется информация о препарате с привязкой к данным, сохраненным в п.1 и п.5
7. Сохраняется инструкция по использованию препарата, исходя из номера записи, сохраненной в п.6
8. Сохранение тегов с названиеми предприятия-производителя, названия препарата, действующего вещества, группы препаратов (к примеру, по классификации ATC), а также любых дополнительных текстовых значений. Например, названия сайта, с которого была получена информация.

Эти и другие возможности реализуемы с помощью так называемых Ячеек Памяти и простейших функций, выполняющих создание записей базы данных.
Для примера можно ограничиться лишь пояснением, что в п.1 в соотвествующей Ячейке оказалось название организации-производителя, в п.2 - ее почтовый адрес и т.д., сценарий сохранения данных оперирует значениями Ячеек, внося их в те поля БД, где это требуется.
Следует заметить, что в системе SimERP введены специальный режим присвоения значений, срок жизни Ячеек и пр., - все это визуально котнролируется на этапе создания Фильтра.
В результате автору сценария предоставлена возможность либо комбинирования значений Ячеек в единую строку (с сохраненем в файл), либо запись в БД согласно установленным Системой правилам.

Кэш загруженных данных
Иногда целесообразно хранить данные в том виде, в каком они поступили извне, т.е в необработанном виде, или же на какой-либо промежуточной стадии обработки. К примеру, резонно сохранить текст после отсечения ненужных разделов сайта, рубрик, мнений в разделе обсуждений и рекламных банеров. В итоге пользователь получит сугубо цельные ("полезные") HTML-данные, которые можно сохранить и периодически проверять на предмет обновлений (в настройках Импортера при этом следует установить соответствующий флажок).
Так, совершенно несложно настроить Импорт новостей на автомобильную тему, или, к примеру, отслеживать новые поступления в онлайн-магазинах, новые темы на форумах и пр., не ограничиваясь RSS-каналами, которых сайты могут и не предоставлять.
С другой стороны, иногда полезно выполнение простой закачки сайтов с целью обеспечения доступа к их данным в оффлайн-режиме.
Для обоих случаев предусмотрено средство, называемое Кэшем данных.
Точно так же, как и в обычных справочниках SimERP, в Кэше импортированных данных пользователю предоставлены широкие возможности манипуляций с текстом: отбор (фильтрация отображаемых записей), отбор по сеансу загрузки, по Импортеру и т.д. 

 

На рисунке показан вариант фильтрации записей (тема - трудоустройство, т.е. здесь отбор играет самую важную роль) по ключевым словам, таким как название города ("киев"), телефонному коду "(044)", - оба слова обязуют фильтрующие функции к показу только тех записей, где указанные слова найдены; далее следуют слова, наличие которых в тексте запрещено:

@acity. - маска адреса электронной почты одного из кадровых агентств, деятельность которого не внушает доверия;
@wlife. - маска адреса электронной почты организации класса "healthware", целесообразность сотрудничества с которой сомнительна.
Также в тексте отбора указан запрет таких словоформ, как "промоутер", "представитель", "косметика", "менеджер" и "продажи".
Следует обратить внимание на две вещи: во-первых, в отличие от сервисов Google, SimERP не пытается найти словоформы, т.е. точность отбора достигается частичным указанием слов, во-вторых - согласно правилам именования слов отбора, разделителем является запятая, символ запрета (как в php, c++ и пр.) - восклицательный знак. В этом случае запятая в искомом тексте запрещена к использованию. Для подобных ситуаций предусмотрен иной, "полный" синтаксис:

есть "(044)", есть "киев", нет "@acity.", нет "@wlife", нет "слово1, слово2"

или такой:

has "(044)", has "киев", hasnot "@acity.", hasnot "@wlife", hasnot "слово1, слово2"

или даже такой:

+"(044)", +"киев", -"@acity.", -"@wlife", -"слово1, слово2"

Примечание: в полном варианте написания строки отбора допускается комбинирование стилей. Пример корректной строки отбора:

есть "(044)", has "киев", !"@acity.", -"@wlife", нет "слово1, слово2"

В конечном итоге отбор может существенно уменьшить количество отображаемых данных.
Чтобы отобразить текст, находящийся в Кэше, можно или дважды щелкнуть мышью по нужной записи (при этом текст откроется во всплывающем окне Расширенного редактора), или нажать красную стрелку "вниз" (слева внизу диалога).
Внимание! Если в свойствах Импортера установлен флаг "Сохранять только Ячейки", ссылка "текст" остается неактивной, в то время как SimERP автоматически отобразит кэшированные Ячейки записи, что равносильно нажатию на ссылку "ячейки": 

 

 
В расширенном режиме модуля "Кэш" выделение нескольких записей конкатенирует (объединяет) текстовые данные (если те имеются в наличии), позволяя производить групповые операции над записями: экспорт в простой текстовый файл, экспорт в файл-шаблон (удобно при использовании организацией ftp-доступа к собственным статическим корпоративным сайтам), формирование Указания (в случае, если текущий оператор обладает соответствующими правами и полномочиями, описанными в его бизнес-позиции), создание корпоративного сообщения, экспорт в модуль Частные записи, а также вынос в Главное меню (создание т.н. "Стикера" - записи, отображаемой в Главном меню SimERP) и Статьи (точно так же, как и в случае с Указанием - регламентируется правами и полномочиями пользователя).
На рисунке показан объединенный буфер нескольких записей. Для наглядности окончание одной из записей обозначено выделением в тексте.

 

Примечание: нет необходимости каждый раз вводить строку отбора, т.к. после нажатия кнопки "сохранить" (справа от поля ввода) она автоматически вводится в поле ввода отбора и применяется при открытии диалога "Кэш". Чтобы отобразить все записи, достаточно снять флажок "отбор" (слева от поля ввода).
Чтобы открыть диалоговое окно модуля "Кэш веб-Импорта", можно выбрать соответствующий пункт контекстного меню в модуле "Импортеры", как показано на рисунке.

 

 
В таком случае с списках отбора кеша автоматически будет выбран актуальный Импортер.
Можно также выбрать пункт Главного меню:

 

Сеты веб-Импортеров

Преследуя единственную цель - упростить рутинные, ежедневные задачи пользователя, - разработан механизм группирования импорта данных, сохранив при этом гибкость и удобство использования всего потенциала SimERP. Параллельно с тем фактом, что Импортер как модульная единица включает в себя множество других единиц, сам Импортер может оказаться частью чего-то более "высокоорганизованного", а именно - набора Импортеров. Смысл такого группирования - пресловутый "принцип одной кнопки": либо с использованием планировщика, либо в ручном режиме на выполнение ставится не Импортер, а некая группа, объединенная заданным критерием. К примеру, этим критерием может стать тема трудоустройства. Следовательно, целесообразно сгруппировать интересующие пользователя Импортеры в единую структуру, Сет (от англ. Set - набор). Однако не следует думать, что сгруппированные таким образом Импортеры всего лишь запускаются нажатием одного меню: кроме удобства выполнения, Сеты наделены дополнительными свойствами и опциями.
На рисунке показан список готовых Сетов Главного меню SimERP.

 

 
Сеты доступны в отдельном разделе Главного меню SimERP. Нажатие на подпункт меню приведет к выполнению всего Сета согласно предустановленным настройкам. Выбор подменю с нажатой клавишей Control вызовет дополнительные временные опции выполнения Сета, как показано на рисунке:

 

 
На данном примере показано, какие слова являются определяющими, являются приемлемыми данные для сохранения; лимитирование количества импортируемых данных (подсчитываются уже импортированные данные), а также целевая Группа Частных записей, куда будет направлен результирующий объединенный текст. Об объединении текста нескольких Импортеров Сета будет рассказано ниже.
Добавление Сета - весьма простая и очевидная процедура, выполнение которой под силу любому сотруднику, не имеющему каких-либо познаний в области веб-программирования. В том случае, если в системе уже присутствуют Импортеры (либо входящие в пакет поставки, либо разработанные сотрудниками организации), достаточно лишь добавить их в новый Сет, пользуясь стандартной кнопокй "+".
В общем случае, диалоговое окно Сета должно выглядеть, как на рисунке ниже.

 

 
Следует обратить внимание на важность некоторых моментов: флаг "Включен" говорит о том, что Сет активен (запуск разрешен), "Сбор в единый файл" - опция, управляющая выводом полученных данных в указанный файл (здесь - относительный путь; в качестве директории используется рабочая папка пользователя, указанная в настройках его учетной записи, однако можно указать и полный путь), если не указан разделитель сборки единого файла - записи объединяются "как есть", в противном случае строка ретранслируется согласно стандартам подстановки символов MS Word, т.е.
будет переведен в символы возврата каретки и новой строки, - в табуляцию и т.д.
Для тех пользователей, кто не знаком с символами подстановки, предусмотрен визуальный помощник, который доступен по щелчку кнопки с черной стрелкой вниз (справа).
Также можно ограничить прием данных текстом в надписи ссылки и адресе. К примеру, если указать в запрете текста ссылок "click.cgi" (как пример!), то ссылки на определенные банеры будут игнорироваться гарантированно, независимо от качества сценария Фильтра.
Переназначение параметров Импортеров - удобное средство однразово выполнить импорт, не перенастраивая сами Импортеры. Например, можно отключить фильтрацию в целом.
Для отключения из спектра выполняемых Импортеров какого-то одного отдельно взятого, вовсе не обязательно удалять его из Сета: достаточно отключить его, нажав кнопку "Выключить". После этого указанный Импортер примет вид, как показано на рисунке выше (программа телеканала СТБ засвечена серым и отсутствует "+" перед названием Импортера).

 


Очередность импорта регулируется очередностью хранения Импортеров в Сетах. Для их перемещения можно воспользоваться красными стрелками "вверх" и "вниз".
Флажок "Общедоступный для всех пользователей" открывает доступ к Сету всем желающим, однако оставляет эксклюзивное право редактирования и удаления лишь его автору и Администратору SimERP.
 
А также...
Периодический запуск выбранных Импортеров возлагается на процедуру Ре-активации Импорта.
В окне настроек пользователь может отказаться или, наоборот, установить некоторые дополнительные параметры. Следует помнить, что параметр "Интервал" отсчитывает время в минутах после окончания очередного сеанса выполнения (расчет производится по формуле "общее время выполнения выбранных имп. + указанный интервал в минутах").

 

 
Чтобы получить наиболее полное "удовольствие" от автоматизированного процессинга веб-контента сторонних ресурсов, в 2012 г. введен в действие модуль "Подписка на веб-Импорт" - по окончании обработки Импортеров и Сетов SimERP выполняет рассылку результатов по адресам эл. почты, указанных в параметрах подписчиков.
Подробнее о подписке на веб-Импорт - в статье раздела "Инструкции и спецификации" (на англ., скачать PDF). Русская версия пошагового руководства на данный момент в разработке. Следите за новостями!
 
Категория: SimERP Web-import: описание функционала | Добавил: Andy (2012.02.27)
Просмотров: 868 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]