メソッドにおけるWebサービスの使用、v11および.Net 4へのアップデート

※本記事は、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が教えてくれます。