Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Web-services / 25 сообщений из 25, страница 1 из 1
19.05.2009, 10:05
    #35993272
Лампочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Кто-нибудь работает с веб-сервисами в PB?
У меня неактивирована вся закладка Web в компонентах, можно что-то доставить, чтобы эти компоненты были?
И может быть, есть какой-то пример получения данных от веб-сервиса?
...
Рейтинг: 0 / 0
19.05.2009, 17:32
    #35994853
Компостеров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Лампочка,
Пример для .NET webservice ( для этого нужен PowerBuilder 10.5 и выше. )

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
forward
global type n_cst_b2b_web_services from n_base
end type
end forward

global type n_cst_b2b_web_services from n_base
end type
global n_cst_b2b_web_services n_cst_b2b_web_services

type variables
// имя секции в ini-файле с url для подключения к webservices
public constant string INI_WS_SECTION 	= "WS_URL"
public constant string INI_WS_URL 		= "url"

SoapConnection 	conn 
px_service			ws_acc
end variables

forward prototypes
public function integer of_init (string as_inifile)
public function string of_getpolicybynumber (string as_policynumber)
public function integer of_getpoliciesnumbersforintegration (ref any as_policy_numbers[])
end prototypes

public function integer of_init (string as_inifile);string 	ls_url
long		ll_retval

if IsNull(as_inifile) then
	return - 1 
end if

ls_url = ProfileString(as_inifile, INI_WS_SECTION, INI_WS_URL, "")

conn = CREATE SoapConnection

ll_retval = Conn.CreateInstance( ws_acc, "px_service", ls_url )
if ll_retval =  0  then 

	conn.UseIntegratedWindowsAuthentication( true ) 	
	return  1 
	
else
	return - 1 
end if	
end function

public function string of_getpolicybynumber (string as_policynumber);string ls_xml_policy

try
	ls_xml_policy = ws_acc.getstringpolicybypolicynumber( as_policynumber )
	
catch ( SoapException e )

   	messagebox ("Error", "Cannot invoke Web service:" + e.text )   

    // error handling   

end try

return ls_xml_policy

end function

public function integer of_getpoliciesnumbersforintegration (ref any as_policy_numbers[]);int li_ret_val
try

	as_policy_numbers = ws_acc.GetPoliciesNumbersForIntegration( ) 
	li_ret_val =  1 
					
catch ( SoapException e )

   	messagebox ("Error", "Cannot invoke Web service:" + e.text )   
		li_ret_val = - 1 

		
	catch ( RunTimeError er )

		li_ret_val = - 1 
		
end try

return li_ret_val
end function

on n_cst_b2b_web_services.create
call super::create
end on

on n_cst_b2b_web_services.destroy
call super::destroy
end on

event destructor;call super::destructor;DESTROY conn
end event

Модератор: Лампочка , это Вам мягенько так намекнули, что нужно указывать версию РВ и прочих приложений, которые Вы используете, чтобы получить нужный Вам ответ (",)

Компостеров ? не забывайте про тэг [src] (",)
...
Рейтинг: 0 / 0
20.05.2009, 09:43
    #35995760
Лампочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Да, я буду иметь ввиду указание версии билдера:)
Вчера, пока ждали ответа, нарыли практически тот же скрипт.
Я не могу понять одну вещь - применительно к этому коду:
откуда берется px_service? (пусть во всех примерах названия разные, но вопроса это не меняет)
Подскажите, пожалуйста!
...
Рейтинг: 0 / 0
20.05.2009, 09:54
    #35995781
Ikar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Лампочка...
Я не могу понять одну вещь - применительно к этому коду:
откуда берется px_service? (пусть во всех примерах названия разные, но вопроса это не меняет)
...Думаю, что из PFC...
...
Рейтинг: 0 / 0
20.05.2009, 10:25
    #35995882
Компостеров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
px_service - это имя прокси-объекта webservice, определяешь в webservice proxy Wizard
...
Рейтинг: 0 / 0
20.05.2009, 10:33
    #35995924
Лампочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Я правильно понимаю, что это Proxy settings там, где я wdsl выбираю?
Вопрос, где взять host..
Мне дали файл wdsl и сказали, что у веб-сервиса есть такая-то функция.
Нужно ее вызвать.
А я еще и ничего с этими прокси не понимаю:)
...
Рейтинг: 0 / 0
20.05.2009, 10:54
    #35995996
Лампочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
При создании web service proxy wizard получаю следующее:
Web Service | TabelReportExport_TabelReportHttpService
Port 1 | TabelReportExport_TabelReportHttpPort
Prefix | sub_
Proxy Name For Port 1 | sub_TabelReportExport_TabelReportHttpPort

последнее - это и есть тип объекта, с которым я должна работать в скрипте?
тогда билдер говорит мне "illegal type"..
...
Рейтинг: 0 / 0
20.05.2009, 10:55
    #35996002
Компостеров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Пусть дадут тебе ссылку, где крутятся webservices ( например,
http://ren-mskdev01/reportserver/ReportExecution2005.asmx?WSDL )
...
Рейтинг: 0 / 0
20.05.2009, 11:14
    #35996068
Лампочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Что я могу взять из описания опубликованного wsdl?
****************
<wsdl:definitions name="TabelReportExport_TabelReportHttp_Service" targetNamespace="http://hr-report-service-stub/TabelReport/Binding">
<wsdl:import location="TabelReport.wsdl" namespace="http://hr-report-service-stub/TabelReport"/>

<wsdl:binding name="TabelReportExport_TabelReportHttpBinding" type="Port_0:TabelReport">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="getTabelReport">
<soap:operation soapAction=""/>

<wsdl:input name="getTabelReportRequest">
<soap:body use="literal"/>
</wsdl:input>

<wsdl:output name="getTabelReportResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>

<wsdl:service name="TabelReportExport_TabelReportHttpService">

<wsdl:port binding="this:TabelReportExport_TabelReportHttpBinding" name="TabelReportExport_TabelReportHttpPort">
<soap:address location="http://localhost:9081/hr-report-service-stubWeb/sca/TabelReportExport"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
*****************
...
Рейтинг: 0 / 0
20.05.2009, 11:45
    #35996202
Лампочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Обнаружили, что прежде чем начать пользоваться в скрипте объектом прокси, нужно сделать Deploy.
Почему после появления в библиотеке proxy project-а при вызове у него Deploy выдается ошибка "Wrong library list returned for operation"?
...
Рейтинг: 0 / 0
20.05.2009, 12:05
    #35996280
Лампочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Всё найдено, всё работает, тема закрыта, всем спасибо!
...
Рейтинг: 0 / 0
20.05.2009, 12:05
    #35996281
Компостеров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Библиотека C:\sybase\Shared\PowerBuilder\pbwsclient105.pbd подключена к пректу ?
...
Рейтинг: 0 / 0
20.05.2009, 12:15
    #35996307
Лампочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Компостеров,
да, спасибо большое за советы. это всё заработало.
Есть еще один вопрос..если сможете помочь..
С веб-сервиса будут получены бинарные данные, их нужно сохранить на комп как pdf-файл.
Что для этого использовать?
...
Рейтинг: 0 / 0
24.02.2010, 17:17
    #36486355
Vadim Romanenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Лампочка или кто другой,

А какой билдер нужен для обращения к веб-сервисам? Под рукой 9.0.3. Нужно ли переходить на новую версию для работы с веб-сервисами, или можно крутить на этой?
...
Рейтинг: 0 / 0
24.02.2010, 17:58
    #36486481
Vadim Romanenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Почитал более внимательно - оказывается, таки можно начиная с 9-й версии использовать чужие веб-сервисы.
...
Рейтинг: 0 / 0
25.02.2010, 12:33
    #36487644
Лампочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
только увидела вопрос:) я работаю с веб-сервисами с 9 и 10 версией билдера..
...
Рейтинг: 0 / 0
25.02.2010, 12:34
    #36487647
Vadim Romanenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Хм, почему-то у меня WSDL несколько другого вида... И он не определяется моим билдером 9.0.3 :(
Может не так копаю??

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
- <definitions name="ResourceQueryService" targetNamespace="http://ws.gda.com/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://ws.gda.com/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.mtsys.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <types>
- <xs:schema targetNamespace="http://ws.gda.com/" version="1.0" xmlns:tns="http://ws.gda.com/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="QueryError" type="tns:QueryError" /> 
  <xs:element name="UnknownResource" type="tns:UnknownResource" /> 
  <xs:element name="get_extent_values" type="tns:get_extent_values" /> 
  <xs:element name="get_extent_valuesResponse" type="tns:get_extent_valuesResponse" /> 
  <xs:element name="get_related_values" type="tns:get_related_values" /> 
  <xs:element name="get_related_valuesResponse" type="tns:get_related_valuesResponse" /> 
  <xs:element name="get_values" type="tns:get_values" /> 
  <xs:element name="get_valuesResponse" type="tns:get_valuesResponse" /> 
...
...
Рейтинг: 0 / 0
25.02.2010, 12:36
    #36487655
Vadim Romanenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
... и еще одна версия wsdl

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
- <definitions name="ResourceQueryService" targetNamespace="http://ws.mtsys.com/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://ws.gda.com/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.mtsys.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <import location="http://10.10.10.10:8080/CIM_WS/ResourceQueryService?wsdl&resource=IResourceQueryService_PortType5360263783444851518.wsdl" namespace="http://ws.gda.com/" /> 
- <service name="ResourceQueryService">
- <port binding="ns1:IResourceQueryServiceBinding" name="ResourceQueryServicePort">
  <soap:address location="http://SOIKBORA-2:8080/CIM_WS/ResourceQueryService" /> 
  </port>
  </service>
  </definitions>
...
Рейтинг: 0 / 0
25.02.2010, 12:40
    #36487671
Лампочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
могу пока только выложить мой самый маленький wsdl..для сравнения..нет времени смотреть сейчас...

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://convoperreg.ejb.reports.gamma.sbrf.ru" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ConvOperRegEjb" targetNamespace="http://convoperreg.ejb.reports.gamma.sbrf.ru">
<wsdl:types>
<xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://convoperreg.ejb.reports.gamma.sbrf.ru">
<xsd:complexType name="ConvOperRegArg">
<xsd:sequence>
<xsd:element name="dReport" nillable="true" type="xsd:dateTime"/>
<xsd:element name="userId" type="xsd:int"/>
<xsd:element name="packNumber" type="xsd:int"/>
<xsd:element name="operType" type="xsd:int"/>
<xsd:element name="printDoc" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="printResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="printReturn" type="xsd:base64Binary"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="print">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="request" nillable="true" type="tns:ConvOperRegArg"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="operationFault">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="faultMessage" type="xsd:string">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>

<wsdl:message name="printRequest">
<wsdl:part element="tns:print" name="parameters"/>
</wsdl:message>

<wsdl:message name="printResponse">
<wsdl:part element="tns:printResponse" name="parameters"/>
</wsdl:message>

<wsdl:message name="operationFaultMsg">
<wsdl:part element="tns:operationFault" name="parameters"/>
</wsdl:message>

<wsdl:portType name="ConvOperRegEjb">

<wsdl:operation name="print">

<wsdl:input message="tns:printRequest" name="printRequest"/>

<wsdl:output message="tns:printResponse" name="printResponse"/>

<wsdl:fault message="tns:operationFaultMsg" name="fault"/>
</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="ConvOperRegEjbSoapBinding" type="tns:ConvOperRegEjb">

<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="print">
<soap:operation soapAction="http://convoperreg.ejb.reports.gamma.sbrf.ru/print"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="fault">
<soap:fault name="fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>

</wsdl:binding>
<wsdl:service name="ConvOperRegEjb">
<wsdl:port binding="tns:ConvOperRegEjbSoapBinding" name="ConvOperRegEjb">
<soap:address location="http://localhost:21001/ReportsItecoRouter/services/ConvOperRegEjb"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
...
Рейтинг: 0 / 0
25.02.2010, 13:25
    #36487801
Vadim Romanenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
может-таки кто знает, в чем у меня не так?
...
Рейтинг: 0 / 0
25.02.2010, 15:42
    #36488243
Лампочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
а как понять - не определяется?
...
Рейтинг: 0 / 0
25.02.2010, 16:46
    #36488448
Vadim Romanenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Пишет при создании Web Service Proxy ошибку: The file 'D:\ResourceQueryService.wsdl' is not a valid WSDL file.'
...
Рейтинг: 0 / 0
25.02.2010, 16:50
    #36488460
Vadim Romanenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Файл 1, который пытался прикладывать, приаттачен
...
Рейтинг: 0 / 0
25.02.2010, 16:52
    #36488465
Vadim Romanenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
Файл 2, который пытался использовать для создания прокси-объета
...
Рейтинг: 0 / 0
10.03.2010, 10:25
    #36510754
Лампочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Web-services
а вот из такого сгенерится прокси?
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Web-services / 25 сообщений из 25, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]