비즈니스 프로세스에서 서비스 모델로 변환 확장

비즈니스 프로세스에서 서비스 모델로(Business-Process-to-Service-Model) 변환을 확장하여 스펙 모델의 비즈니스 프로세스가 변환되는 방법을 사용자 정의할 수 있습니다. 변환 확장에서 지정하는 조건을 통해 변환이 도메인 특정 출력을 생성할 수 있습니다.
시작하기 전에

다음 프로시저에서는 사용자가 플러그인을 작성, 테스트 및 분배하는 방법을 알고 있으며 Eclipse PDE(Plug-in Development Environment)에 익숙한 것으로 가정합니다.

작업공간에 변환 플러그인 프로젝트가 있어야 합니다. 이 플러그인 프로젝트에는 변환 확장의 구현이 포함됩니다. 변환에 대해 지정하는 ID는 고유해야 합니다.

이 태스크 정보
비즈니스 프로세스에서 서비스 모델로(Business-Process-to-Service-Model) 변환을 확장하려면 다음 단계를 완료하십시오.
  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 폴더에서, 변환 확장이 특정 비즈니스 프로세스의 변환 여부를 지정하는 클래스를 포함할 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);     
    		}  
    }
    비즈니스 프로세스에서 서비스 모델로(Business-Process-to-Service-Model) 변환을 실행하는 경우, 변환 서비스는 이 조건 클래스의 정보를 사용하여 스펙 모델에서 비즈니스 프로세스를 변환하기 위해 이 변환 확장을 호출해야 하는지 여부를 판별합니다.
  4. 변환 확장의 plugin.xml 파일에서, 확장점을 추가하여 변환 확장을 등록하십시오. extension pointtargetTransformation 속성에 대해 아래에 있는 예제와 같은 값을 사용해야 합니다. 다른 속성에 대해서는 변환 확장을 작성하기 위해 사용하는 이름 지정 규칙을 기초로 적절한 값을 지정하십시오.
    <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>
결과
사용자가 다음에 새 변환 구성 마법사의 비즈니스 프로세스에서 서비스 모델로 변환 페이지에서 비즈니스 프로세스에서 서비스 모델로(Business-Process-to-Service-Model) 변환 구성을 작성하거나 편집할 때 비즈니스 프로세스를 변환할 새 확장을 선택할 수 있습니다.

피드백