Random Thoughts |
If you're in a vehicle going the speed of light, what happens when you turn on the headlights?
|
言語 |
|
|
|
フォーラムニュース: 質問、相談カテゴリに「SolidWorks操作方法」に関するフォーラムを追加しました。(2003/11/27) |
いらっしゃい、 ゲストさん. まずはこちら→ ログイン または 登録. 2024/11/23 - 07:46:32 |
|
|
|
著者
|
トピック: EnterprisePDMでローカルバージョンの取得について (閲覧数 2308 回) |
|
kino112
新人さん
オフライン
投稿: 2
I'm a llama!
|
|
EnterprisePDMでローカルバージョンの取得について
« 投稿日: 2011/12/25 - 23:23:25 » |
|
最近SolidWorksのAPIツール開発の仕事に携わるようになった者です。 EnterPrisePDMのAPIに関する情報が少なく、ヘルプ以外に調べる方法がほとんどなくて困っており 今回こちらのサイトを見つけ、投稿させていただきます。
SolidWorks2009とEnterprisePDM環境で、 SolidWorks2009のAPIからEnterprisePDMのVaultへログインし、 正しいローカルファイルのバージョンを取得したいと考えています。
EnterprisePDMのAPIでIEdmFile5のGetLocalVersionNoメソッドでローカルバージョンを取得していますが、 古いバージョンを取得する際(例えば最新バージョンが現在「7」の状態で古い「5」のバージョンを取得するなど)、チェックアウトをする、しない、で、この戻り値が下記のように異なります。
最新バージョン「7」のファイルの古いバージョン「5」を、「バージョンの取得」をしてファイルを開いた場合。 チェックアウトする :GetLocalVersionNoでは「-1」が戻り値となる チェックアウトしない:GetLocalVersionNoでは「5」が戻り値となる
チェックアウトをする、しないに関わらず、正しいローカルバージョン(上記の例であれば「5」)を取得する方法はありますでしょうか。
どなたかアドバイスを頂けると大変助かります。 宜しくお願い致します。
|
|
|
|
Makoron
カタマリの王様!?
オフライン
投稿: 1277
SW2011SP5.0
|
|
Re:EnterprisePDMでローカルバージョンの取得について
« 返信 #1 投稿日: 2011/12/26 - 09:11:26 » |
|
kino112さん、はじめまして。
今回、kino112さんが質問されている内容は、EnterprisePDMのAPIの機能的にむずかしいというより、 EnterprisePDMの仕様がその様になっている為に出来ないと思います。
WindowsExplorerからボルトに入って、最終バージョンが7のファイルをチェックアウトし、 バージョン取得で5を取得した場合、PDM上でもローカルバージョンは表示されません。 (バージョンタブでは「変更されたローカルファイル」となりタブ名には「-/7」と表示されます。)
ちなみに、最新バージョンのファイルをチェックアウトした後に内容を変更すると、 まったく同じ表示になると思います。 旧バージョンのファイルでチェックアウトされていても、最終バージョンと内容が異なる為 次のバージョンのドキュメントを作成していると判断されてしまうのです。
APIでもまったく同じ動作をする為に、チェックアウトされると-1が帰るのです。
ということでEnterprisePDMのAPIでは仕様的に難しいのですが、 別の方法でやって出来ないことはないかもしれません。
EnteprisePDMのファイルの各バージョンは、アーカイブフォルダの中にそれぞれ存在しています。 また、PDMのデータベース内にはアーカーブファイルの情報が存在しています。 ということは、アーカイブファイルの各バージョンとローカルフォルダのファイルを 比較することでローカルファイルがどのバージョンであるかが判断できると思います。 (比較方法はファイル日付が簡単だと思います。)
一応、SQLServerのテーブルからアーカイブファイルのファイルパスを取得することは 以前試した事があるので可能だとは思います。
いま提案できるのはこれくらいでしょうか。
|
|
|
|
kino112
新人さん
オフライン
投稿: 2
I'm a llama!
|
|
Re:EnterprisePDMでローカルバージョンの取得について
« 返信 #2 投稿日: 2011/12/26 - 16:08:35 » |
|
Makoronさん、はじめまして。 丁寧なご回答ありがとうございます。
Enterpriseの仕様となると、「バージョン取得」で古いバージョンをローカルで開いた場合に どのバージョンを取得したかということが分かるようなAPIは用意されていないということですね。 EnterprisePDM APIヘルプを見ていても、それらしいAPIがないことに納得致しました。 ありがとうございます!
SolidWorksのPremiumアドインツールの「Solidwokrs Enterprise PDM」には このような古いローカルバージョンも数字で表示されており、 Makoronさんの言われるEnterpriseのバージョンタブが「-/7」表示されている場合でも このアドインツール上のバージョンには「5/7」という様に表示されています。
アドインツールではどのようにこの古いローカルバージョンを取得して表示させているのか、 知りたいところです。
ただ、ご提案頂いたバージョン履歴を取得するIEdmEnumeratorVersion5のVersionDateを利用して バージョンを特定することで実現出来そうです。 アドバイスありがとうございます。
また、引き続きアドインツールで古いローカルバージョンを取得している方法をご存じでしたら、 アドバイス頂ければ助かります。 宜しくお願い致します。
|
|
|
|
|
|
|
|