Проблема, использующая веб-сервис SAP с .Net - PullRequest
2 голосов
/ 05 ноября 2010

В настоящее время я пытаюсь сделать простое приложение, которое использует веб-сервис SAP. Я получил ссылку wsdl через менеджер мыла и добавил ее в проект как веб-ссылки. C # создал сложный тип, который включает в себя параметры и таблицы импорта-экспорта моего RFC, и если я хочу вызвать метод веб-служб, я должен отправить все свои значения в переменную типа сложный, а возвращаемые значения возвращаются мне в виде переменной этого типа так же. Но возвращаемые таблицы являются исходными.

Однако я получил ссылку wsdl через wsconfig и wsadmin в другой системе, но тот же RFC, C # не создавал сложного типа. Он создал разные типы для каждого параметра RFC, и я могу отправлять свои значения в разных переменных, также возвращаемые значения верны.

Почему мыльный менеджер и wsconfig создают разные wsdl или Почему C # создает разные типы и методы для одного и того же RFC? Как решить эту проблему? Знаете ли вы какие-либо советы или хитрости?

Спасибо за совет

Ответы [ 2 ]

0 голосов
/ 21 ноября 2010

Как уже упоминалось, wsconfig и wsadmin считаются устаревшими, поэтому вы всегда должны использовать транзакцию soamanager.Когда вы откроете WSDL для веб-службы в soamanager, вы увидите его в новом окне браузера.В адресной строке адреса (скажем, URL) вы видите где-то в конце "../ws_policy/ .." - попробуйте заменить это на "../standard/ .." и перезагрузите WSDL с этим новымадрес, затем используйте этот новый / другой WSDL для вашей клиентской программы.

Помогает ли это?

0 голосов
/ 07 ноября 2010

Обе системы находятся на одном уровне выпуска? В более новых выпусках могут быть изменения в механизме генерации wsdl. Поэтому wsconfig / wsadmin считается устаревшим, и вы должны использовать soamanager, если он доступен.

...