- - PR -
excelとaxis間のsoap通信時のエラー
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-01-25 15:32
始めて投稿させていただきす。
現在 Office XP Web Services Tookit をインストールし、excelのvisual basicマクロ 環境で soap クライアントを開発していますが soap APIを実行時に下記のエラーが 出力されます。 Error Code -> "-2147221504" Error Message -> Generic Custom Type Mapper Element id can not be found in type definition of SoapRow すべてのAPIがエラーになるわけではなくで、ある特定タイプを含んでいるAPIが エラーなると思われます。ここの特定のタイプというのはwsdlの記述上タイプの 定義で他のタイプを拡張しているところ(下記の例を参考してください)だど思います。 例) <complexType name="SoapRow"> <complexContent> <extension base="FolderRow"> ---> タイプを拡張している <sequence> <element name="username" nillable="true" type="xsd:string"> ... そもそもvisual basicのWeb Services ReferenceからWebサービスを追加する時に 上記のSoapRowの構造体には拡張されたFolderRowの定義が含まれてないのも おかしいなと思われます。 上記のエラーがなぜ発生するのかどなたか理由を説明していだだけないでしょうか? |
|
投稿日時: 2006-10-05 18:28
同じように悩みのスレッド(相当前のスレッドですが・・・)を発見したので返信させて頂きました。
Microsoft Office 2003 Web Services Toolkit & Excel2003 VBAでWebServiceを試しているのですが、下記エラーメッセージの原因がさっぱり分かりません。どこの問題があるのでしょうか?宜しくお願いします。 下記wsdlをWebServiceReferencesで取り込むとstruct_ および clsof_Factoryクラスが作成されません。 【エラーメッセージ】 エラーコード:client エラー詳細:SoapMapper:型マッパー内でSoapMapperのデータ変換が失敗しました。 -2147221504(80040000) 【vba】 Dim CompanyCode_Check As New clsws_BAPICOMPANYCODEEXISTE Dim Dom As New MSXML2.DOMDocument30 Dim Elm As MSXML2.IXMLDOMElement Dim List As MSXML2.IXMLDOMNodeList Dim SAP_Ret As struct_BAPIRETURN Dim Soap_Return As MSXML2.IXMLDOMNodeList Set Dom.documentElement = Dom.createElement("BAPI_COMPANYCODE_EXISTENCECHK") Set Elm = Dom.createElement("COMPANYCODEID") Elm.Text = "xxxx" Dom.documentElement.appendChild Elm Set List = Dom.documentElement.childNodes Set Soap_Return = CompanyCode_Check.wsm_BAPI_COMPANYCODE_EXISTENCECHK(List) 【clsws_の先頭行】 Public Function wsm_BAPI_COMPANYCODE_EXISTENCECHK(ByVal any_COMPANYCODEID As MSXML2.IXMLDOMNodeList) As MSXML2.IXMLDOMNodeList 【wsdl】 - <xsd:element name="BAPI_COMPANYCODE_EXISTENCECHK"> - <xsd:complexType> - <xsd:all> - <xsd:element name="COMPANYCODEID"> - <xsd:simpleType> - <xsd:restriction base="xsd:string"> <xsd:maxLength value="4" /> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:all> </xsd:complexType> </xsd:element> - <xsd:element name="BAPI_COMPANYCODE_EXISTENCECHK.Response"> - <xsd:complexType> - <xsd:all> <xsd:element name="RETURN" type="s0:BAPIRETURN" /> </xsd:all> </xsd:complexType> </xsd:element> - <xsd:complexType name="BAPIRETURN"> - <xsd:sequence> - <xsd:element name="TYPE" minOccurs="0"> - <xsd:simpleType> - <xsd:restriction base="xsd:string"> <xsd:maxLength value="1" /> </xsd:restriction> </xsd:simpleType> </xsd:element> - <xsd:element name="CODE" minOccurs="0"> - <xsd:simpleType> - <xsd:restriction base="xsd:string"> <xsd:maxLength value="5" /> </xsd:restriction> </xsd:simpleType> </xsd:element> - <xsd:element name="MESSAGE" minOccurs="0"> - <xsd:simpleType> - <xsd:restriction base="xsd:string"> <xsd:maxLength value="220" /> </xsd:restriction> </xsd:simpleType> </xsd:element> - <xsd:element name="LOG_NO" minOccurs="0"> - <xsd:simpleType> - <xsd:restriction base="xsd:string"> <xsd:maxLength value="20" /> </xsd:restriction> </xsd:simpleType> </xsd:element> - <xsd:element name="LOG_MSG_NO" minOccurs="0"> - <xsd:simpleType> - <xsd:restriction base="xsd:string"> <xsd:maxLength value="6" /> <xsd:pattern value="\d*" /> </xsd:restriction> </xsd:simpleType> </xsd:element> - <xsd:element name="MESSAGE_V1" minOccurs="0"> - <xsd:simpleType> - <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> - <xsd:element name="MESSAGE_V2" minOccurs="0"> - <xsd:simpleType> - <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> - <xsd:element name="MESSAGE_V3" minOccurs="0"> - <xsd:simpleType> - <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> - <xsd:element name="MESSAGE_V4" minOccurs="0"> - <xsd:simpleType> - <xsd:restriction base="xsd:string"> <xsd:maxLength value="50" /> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:complexType> |
|
投稿日時: 2006-11-10 19:44
AXISとMS実装の間のSOAP通信では互換性に苦労するのが現実です。
ComplexType的なマーシャリングのルールが違うようです。 引数にStringの配列でさえ渡せず、手でWSDLを書くのも面倒なので あきらめたことがあります。 単なる知識不足かもしれませんが、情報もなかなかみつかりません。 詳しい方がいたら教えて欲しいです。 |
1