Текущее время: Вт, май 06 2025, 19:38

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ! Прежде чем задавать вопрос, ознакомьтесь со ссылками ниже:

Вопросы по отличиям версий SAP, Add-On, EHP - сюда
Вопросы по SAP Front End (SAPlogon, SAPgui, guiXT и т.д.) - сюда
Вопросы по LSMW - сюда
Вопросы по архивации в SAP - сюда
Вопросы по SAP GRC - сюда
Вопросы по SAP Business Workplace (почте SAP) и SAP Office - сюда
Вопросы по miniSAP (SAP mini basis) - сюда
Вопросы по SAP HANA - сюда
Вопросы по лицензированию продуктов SAP - сюда



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Помогите плиз Java разработчику...
СообщениеДобавлено: Пн, июн 23 2008, 15:53 
Начинающий
Начинающий

Зарегистрирован:
Пн, июн 23 2008, 15:40
Сообщения: 3
Доброе время суток,

Есть проблема - необходимо подружить САП и Java при помощи веб-сервисов. Как делать всё на стороне Java - понятное дело известно... Как делать веб-сервис из ABAP программы - тож вроде ясно... - проблема сделать веб-сервис клиента на стороне САП. У меня вот такая вот система: SAP ECC 6.0 (как я понимаю без NetWeaver и WAS). Подскажите пожалуйста, могу ли я вызывать web-services из САПа? И каким образом...

Спасибо заранее.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 24 2008, 09:25 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Транзакция SE80, открываете свой z-пакет, правой кнопкой вызываете конт.меню и выбираете "Создать, Enterprise Service / веб-сервис / Прокси объект".


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 24 2008, 12:44 
Специалист
Специалист

Зарегистрирован:
Пн, июл 11 2005, 15:44
Сообщения: 127
Есть еще много всякой всячины по теме на sdn.sap.com . в блогах


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 25 2008, 17:26 
Начинающий
Начинающий

Зарегистрирован:
Пн, июн 23 2008, 15:40
Сообщения: 3
Доброе время суток,
Спасибо большое за помощь...
Дошёл до генерирования proxy-объекта из моего wsdl файла. Во время генерации возникает ошибка. Не могу понять что ему не хватает - а может там какой-то свой стандарт используется?
Вот мой wsdl:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="MyTestService" targetNamespace="http://www.openuri.org/2008/05/HelloWorld" xmlns:tns="http://www.openuri.org/2008/05/HelloWorld" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
  <types>
    <xs:schema targetNamespace="http://www.openuri.org/2008/05/HelloWorld" version="1.0" xmlns:tns="http://www.openuri.org/2008/05/HelloWorld" xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="MessageDeliverException" type="tns:MessageDeliverException"/>
   <xs:element name="URISyntaxException" type="tns:URISyntaxException"/>
   <xs:complexType name="URISyntaxException">
    <xs:sequence>
     <xs:element name="index" type="xs:int"/>
     <xs:element minOccurs="0" name="input" type="xs:string"/>
     <xs:element minOccurs="0" name="message" type="xs:string"/>
     <xs:element minOccurs="0" name="reason" type="xs:string"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="MessageDeliverException">
    <xs:sequence>
     <xs:element minOccurs="0" name="message" type="xs:string"/>
    </xs:sequence>
   </xs:complexType>
  </xs:schema>
  </types>
  <message name="WSTestBean_getEmployeeName">
    <part name="id" type="xsd:string">
    </part>
  </message>
  <message name="MessageDeliverException">
    <part name="MessageDeliverException" element="tns:MessageDeliverException">
    </part>
  </message>
  <message name="WSTestBean_getEmployeeNameResponse">
    <part name="return" type="xsd:string">
    </part>
  </message>
  <message name="URISyntaxException">
    <part name="URISyntaxException" element="tns:URISyntaxException">
    </part>
  </message>
  <portType name="WSTestBean">
    <operation name="getEmployeeName" parameterOrder="id">
      <input message="tns:WSTestBean_getEmployeeName">
    </input>
      <output message="tns:WSTestBean_getEmployeeNameResponse">
    </output>
      <fault name="MessageDeliverException" message="tns:MessageDeliverException">
    </fault>
      <fault name="URISyntaxException" message="tns:URISyntaxException">
    </fault>
    </operation>
  </portType>
  <binding name="WSTestBeanBinding" type="tns:WSTestBean">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="getEmployeeName">
      <soap:operation soapAction=""/>
      <input>
        <soap:body use="literal" namespace="http://www.openuri.org/2008/05/HelloWorld"/>
      </input>
      <output>
        <soap:body use="literal" namespace="http://www.openuri.org/2008/05/HelloWorld"/>
      </output>
      <fault name="MessageDeliverException">
        <soap:fault name="MessageDeliverException" use="literal"/>
      </fault>
      <fault name="URISyntaxException">
        <soap:fault name="URISyntaxException" use="literal"/>
      </fault>
    </operation>
  </binding>
  <service name="MyTestService">
    <port name="WSTestBeanPort" binding="tns:WSTestBeanBinding">
      <soap:address location="http://127.0.0.1:8080/WebServiceProject/WSTestBean"/>
    </port>
  </service>
</definitions>

а вот такая ошибка вылезает:
Code:
Cannot generate proxy (object  missing in WSDL, see long text)
Message no. SPRX084

Background
During proxy generation, an interface description in WSDL format is fetched from the Integration Builder or from another source and interpreted. This WSDL document must describe the whole interface correctly.
==> Display Query
==> Display WSDL Document

Diagnosis
In the WSDL document, the object
   "<message name="WSTestBean_getEmployeeName"> <pa..."
from the namespace
  "http://www.openuri.org/2008/05/HelloWorld"
links to the object
   ""
from the namespace
   ""

However, this last object does not exist in the WSDL document.

System Response
ABAP proxy generation expects that all directly and indirectly referenced objects are in the WSDL document. Therefore, no proxy can be generated for this WSDL and the system displays an error message.

Procedure
This situation can have different causes:

Object "" not been defined
Object "" saved in the wrong namespace
In the reference to object "", the wrong name was specified
In the reference to object "", the wrong namespace "" was specified
Internal error in the service that constructs the WSDL document
Internal error in ABAP proxy generation

Помогите пожалуйста разобраться.. Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 25 2008, 20:45 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Попросите базисника поставить эти две заплатки. Не уверен, что они в тему (там по крайней мере имя имя отсутствующего объекта определяется, а у Вас вообще пусто), но хуже от них не будет.

Цитата:
Note 1156675 - Error generating a proxy with reference to message element.

Symptom
When generating an interface proxy, there is an error message
'Cannot generate proxy (object <element name="..."> missing in WSDL, see long text)' (SPRX084).

Reason and Prerequisites
In the XML Schema used by the interface, a global element is defined which is used as a message element and also as a global element reference by a datatype in the XML schema.


Цитата:
Note 1046046 - Proxy generation problem with external definitions

Symptom
The following proxy generation error occurs when you generate a proxy for an external definition:
"Cannot generate proxy (object <complex/simpleType name="...">
missing in WSDL, see long text)
Message no. SPRX084".

Reason and Prerequisites
A group or attribute group reference is used more than once in the external definition message.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 27 2008, 11:03 
Начинающий
Начинающий

Зарегистрирован:
Пн, июн 23 2008, 15:40
Сообщения: 3
Коллеги,
нашёл вот такой вот блог... https://www.sdn.sap.com/irj/sdn/weblogs ... b/wlg/1012
Там в обсуждении есть ветка под названием missing object in WSDL.
В ней говорится, что wsdl, сгенерированная в JBoss не воспринимается САПом и что это было заявлено как баг. Можно ли где-нибудь узнать был ли он пофикшен?
Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс, июн 29 2008, 18:24 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, фев 05 2008, 14:59
Сообщения: 123
Откуда: NY, Wall street
А если попробовать сгенерировать wsdl, другим сервером Tomcat , Webshpere ?
не очень знаком с предметом но это первое что приходит в голову

fil78 написал(а):
Коллеги,
нашёл вот такой вот блог... https://www.sdn.sap.com/irj/sdn/weblogs ... b/wlg/1012
Там в обсуждении есть ветка под названием missing object in WSDL.
В ней говорится, что wsdl, сгенерированная в JBoss не воспринимается САПом и что это было заявлено как баг. Можно ли где-нибудь узнать был ли он пофикшен?
Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 30 2008, 16:41 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, ноя 07 2005, 15:59
Сообщения: 1071
Откуда: Moscow
Пол: Мужской
тут, как минимум, пропущена саповская секция пространства имен "urn:com-sap:ifr:v2:wsdl":

Code:
   <ifr:properties xmlns:ifr="urn:com-sap:ifr:v2:wsdl">
      <ifr:category>
      ifmmessif
      </ifr:category>
      <ifr:methods>
         <ifr:method name="MI_Material_Out">
            <ifr:isSynchron>
            false
            </ifr:isSynchron>
            <ifr:isInbound>
            false
            </ifr:isInbound>
            <ifr:interfaceCategory>
            outbound
            </ifr:interfaceCategory>
         </ifr:method>
      </ifr:methods>
      <ifr:messages>
         <ifr:message name="MT_MaterialCombined">
            <ifr:messType>
            ifmmessage
            </ifr:messType>
            <ifr:technicalNamespace>
            http://brand.edu/materials/sap2mdm
            </ifr:technicalNamespace>
         </ifr:message>
      </ifr:messages>
   </ifr:properties>


правда, я никогда не генерил сервисы из wsdl, обычно наоборот :) так что, может быть, не в этом дело.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 30 2008, 18:03 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, ноя 07 2005, 15:59
Сообщения: 1071
Откуда: Moscow
Пол: Мужской
а попробуйте заменить вот здесь:

Code:
<message name="WSTestBean_getEmployeeNameResponse">
    <part name="return" type="xsd:string">
    </part>
</message>


на

Code:
<message name="WSTestBean_getEmployeeNameResponse">
    <part name="return" type="tns:string">
    </part>
</message>


а в types включить xsd, вроде:

Code:
<xsd:simpleType name="string">                     
  <xsd:restriction base="xsd:string"/>
</xsd:simpleType>                   


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите плиз Java разработчику...
СообщениеДобавлено: Вт, июл 01 2008, 12:08 
Гость
fil78 написал(а):
Доброе время суток,

Есть проблема - необходимо подружить САП и Java при помощи веб-сервисов. Как делать всё на стороне Java - понятное дело известно... Как делать веб-сервис из ABAP программы - тож вроде ясно... - проблема сделать веб-сервис клиента на стороне САП. У меня вот такая вот система: SAP ECC 6.0 (как я понимаю без NetWeaver и WAS). Подскажите пожалуйста, могу ли я вызывать web-services из САПа? И каким образом...

Спасибо заранее.


Можно воспользоваться Sap Netweaver Development Studio.
При создании модели в Webdynpro приложении можно выбрать источник данных - web service.
Тогда никаких разборов envelop делать не предется, можно просто вызывать функцию BAPI, передавать и получать данные


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Помогите плиз Java разработчику...
СообщениеДобавлено: Вт, июл 01 2008, 12:16 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, ноя 07 2005, 15:59
Сообщения: 1071
Откуда: Moscow
Пол: Мужской
Изя Шниперсон написал(а):
Можно воспользоваться Sap Netweaver Development Studio.
При создании модели в Webdynpro приложении можно выбрать источник данных - web service.
Тогда никаких разборов envelop делать не предется, можно просто вызывать функцию BAPI, передавать и получать данные

ну и будет лишнее звено в цепочке. больше звеньев - меньше надежность и скорость.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите плиз Java разработчику...
СообщениеДобавлено: Вт, июл 01 2008, 16:09 
Гость
korchagin написал:
Изя Шниперсон написал(а):
Можно воспользоваться Sap Netweaver Development Studio.
При создании модели в Webdynpro приложении можно выбрать источник данных - web service.
Тогда никаких разборов envelop делать не предется, можно просто вызывать функцию BAPI, передавать и получать данные

ну и будет лишнее звено в цепочке. больше звеньев - меньше надежность и скорость.


ИМХО если писать для SAP на java то тогда лучше всего использовать
средства разработки, которые SAP рекомендует - SAP Netweaver Development Studio. Там все специально сделано для того чтоб при вызове BAPI не тратить время на кодирование лишней рутиты в виде разбора xml от envelop. Вполне возможно что без SAP Netweaver Development Studio задача вообще не решаема, т.к. эта среда при вызове BAPI для каждого параметра, основаннного на элементе данных ABAP из Dictionary генерирует java класс wrapper. А если другими средствами пользоваться то и java класс wrapper не откуда не появится.
Если все же очень хочется вызывать ABAP BAPI без SAP Netweaver Development Studio могу посоветовать отказаться от веб-сервисов и сделать это с помощью JCO.
Вот здесь есть книжка на эту тему: Austin Sincock "Enterprise Java for SAP"



http://www.advancedsoft.narod.ru/books.html


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Помогите плиз Java разработчику...
СообщениеДобавлено: Вт, июл 01 2008, 22:22 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, ноя 07 2005, 15:59
Сообщения: 1071
Откуда: Moscow
Пол: Мужской
Изя Шниперсон написал(а):
ИМХО если писать для SAP на java то тогда лучше всего использовать средства разработки, которые SAP рекомендует - SAP Netweaver Development Studio.

так, насколько я понимаю, уже есть приложение на java, его нужно подружить с данными из приложения на abap.

Изя Шниперсон написал(а):
Вполне возможно что без SAP Netweaver Development Studio задача вообще не решаема, т.к. эта среда при вызове BAPI для каждого параметра, основаннного на элементе данных ABAP из Dictionary генерирует java класс wrapper. А если другими средствами пользоваться то и java класс wrapper не откуда не появится.

да почему, решаема - например, при помощи abap proxy runtime. если между двумя бизнес-системами нет предлагаемого вами еще одного посредника в виде java-прокси (который с одной системой общается по soap, а с другой по bapi), то никакие java wrappers не нужны. либо структуры в словаре данных abap будут созданы согласно xsd в описании веб-сервиса wsdl, либо это описание будет создано на базе существующих структур.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите плиз Java разработчику...
СообщениеДобавлено: Вт, июл 01 2008, 22:33 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, ноя 07 2005, 15:59
Сообщения: 1071
Откуда: Moscow
Пол: Мужской
Изя Шниперсон написал(а):
Если все же очень хочется вызывать ABAP BAPI без SAP Netweaver Development Studio могу посоветовать отказаться от веб-сервисов и сделать это с помощью JCO.

JCo не очень хороший вариант с точки зрения "ентерпрайзности". такой подход привязывает одно из приложений к конкретному типу источника данных. а вот веб-сервисы универсальны, например, если завтра на месте sap erp будет oracle ebs, или существует несколько разнотипных бизнес-партнеров.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите плиз Java разработчику...
СообщениеДобавлено: Ср, июл 02 2008, 11:17 
Гость
korchagin написал:
если завтра на месте sap erp будет oracle ebs, или существует несколько разнотипных бизнес-партнеров.

Такой зоопарк систем в одном месте в природе почти не встречается.
Все равно написать программу которая работает "со всем" вряд ли получится.


Принять этот ответ
Вернуться к началу
  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB