использовать веб-службу p6 в .net

#wcf #web-services #interop #weblogic #primavera

#wcf #веб-службы #взаимодействие #weblogic #primavera

Вопрос:

На Primavera P6. WSDL установлено множество веб-служб: ActivityCodeAssignment.wsdl

Поле первичного ключа: многокомпонентный ключ, состоящий из следующих элементов:

 ActivityObjectId
ActivityCodeTypeObjectId
  

Целевое пространство имен: http://xmlns.oracle.com/Primavera/P6/WS/ActivityCodeAssignment/V1

Транспортные URL-адреса по умолчанию:

 http://<hostname>:<port number>/p6ws/services/ActivityCodeAssignment?wsdl
https://<hostname>:<port number>/p6ws/services/ActivityCodeAssignment?wsdl 
  

Но если я введу это в веб
-браузер: http://my-machine:7005/p6ws/services/ActivityCodeAssignment ?wsdl

Он показывает: «Служба не найдена».

Если я попытаюсь добавить ссылку на службу в Visual Studio, он скажет.

 There was an error downloading 'http://my-machine:7005/p6ws/services/ActivityCodeAssignment?wsdl'.
The request failed with HTTP status 404: Not Found.
Metadata contains a reference that cannot be resolved: 'http://my-machine:7005/p6ws/services/ActivityCodeAssignment?wsdl'.
There was no endpoint listening at http://my-machine:7005/p6ws/services/ActivityCodeAssignment?wsdl that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.
The remote server returned an error: (404) Not Found.
If the service is defined in the current solution, try building the solution and adding the service reference again.
  

Использует ли P6 какой-то другой веб-сервис?

Ответ №1:

На моем компьютере, на котором работает Oracle Database, Weblogic server с веб-службами P6 версии 8.1, URL-адрес для этого:

 http://<hostname>:<port number>/p6ws/services/ActivityCodeAssignmentService?wsdl
  

Обратите внимание на слово «Сервис», прикрепленное к концу.

Ответ №2:

Не уверен, какую версию P6 вы используете.

Во-первых, пожалуйста, проверьте, работает URL корневой веб-службы или нет:

[http://hostname:port/p6ws ]

Если нет, вам может потребоваться проверить, правильно ли установлены и развернуты ваши веб-службы P6.

Это руководство администратора веб-служб P6 для версии 7.0:

http://docs.oracle.com/cd/E16281_01/Technical_Documentation/Web_Services/wsadmin.pdf

Если вы можете получить доступ к корневым веб-службам и другим конечным точкам, таким как ActivityService [http://host:port/p6ws/services/ActivityService?wsdl ] вместо ActivityCodeAssignmentService, но вы хотите его использовать, вам может потребоваться создать свои собственные заглушки WS со следующими шагами:

  1. Создайте проект библиотеки классов в .NET с именем P6WSStubs
  2. Измените корневое пространство имен на Primavera
  3. Добавьте ссылку на Microsoft WSE 3.0.
  4. Добавьте следующую веб-ссылку Ws.P6.ActivityCodeAssignment — [http://hostname:port/p6ws/services/ActivityCodeAssignmentService?wsdl ]
  5. Создайте P6WSStubs.dll

Надеюсь, это поможет вам,

Yogi