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!