エンタープライズ管理 > Windchill データロード > 製品オブジェクトと部品の読み込み: Windchill PDMLink 例 > 製品コンテナの作成
  
製品コンテナの作成
現在、製品コンテナは 1 ステップで作成できます。ただし、この例では、以前の Windchill の読み込み処理に基づいて顧客があらかじめ製品のロードファイルを用意しています。
コンテナに関する一般的な管理情報については、コンテキストの概要を参照してください。
プロセスフローを以下に示します。
1. 顧客の適切なデータを使用するために、CSV2XML ユーティリティを使用してデータファイルを XML に変換しています。以下の例を参照してください。
<?xml version="1.0" ?><!DOCTYPE NmLoader SYSTEM "standardX20.dtd">
<NmLoader>
<csvProductContainer handler="wt.part.LoadPart.createProductContainer">
<csvuser>productcreator</csvuser>
<csvname>TestLoad3</csvname>
<csvpnumber>TestLoad3</csvnumber>
<csvsharedTeamName>Shared Team 2</csvsharedTeamName>
<csvcontainerExtendable>true</csvcontainerExtendable>
<csvdescription>Test</csvdescription>
<csvview></csvview>
<csvsource></csvsource>
<csvdefaultUnit></csvdefaultUnit>
<csvtype></csvtype>
<csvcontainerTemplate>General Product</csvcontainerTemplate>
</csvProductContainer>
</NmLoader>
<csvsharedTeamName>Shared Team 2</csvsharedTeamName> と <csvcontainerExtendable>true</csvcontainerExtendable> はオプションです。これらは、読み込みデータに共有チームを含める場合にのみ使用します。
2. データは更新後、カスタム構築された XSL スタイルシートを使用して処理されます。以下の例を参照してください。
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="xml"
indent="yes"
encoding="iso-8859-1"
doctype-system="standardX20.dtd"
/>
<xsl:template match="/">
<NmLoader>
<xsl:for-each select="//csvProduct">
<csvProductContainer handler="wt.part.LoadPart.createProduct
Container" >
<csvname><xsl:value-of select="csvpartNumber"/></csvname>
<csvnumber><xsl:value-of select="csvpartNumber"/></csvnumber>
<csvsharedTeamName>Shared Team 2</csvsharedTeamName>
<csvcontainerExtendable>true</csvcontainerExtendable>
<csvdescription><xsl:value-of select="csvpartName"/></csv
description>
<csvview></csvview>
<csvsource></csvsource>
<csvdefaultUnit></csvdefaultUnit>
<csvtype></csvtype>
<csvcontainerTemplate>General Product</csvcontainerTemplate>
</csvProductContainer>
</xsl:for-each>
</NmLoader>
</xsl:template>
</xsl:stylesheet>
<csvsharedTeamName>Shared Team 2</csvsharedTeamName> と <csvcontainerExtendable>true</csvcontainerExtendable> はオプションです。これらは、読み込みデータに共有チームを含める場合にのみ使用します。
* 
この例では示していませんが、データをテストして検証するための XML コードを開発できます。たとえば、必要な値が空白である場合に、デフォルト値を代用できます。
3. 上記の XML コードを使用すると、読み込み準備ファイルが作成されます。製品コンテナは組織に属するため、読み込みユーティリティを呼び出す場合は、該当する組織を指定する必要があります。
製品コンテナの読み込みユーティリティを実行する場合は、ユーザーを指定する必要があります。このユーザーは、指定した組織の製品作成者であることが条件です。また、管理者グループに属している必要があります。この操作は通常、手動で行います。
* 
製品コンテナの作成にデフォルト管理者アカウントは使用しないでください。また、デフォルト管理者アカウントをコンテナのチームメンバーとして加えないでください。詳細については、製品オブジェクトと部品の読み込み :開始する前にを参照してください。
複数の製品コンテナを 1 つのロードファイルに含めることができます。
コマンドの例を以下に示します。
windchill wt.load.LoadFromFile -d product_container.xml -u productcreator
-p productcreator -CONT_PATH \"/wt.inf.container.OrgContainer=My Organization\"
* 
UNIX で wt.load.LoadFromFile を呼び出す場合、コンテナの名前にスペースが含まれているときは、コンテナを引用符で囲みます。また、引用符はバックスラッシュを使用してエスケープします。
* 
代替デフォルト値を指定するには、Windchill 内の「サイト」コンテキストの製品 (最終品目) 初期化規則を調整します。
バッチファイルの例を以下に示します。
echo *************************************************
echo ** Variable Setup
echo *************************************************
set tmp_org="/wt.inf.container.OrgContainer=My Organization"
echo *************************************************
echo ** Legacy Products Containers
echo *************************************************
windchill wt.load.LoadFromFile -d product_container.xml -u
productcreator -p productcreator -CONT_PATH \%tmp_org%
アセンブリの作成
ほかの製品と共通する部品を使用したり、ほかのライブラリとは独立して存在する製品を作成したりするには、アセンブリを作成する必要があります。
<csvAssemblyAddLoad> タグは既存の部品に対してのみ使用できます。つまり、既存の部品を使用して新規アセンブリを作成する場合にのみこのタグを使用できます。<csvAssemblyAddLoad> タグは、まったく新しい部品を作成する場合は使用できません。
たとえば、以下のファイルの場合を検討します。
<csvBeginWTPart handler="wt.part.LoadPart.beginCreateWTPart">?
このファイルを最初に使用して部品を作成し、次に構成部品を追加する必要があります。
タグの説明の後に、2 つのアプローチ例を示します。
タグの説明
<csvAssemblyAddLoad> タグには以下のタグが含まれます。
assemblyPartNumber - アセンブリの部品番号。値は必須です。
constituentPartNumber - 構成部品の部品番号。値は必須です。
constituentPartQty - 部品の数。値は必須です。
constituentPartUnit - 部品ユニット (ea など)。値は必須です。
assemblyPartVersion - 部品バージョン。値を指定しないと、最新バージョンが使用されます。
assemblyPartIteration - 部品の作業版数。値を指定しないと、最新バージョンが使用されます。
assemblyPartView - アセンブリ部品の部品構造ビューの名前 (Design や Manufacturing など)。部品構造ビューを使用する場合は、アセンブリ部品のビューバージョンを識別するためにビューを指定する必要があります。部品構造ビューが使用されていない場合、この属性は空白のままにしておきます。
organizationName - アセンブリ部品を所有する組織の名前。これは部品を所有している組織の名前で、組織コンテナの名前ではありません。組織オーナーシップが使用されていない場合 (部品の名前を変更するときにオーナー組織を選択できない場合)、この属性は空白のままにしておきます。
organizationID - アセンブリ部品を所有する組織を指定するもう 1 つの方法。組織オーナーシップが使用されていない場合 (部品の名前を変更するときにオーナー組織を選択できない場合)、この属性は空白のままにしておきます。この属性を指定する場合は、以下のフォーマットを使用します。
<コーディングシステム>$<組織 ID>
ドル記号 ($) は区切り記号として機能します。コーディングシステムは、以下のいずれかになります。
0141 または CAGE
0060 または DUNS
0026 または ISO65233
組織 ID は、「参加者管理」または WTOrg 情報ページで指定した組織 ID です。
たとえば、CAGE$1234 は、CAGE コードコーディングシステムを使用していて、その CAGE コードが 1234 である組織を示しています。
* 
organizationName および organizationID のいずれかを指定する必要があります。両方を指定する必要はありません。両方を指定する場合は、どちらも同じ組織を指している必要があります。
componentID - 親子リンクに関連付けられる ID。これは、親部品と子マスターの各ペアに対して一意です。言い換えると、親部品を含む親子リンクは別の ID を持ちます。
inclusionOption (コンフィギュレーション可能部品で使用) - リンク (子部品) が構造に含まれるかどうかを指定します。true に設定すると、リンクが含まれます。false に設定すると、リンクは含まれません。
quantityOption - InclusionOption と連動して、バリエーション内の子部品の数量を制御します。この数量が固定値 (5 など) の場合、バリエーションの対象子に対してその数量が設定されます。数量がパラメータの場合、そのパラメータの値に基づいて、バリエーションの子の数量が設定されます。数量を 0 以下に設定すると、子部品が含まれなくなります。
reference ID - コンフィギュレーション可能な子部品に割り当てられるエイリアス。その子部品 (またはその子孫) のパラメータを参照する場合に必要となります。たとえば、親部品にはパラメータ A、子部品にはパラメータ B が割り当てられ、部品間の親子リンクには参照 DOOR が割り当てられている場合、パラメータ間には次の対応を確立できます。A == DOOR.B
既存の部品を製品内の別の既存の部品に追加する
この例は以下を前提としています。
Part-1 は製品 MyProduct-1 の中に存在する。この部品はあらかじめ読み込まれているか、ユーザーインタフェースを使用して追加されています。
ExistingPart-1 および ExistingPart-2 はほかの製品またはライブラリにある。
MyProduct-1 は組織 MyOrg に存在する。
XML データは DataFile.xml ファイルに含まれている。
これらを前提にして、以下のコマンドを使用して読み込みを実行できます。
windchill wt.load.LoadFromFile -d DataFile.xml -u wcadmin
-p wcadmin -CONT_PATH /wt.inf.container.OrgContainer=MyOrg
/wt.pdmlink.PDMLinkProduct=MyProduct-1
データファイルの例を以下に示します。
<?xml version="1.0"?>
<!DOCTYPE NmLoader SYSTEM "standardX20.dtd">
<NmLoader>
<csvAssemblyAddLoad handler="wt.part.LoadPart.addPartToAssemblyLoad">
<csvassemblyPartNumber>0000000022</csvassemblyPartNumber>
<csvconstituentPartNumber>0000000002</csvconstituentPartNumber>
<csvconstituentPartQty>1</csvconstituentPartQty>
<csvconstituentPartUnit>ea</csvconstituentPartUnit>
<csvassemblyPartVersion>D</csvassemblyPartVersion>
<csvassemblyPartIteration>1</csvassemblyPartIteration>
<csvassemblyPartView>Manufacturing</csvassemblyPartView>
<csvorganizationName></csvorganizationName>
<csvorganizationID></csvorganizationID>
</csvAssemblyAddLoad>
</NmLoader>
LoadedAssm-1 という新規部品を作成し、既存部品を構成部品として追加する
この例は以下を前提としています。
ExistingPart-1 はほかの製品またはライブラリにある。
MyProduct-1 は組織 MyOrg に存在する。
XML データは DataFile.xml ファイルに含まれている。
これらを前提にして、以下のコマンドを使用して読み込みを実行できます。
windchill wt.load.LoadFromFile -d DataFile.xml -u wcadmin
-p wcadmin -CONT_PATH /wt.inf.container.OrgContainer=MyOrg
/wt.pdmlink.PDMLinkProduct=MyProduct-1
データファイルの例を以下に示します。
<?xml version="1.0"?>
<!DOCTYPE NmLoader SYSTEM "standardX20.dtd">
<NmLoader>
<csvBeginWTPart handler="wt.part.LoadPart.beginCreateWTPart" >
<csvuser></csvuser>
<csvpartName>LoadedAssm-1</csvpartName>
<csvpartNumber>LoadedAssm-1</csvpartNumber>
<csvtype>separable</csvtype>
<csvsource>make</csvsource>
<csvfolder>/Default</csvfolder>
<csvlifecycle>Default</csvlifecycle>
<csvview></csvview>
<csvteamTemplate>System.TestTeamForLoads</csvteamTemplate>
<csvlifecyclestate>INWORK</csvlifecyclestate>
<csvtypedef></csvtypedef>
<csvversion></csvversion>
<csviteration></csviteration>
<csvparentContainerPath></csvparentContainerPath>
</csvBeginWTPart>
<csvEndWTPart handler="wt.part.LoadPart.endCreateWTPart" >
<csvpublishFlag></csvpublishFlag>
<csvparentContainerPath></csvparentContainerPath>
</csvEndWTPart>
<csvAssemblyAddLoad handler="wt.part.LoadPart.addPartToAssemblyLoad" >
<csvassemblyPartNumber>LoadedAssm-1</csvassemblyPartNumber>
<csvconstituentPartNumber>ExistingPart-1</csvconstituentPartNumber>
<csvconstituentPartQty>1</csvconstituentPartQty>
<csvconstituentPartUnit>ea</csvconstituentPartUnit>
</csvAssemblyAddLoad>
</NmLoader>
タグの説明
<csvBeginWTPart> タグで使用するタグの説明は以下のとおりです。
user - コンテナの作成者として指定するユーザーの名前。
partName - 部品の名前。値は必須です。
partNumber - 部品番号。値は必須です。
type - 部品がアセンブリか、構成部品かを指定します。この値は新規部品を作成する際に必須で、更新可能です。選択できる値は以下のとおりです。
Separable - 部品は破壊せずに分解できるアセンブリです。たとえば、機械アセンブリは、取り外し可能な複数の留め具 (ネジなど) で構成されています。
Inseparable - 部品はアセンブリですが、いったん組み立てたあとは分解できません。たとえば、溶接金属アセンブリなどがこれにあたります。
Component - 子部品の存在しない部品。
source - 部品の取得場所。次のオプションを使用できます。
Make - 新規部品は内部で作成されます。
Buy - 新規部品は外部で作成されます。
Buy - Single Source - 新規部品は社外の単一のソースから購入されます。
folder - コンテナ内の部品の場所 (/Default など)。
lifecycle - 部品のライフサイクル。
view - 部品のビュー。
teamTemplate - チームテンプレート (System.TestTeamForLoads など)。
lifecyclestate - 部品のライフサイクル状態 (INWORK など)。
typedef - ソフト部品を作成するためのタイプ定義。com.ptc.ptcnet.SoftPart1 など。
version - 部品のバージョン。値を指定しない場合、オブジェクト初期化規則 (OIR) で定義された最初のバージョンが使用されます。
iteration - 部品の作業版数。値を指定しない場合、オブジェクト初期化規則 (OIR) で定義された最初の作業版数が使用されます。
parentContainerPath - 親部品の配置されているコンテキスト。