Я пытаюсь использовать веб-службу SOAP на основе Java из кода VBA в книге Excel 2003.Доступны два метода.Один получает данные, другой загружает данные.Сервис для извлечения данных работает нормально.Однако, когда мы пытаемся загрузить данные, мы сталкиваемся со странной ошибкой, о которой я просто не могу найти хорошую информацию в Google.Сообщение об ошибке:
Run-time error '-2147221504 (800040000)';
SoapMapper: Putting data into SoapMapper element failed
Если мы пытаемся использовать один и тот же веб-сервис из приложения .NET, создается впечатление, что сгенерированные классы и методы немного отличаются.Например, вызов службы извлечения данных принимает объект DataContainer
, который имеет некоторые идентифицирующие свойства, чтобы определить, какие данные получить.Затем он возвращает объект того же типа с заполненными данными.
В классах VBA, созданных с помощью Web Reference Toolkit, оба извлекают и сохраняют объект одного и того же типа.Но в .NET для сохранения требуется объект SaveDataContainerDetails
.
Итак, пара вопросов на самом деле:
Кто-нибудь видел ошибку SoapMapper
раньше в своем VBA?работа?
Кто-нибудь видел, чтобы .NET и VBA генерировали разные сигнатуры методов из одного и того же WSDL?Что может вызвать это и как я могу обойти это?
Есть ли лучший способ вызывать сервисы SOAP из VBA вместо использования Web Reference Toolkit и SOAP Toolkit?