Поделиться через


Рекомендации по автоматической автоматизации Office в microsoft 365 для автоматической среды RPA

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

В этой статье описываются некоторые рекомендации по автоматической автоматизации Office, которые помогут вам использовать этот подход. Однако обратите внимание, что использование Office в этой конфигурации строго "КАК ЕСТЬ" и должно учитывать эти непредвиденные действия. Представленная здесь информация не является исчерпывающей и не гарантирует решение всех проблем для всех клиентов. Мы рекомендуем тщательно протестировать решение перед развертыванием.

Распространенные проблемы при автоматической автоматизации

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

Важно!

Корпорация Майкрософт в настоящее время не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любого автоматического, неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и службы NT), так как Office может работать нестабильно и (или) взаимоблокировка при запуске Office в этой среде. Дополнительные сведения см. в разделе Рекомендации по автоматизации Office на стороне сервера.

Интерактивные элементы пользовательского интерфейса

Приложения Office предполагают, что они выполняются в интерактивном режиме. Если возникает непредвиденная ошибка или для выполнения функции требуется неуказанное значение параметра, Office предназначен для того, чтобы предложить пользователю диалоговое окно с запросом пользователя, как он хочет продолжить. В автоматической автоматизации это может привести к тому, что приложение будет казаться "зависшим", так как приложение останавливается, пока не получит эти входные данные. Если вы автоматизуете Office с помощью общедоступных API, вы можете отключить многие из этих оповещений, настроив свойства Application.DisplayAlerts и Application.AutomationSecurity соответствующим образом. Код должен быть разработан для выявления и обработки блокирующих оповещений в любое время.

Удостоверение пользователя

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

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

Различные подходы могут помочь устранить эти проблемы; например, запуск инспектора документов для удаления метаданных. Определите, подходы ли подходы подходят для вашего сценария.

Безопасность на стороне сервера

При автоматическом запуске Office и обработке произвольного содержимого файла дополнительные средства защиты, характерные для этой среды, не доступны для предотвращения загрузки и запуска макросов, хранящихся в этих файлах. Office не защищает вас от непреднамеренного запуска макросов из кода или от запуска другого сервера, на котором могут выполняться макросы. Для снижения этого риска можно использовать такие свойства, как Application.AutomationSecurity , но следует убедиться, что загружается только доверенное содержимое.

Кроме того, Office использует множество компонентов (таких как Simple MAPI, WinInet и MSDAIPP), которые могут кэшировать сведения о проверке подлинности клиента для ускорения обработки. При автоматизации Office на стороне сервера и обработке нескольких файлов, если сведения о проверке подлинности кэшированы для этого сеанса, один клиент может использовать кэшированные учетные данные другого клиента. Таким образом, клиент может получить не предоставленные разрешения на доступ, олицетворяя других пользователей.

Изменения пользовательского интерфейса

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

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

Однопотоковая

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

Устойчивость и стабильность

Даже с учетом приведенных выше соображений, если приложения автоматизированы способами, имитирующими ввод данных пользователем, или для продолжительности сеансов, которые значительно превышают интерактивное использование, они могут столкнуться с проблемами, которые отсутствуют при интерактивном запуске. Решения, использующие Office в этом контексте, должны заранее создавать механизмы для мониторинга состояния приложения и перезапускать их (и/или виртуальную машину, на которой они выполняются) при необходимости.

Предлагаемые альтернативы

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

Microsoft Graph

Microsoft API Graph предоставляет доступ к службам, данным и аналитике, которые доступны пользователям и решениям в рамках облака Майкрософт, включая множество служб, поддерживающих потребности автоматической автоматизации: доступ к почте, календарю, контактам и файлам пользователей, преобразование документов, вычисление книг Excel и многое другое. Эти службы предназначены для автоматического использования и высокомасштабного доступа, а также используют стандартный синтаксис RESTful API. Дополнительные сведения о Microsoft Graph и его использовании для работы с данными пользователей см. в следующих статьях:

Форматы файлов Open XML

Многие задачи автоматизации связаны с созданием или редактированием документов. Office поддерживает форматы файлов Open XML, которые позволяют разработчикам создавать, редактировать, читать и преобразовывать содержимое файлов с помощью стандартных технологий XML и ZIP, определенных в международном стандарте ISO 29500. Этими форматами файлов можно управлять с помощью любых средств ZIP/XML, включая пространство имен System.IO.Package.IO в Microsoft .NET 3.x Framework. Прямое редактирование форматов файлов — это рекомендуемый и поддерживаемый метод обработки изменений в файлах Office из службы.

Корпорация Майкрософт предоставляет пакет SDK для управления форматами файлов Open XML из платформы .NET 3.x Framework. Дополнительные сведения о пакете SDK и использовании пакета SDK для создания или изменения open XML-файлов см. в следующих статьях: