高度なカスタマイズ > ビジネスロジックのカスタマイズ > 変更管理のカスタマイズ > 複数在庫処理のカスタマイズ > カスタマイズポイント
  
カスタマイズポイント
処理タイプで使用する、新しい値の導入
既成の (OOTB) 在庫処理属性値は固定値のリストです。新しいエントリを追加して使用可能な OOTB 処理タイプをカスタマイズする場合、InventoryDispositionRB.rbinfo ファイルにエントリを定義する必要があります。
InventoryDispositionRB.rbinfo ファイルに、固定された在庫処理値一式のマスターリストが含まれています。InventoryDispositionRB.rbinfo ファイルにエントリを追加するには、enumCustomize ツールを使用してファイルを編集します。詳細については、列挙タイプカスタマイズユーティリティを参照してください。
処理タイプをカスタマイズした後、「タイプおよび属性の管理」ユーティリティを使用します。影響を受けるアクティビティデータタイプで処理属性を選択し、「制約」タブで「列挙値リスト」を編集します。
処理用のデフォルト値の指定
enumCustomize ツールを使用して、処理のデフォルト値を選択します。詳細については、列挙タイプカスタマイズユーティリティを参照してください。
処理のデフォルト値が在庫処理タイプの拘束条件セットに追加されていない場合、在庫処理 UI ドロップダウンにはあらかじめ選択した値として空白が表示されます。
新しい処理タイプの追加
在庫処理タイプは、AffectedActivityData リンクに追加される列挙列です。既成の在庫処理タイプが追加されていますが、カスタマイザはタイプマネージャを使用して、AffectedActivityData リンクのグローバル属性として業務ニーズにあった新しい在庫処理タイプを追加することができます。以下のステップを実行します
1. AffectedItemsTableBuilder を拡張し、新しい在庫処理タイプを表示するために getDispositionComponentIds API をオーバーライドします。また、代わりに ChangeTaskAffectedItemsTableViews を拡張する場合は、新しいテーブルビューを返すよう buildConfigurationTable をオーバーライドする必要があります。
@ComponentBuilder("changeTask.affectedItemsTable")
public class YourNewTableBuilder extends AffectedItemsTableBuilder {
/**
* Returns the list of supported disposition types.
*/@Override
public List <String> getDispositionComponentIds() {
}
/**
* Returns the configurable table.
*/@Override
public ConfigurableTable buildConfigurableTable(String id) throws WTException {
}
}
2. ビルダーを登録します。
ビルダーは、MVC フレームワークによって動的に検索されます。フレームワークによってビルダーを検索するには、ビルダーのベースパッケージの場所を登録するか、src_web バリエーションの MVC パッケージにある、XML コンフィギュレーションファイルのビルダークラスを登録する必要があります。次の例では、AffectedItemsTableBuilderChangeManagement-configs.xml に登録しています。
ベースビルダーパッケージを登録します。以下を xml コンフィギュレーションファイルに追加します。
<mvc:builder-scan base-package="com.ptc.windchill.enterprise.change2.mvc.builders"/>
または、ビルダークラスを登録します。以下を xml コンフィギュレーションファイルに追加します。
<bean class=" com.ptc.windchill.enterprise.change2.mvc.builders.tables.AffectedItemsTableBuilder "/>
3. @ComponentBuilder アノテーションによって、ビルダーを JSP などのシステム内にあるほかのコンポーネントと接続します。ビルダー内の @ComponentBuilder(“changeTask.affectedItemsTable “) アノテーションに入力する文字列は、JSP に含まれるビルダー ID と同じである必要があります。たとえば、changeTask.affectedItem コンポーネントを要求するには、affectedItemsTable.jsp に次の文字列を含めます。
<jsp:include
page="${mvc:getComponentURL('changeTask.affectedItemsTable')}"/>
4. ChangeTaskAffectedItemsTableViews を拡張して、リンクに新しい在庫処理タイプを追加します。
public class YourTableViews extends ChangeTaskAffectedItemsTableViews
{
/**
* Get the disposition columns
*/
@Override
public List <?> getSpecialTableColumnsAttrDefinition(Locale locale) {
}
}
5. DefaultDispositionHandler を拡張して、新しい在庫処理タイプの値を取得、または設定します。少なくとも、以下の API をオーバーライドする必要があります。
public class YourNewDispositionHandler extends DefaultDispositionHandler {
/**
* Get disposition value for a given disposition type.
*/
@Override
public InventoryDisposition getDispositionValue(String componentId, BinaryLink link) {

}

/**
* Set the disposition value for a given disposition type. */
@Override
public boolean setDispositionValue(String componentId, BinaryLink link, InventoryDisposition disposition) throws WTException {

}

/**
* Get the default disposition value for a given disposition type
*/
@Override
public InventoryDisposition getDefaultInventoryDisposition( ChangeLinkAttributeBean linkBean, String component_id) {

}

/**
* Get the disposition value set of a given disposition type
*/
@Override
public ArrayList <InventoryDisposition> getInventoryDispositionSet (ChangeLinkAttributeBean linkBean, String component_id) {

}
}
6. サービスプロパティファイル (ChangeManagement-service.properties.xconf) に新しい処理ハンドラを登録します。セレクタの属性は新しい在庫処理タイプで、serviceClass は新しい処理ハンドラです。
<! -- Handler for processing the disposition types -->
<Service context="default" name="com.ptc.windchill.enterprise.change2. handler.DispositionHandler"><Option serviceClass="com.ptc. windchill.enterprise. change2.handler.YourNewDispositionHandler"
selector="YourNewDispositionType"
requestor="null"
cardinality="duplicate"/>
</Service>
7. DispositionDataUtility に対する処理タイプを登録します。業務ニーズに合わせて DispositionDataUtility を拡張することもできます。処理を登録するサービスプロパティファイルは、ChangeManagement-components.dataUtilities.properties.xconf です。
以下に例を示します。
<Option serviceClass="com.ptc.windchill.enterprise.change2. dataUtilities.DispositionDataUtility"
requestor="java.lang.Object"
selector="YourNewDisposition"
cardinality="duplicate"/>
UI からのカスタマイズ
1. サイト管理者は、「タイプマネージャ」に移動して、在庫処理タイプである AffectedActivityDataリンクの新しいグローバル属性を作成します。
2. 処理タイプで使用する、新しい値の導入で作成した新しい処理の値に属性を限定します。
3. 複数処理のタイプと値の設定が完了したので、AffectedActivityData リンクに複数処理のインスタンスを作成します。
「変更適用/結果オブジェクトを選択」ステップに移動して、変更通知を作成してデフォルトの変更タスクの更新を行います。
新しい処理タイプが変更適用オブジェクトテーブルの列に表示されます。
新しい処理タイプ (列) 下のドロップダウンには、そのタイプに制限されている新しい処理の値が表示されます。
処理タイプにおける処理の値を変更するには、「操作」ドロップダウンをクリックして「処理を設定」を選択します。