ZAKRELLO
Jr. メンバー
オフライン
投稿: 12
I'm a llama!
|
|
PDMW API のログイン
« 投稿日: 2010/01/21 - 13:23:35 » |
|
SolidWorksのカスタマイズをすることとなり、困ったあげくここでお世話になろうと 思い投稿させていただきました。
SolidWorks Workgroup PDM API の PDMWConnectionでログイン(Login)が出来ません。 PDMWConnectionのLoginメソッドを実行すると”An unknown network error occurred. (40)” のエラーメッセージが帰ってきます。
問題解決のためにアドバイスいただけると助かります。
--------------------------------------------------------------------- Dim connection As PDMWConnection
connection = CreateObject("PDMWorks.PDMWConnection") connection.Login(”User", "Password", "Server") '<== ここでエラー ---------------------------------------------------------------------
開発環境 VB.NET 2005 SolidWorks 2009 SP0.0 SolidWorks Enterprise PDM 9.0
その他 ・ サーバー/クライアント(プログラム実行PC)は同一PCです。 ・ "Server"には、PC名、IPアドレス、"localhost"を指定してみましたが、 いずれも同じ結果(エラー)になりました。 pingは PC名、IPアドレス、"localhost"のいずれも通ります。 ・ ファイヤーウォールは無効にしています。 ・ Windows エクスプローラでボルト(Vault)にアクセスするときにログイン画面がでますが、 ”User", "Password"でログインできています。 ・ SolidWorks Enterprise PDM API のLoginは出来ました。 --------------------------------------------------------------------- Dim vault As EdmVault5 vault = New EdmVault5 vault.Login("User", "Password", "VaultName") ---------------------------------------------------------------------
よろしくお願いいたします。
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:PDMW API のログイン
« 返信 #1 投稿日: 2010/01/28 - 11:58:27 » |
|
ZAKRELLOさん、始めまして。
しばらく前の書き込みなので、もう解決しているかもしれませんが、書き込み内容を読んでいると、 Enterprise PDM のサーバーにWorkgroup PDM API でアクセスしようとしている様に感じました。 当然、別のシステムなので、利用できない事が正しい動作です。 (まちがっていたら、ごめんなさい。)
もし、Workgroup PDM のサーバーとEnterprise PDM のサーバーの両方があって どちらのPDMも WindowsやSolidWorksからの操作が出来て、 APIからの操作だとWorkgroup PDM の方だけ出来ない、ということであれば 何らかの環境によるものか、APIのバグなどが考えられると思います。
私の環境ではWorkgroup PDM を使用していないので、テストできないのですが、 ネットワークに関連するコードをのせておくので、適当に組み込んで試してみてください。
-------------------------------------------------------------------- Private Sub Test() Dim ServerName As String = "Server"
Dim Msg As String = "" Msg &= "***** PINGテスト *****" & vbCrLf Msg &= PingTest(ServerName) & vbCrLf Msg &= vbCrLf Msg &= "***** WorkgroupPDMの接続テスト *****" & vbCrLf Msg &= TcpTest(ServerName, 20000) & vbCrLf Msg &= TcpTest(ServerName, 30000) & vbCrLf Msg &= TcpTest(ServerName, 40000) & vbCrLf Msg &= TcpTest(ServerName, 80) & vbCrLf Msg &= vbCrLf Msg &= "***** EnterprisePDMの接続テスト *****" & vbCrLf Msg &= TcpTest(ServerName, 1433) & vbCrLf
MessageBox.Show(Msg) End Sub
' PINGのテスト Private Function PingTest(ByVal HostName As String) As String Dim Result As String = ""
Dim objPing As New System.Net.NetworkInformation.Ping() Try Dim Reply As System.Net.NetworkInformation.PingReply = objPing.Send(HostName) If Reply.Status = System.Net.NetworkInformation.IPStatus.Success Then Result = "PINGテスト OK" Else Result = "PINGテスト Error!" End If Catch ex As Exception Result = "PINGテスト Error! (" & ex.Message & ")" End Try objPing.Dispose()
Return Result End Function
' TCP接続のテスト Private Function TcpTest(ByVal HostName As String, ByVal PortNumbet As Integer) As String Dim Result As String = ""
Dim ObjTcpConnection As System.Net.Sockets.TcpClient = Nothing Try ObjTcpConnection = New System.Net.Sockets.TcpClient(HostName, PortNumbet) Result = "TCP接続 OK (" & HostName & ":" & PortNumbet & ")" ObjTcpConnection.Close() Catch ex As Exception Result = "TCP接続 Error! (" & HostName & ":" & PortNumbet & ")" End Try
Return Result End Function --------------------------------------------------------------------
|
|
|
|
ZAKRELLO
Jr. メンバー
オフライン
投稿: 12
I'm a llama!
|
|
Re:PDMW API のログイン
« 返信 #2 投稿日: 2010/01/28 - 20:46:39 » |
|
Makoronさん、はじめまして。 そして、回答ありがとうございます。
Enterprise PDM と Workgroup PDM が違うものだとの認識がありませんでした。 こちらでも、Workgroup PDMのサーバーは構築されていませんでした。 SolidWorksのカスタマイズにたずさわって間もなく、システムの理解が不十分でした。
Workgroup PDM環境がないので検証できませんが、、 「別のシステムなので、利用できない」と言うことで落ち着きたいと思います。
Makoronさん、お時間割いていただき、ありがとうございました。 的確なアドバイスに感謝します。
ちなみに、「ネットワークに関するコード」を組み込んだ結果です。
***** PINGテスト ***** PINGテスト OK
***** WorkgroupPDMの接続テスト ***** TCP接続 Error! (Server:20000) TCP接続 Error! (Server:30000) TCP接続 Error! (Server:40000) TCP接続 OK (Server:80)
***** EnterprisePDMの接続テスト ***** TCP接続 Error! (Server:1433)
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:PDMW API のログイン
« 返信 #3 投稿日: 2010/01/28 - 21:01:37 » |
|
引用: Enterprise PDM と Workgroup PDM が違うものだとの認識がありませんでした。 こちらでも、Workgroup PDMのサーバーは構築されていませんでした。 SolidWorksのカスタマイズにたずさわって間もなく、システムの理解が不十分でした。
Workgroup PDM環境がないので検証できませんが、、 「別のシステムなので、利用できない」と言うことで落ち着きたいと思います。
Makoronさん、お時間割いていただき、ありがとうございました。 的確なアドバイスに感謝します。 |
どういたしまして。 私も原因がはっきりしてスッキリしました!
ちなみにですが、どの様なカスタマイズを行いたかったのでしょうか? 差し支えなければ、教えていただけますか? (私はEnterprisePDMのカスタマイズの方にも、かなり首を突っ込んでしまったのでそれなりにお答えできると思います。)
引用: ちなみに、「ネットワークに関するコード」を組み込んだ結果です。
***** EnterprisePDMの接続テスト ***** TCP接続 Error! (Server:1433) |
あれれ〜 EnterprisePDMは動いているのですよね? Windowsからボルトフォルダを開いてログインできます?
|
|
|
|
hisa
カタマリの王様!?
オフライン
投稿: 507
PANDA-Z!!
|
|
Re:PDMW API のログイン
« 返信 #4 投稿日: 2010/01/29 - 11:59:50 » |
|
今年初の書き込みです
引用:ちなみに、「ネットワークに関するコード」を組み込んだ結果です。
***** EnterprisePDMの接続テスト ***** TCP接続 Error! (Server:1433)
あれれ〜 EnterprisePDMは動いているのですよね? Windowsからボルトフォルダを開いてログインできます? |
SQL ServerのTCP/IPが有効になっていないor違うポート番号を指定しているとかですかね 最近ちょこっとSQLに関するお勉強をしたので、なんとなく・・・
有効にするには、SQL Server 構成マネージャから出来ます。
|
|
|
|
ZAKRELLO
Jr. メンバー
オフライン
投稿: 12
I'm a llama!
|
|
Re:PDMW API のログイン
« 返信 #5 投稿日: 2010/01/29 - 14:16:50 » |
|
Makoronさん、こんにちは hisaさん、はじめまして
引用:ちなみにですが、どの様なカスタマイズを行いたかったのでしょうか? 差し支えなければ、教えていただけますか? (私はEnterprisePDMのカスタマイズの方にも、かなり首を突っ込んでしまったのでそれなりにお答えできると思います。)
|
カスタマイズは ざっくり表現すると・・ 図面(slddrw)ファイル内 図面ビューでアセンブリとその構成部品のカスタムプロパティを取得 取得したデータを、表にして図面(slddrw)ファイル内に挿入 取得したデータを、図面(slddrw)ファイル内のシートフォーマット内に注記で表示 できた図面(slddrw)ファイルを画像ファイル(bitmapなど)でファイルに保存 ユーザを確認して機能に制限をつける(PDMのAPIはこの辺で使用予定) やりたいことはこんな感じです
引用:あれれ〜 EnterprisePDMは動いているのですよね? Windowsからボルトフォルダを開いてログインできます? |
Windowsからボルトフォルダを開いてログインできています。
引用:SQL ServerのTCP/IPが有効になっていないor違うポート番号を指定しているとかですかね |
SQL Server 構成マネージャからSQL ServerのTCP/IPを有効にしたら ***** EnterprisePDMの接続テスト ***** TCP接続 OK (Server:1433) になりました。
頼ってばかりもいけないのですが、 心強い方々にアドバイスいただけてほんと、助かります ありがとうございます。
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:PDMW API のログイン
« 返信 #6 投稿日: 2010/02/16 - 14:50:25 » |
|
引用:カスタマイズは ざっくり表現すると・・ 図面(slddrw)ファイル内 図面ビューでアセンブリとその構成部品のカスタムプロパティを取得 取得したデータを、表にして図面(slddrw)ファイル内に挿入 取得したデータを、図面(slddrw)ファイル内のシートフォーマット内に注記で表示 できた図面(slddrw)ファイルを画像ファイル(bitmapなど)でファイルに保存 ユーザを確認して機能に制限をつける(PDMのAPIはこの辺で使用予定) やりたいことはこんな感じです |
「カスタムプロパティ取得」スレッドにサンプルの情報を載せたので、多少は参考になると思います。 ただ、このカスタマイズってボルトに追加した後に操作するとしたら、 PDMのAPIで、チェックインやチェックアウトを行う必要がありそうな気もします。 また、「ユーザの制限」とあるので、PDMのアドインプログラムで実現するのも良いかもしれないと感じました。 たとえば、右クリックメニューに「構成一覧表作成」が追加されて、 実行するとZAKRELLOさんが考えている処理を行って、チェックインやステータス変更まで行う。 なんていうものを作ると良いかも。
|
|
|
|
ZAKRELLO
Jr. メンバー
オフライン
投稿: 12
I'm a llama!
|
|
Re:PDMW API のログイン
« 返信 #7 投稿日: 2010/02/26 - 14:05:27 » |
|
Makoronさん
こんにちは。いつもお世話になっております。
引用:PDMのアドインプログラムで実現するのも良いかもしれないと感じました。
|
カスタマイズを検討し始めたころ、今もですが知識が乏しく PDMのアドインにして実現出来るのか?とかイメージすらできませんでした。
こちらの都合ですが、かけられる時間や予算の制限などもありまして、、、
今回はPDMのアドインにはしなく、ユーザーさんがslddrwファイルを開いてメニューから コマンド実行していただく方法にしました。ユーザーさんはファイルを修正した認識があるから チェックインはユーザーさんにお任せです。
PDMへアドイン化は次のPhaseで検討したいです(次回があればですが・・・)。 アドバイスありがとうございます!
|
|
|
|