Взаимодействие подсистем ИСУП
Функциональные подсистемы ИСУП имеют множественные связи друг с другом. Например, детальные данные по учету производственной себестоимости возникают в подсистеме управления производством, а обобщаться могут в подсистемах бухгалтерского учета и информационного обслуживания высшего руководства. С другой стороны, подсистема управления производством нуждается в данных о запасах и движении товарно-материальных ценностей, которые формируются в подсистеме логистики. Данные по учету труда и заработной платы формируются в подсистемах управления персоналом и управления производством, а обобщаются в подсистеме бухгалтерского учета. Данные по контролю исполнения сделок, реализуемому в подсистеме управления взаимоотношениями с клиентами, большей частью возникают в подсистеме логистики. И так далее.
Вследствие этого, при создании ИСУП необходимо предусмотреть все возможные внутренние и внешние информационные связи между программным обеспечением каждой из подсистем.
Взаимодействие подсистем может осуществляться в оперативном или отложенном режимах.
В оперативном режиме программное обеспечение, реализующее решение задач одной подсистемы, при необходимости в данных, сформированных другой подсистемой, запрашивает и получает их от программного обеспечения данной подсистемы автоматически. Это - наиболее эффективный способ взаимодействия программного обеспечения различных подсистем. Однако он возможен только тогда, когда программное обеспечение различных подсистем способно взаимодействовать в автоматическом режиме. А это не всегда возможно. Например, в том случае, если при создании ИСУП используется программное обеспечение разных производителей, наладить оперативное взаимодействие подсистем удается в крайне редких случаях. Более того, если в одной подсистеме используются программные продукты различных поставщиков, то и внутри этой подсистемы оперативное взаимодействие организовать обычно не удается.
В отложенном режиме для организации информационного обмена между различными программами (внутри разных или одной подсистем) необходимо выполнять операции экспорта-импорта данных. В этом случае данные с помощью специальной операции (экспорта) должны быть выгружены одной программой в отдельный информационный массив (массивы) в формате, который может быть распознан программой, принимающей данные. Далее эта программа с помощью операции импорта данных загружает их в свои информационные структуры для последующей обработки.
Таким образом, в отложенном режиме для передачи данных от одной программы к другой необходимо выполнение специальных технологических операций экспорта-импорта, каждая из которых должна специально инициироваться пользователем каждой из программ. Если этими программами пользуются разные специалисты, то один должен попросить другого выполнить операцию экспорта нужных данных из используемой им программы. Последний должен выполнить операцию экспорта запрошенных данных и тем или иным способом (по сети или на переносном носителе данных) передать первому созданные в результате операции экспорта информационные массивы. Это может создать дополнительные организационные проблемы при эксплуатации ИСУП (один человек должен попросить другого человека, а тот может быть не на месте, занят и т.д.). В оперативном же режиме взаимодействие подсистем (программ) осуществляется автоматически.
Следует отметить, что операции экспорта-импорта могут выполняться и в автоматическом и/или в полуавтоматическом режиме, по запросу пользователя программы, которой эти данные требуются. В этом случае организационных проблем обеспечения взаимодействия подсистем ИСУП не возникает. Выполнение экспорта-импорта в автоматическом или полуавтоматическом режимах фактически означает реализацию оперативного режима взаимодействия подсистем. Однако это возможно только в том случае, когда программы, передающие и принимающие данные специальным образом настроены для совместной работы.
При взаимодействии подсистем ИСУП в отложенном режиме резко снижается оперативность обработки данных, повышается вероятность возникновения различного рода несоответствий в данных на разных рабочих местах, резко снижаются возможности компьютерной системы как средства реализации механизмов процессно-ориентированного управления.
Так, например, если программе, реализующей выписку платежных документов, не доступны в оперативном режиме данные бюджета расходов, то она не сможет проверить превышение сметы расходов по данной статье бюджета при выписке документа на оплату проходящих по ней затрат. В результате контроль выполнения сметы расходов не сможет быть произведен автоматически. Для выполнения такого контроля придется разрабатывать специальные регламенты, а сам контроль поручить ответственным специалистам. В результате снижается оперативность утверждения документа (ответственный специалист не на месте, занят), а точность контроля снижается, поскольку его выполняет человек, а не компьютер. Если бы в данной ситуации при выписке платежного документа через компьютер реализующей эту функцию программе были бы доступны данные бюджета и фактические данные о расходе средств по соответствующей статье на текущий момент, то она могла бы автоматически запретить формирование платежного документа, если указанная в нем сумма расхода приводит к выходу за разрешенные сметой пределы.
Аналогичные проблемы с организацией контроля могут возникать и при выписке документов отгрузки покупателям-дебиторам, задолженность которых может превышать лимиты предоставляемых товарных кредитов, а также при выписке документов оплаты поставщикам-дебиторам, не поставляющим вовремя товарно-материальные ценности, за которые уже осуществлялась оплата.
Таким образом, оптимальным следует считать оперативное взаимодействие подсистем ИСУП. Однако оно возможно только в том случае, когда все взаимодействующие программы одной или разных подсистем функционируют в едином информационном пространстве, то есть либо функционируют на основе интегрированной базы данных, либо могут автоматически распознавать используемые каждой из них форматы данных. На текущий момент организация оперативного взаимодействия подсистем, как правило, возможна только в том случае, когда в качестве основы программного обеспечения ИСУП используются программные продукты одного разработчика, поскольку в этом случае обычно гарантируется их автоматическое взаимодействие (и то не всегда).
В общем случае, взаимодействие подсистем ИСУП в оперативном режиме предполагает не только автоматический обмен данными между программами разных подсистем, но и взаимосвязанное выполнение логических цепочек операций по преобразованию данных.
Например, при поступлении оплаты от покупателя в подсистеме управления финансами вводятся данные выписки банка. Одновременно эти данные должны быть отражены в подсистеме логистики для уменьшения дебиторской задолженности клиента, если он должник или увеличения кредиторской задолженности предприятия данному покупателю, если это предоплата. Эти действия могут реализовываться разными программами. Однако они должны выполняться совместно, во взаимосвязи. В противном случае возможно расхождение в данных разных подсистем (покупатель перечислил деньги, но данные о его задолженности не изменились). Одновременно с этим данные об оплате должны быть отражены в подсистеме бухгалтерского учета путем формирования проводок по счетам, соответствующих поступлению денежных средств. Передача готовой продукции на склад должна одновременно отражаться в подсистемах логистики и управления производством. При этом ее себестоимость, определяемая в подсистеме управления производством, должна быть также учтена в подсистеме бухгалтерского учета.
Можно привести и другие примеры, когда хозяйственные операции должны взаимосвязанно отражаться несколькими подсистемами ИСУП. В особенности это касается взаимодействия различных подсистем с подсистемой бухгалтерского учета, поскольку практически все хозяйственные операции так или иначе должны быть отражены на счетах бухгалтерского учета.
Выполнение взаимосвязанное процедур обработки данных различными подсистемами ИСУП может быть организовано различными способами. Во многих западных программных продуктах, которые могут быть использованы в качестве основы создания прикладного программного обеспечения ИСУП, реализуется принцип полностью интегрированного взаимодействия подсистем. В соответствии с ним все взаимосвязанные процедуры обработки данных осуществляются как единая транзакция.
Транзакция - совокупность взаимосвязанных операций, выполняемых как одно целое.
Либо выполняются все операции транзакции, либо не выполняется ни одной. В системах управления базами данных (СУБД) взаимосвязанные формальные операции над данными выполняются как единое целое. Если выполнение транзакции по каким-либо причинам не может быть выполнено полностью, то СУБД "отменяет" выполнение той части операций преобразования данных, которые уже были выполнены с ее начала. В результате база данных остается в том состоянии, в котором она находилась до начала выполнения этих операций. Это нужно для поддержания логической целостности базы данных.
В ИСУП, построенных на основе полностью интегрированного взаимодействия подсистем, реализуются те же принципы. Например, если в подсистеме логистики фиксируется движение товарно-материальных ценностей, то в подсистеме бухгалтерского учета автоматически формируются проводки по счетам, соответствующие данной операции. Однако такой подход не всегда оправдан в силу необходимости разделения полномочий между специалистами системы управления. Прерогатива формирования записей на счетах бухгалтерского учета принадлежит сотрудникам бухгалтерии предприятия и связанные с этими действиями процедуры обработки данных должны инициироваться и контролироваться ими, а при полностью интегрированном взаимодействии подсистем оформление документа движения товарно-материальных ценностей в подсистеме логистики автоматически вызывает формирование проводок по счетам, то есть осуществляется без ведома и должного контроля со стороны бухгалтерии.
Более гибким является подход при котором взаимодействие подсистем ИСУП с точки зрения обмена данными осуществляется в оперативном режиме, но выполнение взаимосвязанных функций обработки данных, относящихся к компетенции разных функциональных отделов, выполняется не автоматически, а по запросу пользователя.