高度なカスタマイズ > ビジネスロジックのカスタマイズ > Arbortext カスタマイズの展開 > Arbortext の匿名アクセス
  
Arbortext の匿名アクセス
プロセスの概要
Windchill で XML アプリケーションをホストし、Arbortext Editor から使用するには、次の手順に従います。
1. カスタムディレクトリ構造の圧縮アーカイブを作成します。
2. Windchill にログインし、製品またはライブラリを検索 (必要に応じて作成) して、コンテナの 2 次レベルナビゲーションで「フォルダ」を選択します。
* 
製品またはライブラリのみがサポートされます。その他のコンテナ (サイト、組織、プログラム、プロジェクト) はサポートしていません。
3. Arbortext カスタマイズを保存するフォルダを必要に応じて作成します。このフォルダは最上位レベルに配置することも、その他のフォルダの中にネストする (階層の深さは任意) こともできます。
4. 同じ製品またはライブラリの内部で「プリファレンス管理」ユーティリティを開き、「Arbortext」プリファレンスグループを展開して、「カスタマイズフォルダ」プリファレンスを表示します。
5. プリファレンスを編集して、任意のフォルダの名前とパスを入力します。値の例は次のとおりです。
説明
Arbortext Customizations
フォルダ名に空白を含む最上位レベルフォルダ。
Arbortext/Applications
"Arbortext" という名前の最上位フォルダと "Applications" という名前の子フォルダ。
このプリファレンスを設定すると、指定したフォルダ内のすべての WTDocument オブジェクトが匿名 HTTP で使用できるようになります (URL 構造についての詳しい説明はこのドキュメントで後述します)。
6. Zip ファイルを目的のフォルダにアップロードします。Windchill にドキュメントを作成する際には、値「タイプ」および「CAGE コード」は無関係です。
7. アーカイブの匿名アクセス URL をブラウザに入力して、圧縮したアーカイブをダウンロードできることを確認します。匿名アクセス URL については、セクション「匿名アクセス URL のフォーマット」を参照してください。
8. 環境変数 APTCUSTOM に圧縮アーカイブの匿名アクセス URL を設定して Arbortext Editor を起動し、カスタマイズを使用します。
* 
zip フォーマットの Arbortext カスタマイズに関する詳細は、Arbortext ヘルプセンターの「Deploying zipped customizations」セクション (プログラミング > Arbortext Customizer's Guide > Custom applications > Deploying zipped customizations) を参照してください。
匿名アクセス URL のフォーマット
タイプ
URL フォーマット
ライブラリ
http://サーバー:ポート/Windchill/servlet/WindchillGW/com.ptc.arbortext.windchill.anonymous.AnonymousAccessDownloader/lib/組織名/ライブラリ名/名前[?params]
製品
http://サーバー:ポート/Windchill/servlet/WindchillGW/com.ptc.arbortext.windchill.anonymous.AnonymousAccessDownloader/product/組織名/製品名/名前[?params]
* 
フォルダ名そのものは URL には含まれません。フォルダ名は「カスタマイズフォルダ」プリファレンスで定義されます。このプリファレンスの設定については、「匿名アクセスのフォルダパスの設定」セクションを参照してください。
* 
HTTP URL では通常、空白、コロン、非ラテン文字といった文字を含めることはできません。たとえば、空白文字は %20 に置き換える必要があります。
URL の名前部分は、次の 3 つのいずれかを使用します。
Windchill のオブジェクト番号
Windchill のオブジェクト名
基本となるファイルのファイル名一般に、これはもともとアップロードされているファイルの名前です。
Windchill のフォルダには同じ名前または同じ基本名の複数のオブジェクトが含まれているため、正しいオブジェクトを取得するための最も安全な方法は、ファイル番号を使用することです。名前が衝突することはほとんどありません。
たとえば、このフォルダに hello.txt という名前のファイルをアップロードしたとします。オブジェクト名は "hello"、オブジェクト名の例は "0000007324"、ファイル名は "hello.txt" にできます。この場合、URL でこのオブジェクトを指定するにはこれらのいずれも使用できます。
指定した文字列に一致するオブジェクトを検索する際に優先度が高いのは、番号の一致です。一致する番号が見つからない場合、最初のオブジェクトと同じ名前が検索されます。一致する名前が見つからない場合、最後に最初のオブジェクトと同じファイル名が検索されます。
一般に、複数のオブジェクトに同じ名前またはファイル名が付けられることはありません。しかし、そのようなことがあった場合は、番号を使用して目的のオブジェクトに安全にアクセスできます。
オプションの照会パラメータの組み合わせは次のとおりです。パラメータの順序は不同です。
パラメータ
説明
(パラメータなし)
最新バージョンの最新の作業版数が選択されます。作業中 (チェックアウトされている) の作業版数は対象になりません。
状態
指定したライフサイクル状態と一致する直近のバージョンの直近の作業版数が選択されます。
バージョン
指定したバージョンの直近の作業版数が選択されます。
作業版数
作業版数パラメータは無視されます。これは、バージョンパラメータと同時にのみ使用されます。
状態、作業版数
作業版数パラメータは無視されます。前述の「状態」を参照してください。
状態、バージョン
指定した状態に一致する指定したバージョンの直近の作業版数が選択されます。
バージョン、作業版数
指定したバージョンの指定した作業版数が選択されます。
状態、バージョン、作業版数
作業版数パラメータは無視されます。前述の「状態、バージョン」を参照してください。
照会パラメータの使用方法の例は次のとおりです。
照会パラメータ
説明
.../custom.zip.xml?version=C&iteration=2
custom.zip のバージョン C.2
.../custom.zip?state=Approved
「承認済み」とマークされた直近のバージョン。
.../custom.zip?state=Approved&version=B
バージョン B で「承認済み」とマークされた直近のバージョン。
.../custom.zip?version=B
バージョン B の最新の作業版数。
フォルダに存在しないオブジェクトの名前を指定した場合、または指定した要求パラメータにオブジェクトの作業版数がいずれも一致しない場合、匿名アクセス URL は呼び出し元に 404 応答を返します。これは、要求されたオブジェクトが見つからない場合の通常の HTTP 動作です。
* 
「最新」バージョンの選択
バージョン付けされた Windchill オブジェクトを扱う場合、規則は最初に "latest" のオブジェクトをバージョンによって選択し、次に作業版数によって選択します。バージョン C の最新の作業版数の方がより最近作成されていたとしても、バージョン D の最新の作業版数はバージョン C の最新の作業版数よりも "newer"(新しい) と見なされます。たとえば、別のバージョンにより新しい作業版数がある場合でも、フォルダコンテンツを Web UI を使用してブラウズする際には常に、最新のバージョンから最新の作業版数を表示できます。
匿名アクセス URL のバージョン選択は、このように動作します。たとえば、バージョンなしに状態パラメータが指定されており、A.4 と B.2 にリクエストされた状態がある場合、A.4 の作成日時にかかわらず B.2 が常に返ります。
匿名アクセスが可能なオブジェクト
この機能により、Arbortext 製品で Windchill で管理された XML アプリケーションに優先的にアクセスできるようになっていますが、Word ドキュメントやテキストファイルなどのその他のファイルタイプにもアクセスできます。匿名アクセス URL が有効であるためには、ターゲットオブジェクトが WTDocument オブジェクト (つまりサブタイプ) でなければなりません。EPMDocument オブジェクト (CAD ファイルや Arbortext Editor で作成した XML ファイル) または WTPart 構造など、その他の Windchill オブジェクトタイプにはアクセスできません。
匿名アクセスのフォルダパスの設定
「カスタマイズフォルダ」プリファレンスにより、Zip フォーマットの Arbortext カスタマイズを含むフォルダへのパスが指定できます。指定したフォルダ内のすべての Windchill ドキュメントのコンテンツは、特別に構築した URL での認証なしに使用できます。
このプリファレンスを設定するには、「サイト」 > 「ユーティリティ」 > 「プリファレンス管理」 > 「Arbortext」 > 「カスタマイズフォルダ」の順に移動します。
サイト/組織: 匿名アクセスを無効にするには、このプリファレンスに空の値を設定して、「ロック」チェックボックスをオンにします。
製品/ライブラリ: Zip フォーマットの Arbortext カスタマイズを含む製品またはライブラリのフォルダへのパスを指定します。このプリファレンスの値が空である場合、製品またはライブラリには匿名で公開されるフォルダがないことを意味します。
* 
zip フォーマットの Arbortext カスタマイズに関する詳細は、Arbortext ヘルプセンターの「Deploying zipped customizations」セクション (プログラミング > Arbortext Customizer's Guide > Custom applications > Deploying zipped customizations) を参照してください。
デフォルトで、このプリファレンスの値は空です。このプリファレンスで製品またはライブラリの値が空である場合、そのコンテナへの匿名アクセスは許可されません。
管理者が強制的にこの機能を無効にする 1 つの方法は、プリファレンスのサイトレベルまたは組織レベルで空の値に設定してロックすることです。Windchill の通常の継承規則により、これによりすべての子の製品およびライブラリコンテナもこのプリファレンスに空の値を持つようになり、したがって機能は完全に無効になります。
プリファレンス値の例は次のとおりです。
Arbortext Customizations: "Arbortext Customizations" という名前の最上位フォルダを作成します。このフォルダ名にはスペースが含まれます。
Arbortext/Applications: 子フォルダ "Applications" を持つ "Arbortext" という名前の親フォルダを作成します。
「プロジェクト」または「プログラム」の中のこのプリファレンスに、空でない値が設定されているとします。これらのコンテナタイプでは機能が動作しないので、この設定は影響を与えません。より正確には、これらのコンテナで構成してそのようなフォルダにアクセスできる HTTP URL はありません。
「サイト」または「組織」の中にあるこのプリファレンスに空でない値が設定されたとします。継承規則により、すべての子コンテナが (独自の固有値でオーバーライドされないかぎり) この値を継承するので、これは実際には望ましくありません。これは、プリファレンスの値に一致するフォルダパスを持つ子の製品またはライブラリのすべてに、匿名で公開するフォルダのコンテンツがあることを暗に示しています。
プリファレンスの値を設定すると、サイト、組織、プロジェクト、またはプログラムコンテナのコンテキストに空でない値が割り当てられた場合は警告が表示されます。サイトまたは組織のコンテナに割り当てられた値が空でない場合、子コンテナのそれぞれに値が反映され、不注意で材料が公開される場合があります。プロジェクトまたはプログラムに割り当てられた値が空でない場合、影響はなく、警告もないため、ユーザーは予期せぬ結果に戸惑うかもしれません。
匿名アクセスが可能なオブジェクトのリスト化
匿名アクセス機能を使用できるオブジェクトのリストを生成できます。これにより、オブジェクトが間違って公開されていないかどうかを判断しやすくなり、各オブジェクトの HTTP URL の提供が容易になります。匿名アクセスを使用できるオブジェクトのリストを生成できるのは、管理者アクセス権限を持つユーザーに限られます。
匿名で共有されるオブジェクトのリストを生成するには、次の手順に従います。
1. Windchill シェルを開きます。詳細については、Windchill シェルを参照してください。
2. cd bin
3. ant -f anonymousAccess.xml listAvailableResources
4. 管理者の資格情報を入力します。
アイテムを公開する出力例
出力には、匿名アクセスでアクセスできる各ドキュメントのエントリが含まれ、各エントリにはドキュメントに匿名でアクセスする際に使用する組織、コンテナ (製品またはライブラリ)、ドキュメントが含まれるフォルダ、ドキュメント名、URL のスケルトンがリストされます。
******************************************************************************
!+! STARTED @ Fri Oct 14 13:28:10 EDT 2011
******************************************************************************
Log file is '<Windchill>\Windchill\buildlogs\0000-anonymousAccess.log'
------------------------------------------------------------------------------
!+! ENTERING Anonymous Access
------------------------------------------------------------------------------
listAvailableResources:
[echo] ------------------------------------------------------------------
[echo] The following is a list of documents in Windchill that are exposed
[echo] to anonymous http access. Each entry lists the Organization,
[echo] Product or Library, and Name of the document as well as the Url
[echo] used to access it.
[echo] ------------------------------------------------------------------
[java]
[java] Organization: Demo Organization
[java] Library: New Library
[java] Folder: /Shared Folder
[java] Document: Lib Item 1
[java] URL: http://wcserver:1600/Windchill/servlet/WindchillGW/
com.ptc.arbortext.windchill.anonymous.AnonymousAccessDownloader/lib/
Demo%20Organization/New%20Library/Lib%20Item%201
[java]
[java]
[java] ------------------------------------------------------------------
[java]
[java] Organization: Demo Organization
[java] Product: GOLF_CART
[java] Folder: /Apps
[java] Document: Thing1
[java] URL: http://wcserver:1600/Windchill/servlet/WindchillGW/
com.ptc.arbortext.
windchill.anonymous.AnonymousAccessDownloader/product/Demo%20Organization/
GOLF_CART/Thing1
[java]
[java] -------------------------------------------------------------
[java]
[java] Organization: Demo Organization
[java] Product: GOLF_CART
[java] Folder: /Apps
[java] Document: Thing 2
[java] URL: http://wcserver:1600/Windchill/servlet/WindchillGW/
com.ptc.arbortext.
windchill.anonymous.AnonymousAccessDownloader/product/
Demo%20Organization/GOLF_CART/Thing%202
[java]
[echo] ------------------------------------------------------------------
[echo] Example:
[echo] http://MyServerName/Windchill/servlet/WindchillGW/
com.ptc.arbortext.
windchill.anonymous.AnonymousAccessDownloader/lib/ExampleOrganization/
ExampleLibraryName/ExampleDocName
[echo] ------------------------------------------------------------------
******************************************************************************
!+! FINISHED @Fri Oct 14 13:28:19 EDT 2011
!+! Log: <Windchill>\Windchill\buildlogs\0000-anonymousAccess.log
******************************************************************************
BUILD SUCCESSFUL
Total time: 9 seconds
hostname および web-app の値はコマンドラインインタフェースで入力できないため、URL 例には実際の値が含まれていないことに注意してください。表示される URL は長いのでコマンドプロンプトで行をまたいで表示されます。出力を表示する最も簡単な方法は、リストの先頭に記載されたログファイルを表示することです。
このリストには、Windchill インストール全体で共有されている、全組織のすべての製品およびライブラリを含むすべてのドキュメントオブジェクトが含まれます。
アイテムが公開されない出力例
オブジェクトが公開されないのは、次の 3 つの場合です。
1. 「カスタマイズフォルダ」プリファレンスがサイトレベルで空の値に設定され、ロックされている。
2. 匿名で公開されるフォルダがない。
3. 少なくとも 1 つのフォルダが匿名で公開されるが、WTDocument オブジェクトが含まれていない。
その時点で匿名アクセス機能で共有されているドキュメントがない場合、次の出力が生成されます。

******************************************************************************
!+! STARTED @ Fri Oct 14 14:19:59 CDT 2011
******************************************************************************
Created log dir <Windchill>\Windchill\buildlogs'
------------------------------------------------------------------------------
!+! ENTERING Anonymous Access[<Windchill>\Windchill\bin\anonymousAccess.xml]
------------------------------------------------------------------------------
listAvailableResources:
[echo] ------------------------------------------------------------------
[echo] The following is a list of documents in Windchill that are exposed
[echo] to anonymous http access. Each entry lists the Organization,
[echo] Product or Library, and Name of the document as well as the Url
[echo] used to access it.
[echo] ------------------------------------------------------------------
[java]
[java] No shared documents found.
[java]
[echo] ------------------------------------------------------------------
[echo] Example:
[echo] http://MyServerName/Windchill/servlet/WindchillGW/com.ptc.arbortext.
windchill.anonymous.AnonymousAccessDownloader/lib/ExampleOrganization/
ExampleLibraryName/ExampleDocName
[echo] ------------------------------------------------------------------
********************************************************************************
!+! FINISHED @ Fri Oct 14 14:20:23 CDT 2011
!+! Log: <Windchill>\Windchill\buildlogs\0000-anonymousAccess.log
******************************************************************************
BUILD SUCCESSFUL
Total time: 24 seconds