вторник, 18 октября 2016 г.

Ковыряем пример Teamcenter 10.1 SOA client для .NET

В версии 10.1.0 пример для С# есть, а вот в 10.1.5 я его не увидел.
В папке samples ещё две с примерами: HelloTeamcenter и VendorManagment.
Рассмотрим первый, который Hello.
У меня установлен Microsoft Visual C# 2010 Express. Открываем им проект. (Открывал в VS 2015. Тоже всё нормально.)
В проекте видим две папки: clientx и hello. Есть файл ReadMe.txt с некоторыми пояснениями по примеру.
В папке clientx находятся реализации интерфейсов фреймворка Teamcenter Services, необходимых для работы. Посмотрим, что там за классы.
5 классов начинающихся с "AppX".
  • AppXCredentialManager
  • AppXExceptionHandler
  • AppXModelEventListener
  • AppXPartialErrorListener
  • AppXRequestListener
Класс Session. (В Java примере этот класс называется AppXSession)

В папке hello 4 класса консольного приложения: DataManagment, Hello, HomeFolder и Query.

Основной класс Hello, как можно догадаться.
В коде используется переменная serverHost. В этой переменной зашит адрес сервера приложений, где развёрнуты сервисы.
При запуске из консоли можно использовать аргумент -host для определения URL.

Основная часть программы выполняется в защищённом блоке, отлавливается SystemException.
Первым делом создаётся сессия с указанием URL приложения tc. Происходит вход пользователя. Далее идёт создание 3-х классов для разных задач. 

  • HomeFolder содержит метод listHomeFolder, который выводит содержимое домашней папки пользователя в консоль.
  • Query содержит метод queryItems, который ищет сохранённый запрос (Saved Querie) "Item Name". Ищет объекты и выводит их UID'ы в консоль.
  • DataManagment класс более сложный. Методы класса создают и удаляют объекты, пересматривают, а также создают формы.
После выполнения методов 3-х классов, происходит выход из сессии.

Первый раз вижу такую запись: using User = Teamcenter.Soa.Client.Model.Strong.User;
В Java такого не видел. Интересная конструкция.

Итак, класс Session. Начнём с него. Содержит два закрытых статических поля: Connection и AppXCredentialManager
При создании сессии создаётся менеджер мандатов? (CredentialManager)
Менеджер содержит имя пользователя, пароль, группу и роль. Также присутствует некий дескриминатор "SoaAppX".
Тип данного менеджера обозначен как SoaConstants.CLIENT_CREDENTIAL_TYPE_STD.

Далее определяется протокол, либо HTTP, либо TCCS. (В Java версии есть ещё IIOP)
Создаётся соединение и сохраняется в поле connection.
Далее идёт подключение обработчика к соединению и слушателей к менеджеру модели.

Разберём создание соединения.
new Connection(host, new System.Net.CookieCollection(), credentialManager, SoaConstant.REST, proto, false); где:
  • host - URL tc
  • коллекция куки
  • менеджер мандатов
  • связывание (binding)
  • протокол
  • использование сжатия
По сути нужен мандатный менеджер, протокол и URL.

В следующий раз создадим и разберём простенький примерчик.

Комментариев нет:

Отправить комментарий

Определение параметров CHS (Cylinder, Head, Sector) карт CF с помощью утилиты IDEINFO

 Столкнулся с проблемкой подключения карт CF к материнской плате LTC-SL REV-B и WD386SX-LPX. В БИОС этих плат нет автоопределения накопителе...