Доступ к Python-интерфейсу Enovia из Excel / VBA?
Мы используем программное обеспечение под названием Enovia.
Я хотел бы запросить Enovia из Excel / VBA.
После некоторых поисков у Enovia появился программный интерфейс Abaqus.
Я хотел бы получить доступ к этому интерфейсу в VBA напрямую, но ничего подобного не нашел.
Я нашел два проекта, которые могли бы позволить Excel / VBA общаться с компонентами Python или, по крайней мере, со сценариями Python.
Они следующие
Python для Excel http://opentradingsystem.com/PythonForExcel/main.html
И прекращенный выпуск Excelpython github.com/ericremoreynolds/excelpython, который стал интегрированным в xlwings xlwings.org
Я не знаком ни с Python, ни с этими двумя проектами. Я не уверен, что они позволят мне делать то, что я хочу.
Я в порядке с изучением некоторого Python, чтобы сделать это, но моя основная программа и пользовательский интерфейс в Excel.
Я думаю, что мог бы сделать несколько простых скриптов на Python, а затем вызвать их через интерпретатор python из excel с shellexecute, но я думаю, что это не очень элегантное решение.
Любой совет приветствуется
Спасибо!
6 ответов
Эновия использует MQL
язык для написания сценариев. Есть несколько доступных руководств, таких как http://emdros.org/MQL-Programmers-Guide.pdf
Я бы порекомендовал некоторые тренинги, такие как http://www.techniatranscat.com/services/education/mql-and-tcl-intro как это не очень распространенный язык.
Не путать с языком финансовой торговли MQL4/MQL5
от MetaQuotes Software Corp.
ENOVIA не имеет интерфейса программирования Python.
Abaqus - это программа моделирования FEA, которая может быть написана с помощью собственного интерфейса программирования Python.
ENOVIA - это программное решение PLM. Это разные программы для совершенно разных приложений. В качестве интерфейсов программирования вы можете посмотреть на это
Короче говоря, вам может потребоваться обратиться в местную службу поддержки Dassault Systemes, чтобы указать правильное направление.
Используйте TCL для просмотра листа Excel, это очень просто. Используйте «/t» для разделения данных.
Последняя версия Enovia 3DEXPERIENCE поддерживает веб-сервисы на основе Rest. вы можете создать API для отдыха в enovia и вызвать службу отдыха, используя скрипт vb в excel.
Вышеупомянутая платформа Rest может быть недоступна в версии 2014X. Вы должны попробовать службу на основе SOAP или JAX-RS.
Опция 1
Enovia — это приложение на основе Java, которое не поддерживает VBA ADK для прямой работы с внутренними данными. Однако веб-служба может использоваться для связи между приложениями разных платформ или управляться разными ADK программирования.
Для этого вам нужно создать свой собственный сервис (REST/SOAP). Для этого вам понадобится доступ к серверу, и сначала вам нужно написать код Java (служба Rest/SOAP) и обновить класс/jar на сервере 2014 (tomcat). Затем вы можете использовать эту услугу в своей функции vba. Опять же, вам нужно решить, какие данные будут использоваться, будь то xml или json, это отдельная тема.
Вариант 2
Как я уже говорил ранее, Enovia — это приложение на основе Java, оно предоставляет JAVA ADK для расширения своей функциональности.
Пример кода показывает, как можно получить контекст и работать с Enovia ADK.
matrix.db.Context ctx = new matrix.db.Context("http://myserver-nocas:8080/enovia");
ctx.setUser("Test Everything");
ctx.setPassword("");
ctx.connect();
System.out.println("Is context set "+ctx.isConnected());
Как вы упомянули, что в настоящее время вы используете 3DEXPERIENCE, тогда 3DPassport может заблокировать соединение с указанным выше URL-адресом, поэтому вам необходимо передать URL-адрес NO-CAS.
Вы можете получить контекст, запустив приведенный выше код Java из вашего локального eclipse. Используя этот ADK, вы также можете вызывать MQL-запросы и работать без проблем.
import com.matrixone.apps.domain.util.MqlUtil;
String strPartFamily = MqlUtil.mqlCommand(ctx,"temp query bus Part * * select attribute[Length]");
Но опять же, это решение на основе Java, а не VBA.
Наконец, 3DEXPERIENCE предоставляет консоль MQL на сервере, чтобы работать со всеми данными, используя SQL-подобные запросы, более удобным для разработчиков способом. Enovia также предоставляет веб-консоль MQL, но для этого вам потребуется лицензия (администратор должен иметь доступ).