Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Автоматическое создание объектов в электронном архиве с помощью сценария.

, ,

Аннотация: В статье рассматриваются принципы построения и способы использования языка сценариев, предназначенного для автоматизированного создания и модификации объектов системы Евфрат. Язык ориентирован на имеющуюся структуру данных электронного архива и позволяет выполнять полный набор действий с папками и документами системы.

Введение

В системе Евфрат, так же как и во многих схожих системах, существует несколько способов ввода информации: ввод через системный интерфейс, ввод через функции API (Applied programmer interface). Но этих способов часто не хватает или они являются не очень удобными для использования в некоторых задачах. Для этого в системах предусматривается ввод информации при помощи языка сценария. Сценарий (скрипт) - последовательность команд, которая заставляет приложение выполнять какую-либо операцию. Такой язык помогает автоматизировать часто повторяющиеся действия в системе. Для этих, а в дальнейшем и для других, более сложных, целей был создан язык сценария системы Евфрат и его интерпретатор, а также способ автоматической записи скрипта для создания любого объекта системы. В статье будут приведены примеры использования языка для реальных задач.

Система Евфрат и способы задания информации в ней

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

НЕ нашли? Не то? Что вы ищете?

Основными объектами системы Евфрат являются:

·  Документы.

·  Папки, которые могут содержать в себе документы и другие папки.

·  Псевдонимы папок и документов, представляющие собой ссылки на объект-оригинал.

·  Реквизиты, которые создает пользователь для ручной разметки документов.

·  Картотеки, представляющие собой механизм ручной реквизитной разметки документов, а также папки, в которых хранятся псевдонимы всех документов, размеченных с использованием данной картотеки. Каждая картотека содержит набор реквизитов, по которым размечается документ.

·  Отложенные запросы, представляющие собой механизм повторного использования однажды созданного запроса.

·  Рабочий стол, на котором в порядке, задаваемом пользователем, расположены все прочие объекты.

Теперь рассмотрим способы ввода информации, создания и изменения свойств перечисленных выше объектов системы.

Первый - это ввод информации об объектах через графический интерфейс Евфрата. Его хорошо использовать, когда множество операций не повторяется, а также, когда нет необходимости передачи информации из каких-нибудь приложений в электронный архив. Этот способ очень простой и не требует знания языков программирования и структуры Евфрата. Можно даже сказать, что он основан на принципе "что не запрещено, то разрешено". Его недостаток заключается в том, что приходится выполнять множество однотипных, повторяющихся операций. При работе с большими объемами документов такой способ может оказаться неэффективным.

Второй - это ввод информации об объектах при помощи API функций [1]. Этот способ используется, когда есть необходимость управлять информацией электронного архива из внешних приложений. Он может использоваться профессиональными программистами и требует использования компиляторов, а при изменении требований к передаваемой информации необходимо будет перекомпилировать приложение.

Третий - это ввод информации при помощи языка сценария. Такой способ не требует знания языков программирования, наличия компиляторов и пр. Для того, чтобы им воспользоваться, необходимо иметь описание языка и любой редактор текстов, а также представление об объектах электронного архива и их свойствах. Этим способом можно пользоваться как для обычной работы с Евфратом, так и при занесении информации в систему из внешних приложений.

Построение сценария для ввода информации

Сценарий для ввода информации об объектах в систему Евфрат представляет собой последовательность команд специально разработанного языка сценария, с подробным описанием которого можно познакомиться в руководстве по системе [2].

Сценарий разделен на секции, каждая секция соответствует определенному объекту электронного архива и описывает создание этого объекта или изменение его свойств.

Начало секции идентифицируется специальным ключевым словом. Конец секции определяется либо началом следующей секции, либо окончанием файла скрипта. Внутри секции находятся ключевые слова, отвечающие за свойства объекта. Ниже приведен пример сценария для создания папки с документом.

#FOLDER_BEGIN=Папка N1

Создание папки "Папка N1".

#DOCUMENT=PROJECT. DOC

Создание внутри папки документа "PROJECT. DOC".

%WORDSINDEX=1

Документ должен быть проиндексирован по всем словам.

%PAGE=1

Первая страница документа.

%FILE=E:\TECH_DOC\PROJECT. DOC

Путь до файла, составляющего первую страницу документа.

Дата поступления=14 сентября 2000г.

Документ размечен по реквизиту "Дата поступления" и имеет значение "14 сентября 2000г.". Причем, если такой реквизит не существует, то он создается.

Ключевые слова=Интерфейс

Документ размечен по реквизиту "Ключевые слова" и имеет значение "Интерфейс".

Ключевые слова=Механизм

Документ размечен по реквизиту "Ключевые слова" и имеет значение "Механизм".

#FOLDER_END

Конец папки "Папка N1".

Используя определенные правила, пользователь может самостоятельно создавать сценарии. Но для облегчения этого процесса была создана система автоматической записи в файл сценария необходимых команд. После выполнения процедуры, реализующей такую запись, пользователь может подкорректировать полученный файл в любом доступном редакторе.

Подпись:
На рис.1 изображено окно диалога для автоматического создания сценария.

Рис.1. Автоматическое создание сценария

В среднем окне представлены объекты системы Евфрат. Правое окно предназначено для просмотра файлов, из которых состоят документы. Для того, чтобы произошла автоматическая запись в файл сценария операторов для создания объектов системы Евфрат, пользователю достаточно скопировать эти объекты или группы объектов из среднего окна в левое.

Если некоторый объект уже существует в системе, и требуется лишь модифицировать его свойства, то нужно или предварительно произвести необходимые настройки процедуры создания сценария или уже полученный файл сценария откорректировать вручную.

Предусмотрены различные варианты создания сценария. При одном из этих вариантов одновременно с автоматической записью в файл сценария команд для создания документов системы Евфрат записываются в специальный архив файлы, составляющие эти документы. В этом случае команды сценария, описывающие эти документы, указывают на соответствующие файлы в образовавшемся архиве. Использование такого сценария и архива будет рассмотрено позднее.

Автоматическая интерпретация сценария

Для того, чтобы система Евфрат понимала сценарии, был создан интерпретатор языка сценариев. На вход интерпретатору подаются пути до файлов и опции по созданию объектов. На рис.2 изображено окно диалога для запуска интерпретатора.

Подпись: 

Рис.2. Диалог запуска интерпретатора сценариев

Рассмотрим более подробно некоторые моменты при разборе файла скрипта в Евфрате.

Как уже было сказано выше, язык сценария в Евфрате позволяет автоматизировать создание и изменение свойств любых объектов, содержащихся в базе – документов, папок, картотек и т. д. Будет ли создан новый объект или будет модифицироваться уже существующий – это может быть задано в самом скрипте для каждого описываемого объекта (для этого используются идентификаторы, уникальные для каждого объекта в текущей базе). Если для какого-то объекта идентификаторы не заданы, то выбор между созданием и модификацией осуществляется исходя из выбранных настроек в диалоге запуска интерпретатора (чек-бокс "Всегда создавать объекты").

Файл со сценарием разбирается построчно, при этом на экран выводится прогресс-монитор с объемом (в процентах) уже разобранного текста. В Евфрате можно выбрать сразу несколько файлов скриптов для разбора, но разбираться они будут независимо друг от друга.

При разборе файла сценария сначала создаются объекты, которые являются оригиналами. Для каждого объекта могут быть заданы: родительский идентификатор (в папке с этим идентификатором, если таковая существует, будет создан объект) и идентификатор самого объекта (в этом случае будет осуществлен поиск по этому идентификатору и произведена модификация найденного документа). Если не задан родительский идентификатор, то объект ищется в текущей папке, а если не задан идентификатор самого объекта, то объект идентифицируется по имени (в случае документа – еще и по составу). Картотеки и отложенные запросы всегда создаются только на рабочем столе. Для остальных объектов – если родительский идентификатор был задан, и нам не удалось обнаружить соответствующую папку, то объект не будет создан (модифицирован).

В секции описания документа может находиться подсекция индексации, состоящая из строчек вида <Имя реквизита>=<значение реквизита>. Для каждой из таких строчек проверяется наличие в базе реквизита с названием <Имя реквизита> и производится индексация документа. Если реквизит с названием <Имя реквизита> в базе не найден, то он создается. Но при этом тип создаваемого реквизита может не всегда соответствовать вашим ожиданиям.

Чтобы новый реквизит точно соответствовал требованиям пользователя, его лучше создавать с помощью секции описания реквизита. При обработке данной секции проверяется наличие в базе реквизита с таким же именем. Если реквизита с заданным именем нет в базе, он создается, и для него могут быть определены все свойства.

В последнюю очередь создаются псевдонимы объектов. Псевдонимы создаются только для тех объектов, оригиналы которых были созданы на основании данного сценария или уже находились в базе. Если для псевдонима не задан идентификатор оригинала, он не будет создан.

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

Сравнение с другими системами

Прежде чем попытаться сравнить язык сценария системы Евфрат с языками сценариев других систем, необходимо заметить, что все они являются специализированными и ориентированы на объекты и потребности, которые присущи конкретным системам.

В составе ряда банковских систем документооборота существуют встроенные языки для расширения приложений, такие, как DiasoftSCRIPT, VisualRSL [3]. Эти языки являются С-образными, т. е. содержат операторы условий, циклов и пр., из-за чего работа с ними для пользователя, не имеющего навыков программирования, представляется затруднительной. В отличие от них, язык сценария системы Евфрат не использует сложные операторы, а пользуется только ключевыми словами, которым можно поставить в соответствие объекты и их свойства. Похожие проблемы возникают при написании сценариев на языках Интернет-технологий (JavaScript, Perl и Tcl) [4].

Во многих издательских и графических системах также существуют возможности написания сценария [5, 6], но для них требуются специальные редакторы, которые входят в поставку этих систем. Для создания же сценария в электронном архиве Евфрат не нужны какие-либо специальные средства, а достаточно наличие любого текстового редактора.

Если рассмотреть язык сценария диалога для речевого управления [7], а также языки сценария настройки операционных систем или некоторых приложений, то по своей функциональности они очень похожи на язык сценариев в системе Евфрат. Однако для этих языков отсутствует утилита автоматического построения сценария, которая помогает в создании сложных последовательностей объектов.

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

Примеры использования языка сценария системы Евфрат

Приведем примеры наиболее распространенных задач, в которых целесообразно, а порой и необходимо использовать язык сценария.

Допустим, электронный архив Евфрат работает в клиент-серверном режиме и необходимо, чтобы на каждом, вновь созданном, месте работа начиналась с одинаковым набором объектов с определенными свойствами. Для этого необходимо один раз написать простой сценарий по созданию таких объектов и запускать его на новых клиентских местах, не утруждая себя программированием или рутинной работой по созданию объектов через системный интерфейс.

Занесение информации в электронный архив из других приложений. Для этого приложение должно уметь создавать правильный файл сценария и при помощи сообщения Windows уведомлять Евфрат, чтобы он ввел информацию по этому сценарию.

Если периодически отписывать в файл сценария информацию о вновь созданных объектах электронного архива, то при случайной их потере достаточно запустить те сценарии, которые отвечают за создание пропавших объектов. Тем самым не придется вручную заново создавать объекты.

Если необходимо перенести информацию из одной базы Евфрата в другую, то без создания сценария не обойтись. Эту задачу можно решить довольно просто, используя режим автоматического создания сценария.

Иногда возникает задача переноса из одного электронного архива в другой не только объектов, но и файлов, составляющих документы системы. Эту проблему можно решить только при использовании режима автоматического создания сценария с опцией перенесения в архив файлов документа, которая была описана выше.

Все указанные способы не требуют непосредственного редактирования текста сценария. Однако при желании пользователь может в любом текстовом редакторе внести любые изменения.

Заключение

Потратив несколько часов на написание скриптов, автоматизирующих рутинные задачи по созданию и модификации объектов системы Евфрат, которые выполняются ежедневно, можно сэкономить немало времени и нервов. Написание сценариев - это способ повысить производительность своего труда, а также решить специфические задачи, не дожидаясь, пока разработчики системы выпустят готовые инструменты. Используя описанный в этой статье механизм, можно повысить надежность системы, сохранность и переносимость данных.

Литература

1.  "Программный интерфейс электронного архива: возможности и принципы построения". – настоящий сборник.

2.  http://www. *****.

3.  "ABC "под лупой". - http://www. *****/rus/bt/1998/nr8/12.htm.

4.  Джон Остераут "Сценарии: высокоуровневое программирование для XXI века". - http://osp. airport. *****/os/1998/03/12.htm.

5.  Jesse Andrewarth "У вас есть MEL?". - http://*****/tutor/maya/11/.

6.  "Сценарии для издательских "пьес". - http://www. *****/publish/1999/07/15.htm.

7.  , , "Язык описания сценария диалога для речевого управления". - Развитие безбумажной технологии в организационных системах. Сборник трудов Института системного анализа РАН 1999г. M.: Эдиториал УРСС, 1999.