|   |   | Автоматизация предприятия |   |   |
|
Часть 4. Автоматика.Глава 12. Автоматические расчетыВведениеВ системе БОС исторически принята следующая терминология в области автоматических действий над информацией. Процесс обработки информации объектов среды и объектов экранного интерфейса называется РАСЧЕТОМ. Последовательность расчетов, выполняемых в одной логической цепочке, называется ПАКЕТОМ. Расчет является автоматическим процессом, но может выполняться с некоторым участием пользователя при вводе каких-либо дополнительных данных или принятия альтернативных решений. С этой точки зрения термины расчет и пакет должны применяться в сочетании со словом автоматический: автоматический расчет, автоматический пакет. При дальнейшем изложении будут использоваться оба варианта в зависимости от контекста обсуждаемой темы. С точки зрения описания структуры расчетов и пакетов им можно дать следующие более строгие определения: АВТОМАТИЧЕСКИЙ РАСЧЕТ - гибкая алгоритмическая структура, описывающая процесс обработки информации, элементами которой выступают различные действия в объектах среды и экранного интерфейса, запросы и ссылки на другие элементы. АВТОМАТИЧЕСКИЙ ПАКЕТ - гибкая алгоритмическая структура, состоящая из последовательности автоматических расчетов с указанием места и способа запуска пакета на выполнение. Без указания места запуска пакет попадает в список пользователя указанной группы и может запускаться автономно через меню. Пакет является структурой более высокого уровня, не только объединяющей расчеты, но, главное, определяющей точку и способ активации в среде БОС. Даже для запуска одного расчета потребуется включить его в отдельный пакет. Для простоты обсуждения будет допускаться замена понятия пакет термином расчет, тем более, что в половине случаев пакеты состоят из одного расчета. Каждая среда имеет свой набор пакетов и расчетов, обслуживающих учетные задачи и прочие информационные потребности. Расчеты дополняют штатные средства системы возможностью гибкой обработки (контроля) информации и возможностью создания произвольного сценария взаимодействия пользователя с объектами среды БОС. Автоматический расчет1.1. АрхитектураАрхитектура расчета может быть представлена условной схемой, показанной на рис.12.1. Каждый расчет имеет уникальный НОМЕР в диапазоне 1...9999 и произвольное ИМЯ, присваиваемое администратором и отражающее его назначение. Расчет состоит из набора ЭЛЕМЕНТОВ различного типа по действию над информацией объектов среды и экрана. Элементы могут включаться в ФОРМУЛУ расчета, левая часть которой является результатом, возвращаемым при завершении расчета в точку запуска. Элементы могут содержать различные УСЛОВИЯ обработки информации определяемых в них объектов.
Рис.12.1. Условная схема расчета Выполнение расчета заключается в последовательной обработке его элементов в порядке следования их в списке. При определенных условиях обработка элементов может повторяться, пропускаться или прерываться. Например, для формирования значения суммы в панели оборотов счета 1201 необходимо по коду МБП (из панели) в справочнике ЦЕНЫ МБП получить значение цены и умножить её на количество (из панели). Если этот расчет включить в пакет, который будет запускаться на поле СУММА, то результат расчета попадет в поле ввода и пользователю надо будет его только подтвердить. 1.2. ЭлементыКаждый элемент имеет уникальный НОМЕР в диапазоне 1...999, произвольное ИМЯ, присваиваемое администратором, и значение, присваиваемое до или после его обработки. Значение может быть любого типа длиной до 130 знаков. Элементы могут различного типа, в зависимости от объекта обработки. Если тип элемента не определен, такой элемент служит для хранения различных констант. Например, наиболее часто в расчетах используются следующие типы элементов:
Полный типаж элементов значительно больше. Он охватывает множество потребностей по заданию сценариев и доступа к информации среды. Но это предмет другой книги. До обработки элемента ему может быть присвоено значение другим элементом данного или другого расчета. Либо это значение каждый раз инициализируется в случае циклического расчета. Обработка элемента производится в соответствии с заданными в нем условиями, которые для каждого типа имеют свою отличную от других спецификацию. После обработки элемента его значение может измениться на новое, являющееся результатом поиска в базе или получения некоторых данных из панели. Это новое значение может быть продублировано в других элементах этого или другого расчета. Например, при обработке перечисленных выше типов элементов системой выполняются следующие действия: ПАНЕЛЬ - производится обращение к полям панели заданного объекта среды БОС. Возможно, как получение, так и подстановка значений заданных полей. БАЗА - производится обращение к полям базы заданного объекта среды БОС, как на чтение так и на запись. При обработки баз возможны операции поиска, замены, удаления, подсчета, суммирования по различным условиям с использованием индексов для быстрой обработки или без них. ЗАПРОС - производится выдача на экран: либо панели ввода информации заданного типа и присвоение введенного значения данному элементу, либо таблицы заданного справочника, в которой можно произвести выбор информации, в т.ч. разметку записей для сканирования. СООБЩЕНИЕ - производится выдача на экран панели с заданным сообщением. После нажатия любой клавиши продолжается обработка следующих элементов расчета. При использовании специальных конструкций в имени элемента можно реализовывать значительно более сложные алгоритмы выполнения расчетов. Для этого предусмотрены следующие РАСШИРЕННЫЕ возможности обработки: - Элемент может представлять собой логическое условие перехода на другие элементы или выхода из расчета. - Элемент может представлять собой арифметическое выражение с использованием других элементов, результат которого присваивается данному элементу.Таким образом последние возможности позволяют превратить расчет в мини-программу логических и технических действий системы над объектами среды. А наличие формул двух уровней: на уровне расчета и на уровне элемента (всего 1000), позволяют выполнять самые сложные вычисления. 1.3. ФормулаФормула расчета состоит из левой и правой частей, разделенных знаком равенства. В обеих частях могут использоваться значения любых элементов расчета, изображаемых в виде их номеров, взятых в квадратные скобки. В правой части элементы образуют арифметическое выражение, в левой - просто перечень. Левая часть всегда содержит элемент [1], в котором хранится результат расчета. Обработка элементов расчета производится следующим образом. Сперва обрабатываются элементы, входящие в правую часть формулы или не входящие в неё вообще. Порядок обработки при этом соответствует порядку следования этих элементов в списке или условиям перехода. Потом производится вычисление правой части формулы и присвоение результата всем элементам в левой части. После чего обрабатываются элементы левой части. На этом расчет завершается. Допускается включение в формулу не всех элементов, а только необходимых, и даже полное отсутствие элементов или определение формулы, как "пустой". Такое бывает довольно часто, когда целью расчета является не какое-то вычисление, а поиск и подстановка данных справочного характера. Допускается включение в формулу некоторых других функций языка СУБД, в том числе функций работы с символьными строками, и многое другое, но это уже предмет деятельности администратора (см. книгу "Инструментальные средства БОС"). Приведем пример простого расчета:
В результате выполнения данного расчета сперва будут обработаны в следующем порядке элементы [2], [4], [6], [8], [10]. Потом будет выполнена правая часть формулы и результат присвоен элементам [1],[20]. Далее при обработке левой части формулы, в элементе [20] будет выполнена подстановка в поле панели, которое примет значение результата расчета. Таким образом, если расчет активировался в каком-то поле панели, то его результат после выполнения может попасть не только в поле активации, но и в другие заданные поля. 1.4. УсловияУсловия элементов определяют каким образом производится обработка объекта данного типа. Условия представляют список простых логических выражений, левая часть которых является заданным полем объекта, а правая конкретным значением или ссылкой на значение другого элемента. По умолчанию все условия списка объединяются логической операцией "И", но возможно объединение условий и логической операцией "ИЛИ". Перед выполнением элемента производится анализ условий и формирования логического выражения обработки данных. В отдельных типах элементов возможна иная трактовка списка условий или вообще их отсутствие: ПАНЕЛЬ - условия представляют список полей панели, в которые при выполнении данного элемента будут подставлены новые значения из правой части условий. Используется только знак равенства. БАЗА - условия представляют список полей базы, которые связаны логическими выражениями для достижения заданного результата при обработки информации. Используются все знаки логических сравнений. Например, необходимо найти в оборотах субсчета 101 "Основные средства" сумму кредитовой проводки в корреспонденции со счетом 200 для основного средства с инвентарным номером, взятым по ссылке на другой элемент расчета и датой меньше текущей. Список условий в этом элементе будет выглядеть следующим образом:
Здесь в первом условии использован дополнительный знак, означающий быстрый поиск информации по заданному в элементе индексу базы. Автоматический пакет1.5. АрхитектураКаждый пакет имеет уникальный НОМЕР в диапазоне 1...9999 и произвольное ИМЯ, присваиваемое администратором и отражающее его назначение. Пакет состоит из набора РАСЧЕТОВ различного назначения. Для пакета определяется ТОЧКА и СПОСОБ его запуска в среде БОС. Для пакета может быть определен результат, возвращаемый при завершении пакета в точку запуска. Результатом пакета определяется результат какого-нибудь одного расчета. Архитектура пакета может быть представлена условной схемой на рис.12.2:
Рис.12.2. Условная схема пакета Выполнение пакета заключается в последовательной выполнении его расчетов в порядке следования их в списке. При определенных условиях выполнение расчетов может повторяться, пропускаться или прерываться. 1.6. Точка запускаТочка запуска определяет объект и поле, в котором происходит активация пакета. После завершения пакета в эту точку возвращается управление и результат, если последний имеет смысл. Могут быть следующие варианты точек запуска:
Если для пакета не определена точка запуска, то он включается в СПИСОК ПОЛЬЗОВАТЕЛЯ определенной группы (смысловой или панельной) и может запускаться автономно в любой момент работы. Доступ к таким пакетам можно получить через рабочее меню системы или через режим "F9.Сервис" в панели любого объекта системы. 1.7. Способ запускаСпособ запуска определяет варианты старта пакета в поле панели. Напомним, что в режиме работы любого поля есть момент НАЧАЛА и момент КОНЦА ввода/корректировки информации. Следовательно пакет можно запустить в любой из этих моментов, что определяет различные возможности по передаче информации. Кроме того можно запустить пакет, спросив разрешения у пользователя, или не делая этого. Для каждого пакета можно установить сочетание следующих способов запуска: ДО ПОЛЯ - пакет запускается в момент начала работы в поле. После завершения пакета, его результат, если он был определен, присваивается полю и становится его текущим значением. В ПОЛЕ - пакет запускается в момент конца работы в поле. Элементы расчетов, входящих в этот пакет, могут использовать текущее значение поля. После завершения пакета, его результат никуда не помещается. ПО ЗАПРОСУ - в строку сообщения выводится информация о подключенном к полю пакете. При нажатии клавиши АВТОМАТИЧЕСКИ - пакет немедленно запускается без каких- либо предупреждающих сообщений. Это наиболее часто используемый вариант. Отражение на экранеНаличие закрепленных пакетов в панели ввода показывается специальными индикаторами в виде темных шариков (Рис.12.3). Поместив на них мышь, можно узнать номер и назначение пакета. Администратор также может двойным щелчком мыши принудительно их запустить. В общем случае процесс выполнения расчетов и пакетов скрыт от пользователя, которому важен только результат. Поэтому отражение работы расчетов на экране сводится к минимуму. Это индикация в строке статуса - номера расчета, и в строке сообщений - индикация процесса выполнения. Но в ряде случаев выполнение расчетов сопровождается появлением на экране дополнительных объектов интерфейса:
Методика работы1.8. Панель вводаПри работе в панели ввода любого объекта среды возможна активизация расчетов в следующих точках: В ПОЛЕ ВВОДА - до начала или после окончания работы в нем. Расчеты запускаются при перемещении по полям вниз и вверх, поэтому если необходимо повторить расчет, закрепленный за каким-нибудь полем достаточно вернуть на него курсор. В КОНЦЕ ПАНЕЛИ - на кнопках "ОК" и "ВЫХОД" до и после выполнения штатных процедур с ними связанных (Сохранение, Отмена, Выход). НА ДОП.КНОПКАХ - которые используются для вызова сложных процедур или активизации предметов в справочниках документов. Независимо от точки активации расчета, надо помнить, что расчет может воздействовать на информацию любого объекта среды или текущей панели. Но при всех обстоятельствах можно дать следующие РЕКОМЕНДАЦИИ:
1.9. Список пользователяЕсли пакет расчетов запускается из списка пользователя, то такие расчеты, как правило, носят независимый от какой-либо панели ввода характер. Действия таких расчетов направлены на какую-то глобальную обработку ряда объектов среды и, как правило являются длительными по времени. Для запуска пакетов расчетов из списка пользователя следует либо войти в рабочее меню системы и найти раздел с необходимой смысловой группой, либо в панели ввода вызвать режим "F9.Сервис". На экране появится таблица со списком доступных пакетов. При выборе одного из них производится запуск пакета расчетов и индикация процесса его выполнения. 1.10. Прерывание расчетаВ процессе выполнения расчетов часто появляется необходимость прервать процесс их выполнения. Для прерывания текущего расчета необходимо нажать клавишу <Esc>, при этом на экране появится запрос на подтверждение этого действия. При выборе ответа [ДА] производится прерывание выполнения текущего расчета и всего пакета в целом с возвратом в предыдущий режим работы. При выборе ответа [НЕТ] или нажатии клавиши <Esc> возобновляется дальнейшее выполнение пакета расчетов с той точки, на которой он был прерван. В штатной ситуации НЕ РЕКОМЕНДУЕТСЯ без особой необходимости прерывать расчет. Это объясняется тем, что процессы обработки информации, заложенные в пакете, могут оказаться логически не завершенными. Это вызовет неопределенность трактовки их результатов и, как следствие необходимость ручной разборки и трудоемкого анализа информации.
|