现在,在数据库控件文件OrderStatus DB.jcx中添加一个名为getOrder Status的方法,然后在属性编辑器中给该方法添加一个SQL查询,如下所示:
SELECT ORDER_STATUS FROM ORDERSTATUS WHERE ACCOUNT_ID={accountId}
在Java窗格中,这一修改反映到方法中。
public Record getOrderStatus(String accountId)
在源代码视图中,代码显示通过传递AccountID,可从数据库表ORDERSTATUS (见清单1)中获得order_status。
要将从客户接收的XML中的AccountID传递给数据库控件,需要用到转换。转换将接收到的XML中的AccountId与数据库控件发送的AccountId进行匹配。一旦获得订单状态,如清单1所示,它就可发送给流程中下一节点。
清单1 传递 AccountID 以获得order_status
import com.bea.control.*;
import java.sql.SQLException;
*
* @jc:connection data-source-jndi-name="cgDataSource"
*/
public interface OrderStatusDatabase
extends DatabaseControl,
com.bea.control.ControlExtension
{
static final long serialVersionUID = 1L;
/**
* @jc:sql statement="SELECT ORDER_STATUS FROM
ORDERSTATUS WHERE ACCOUNT_ID={accountId}"
*/
public Record getOrderStatus(String accountId);
}
添加另一个决策节点
下一步是检查orderStatus结果是否允许修改订单。为此,插入另一个决策点。为了在此进行判定,需要使用Java方法而不是参数。要使用Java方法,如图3所示选择方法。在Java方法名中选择条件,如果条件返回的值是布尔型,如以下代码所示,则订单可修改。如果订单可修改,进入下一步;否则,停止该流程。
public boolean condition()
{
record = "OK";
return true;
}
结束语
本文介绍了如何添加第一个决策节点到流程中。该节点处理从验证配置 Web服务获得的两个结果,也即配置有效或是无效。如果配置有效,流程调用下一个节点,该节点是一个数据库控件。
本文还介绍了创建和添加检查数据库订单状态的数据库控件的细节,这一订单状态决定了订单是否可以修改。然后,添加了一个决策节点以处理该数据库控件的输出结果。
下一篇文章中,将介绍如果订单状态可以修改,如何将修改写入文件。这个修改之后将上载到一个像SAP的ERP系统中,然后,可以修改订单。在本系列的最后一篇文章中,将介绍这一流程如何执行和监控。
第4部分--如何将订单修改加入基于ERP的系统中
增加File控件
首先,让我们看看如何给流程添加文件控件。如果orderStatus允许订单修改,订单就可通过File控件写到文件中。还有一种方法是,您可在SAP中使用Application View控件来修改订单,如下所述。
File控件使得它容易读、写或附加到文件系统中的文件。还可以使用File控件来复制、重命名或删除文件。为了写入一个文件控件,可如图1所示给流程添加File 控件--ChangeorderFile。这会把一个XML文件写入到c:/bea目录,之后它可用于修改订单。一旦将XML文件写到该目录,就可使用它更新订单管理系统。
图1 向流程中添加File 控件--ChangeorderFile
为SAP增加Application View控件
为了将订单修改写到SAP中,我们需要使用SAP适配器创建一个从WebLogic到SAP的集成解决方案。WLI中的集成框架基于J2EE Connector Architecture 1.0。WLI为了与EIS集成,提供了适配器、应用程序视图以及Application View控件。
SAP适配器提供了与SAP Business API (BAPI)的集成,您可以使用它把应用程序链接到SAP组件的接口。BAPI调用是同步的并且返回信息。这些信息要么是错误通知,要么是包含BAPI调用结果的式良好的XML文档。适配器还提供与Intermediate Document (IDoc)的集成。这些调用是异步的且不同步返回任何信息。第三个集成是远程函数调用(RFC,Remote Function Call)。在RFC调用中,应用程序建立起到SAP系统的连接(使用有效用户ID),然后发起一个对SAP函数的调用。RFC调用是同步的并通常返回信息。
用SAP适配器设计应用程序集成解决方案,必须先从BEA Web站点下载SAP Adapter,并从SAP Web站点下载SAP JCo。要从BEA WebLogic中向SAP下订单,您需要为Create Sales Order BAPI生成schema。该BAPI将易于在SAP中创建订单。
要为SAP Business Object(它将易于创建订单)生成schema,需要安装BEA Application Explorer。要创建schema,首先需要或是建立一个到 SAP 的新连接或是使用现有连接。对于新连接,必须命名该连接(比如,D7b)、应用服务器系统号码、客户号码、用户名以及密码。当连接SAP时,所有应用程序组件、IDoc 和 RFC 都将放入Application Explorer。我们特别想要为Change Sales Order BAPI 创建一个schema。通过右击BAPI 并创建请求和应答schema ,我们可达成此目的(参见图2)。这些schema 以及manifest.xml文件都保存在工作目录下。
图2 请求和响应 schema
接下来,我们需要在SAP中定义RFC远程目标。必须定义SAP远程目标,这样SAP系统才可发送IDoc给适配器并应答RFC和BAPI。该SAP远程目标必须在创建应用程序视图之前进行定义。
现在,通过使用Application View Console 来创建应用程序视图。选择SAP适配器并创建一个新浏览连接。然后,需要配置您的服务带有或没有负载平衡。图3显示了没有负载平衡的SAP一个例子。为了测试服务,进入Application View Administration 页面并点击要测试服务旁边的Test链接。在Test Service窗口,从SAP请求中复制适当的XML字符串。当点击Test时,结果显示在Test Results窗口。
vb.jpg" border=0>
图3 不带负载平衡的SAP例子
在创建了应用程序视图以发送和接收schema之后,可从应用程序视图创建一个控件。该SAP Application View 控件可在业务流程中使用。
为orderChange业务流程编码
本节我们将看看orderChange 业务流程的JDP,以及前几篇文章中创建的流程的不同部分的编码。让我们来看看详细内容。
启动流程:
/**
* @jpd:process process:: 命名流程: *<process name="orderchange"> OrderChangeRequest
作为ClientRequest: *<clientRequest name="orderChangeRequest" method="orderChangeRequest"/>
调用validateConfig Web service的流程:
*<controlSend name="validateConfig" method="validateConfignewValidateConfig"/>
第一个决策节点用于检查配置是否有效:
*<decision name="Is configuration Valid?"> *<if name="true" condition="cond_outValidateConfig_1($outValidateConfig)">
调用订单状态数据库控件的流程:
*<controlSend name="OrderStatus" method="orderstatusGetJNDIName"/>
第2个决策节点用于发现订单是否可修改:
*<decision name="Is order changeable?">
*<if name="Yes" conditionMethod="condition"/> *<default name="No"/> *</decision>
*</if> *<default name="No"/> *</decision> :
业务流程通过文件控件写文件:
*<controlSend name="write" method="changeorderFileWrite"/> *</process>::
结束语
我们已经了解了如何通过文件控件向目录写修改订单。XML文件可用于在任何订单管理系统中创建修改订单,我还展示了如何使用SAP适配器来连接SAP。我们查看了如何使用BEA Application Explorer来连接到SAP,以便创建请求和应答schema。我们了解了Application View Console如何使用这些schema,以及如何创建Application View。Application View可暴露于Weblogic Workshop以创建Application View 控件。Application View控件可在业务流程中使用,以在SAP中创建修改订单。
文章来源于领测软件测试网 https://www.ltesting.net/