• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

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

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Лоцман клиент API и VBScript

Автор Matvey Kushakov, 28.07.20, 15:21:39

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Matvey Kushakov

Приветствую!

Есть ли возможность использования Лоцман клиент API из скрипта на VBS? Хочу в коде входного транслятора дополнить модель единицами измерения количества материалов, но не врубаюсь, как это сделать. По сути мне нужно получить ссылку на интерфейс IPluginCall, чтобы через функции RunMethod и GetDataSet задействовать функции Лоцман API. Или есть более прямой путь использования Лоцман API или скрипта VBS?

Slaviation

Добрый день.
ЦитироватьПо сути мне нужно получить ссылку на интерфейс IPluginCall
Гляньте в дистрибутивный транслятор K3D_Universal.vbs для прокси "КОМПАС-3D Сборка и Деталь".
Там во все функции транслятора, которые вызывает модуль интегратора - fTransForProxy_02, fTransForLoodsman_02, fTransRequest_02, fTransMask_02 - передается параметр AProxyCall.

Matvey Kushakov

Цитата: Slaviation от 18.08.20, 09:46:32Добрый день.Гляньте в дистрибутивный транслятор K3D_Universal.vbs для прокси "КОМПАС-3D Сборка и Деталь".
Там во все функции транслятора, которые вызывает модуль интегратора - fTransForProxy_02, fTransForLoodsman_02, fTransRequest_02, fTransMask_02 - передается параметр AProxyCall.
Благодарю за ответ! Правда я уже сам разобрался, как следует решать поставленную задачу. Во первых, я не сразу обратил внимание, что у количества ещё есть подсвойства ID единицы измерения и ID измеряемой сущности, содержащие ID из справочника Единицы измерения. Во-вторых, в пылу атаки я разобрался, как подключаться к серверу приложений через объект DataProvider.LoodsmanConnection и выдёргивать из него интерфейс IPluginCall, но для данной задачи это путь от лукавого.
Короче решил задачу обращением к справочнику Единицы измерения через его API.

a_sumenkov

Цитата: Matvey Kushakov от 28.08.20, 15:32:09Короче решил задачу обращением к справочнику Единицы измерения через его API.
Добрый день! А где можно найти SDK для справочника единиц измерений?
Просто на стенде клиента в папке Measurement только xml-файл, содержащий собственно сам справочник. Непонятно, как в таком случае добавлять новые элементы в справочник

Bobua

Цитата: Matvey Kushakov от 28.08.20, 15:32:09я разобрался, как подключаться к серверу приложений через объект DataProvider.LoodsmanConnection и выдёргивать из него интерфейс IPluginCall

Здравствуйте! Не вспомните пожалуйста как выполнять этот процесс спустя 4 года? Столкнулся с проблемой выдергивания этого интерфейса и ищу все способы.

teplinskiy

#5
Цитата: Bobua от 03.07.24, 10:29:21...как выполнять этот процесс спустя 4 года?

по старой схеме, например:

Const APP_TITLE="Test"

Set cnn = CreateObject("DataProvider.LoodsmanConnection")

cnn.Connected = True

MsgBox cnn.API8.RunMethod("AppServerName", Array())

s = cnn.API8.RunMethod("GetDBList", Array())
Do
  s = InputBox("Database. Input only one name", APP_TITLE, s)
  If s="" Then break
Loop While InStr(1, s, ",")>0

i = cnn.API8.ShowDBConnectionDialog(s)
MsgBox i
If i=-1 Then break

cnn.API8.RunMethod "ConnectToDB", Array(s)

Set ds = cnn.API8.GetDataSet("GetProjectList", Array())

s = ""
Do While Not ds.Eof
  s = s & ds.FieldValue("_TYPE") & Chr(9) & ds.FieldValue("_PRODUCT") & Chr(13)
  ds.Next
Loop

MsgBox s, vbOKOnly, APP_TITLE & " - GetProjectList"

ну и по новой схеме (версия 2017+), например:

stDBName = "DemoMash"
stSPName = "MY-SP-COMP"

Set objConnFactSP = CreateObject("Ascon.Plm.ServerApi.ConnectionFactory")
Set objConnSP = objConnFactSP.CreateConnection(stSPName, 8076)
Set objMainSysSP = objConnSP.MainSystem
 
Set dtDataSet = CreateObject("DataProvider.DataSet")

objMainSysSP.ConnectToDBEx stDBName, "Администратор", "Администратор", errCode, errMsg

dtDataSet.Data = objMainSysSP.GetProjectList([], errCode, errMsg)
...
objConnSP.Close
+ Благодарностей: 1