ビジネス・プロセスからサービス・モデルへの変換の拡張

ビジネス・プロセスからサービス・モデルへの変換を拡張して、仕様モデル内のビジネス・プロセスの変換方法をカスタマイズすることができます。 変換拡張で指定した条件により、ドメイン固有の出力を生成できます。
始める前に

以下の手順では、プラグインの作成、テスト、配布方法を知っていて、Eclipse プラグイン開発環境 (PDE) に精通していることを前提とします。

ワークスペース内には変換プラグイン・プロジェクトが必要です。 このプラグイン・プロジェクトは変換拡張の実装を含んでいます。変換に対して指定する ID は一意でなければなりません。

このタスクについて
ビジネス・プロセスからサービス・モデルへの変換を拡張するには、以下の手順を実行します。
  1. 変換プラグインの src フォルダーにおいて、変換プラグインと同じ名前を持つパッケージの中に、com.ibm.xtools.transform.core.Transform を拡張する Java™ クラスを作成します。
    package com.ibm.xtools.transform.cfm.example.transform;  
    
    import com.ibm.xtools.transform.cfm.example.rules.MyPopulateComponentRule; 
    import com.ibm.xtools.transform.core.Transform;   
    
    /**  
     * com.ibm.xtools.transform.cfm.example.transform.MyTransform  
     */ 
    public class MyTransform     
    	extends Transform {      
    
    	public static final String TRANSFORM_ID = "com.ibm.xtools.transform.cfm.example.transform.MyTransformId"; //$NON-NLS-1$      
    
    	public MyTransform() {         
    		super(TRANSFORM_ID);         
    		add(new MyPopulateComponentRule());         
    	} 
    }

    この例において、com.ibm.xtools.transform.cfm.example.transform は作成する変換拡張の名前であり、com.ibm.xtools.transform.cfm.example.transform.MyTransformId は一意な変換 ID です。 MyPopulateComponentRule クラスは、仕様モデル内のビジネス・プロセスの変換方法に関する実装詳細を含んでいます。

  2. 変換拡張の src フォルダー内に、この変換拡張が特定のビジネス・プロセスを変換するかどうかを指定する 1 つまたは複数のクラスを含む Java パッケージを作成します。 これらのクラスは条件クラスと呼ばれます。この例では、パッケージの名前は com.ibm.xtools.transform.cfm.example.condition になります。
  3. ステップ 2 で作成したパッケージの中に、条件クラスと呼ばれる Java クラスを作成します。このクラスには次のコードを含めます。
    package com.ibm.xtools.transform.cfm.example.condition;  
    
    import org.eclipse.uml2.uml.Collaboration;  
    import com.ibm.xtools.transform.cfm.common.util.CommonConfigUtil; 
    import com.ibm.xtools.transform.cfm.example.transform.MyTransform; 
    import com.ibm.xtools.transform.core.ITransformContext; 
    import com.ibm.xtools.transform.core.TransformCondition;  
    
    /**  
     * com.ibm.xtools.transform.cfm.example.condition.MyExtensionCondition  
     */ 
    public class MyExtensionCondition     
    	extends TransformCondition {      
    		public MyExtensionCondition() {         
    			super();     
    		}      
    
    		protected boolean isContextSatisfied(ITransformContext context) {          
    			return (context.getSource() instanceof Collaboration)             
    			&& CommonConfigUtil.getExtensionIdFor(                 
    				(Collaboration) context.getSource(), context).equals(                 
    				MyTransform.TRANSFORM_ID);     
    		}  
    }
    ビジネス・プロセスからサービス・モデルへの変換を実行すると、変換サービスはこの条件クラスの中の情報を使用して、この変換拡張を呼び出して仕様モデル内のビジネス・プロセスを変換すべきかどうかを判断します。
  4. 変換拡張の plugin.xml ファイルに、変換拡張を登録するための拡張ポイントを追加します。 extension point および targetTransformation 属性には、下の例と同じ値を使用する必要があります。 その他の属性については、変換拡張を作成するために使用している命名規則に基づいた適切な値を指定します。
    <extension point="com.ibm.xtools.transform.core.transformationExtensions">
          
          <TransformationExtension author="you" description="my custom extension" document="optional" enabled="true" id="com.ibm.xtools.transform.cfm.example.transform.MyTransformId" name="My custom extension" targetTransformation="com.ibm.xtools.transform.cfm.wbm.transforms.MainTransform" version="1.0.0">
                
     					<TransformDefinition acceptCondition="com.ibm.xtools.transform.cfm.example.condition.MyExtensionCondition" class="com.ibm.xtools.transform.cfm.example.transform.MyTransform" id="myTransformId"/>
                   
    							<ExtendTransform targetTransform="com.ibm.xtools.transform.cfm.wbm.transforms.OwnedBehaviorTransform">
          
    									<AddTransform id="com.ibm.xtools.transform.cfm.example.transform.MyTransform"/>
    							</ExtendTransform>
             
    			</TransformationExtension>
    </extension>
タスクの結果
次回、ビジネス・プロセスからサービス・モデルへの変換構成を作成または編集するときは、「新規変換構成」ウィザードの「ビジネス・プロセスからサービス・モデルへの変換」ページで、ビジネス・プロセスを変換するための新しい拡張を選択できます。

フィードバック