<!--#include file="../aspfunction/DBParameter.ASP"-->
<%
'-------------------------------------------------
'定义本文件的名称，在显示目录的文件(MenuFun.ASP)内，当目录的连接为此文件时，用黑体字表示该目录正在浏览
MenuFile="Help030"
'-------------------------------------------------
'建立对象
Set BaseOB=Server.Createobject("JFOA_Base.Base")
Set Conn=BaseOB.ConnDB(DBServerName,DBName,DBUid,DBPassword)
Set InterfaceOB=Server.CreateObject("JFOA_Interface.Interface")
'--------------------------------------------------
'显示web头
response.write InterfaceOB.webtitle(Conn, 0, 1, 0, "", 0, 5)
'---------------------------------------------------
%>
<table border=0 width="100%">
<tr>
<td width=200>
<%
'显示目录的界面
HaveWorkZoom=InterfaceOB.WorkZoomDisplayInApply(Conn, 0, HeadStr, MidStr, EndStr)
response.write HeadStr
'--------------------------------------------------
%>
<B>帮助目录</B>
<%
'---------------------------------------------------
response.write Midstr
'---------------------------------------------------
%>
<!--#include file="MenuFun.ASP"-->
<%
'----------------------------------------------------
response.write EndStr
'---------------------------------------------------
%>
</td>
<td valign="top">


<br>
<center>
<table width="95%">
<tr>
<td>



<b>设计流程步骤</b><br><br>

当我们在搭建模块时，有些模块不需要用到流程，有些模块必须用到流程才能够实现其功能。什么时候不需要用到流程呢？可以这样说，当模块只用于保存数据方便查询时，
一般是不用流程的，当模块需要跟用户交互动作时一定需要用到流程。比如，我们想搭建一个项目信息查询模块，我们只想简单地把项目信息输入到模块内，方便用户查询，
这时就只要建立一张项目信息流程表单，再建立一张与之相关联的流程页面，然后加一个菜单连接这张流程页面，这样就搭建出了这个项目信息查询模块，不需要用到任何
流程。但如果我们希望在输入完项目信息后，系统能自动通知项目成员，告诉项目成员该项目已经输入到模块中可以查询了，这时我们就要用到流程了。通过流程，我们可以
完成查询以外的其他功能。那么，流程能完成哪些工作呢？要准确回答该问题几乎是不可能的，因为，流程能完成的工作是由很多流程步骤一起协调完成的，而流程步骤不同，
完成的功能也不同。那么，是不是流程能完成任意功能呢？也不是，流程能完成的事情是由流程指令决定的，流程到底能做什么事情？这个问题的答案只有你了解了流程的96
个指令后，你才会有答案。<br><br>

流程是由多个步骤按一定规则构成的，流程是表单数据处理的过程定义。流程必须触发才会执行，要触发一个流程，需要对流程表单进行操作，而且，所操作的流程表单已经
设置好了哪个动作触发哪个流程才能触发流程。在流程表单设置时我们可以看到设置表单触发流程的界面。如图：<br><br>

<img border="0" src="Images/Flow06.gif"><br><br>

一条流程包含下面几个基本组成：
<ul type="square">
  <li>流程名称：该流程的名称。</li>
  <li>流程识别ID：流程的识别号。不可编辑。在增加流程时，系统自动生成。</li>
  <li>流程建立者：增加该流程的人。</li>
  <li>流程说明：描述流程的作用。</li>
  <li>流程的参数：当该流程为子流程时，执行该子流程前，你需要指定某些参数，以便流程执行。</li>
  <li>流程步骤：流程的核心部分，流程步骤使表单数据能够按你的设想进行处理。</li>
</ul>

<br>

有[允许编辑所有流程]和[允许建立并编辑所建流程]权限的用户可以进入流程设置界面进行流程设置。点菜单[设置]->[流程相关设置]->[设计流程步骤]进入流程设置界面。
点界面中的流程名称，可以进入某个流程的设置界面。<br><br>

一条没有任何流程步骤的流程是不会进行什么操作的，此时的流程不会进行任何处理。要使流程按你的想法动作，必须设置流程步骤。<br><br>

流程步骤有以下特点：
<ul type="square">
  <li>多个流程步骤组成一个流程。</li>
  <li>流程是树状结构。</li>
  <li>流程步骤的父子关系把各个步骤组合成一个流程。</li>
  <li>流程开始的步骤的序号为1。</li>
  <li>每个步骤都有一个父序（父步骤），开始步骤的父序为0。</li>
  <li>每个流程步骤可以有多个子步骤。</li>
</ul>


每步步骤有下面属性：
<ul type="square">
  <li>当前序号：当前步骤的序号，步骤唯一的识别号。是一个正整数，系统会自动调整步骤的序号。</li>
  <li>流程父序：流程是树状结构，他们的父子关系构成了这种结构。流程父序就是该步骤的上面一个步骤的序号。</li>
  <li>指令描述：该步骤所执行的指令的简短说明，该说明不会影响指令的执行动作，只为方便流程设计人员理解流程而设。</li>
  <li>流程指令：该步骤所执行的操作指令。不同的指令有不同的参数。这些指令我们将在后面详细叙述。</li>
</ul>

流程的执行顺序是按先上后下、先左后右的顺序来执行的。既先执行上面的步骤，再执行其子步骤。如果几个步骤有相同的父步骤，将先执行最左边的步骤。
当编辑完成流程后要按“保存”按钮，系统才会把你的修改保存到数据库中，否则，在你离开该页面后，你所做的修改将失效。<br><br>

我们带领大家建立一条实际的流程，以此帮助读者理解流程的设计过程。流程设计有三种方法：<br><br>
<ul>
  <li>第一种方法是使用子流程来设计流程，使用该方法时，所有步骤只用一条名为“执行子流程”的指令。这种方法的好处是设计流程比较快，步骤比较少。</li>
  <li>第二种方法是不使用现有的子流程。这种方法的好处是能实现的功能多，效率比较高。</li>
  <li>第三种方法是前面两种方法的结合。</li>
</ul>

我们用第一和第二种方法来分别设置系统中已有模块“公司通告”的流程，使大家了解流程的设置方法。我们想设置的流程是这样的：当用户填写公司通告后，通告不会立刻发布
，需要给通告发布管理员审核（我们暂定超级用户为通告管理员），当通告管理员同意后就发布并通知所有人，如果不同意，就在通告的标题中加上“审核没通过”字样。<br><br>

下图是本系统已有的“公司通告”模块中的流程表单，这个表单的“增加触发”属性中已经关联着系统原有的“公司通告流程”，我们将不用这个流程而是新建我们自己的流程。
请注意该表单中标题输入框单元的识别为“H0L1S0”，在我们设置的流程中将对这个单元进行处理。<br><br>

<img border="0" src="Images/Flow51.gif"><br><br>


<b>用现有子流程设置流程</b><br><br>

1、点菜单[设置]->[流程相关设置]->[设计流程步骤]，再点“增加流程”按钮，进入增加流程界面。我们新增加
的流程名叫“用子流程做的公司通告流程”，在增加流程的界面中输入流程名称“用子流程做的公司通告流程”
，如图：<br><br>

<img border="0" src="Images/Flow52.gif"><br><br>

2、点一下“步骤设置”属性，输入指令描述“给超级用户审批”，选择执行指令为“执行子流程”。如图：<br><br>

<img border="0" src="Images/Flow53.gif"><br><br>

3、点子流程参数后面的选择按钮，会弹出子流程选择界面，按下图输入参数：<br><br>

<img border="0" src="Images/Flow54.gif"><br><br>

4、按一下子流程选择窗口的确定按钮，该窗口将会关闭，在新增流程窗口将显示选择的子流程。按增加按钮，
新的步骤会显示出来，如图：<br><br>

<img border="0" src="Images/Flow55.gif"><br><br>

5、用同样的方法增加第二步骤，参数如图：<br><br>

<img border="0" src="Images/Flow56.gif"><br><br>

<img border="0" src="Images/Flow57.gif"><br><br>

6、用同样的方法增加第三步骤，参数如图：<br><br>

<img border="0" src="Images/Flow58.gif"><br><br>

<img border="0" src="Images/Flow59.gif"><br><br>

7、用同样的方法增加第四步骤，参数如图：<br><br>

<img border="0" src="Images/Flow60.gif"><br><br>

<img border="0" src="Images/Flow61.gif"><br><br>

8、用同样的方法增加第五步骤，参数如图：<br><br>

<img border="0" src="Images/Flow62.gif"><br><br>

<img border="0" src="Images/Flow63.gif"><br><br>

9、用同样的方法增加第六步骤，参数如图：<br><br>

<img border="0" src="Images/Flow64.gif"><br><br>

<img border="0" src="Images/Flow65.gif"><br><br>

10、按“保存”按钮，流程编写完成。<br><br>

11、在流程表单设置界面找到“公司通告”流程表单，把增加触发属性改成“用子流程做的公司通告流程”，按
保存按钮。如图：<br><br>

<img border="0" src="Images/Flow66.gif"><br><br>

好了，公司通告模块将按我们刚刚设置的流程执行了。你到公司通告模块填写一个通告试试。<br><br>

<b>不用现有子流程设置流程</b><br><br>

1、点菜单[设置]->[流程相关设置]->[设计流程步骤]，再点“增加流程”按钮，进入增加流程界面。我们新增加
的流程名叫“不用子流程做的公司通告流程”，在增加流程的界面中输入流程名称“不用子流程做的公司通告流程”
，如图：<br><br>

<img border="0" src="Images/Flow67.gif"><br><br>

2、按下图增加各个步骤：<br><br>
<img border="0" src="Images/Flow68.gif"><br><br>
<img border="0" src="Images/Flow69.gif"><br><br>
<img border="0" src="Images/Flow70.gif"><br><br>
<img border="0" src="Images/Flow71.gif"><br><br>
<img border="0" src="Images/Flow72.gif"><br><br>
<img border="0" src="Images/Flow73.gif"><br><br>
<img border="0" src="Images/Flow74.gif"><br><br>
<img border="0" src="Images/Flow75.gif"><br><br>
<img border="0" src="Images/Flow76.gif"><br><br>
<img border="0" src="Images/Flow77.gif"><br><br>
<img border="0" src="Images/Flow78.gif"><br><br>

3、按保存按钮，并在“公司通告”流程表单中把增加触发属性改成“不用子流程做的公司通告流程”，好了，你
再试发个公司通告看看。
</td>
</tr>
</table>
</center>












</td>
</tr>
</table>



<%
'显示web尾
response.write InterfaceOB.webend()
'--------------------------------------------------
Set BaseOB=Nothing
Set Conn=Nothing
Set InterfaceOB=Nothing
%>