※本記事は、2017年11月20日にAras Corporation JONHODGE によって投稿された記事を和訳したものです。
v11SP9用の.wsdlファイルで定義されたWebサービスを使用する必要があり、私はArasKnowledgeBaseで情報を探していました。http://community.aras.com/en/knowledgebase/consume-web-service-server-method/の記事によると、NET 2.0とVisual Studio 2003を前提としていると書かれており、これは私には問題でした。この記事に記載されている手順はまだ有効ですが、Windows 10の搭載されたマシンではwsdl.exeとcsc.exeはどこにあるのか?そして、resulting DLLにどのクラスが公開されているか、どう調べればいいのでしょうか?
wsdl.exeはどこにいったのか?
Windows\Microsoft.NET\Framework64の中にはありません。しかしWindowsで検索するとC:\Program Files (x86)\Microsoft SDKs\Windows\ both v7.0A\Binとv10.0A\bin\NETFX 4.6 Toolsのなかに見つけました。私はどちらも試し、以下を使って.cs fileを作成しました。
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\Wsdl.exe" web_service_name.wsdl /o:web_service_name.cs pause
csc.exeはどこにいったのか?
C:\Windows\Microsoft.NET\Framework64\v4.0.30319にあり、web_service_name.csは以下でコンパイルされていました。C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /t:library /out:web_service_name.dll web_service_name.cs /reference:System.dll,System.Web.dll,System.Web.Services.dll,System.XML.dll /optimize pause
どのクラスが公開されているのか
web_service_name.cs生成コードは.Net 2.0にコンパイルするコンパイラ指示文を持っているので、Arasメソッドには有効です。コードの中に.Net namespaceがなかったことには驚きました。メソッドの中でどのタイプを使うのかどうすればわかるでしょうか。Visual StudioのObjectExplorerのなかでweb_service_name.dllをブラウジングすることで、dllの中に何があるかがわかります。メソッドの中にあるObjectExplorerからクラスネームを使ってください。Aras Innovatorを設定する
Innovator/Server/binにdllをコピーし、Innovator/Server/method_config.xmlを編集してください。私の場合method_config.xmlの<ReferencedAssemblies>に、以下を追加する必要がありました。
<name>$(binpath)/web_service_name.dll</name>そして
using System.Web.Servicesを<Template name=”CSharp”>に追加。
結果
メソッドとSyntax checking yieldsでウェブサービスクラスを使いChecking syntax...ビンゴ!OK: 2BDAA2BFAFC343549A731F6E11605BF7.
メソッドコンフィグテンプレートで別のステートメントが必要な場合には、Syntax Checkerが教えてくれます。