はじめに > Windchill+ の展開の概要 > コードとコンフィギュレーションのパッケージの展開 > CCD ユーティリティを使用した BAC パッケージのインポート
CCD ユーティリティを使用した BAC パッケージのインポート
Code and Configuration Deployment (CCD) ユーティリティを使用して Business Administrative Change (BAC) パッケージをインポートできます。インポートする前に、以下のプロパティを設定する必要があります。
com.ptc.windchill.bac.ignoreGUIDList=All
* 
このプロパティによって、目的のターゲットに関係なく、すべての BAC パッケージが許可されるようになります。
Code and Configuration Deployment (CCD) ユーティリティを使用して Business Administrative Change (BAC) パッケージをインポートするには、次の手順を実行します。
1. ソースシステムから、BAC パッケージをエクスポートしてコピーします。
2. 次の場所に貼り付けます。
<customizationRootDirectory>/generated/BAC/
3. ターゲットシステムから、CCD ユーティリティに関連する以下のロードコマンドを実行します。
ant load.data -Dadministrator.username=<administrator user>
詳細については、コードとコンフィギュレーションのパッケージの展開を参照してください。
BAC パッケージが正常にインポートされると、レポートが次の場所に生成されます。
<WT_HOME>/buildlogs/customizationLogs/bac/reports
デフォルトでは、CCD ユーティリティログは以下の場所に生成されます。
<WT_HOME>/buildlogs/customizationLogs
成功した場合と失敗した場合の詳細なメッセージをログで確認できます。
主なポイント
コンフリクトが発生した場合、CCD を使用してインポートされた BAC パッケージによって、ターゲットシステム内のオブジェクトが上書きされます。ただし、リストベースのバージョンスキームをインポートする際にコンフリクトが発生した場合、インポート操作は失敗します。たとえば、リストベースのバージョンスキームをインポートする場合、XML ファイルは有効ではありません。
カスタマイズパッケージ内で一度に使用できる BAC パッケージは 1 つだけです。すべての管理変更管理オブジェクトを 1 つの BAC パッケージでエクスポートする必要があります。必要に応じて、管理オブジェクトに関連する変更を ZIP ファイルとして新しいカスタマイズパッケージにサブミットできます。
CCD パッケージを初めて展開する際に、CCD パッケージに BAC パッケージが含まれている場合は、以下の手順を実行します。
1. 環境設定を使用して、次のプロパティをその他のプロパティとともに wt.properties ファイルに追加します。
wt.pom.emptyTableManagerEnabled=false
2. CCD パッケージを展開します。
3. 環境設定を使用して、プロパティを true に設定することで、上記の変更を元に戻します。
wt.pom.emptyTableManagerEnabled=true
詳細については、「Updating and Deploying New Configuration Settings」を参照してください。
BAC が含まれている CCD パッケージでマイグレーションファクトリを実行するには、ソースサーバーで次のプリファレンスを「はい」に設定するか、次のプリファレンスを CCD パッケージにローダーとして含める必要があります。
その他の属性を使用した参加者 ID
CCD パッケージのインポート時のコンフリクト解決の処理
Windchill+ は、「変更をインポート」タブを通じて、CCD パッケージのインポート時に既知のコンフリクトを解決します。これには、手動での作業を削減して成功率を向上させる、自動化されたメカニズムが使用されます。システムは、<Windchill_Home>/bin/customizationTools/templates にある defaultConflictResolution.xml ファイルを使用してコンフリクト解決を行います。
ファイル内にコンフリクトコードが存在する場合、システムは解決策を適用してインポートを続行します。コンフリクトコードが見つからない場合、インポートは失敗し、手動で解決する必要があります。
コンフリクトを手動で解決するには、「イベント管理」インタフェースを使用します。
コンフリクトシナリオ
システム操作
MS_With_Same_Identity_Exists
XML から解決策を適用し、インポートプロセスを続行する
Organization_Does_Not_Exist
インポートに失敗し、手動での解決が必要
詳細については、「Business Administrative Change のパッケージのインポート」を参照してください。
BAC でのマッピングのサポート
ソースシステムのユーザーとコンテキストをローカルシステムのユーザーとコンテキストにマッピングできます。マッピングの際に、BAC (.zip) パッケージとマッピング (.xsl) ファイルが同じフォルダに存在している必要があります。
ユーザーとコンテキストの将来の BAC マッピングが想定どおりに機能するようにするため、「その他の属性を使用した参加者 ID」プリファレンスのインスタンスを作成する必要があります。このプリファレンスは、環境設定後にローダーまたは BAC パッケージによって設定できます。
マッピング (.xsl) ファイルの例を以下に示します。
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="@* | node()" priority="-9">
<xsl:copy><xsl:apply-templates select="@* | node()"/></xsl:copy>
</xsl:template>
<xsl:template match="objectContainerPath">
<xsl:choose>
<xsl:when test=". = '/wt.inf.container.OrgContainer=SJ_Organization/wt.pdmlink.PDMLinkProduct=SJ_Product'">
<xsl:element name="objectContainerPath">
<xsl:text>/wt.inf.container.OrgContainer=Demo Organization/wt.pdmlink.PDMLinkProduct=GOLF_CART</xsl:text>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:otherwise> </xsl:choose>
</xsl:template>
<xsl:template match="@isInternal[parent::WTPrincipalReference]">
<xsl:choose>
<xsl:when test="../name = 'SJ_prodmanager'">
<xsl:attribute name="isInternal">
<xsl:text>false</xsl:text>
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="@classType[parent::WTPrincipalReference]">
<xsl:choose>
<xsl:when test="../name = 'SJ_prodmanager'">
<xsl:attribute name="classType">
<xsl:text>wt.org.WTUser</xsl:text>
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="@fullName[parent::WTPrincipalReference]">
<xsl:choose>
<xsl:when test="../name = 'SJ_prodmanager'">
<xsl:attribute name="fullName">
<xsl:text>Demo, User</xsl:text>
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="@surname[parent::WTPrincipalReference]">
<xsl:choose>
<xsl:when test="../name = 'SJ_prodmanager'">
<xsl:attribute name="surname">
<xsl:text>Demo</xsl:text>
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="@userEmail[parent::WTPrincipalReference]">
<xsl:choose>
<xsl:when test="../name = 'SJ_prodmanager'">
<xsl:attribute name="userEmail">
<xsl:text>demouser</xsl:text>
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="WTPrincipalReference/name">
<xsl:choose>
<xsl:when test=". = 'SJ_prodmanager'">
<xsl:element name="name">
<xsl:text>demo</xsl:text>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="WTPrincipalReference/ufid">
<xsl:choose>
<xsl:when test="../name = 'SJ_prodmanager'">
<xsl:element name="ufid">
<xsl:text>uid=demo,ou=people,cn=ldap,cn=narwhal_03_24,o=ptc|Ldap.ptcnet.ptc.com|Ldap.ptcnet.ptc.com</xsl:text>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
これは役に立ちましたか?