JBoss jBPM为设计及开发工作流和业务流程管理系统提供了一个先进的平台。由API、特定领域的语言和图形建模工具组成的框架让开发人员和业务分析人员能够使用通用平台进行沟通及操作。
工作流管理和业务流程管理(BPM)正在迅速成为企业获得软件敏捷性和适应性的重要方法。JBoss jBPM是一个面向流程的工作流/BPM框架和工具集,它使业务分析人员能够与软件组件进行交互、有助于获得有效的业务解决方案。
许多企业在积极寻求一种结构化方法,以便设计业务动作/事务,并且优先使用自动化流程加以执行。业务流程管理(BPM)和工作流管理使用动作、任务和流程等概念,提供了解决这个问题的办法。
业务流程管理一词通常是指企业通过一系列活动,以能够适应动态变化的环境的方式,自动管理及优化流程。这些活动通常寻求来自软件工程和工具的帮助。因而,BPM一词往往直接用来指软件工程技术和工具。
BPM体现为三个不同的实践
1.流程设计:指设计现有及新的流程这一任务;
2.流程执行:执行自动化序列的相关事件,这些事件涉及软件流程以及/或者人为活动;
3.流程监控:观察及审查单个流程的状态,以便这些流程的统计数字和性能可以加以记录、报告及优化。
BPM力求让软件工程师们能够与业务分析人员共享同样的概念和框架,因而,软件开发商试图创建这样的工具,让企业可以通过使用图形建模工具、特定领域的语言和专有应用软件,获取、设计及优化业务流程。
JBoss jBPM 3.0提供了这样的功能:使用业务流程执行语言(BPEL)、灵活而且可插入的应用编程接口(API)、本地流程定义语言以及图形建模工具,利用基于行业标准的编制机制开发新的自动化业务流程和工作流。
JBoss jBPM是采用开放源代码(LGPL许可证)的框架,包括了Java API、工具和定义语言,可以充当Web应用或者独立的Java应用。JBoss jBPM相当于业务分析人员和开发人员之间的中介,为他们提供了名为jPDL的通用流程定义语言。
JBoss jBPM架构综述
JBoss jBPM定义了使用JBoss流程定义语言编写的文件里面的流程定义。jPDL是一种面向图形编程(GOP)的语言,它基于节点、转换和动作组成的模型。在这种模型里面,节点是在流程定义过程中彼此相遇时执行的命令。转换负责指导流程定义的执行过程,而动作在节点或者转换事件发生时执行特定逻辑。
在jBPM中,流程定义被封装成流程档案(process archives)。流程档案被传送到jPDL流程引擎加以执行。jPDL流程引擎负责遍历流程图、执行定义的动作、维持流程状态,并且记录所有流程事件。
JBoss jBPM在以下组件里面进行封装:
● 流程引擎: 该组件通过下列委托组件(delegate component)来执行定义的流程动作、维持流程状态,并记录所有流程事件:请求处理程序、状态管理程序、日志管理程序、定义加载程序、执行服务。
● 流程监管器: 该模块跟踪、审查及报告流程在执行时的状态。
● 流程语言: 流程定义语言(jPDL)基于GOP。
● 交互服务: 这些服务把遗留应用提供成流程执行时所用的功能或者数据。
如图1所示,含有动作处理程序的jBPM流程定义由jBPM流程引擎加以加载及执行。 如果流程引擎在流程定义过程中遇到拥有相关动作的节点,所有相关的动作处理程序就会被调用。动作处理程序是Java代码的实例,在执行时能够与外部系统进行交互。
下面就是简单的动作处理程序的示例:
import org.jbpm.graph.def.*;
import org.jbpm.graph.exe.*;
public class MyActionHandler
implements ActionHandler
{
public void execute(ExecutionContext executionContext)
{
System.out.println("MyActionHandler has executed: " + executionContext);
}
}
流程档案里面的PDL文件名为process-definition.xml。该文件含有诸流程的正式描述。以下示子表明了process-definition.xml文件的例子:
< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE process-definition PUBLIC "-//jbpm/jBPM Mapping DTD 2.0//EN" "http://jBPM.org/dtd/processdefinition-2.0.dtd">
< process-definition name="purchase process">
< !--...-->
< !-- START-STATE -->
< start-state name="request a purchase">
< transition to="evaluating"/>
< /start-state>
< !-- NODES -->
< state name="evaluating">
< !--...-->
< transition name="approve" to="purchase approved"/>
< transition name="disapprove" to="done"/>
< /state>
< fork name="purchase approved">
< transition to="decrement inventory" />
< transition to="increment revenue" />
< /fork>
< state name="decrement inventory">
< !--...-->
< transition to="join" />
< /state>
< state name="increment revenue">
< !--...-->
< transition to="join" />
< /state>
< join name="join">
< transition to="done" />
< /join>
< !-- END-STATE -->
< end-state name="done" />
< /process-definition>
流程定义基于定向图(directed graph)。有向图由节点、转换、一个起始状态以及一个终止状态组成。每个节点的类型定义了该节点的运行时行为。流程定义在执行时,以下实体就会起到作用:
● 流程实例: 流程实例是流程定义的一次执行。
● 标记: 标记是一条执行路径。标记是运行时概念,它含有指向定向图中节点的指针。一旦创建了流程实例,就会创建主要执行路径的标记。该标记名为流程实例的根标记,它位于流程定义的起始状态。
● 信号: 信号指示标记继续由转换实现的图像执行。
● 节点: 节点负责图像执行的继续进行。如果标记进入节点,节点就会执行。不会传播执行的节点被认为是状态节点。
● 动作:动作是流程执行过程中出现事件时执行的Java代码的实例。主要的事件类型有:“进入节点”、“离开节点”和“进行转换”。 
图2 jBPM图形建模设计器
使用jBPM图形建模设计器,就很容易创建流程定义。设计器目前作为Eclipse插件而安装。图2表明了图形建模设计器的示例屏幕。
图形设计器可以用来创建流程定义、把动作处理程序与事件连接起来、编辑定义来源、创建流程档案、测试流程定义,等等。
部署JBoss jBPM
JBoss jBPM把流程定义存储在数据库中。因而,把流程部署到JBoss jBPM里面需要解析process-definition.xml,并且把它存储在JBoss jBPM数据库中。可通过以下方法实现这项工作:
● 使用由JBoss jBPM提供的par Ant任务来创建流程档案。
● 使用deploypar实用程序。该实用程序还可以创建流程档案,并且把流程档案部署到jBPM数据库上。Deploypar实用程序把jBPM.properties文件作为一个属性。该文件指定了配置选项,其中包括流程档案所要部署到的那个数据库。
● 通过编程解析process-definition.xml,并把它存储到数据存储区中。
让JBoss jBPM完成一些简单步骤
JBoss jBPM充当编制引擎,它位于企业应用的中间,能够实现不同应用之间的集成和协调。
本文使用随同jBPM交付的示例部署,讨论如何利用jBPM和jPDL来创建及修改具有Web功能的简单的订单处理系统。
1.下载JBoss jBPM
JBoss jBPM入门套件(http://www.jboss.com/products/jBPM/downloads)包括了执行JBoss jBPM所需的一切,只是没有Java开发者工具包(JDK)。JBoss jBPM入门套件里面的JBoss应用服务器需要J2SE 1.4或者更新版本。
下载入门套件后,把它解压缩到选择的目录下面。一旦解压缩了该入门套件,就有了类似如下的目录结构:
● Jbpm-starters-kit-3.1。
● Jbpm:含有JBoss jBPM产品的源代码。
● jbpm-bpel:含有JBoss jBPM的BPEL扩展件方面的信息。
● jbpm-db:含有把JBoss jBPM连接到其他数据库的示例配置。
● jbpm-designer:含有用于JBoss jBPM可视化流程设计器的Eclipse插件。
● jbpm-server:含有JBoss应用服务器和JBoss jBPM引擎以及示例流程。
2.执行JBoss jBPM引擎
为了启动部署了jBPM的JBoss应用服务器,进入jbpm-server目录,执行里面的启动脚本。命令窗口会随同jBPM控制台窗口一起出现,类似图3。 
现在,打开浏览器窗口,输入http://localhost:8080/jbpm。就会看到JBoss jBPM的示例Web应用的登录页面。
以cookie monster用户的身份登录,选择“创建新的Web销售订单”链接。这会创建预制的“Web销售”流程的新实例,如图4所示。
实际的定义文件:processdefinition.xml位于websale.par里面,如以下列表所示:
< ?xml version="1.0"?>
< process-definition name="websale"
xmlns="urn:jbpm.org:jpdl-3.1">
< !-- SWIMLANES (= process roles) -->
< swimlane name="buyer" />
< swimlane name="salesman">
< assignment expression="user(ernie)" />
< /swimlane>
< swimlane name="accountant">
< assignment expression="user(bert)" />
< /swimlane>
< swimlane name="shipper">
< assignment expression="user(grover)" />
< /swimlane>
< !-- NODES -->
< start-state name="create new web sale order">
< task swimlane="buyer">
< controller>
< variable name="item"/>
< variable name="quantity"/>
< variable name="address"/>
< /controller>
< /task>
< transition to="evaluate web order" />
< /start-state>
< task-node name="evaluate web order">
< task swimlane="salesman">
< timer duedate="20 seconds" repeat="10 seconds">
< action class="org.jbpm.websale.RemindActor">
< swimlaneName>salesman< /swimlaneName>
< /action>
< /timer>
< controller>
< variable name="item" access="read"/>
< variable name="quantity" access="read"/>
< variable name="address" access="read"/>
< variable name="comment"/>
< /controller>
< /task>
< transition name="ok" to="salefork" />
< transition name="more info needed" to="fix web order data" />
< /task-node>
< task-node name="fix web order data">
< task swimlane="buyer">
< controller>
< variable name="comment" access="read"/>
< variable name="item" />
< variable name="quantity" />
< variable name="address" />
< /controller>
< /task>
< transition to="evaluate web order" />
< /task-node>
< fork name="salefork">
< transition name="payment" to="wait for money" />
< transition name="shipping" to="ship item" />
< /fork>
< task-node name="wait for money">
< task swimlane="accountant">
< controller>
< variable name="item" access="read" />
< variable name="quantity" access="read" />
< variable name="address" access="read" />
< variable name="money received" />
< /controller>
< /task>
< transition to="update books" />
< /task-node>
< node name="update books">
< action class="org.jbpm.websale.UpdateBooks">
< msg>accountancy application is now informed of the payment< /msg>
< /action>
< transition to="salejoin" />
< /node>
< node name="ship item">
< action class="org.jbpm.websale.ShipItem">
< swimlaneName>shipper< /swimlaneName>
< msg>${shipper} now ships ${item} to ${address}< /msg>
< /action>
< transition to="salejoin" />
< /node>
< join name="salejoin">
< transition to="end" />
< /join>
< end-state name="end" />
< /process-definition>
一旦“创建新的Web销售订单”页面加载完毕,填写“物品”和“数量”表格字段,其中cookie作为物品,1作为数量。然后选择“保存”和“结束任务”,即可完成“创建新的Web销售订单”任务。Web应用会向jBPM发出信号,要求把Web销售流程标记转移到“评估Web订单”任务,然后使用输入数据作为流程变量。这时候,登录页面会再次显示。你会注意到这样一则消息:“新的任务已分配给'ernie’。”
现在,选择“以另一个用户登录”链接、以ernie的身份登录。你会注意到:“评估Web订单”任务呈高亮显示。把所需地址输入到注释字段,然后选择“需要更多信息”按钮。这样就可以把流程标记转移到“修复Web订单数据”任务,并且让浏览器回到登录页面。
这时候,可以以cookie monster用户的身份登录,选择“修复Web订单数据”链接,就可以查看高亮显示的任务如何变化、体现流程标记在执行流程中的位置。
重复流程定义在浏览器窗口中显示的步骤,出现提示时以相应用户的身份登录,完成填写每项新任务的表格。你最终会进入到流程末端,这时就会出现屏幕,告诉你流程已完成。
分享到:
相关推荐
远程debug流程,方便debug
基于麻雀生物特性的搜索算法(SSA)的Matlab实现:原理、代码与实战应用,基于圈养麻雀特性的搜索算法(SSA)matlab实现:原理、代码与警觉机制解析,麻雀搜索算法(SSA)的matlab实现 原创代码,注释清晰,可直接运行 研究表明,圈养的麻雀存在两种不同类型:发现者和加入者。 发现者在种群中负责寻找食物并为整个麻雀种群提供觅食区域和方向,而加入者则是利用发现者来获取食物。 在生活中我们仔细观察会发现,当群体中有麻雀发现周围有捕食者时,此时群体中一个或多个个体会发出啁啾声,一旦发出这样的声音整个种群就会立即躲避危险,进而飞到其它的安全区域进行觅食。 这样的麻雀被称为警觉者。 麻雀搜索算法就是利用麻雀的这种生物特性进行迭代寻优的优化算法。 本资源包含以下三部分内容: 1.麻雀搜索算法的基本原理(两篇参考文献),非常适合用来学习。 2.麻雀搜索算法的matlab代码,注释详细,结构清晰。 3.五个群智能优化算法常用的测试函数。 ,麻雀搜索算法(SSA); MATLAB实现; 原创代码; 注释清晰; 可直接运行; 生物特性迭代寻优; 发现者与加入者; 警觉者; 参考两篇文献。
基于java的五子棋游戏设计源码+论文
deepseek-r1使用指南
DeepSeek+DeepResearch——让科研像聊天一样简单 (1)DeepSeek如何做数据分析? (2)DeepSeek如何分析文件内容? (3)DeepSeek如何进行数据挖掘? (4)DeepSeek如何进行科学研究? (5)DeepSeek如何写综述? (6)DeepSeek如何进行数据可视化? (7)DeepSeek如何写作润色? (8)DeepSeek如何中英文互译? (9)DeepSeek如何做降重? (10)DeepSeek论文参考文献指令 (11)DeepSeek基础知识。
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
DSP28335通过SPI与AD7606八路信号采集与通信的实践:实时数值与波形展示在上位机界面上,DSP28335与AD7606 SPI通信:采集八路信号并通过SCI上送至上位机实现数据及波形显示,Dsp28335利用spi与ad7606通信,采集八路信号,通过sci发送到到上位机显示数值和波形 ,DSP28335; SPI; AD7606; 八路信号采集; SCI; 上位机显示; 数值和波形,DSP28335 SPI通讯 AD7606 八路信号采集 SCI发送上位机显示
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
1、文件内容:marisa-ruby-0.2.4-4.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/marisa-ruby-0.2.4-4.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
基于Tent混沌映射的麻雀搜索算法优化:提高全局搜索能力与初始解质量,基于Tent混沌映射的麻雀搜索算法优化:提高全局搜索能力与初始解质量,基于Tent混沌映射的麻雀搜索算法matlab代码: 针对麻雀搜索算法(SSA)在接近全局最优时,种群多样性减少,易陷入局部最优解等问题,提出了一种混沌麻雀搜索优化算法(CSSA)。 通过改进 Tent 混沌序列初始化种群,提高初始解的质量,增强算法的全局搜索能力; ,基于Tent混沌映射的麻雀搜索算法; CSSA(混沌麻雀搜索优化算法); Tent混沌序列初始化种群; 全局搜索能力。,基于Tent混沌映射的CSSA算法:提高麻雀搜索全局搜索能力
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
上接战略下接绩效的培训规划.pptx
基于S7-300 PLC和Wincc Flexible触摸屏的温室大棚智能控制解决方案:梯形图程序详解、接线与原理图图谱及组态设计,基于S7-300 PLC与Wincc Flexible触摸屏的温室大棚智能控制解决方案:梯形图程序、接线图与组态画面全解析,No.943 基于S7-300 PLC和Wincc Flexible触摸屏温室大棚控制 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面 ,943; S7-300 PLC; Wincc Flexible触摸屏; 温室大棚控制; 梯形图程序; 接线图原理图; IO分配; 组态画面,S7-300 PLC与Wincc Flexible触摸屏联合打造:No.943温室大棚控制系统的设计与实现
基于ADMM算法的GAMS程序:发电商竞标策略模型及其应用解析,GAMS程序解析:基于ADMM算法的发电商竞标策略优化模型与代码实现,GAMS程序:ADMM算法-基于ADMM法的发电商竞标策略 本程序主要介绍ADMM算法在GAMS中的编写方式,模型基于发电商竞标策略进行编写,基本包含了文章中的模型,但并非完全复现,可作为参考程序自学使用,也可在程序的基础上进行修改使用。 需要的同学可根据以下图片研究是否为自己需要的程序进行。 也可提供ADMM部分程序。 程序包括两个,分别为解决战略投资问题的广义MILP制定的GAMS代码、基于提出的共识- admm算法解决战略投资问题的GAMS代码 ,GAMS程序; ADMM算法; 发电商竞标策略; 模型编写; 广义MILP; 共识-ADMM算法; 战略投资问题; 程序修改。,GAMS程序:ADMM算法在发电商竞标策略中的应用示例
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
重庆市农村信用合作社 农商行数字银行系统建设方案.ppt
三菱FX5U定位模块与昆仑通态触摸屏包装机配置程序集成:五轴控制及双轴插补技术,三菱FX5U定位模块与伺服系统控制:包装机配置清单及功能分配手册,三菱 FX5U定位模块5轴 2轴插补伺服 包括三菱FX5U伺服5轴程序2轴插补,昆仑通态触摸屏程序。 包装机程序,有详细配置清单 IO表 功能分配等清单 扩展FX5-16ET-ES-H定位,有定位设置说明 ,三菱FX5U;定位模块;5轴;2轴插补伺服;昆仑通态触摸屏程序;包装机程序;配置清单;IO表;功能分配;扩展FX5-16ET-ES-H定位设置。,三菱FX5U定位模块:5轴伺服控制与2轴插补程序包
项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
恶性肿瘤骨转移临床诊疗专家共识总论要点解读.pptx