2012-07-11 34 views
6

Hiện tại, tôi đang điều tra các cách mở rộng BPMN. Tôi muốn tạo một loại nhiệm vụ mới với ít thuộc tính hơn là một nhiệm vụ và cũng với một số thuộc tính không BPMN và một loại hồ bơi mới.Cách mở rộng BPMN 2.0

Cho đến bây giờ tôi đã thấy những người được đề cập đến trong hai cách, sử dụng Điểm mở rộng và sử dụng lược đồ bên ngoài. Thật không may trong Internet, tôi không thể tìm thấy rằng nhiều nguồn lực để hiểu những phương pháp này rộng rãi.

Những gì tôi hiểu từ những phương pháp:

  • mở rộng điểm: Có một số điểm mở rộng tiêu chuẩn được cung cấp bởi các nhà cung cấp động cơ BPMN (Aktiviti, jBPM, vv ...). Ví dụ trong Activiti có một nhiệm vụ tùy chỉnh có thể được mở rộng với các thuộc tính mong muốn của người dùng nhưng tôi không tìm thấy bất kỳ tài nguyên nào nếu tác vụ mở rộng mới được tạo này có thể được triển khai trên công cụ luồng công việc Aktiviti và cũng sẽ rất tuyệt khi xem BPMN mới giản đồ cho tiện ích mở rộng này.

  • Sử dụng lược đồ bên ngoài: Xác định các thuộc tính mong muốn trong lược đồ bên ngoài và tham chiếu lược đồ này từ Semantic.xsd. Trong trường hợp này, chúng ta cũng sẽ cần phải thích ứng với Workflow Engine của chúng ta nhưng nó linh hoạt hơn so với phương pháp mà tôi đã đề cập trước đây hoặc tôi thiếu một cái gì đó thiếu?

Điều duy nhất không rõ ràng là phương pháp này không mở rộng định nghĩa nhiệm vụ để các thuộc tính này có thể được sử dụng bởi mọi thành phần trong BPMN?

Một ví dụ schema bên ngoài là:

<?xml version="1.0" encoding="UTF-8"?> 
    <xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified" 
    xmlns="http://myproject.org//bpmn/extensions/NEWTask" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" 
    xmlns:exvar="http://myproject.org/externalDefs" 
    targetNamespace="http://myproject.org//bpmn/extensions/NEWTask" 
    > 
    <xsd:import namespace="http://www.omg.org/spec/BPMN/20100524/MODEL"    schemaLocation="BPMN20.xsd"/> 
    <xsd:import schemaLocation="externalDefs.xsd" namespace="http://myproject.org/externalDefs" /> 
    <xsd:complexType name="tProperty1" abstract="false"> 
     <xsd:sequence> 
      <xsd:any namespace="##any" processContents="lax" minOccurs="0" /> 
     </xsd:sequence> 
    </xsd:complexType> 
     <xsd:group id="tNEWTask" name="tNEWTask"> 
     <xsd:sequence> 
      <xsd:element name="Property2" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> 
      <xsd:element name="Property1" type="tProperty1" minOccurs="0" maxOccurs="unbounded"/> 
      <xsd:element name="Property2" type="exvar:Varaible1" minOccurs="0" maxOccurs="unbounded"/> 
     </xsd:sequence> 
    </xsd:group> 
    </xsd:schema> 

Có bất kỳ phương pháp khác để mở rộng BPMN hoặc bất kỳ tài nguyên mà bạn có thể chỉ cho tôi để tôi có thể có một cái nhìn sâu sắc hơn về chủ đề này?

Bất kỳ trợ giúp nào sẽ được đánh giá cao, cảm ơn trước!

Trả lời

0

Here là một số cuộc thảo luận về chủ đề này trên Diễn đàn Activiti và trên trình cắm Eclipse MDT forum.

Thật không may, có một số thử nghiệm đơn giản, tôi đã không thể thực hiện một không gian tên mới

(ví dụ xmlns:newns="http://www.mynewns.com/newns trong

<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:activiti="http://activiti.org/bpmn" 
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" 
xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" 
xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" 
typeLanguage="http://www.w3.org/2001/XMLSchema" 
xmlns:newns="http://www.mynewns.com/newns" 
expressionLanguage="http://www.w3.org/1999/XPath" 
targetNamespace="http://www.activiti.org/bpmn2.0"> 

và một yếu tố như <userTask newns:ownerID="owner1">).

Các thành phần tùy chỉnh trong sơ đồ Activiti của tôi không hoạt động - plugin Eclipse dường như loại bỏ không gian tên tùy chỉnh của tôi và bỏ qua các phần tử của tôi. Không biết tại sao; vẫn đang nghiên cứu.

1

Có công cụ này được phát triển bởi một nhà nghiên cứu Brazil: http://code.google.com/p/bpmnx/

nó hoạt động trên các điểm mở rộng như xa như tôi nhớ.

0

Vì bạn không nói về việc thực hiện BPMN cụ thể (activiti, jbpm), và bạn đang nói về công cụ xử lý của riêng mình, tôi cho rằng những gì bạn muốn làm là mở rộng XML theo các quy tắc BPMN.

Điều đó nói rằng, bạn có thể xem đặc điểm kỹ thuật BPMN 2.0 (tôi nghĩ nó rất dài và có thể nhàm chán) hoặc bạn có thể thử xem một số cuốn sách bpmn. BPMN method & style book có một phần về việc triển khai BPMN, vì vậy có thể điều đó hữu ích đối với bạn.

Lưu ý: Khi có tiêu chuẩn như BPMN, có nhiều hỗ trợ, đôi khi sẽ hữu ích nếu bạn thực sự cần mở rộng. Có đáng để mở rộng một cái gì đó tiêu chuẩn, mà chưa được xem xét? (Không nói rằng bạn không thể làm điều đó, nhưng bạn nên suy nghĩ những gì nó mang lại cho bạn và nếu bạn không thể làm điều đó với những thứ thông thường).

Các vấn đề liên quan