仕事のカタマリにようこそ!  [ ログイン | ユーザ登録 ]
フォーラムから検索

機械用3D-CAD SolidWorks非公認のユーザサイトです
 
 
Web katamari.org
仕事のカタマリ
ホーム リンク集 ダウンロード フォーラム(掲示板) FAQ お問い合わせ









フォーラムニュース: 質問、相談カテゴリに「SolidWorks操作方法」に関するフォーラムを追加しました。(2003/11/27)
いらっしゃい、 ゲストさん. まずはこちら→ ログイン または 登録. 2024/11/23 - 07:46:32
ホーム ヘルプ 検索 ログイン 登録

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: EnterprisePDMでローカルバージョンの取得について 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: 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を利用して
バージョンを特定することで実現出来そうです。
アドバイスありがとうございます。

また、引き続きアドインツールで古いローカルバージョンを取得している方法をご存じでしたら、
アドバイス頂ければ助かります。
宜しくお願い致します。
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: EnterprisePDMでローカルバージョンの取得について 前のトピック 次のトピック
ジャンプします: