<!--#include file="../aspfunction/DBParameter.ASP"-->
<%
'-------------------------------------------------
'定义本文件的名称，在显示目录的文件(MenuFun.ASP)内，当目录的连接为此文件时，用黑体字表示该目录正在浏览
MenuFile="Help031"
'-------------------------------------------------
'建立对象
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>

我们编辑流程时发现，当我们要实现一个简单的功能时，往往要用好几个步骤，前面的步骤都是一些取得和定义变量值的。在不同的流程中，如果某段步骤实现同一种功能，
也必须重复编写这段步骤。这就增加了我们编写流程的工作量和难度。<br><br>
在本系统中我们可以把一些经常重复的流程段编写成子流程，并把这些子流程作为一条指令来执行（用“执行子流程”这条指令）。这样，我们编写流程的过程就大大简化了。
在设置子流程时，为了是子流程更加灵活，往往需要为子流程设置一些参数。这些参数我们可以在[设置参数]中设定。<br><br>

我们用一个例子来讲解如何扩展指令，也就是如何编写子流程。该例子是设置一个子流程，我们把该子流程的名称叫做“发送给指定人子流程”。该子流程的作用是：
可以在其他流程重复使用该子流程，只用一条指令（执行子流程指令）就能把提交的数据发送给任意指定的人。<br><br>

1、我们先在流程设置中新增加一个流程，流程名称为：发送给指定人子流程，流程的说明为：演示指令扩展用流程。<br><br>
<img border="0" src="Images/Flow24.gif"><br><br>


2、为了使该子流程比较灵活，可以在参数设置时设置两个参数，一个参数为：指定数据的接收人，该参数的类型为用户选择框。
设置该参数的目的是使在别的流程使用该子流程时，可以方便地选择数据的接收人。另一个参数为：提醒接收人的信息，参数类型为文本输入框。
设置该参数的目的是使在别的流程使用该子流程时，可以方便地指定提醒接收人时的提醒文字。<br><br>

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


3、下面我们来设置该子流程的步骤。<br><br>
在设置其他流程时，当其他流程使用“发送给指定人子流程”时，就可以指定数据的接收人和指定提醒接收人的文字。这就是上面的两个参数。
我们在编辑“发送给指定人子流程”的步骤时要如何做才能使从其他流程传递过来的这两个参数有用呢？<br><br>

在我们的系统中，有一条指令：把子流程的参数值付给变量。通过该指令就能把上面两个参数传递给我们的子流程中的变量，这样就可以使参数为我们的流程服务了。
“发送给指定人子流程”的完整步骤如下：<br><br>
<ul>
  <li>步骤：1<br>
      流程父序：0<br> 
      指令描述：取得提交的数据（该数据将要发送给接收人）<br> 
      流程指令：把当前流程表单数据ID付给变量<br> 
      变量名称：提交的数据</li> 
  <li>步骤：2<br>
      流程父序：1<br> 
      指令描述：从参数中取得接收人<br> 
      流程指令：把子流程的参数值付给变量<br> 
      参数名称：指定数据的接收人<br> 
      变量名称：接收人</li> 
  <li>步骤：3<br>
      流程父序：2<br> 
      指令描述：从参数中取得提醒接收人的信息<br> 
      流程指令：把子流程的参数值付给变量<br> 
      参数名称：提醒接收人的信息<br> 
      变量名称：提醒接收人信息</li> 
  <li>步骤：4<br>
      流程父序：3<br> 
      指令描述：执行发送指令<br> 
      流程指令：把数据发送给用户<br> 
      待发数据：提交的数据<br> 
      接 收 人：接收人<br> 
      提醒信息：提醒接收人信息</p> 
</ul>

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


4、设置完上面的步骤后，记得按上面的“保存”按钮，把设置保存到数据库中。<br><br>

5、现在“发送给指定人子流程”就完全设置好了，我们可以另外再设置一个流程，这个流程用到“发送给指定人子流程”，通过该过程，使我们理解如何使用子流程。<br><br>

6、新建一个流程，步骤为一个步骤：<br><br>
步骤：1<br>
流程父序：0<br> 
指令描述：把数据发送给超级用户<br> 
流程指令：执行子流程<br> 
子 流 程：发送给指定人子流程<br> 
子流程参数：<br> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  
指定数据的接收人：超级用户<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
提醒接收人的信息：你好<br><br>

我们可以看到，只要用一个步骤就能完成我们以前要好几个步骤才能完成的工作，是不是方便了很多？<br><br>

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


<b>设置流程参数的参数类型</b><br><br>

我们前面的例子用到了[用户选择框]以及[文本输入框]这两个参数类型，还有其他类型。<br>
参数类型分别是：
</p>
<ul type="circle">
  <li>文本输入框，形式为一个文本输入框，供用户输入文本参数。</li>
  <li>用户选择框，供用户输入用户姓名类参数。</li>
  <li>部门输入框，供用户输入部门识别类参数</li>
  <li>职位输入框，供用户输入职位名称类参数</li>
  <li>机构选择框，供用户输入组织机构的单位识别类参数。</li>
  <li>流程表单选择框，供用户输入流程表单的识别类参数。</li>
  <li>审批表单选择框，供用户输入审批表单的识别类参数。</li>
  <li>附加表单选择框，供用户输入附加表单的识别类参数。</li>
  <li>回复表单选择框，供用户输入回复表单的识别类参数。</li>
  <li>所有表单选择框，供用户输入任何表单的识别类参数。</li>
  <li>内单元选择框，供用户输入内单元的识别类参数。</li>
  <li>变量选择框，供用户输入变量名称类参数。</li>
  <li>下拉选择框，供用户输入可选的下拉列表类参数。下拉的内容用英文的逗号分开。</li>
</ul>

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













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












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



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