在App Engine 中实现动态调用Section

在APP Engine的运行机制中,默认是从Main Section开始,根据内在的Step排列,从上往下执行的。这种机制能满足我们大多数的工作,但是面对比较复杂的逻辑时,顺序执行就会显得有些苍白无力,这时我们就可以在peoplecode中根据我们的逻辑需求,动态调用section来满足我们的逻辑了。

在我们的App Engine中,有如下几个Section,在Main Section中,添加If Else 逻辑,即如果有银行账户,则用银行打款(call GIRO_CHK Section)的方式,否则就用支票付款(Call CXP_CHK Section)的方式。

首先,在该Application Engine的state record中添加AE_Section 和AE_ApplID 字段,在你的逻辑中,将您要调用的section id 赋给AE_Section即可,如果要调用的Section是在同一个application Engine中,则不需要指定AE_ApplID,否则将您要调用的App Engine赋给AE_ApplID。 如下图所示:

在Step2的peoplecode中,添加如下代码

&Count_SQL = CreateSQL("SELECT COUNT(REMIT_BANK_ACCOUNT) FROM PS_PAYMENT_TBL WHERE PAY_CYCLE = :1 AND RTRIM(REMIT_BANK_ACCOUNT) = ''", DBS_TRANS_AET.PAY_CYCLE);
If &Count_SQL.Fetch(&SQL_Rows) Then
    If &SQL_Rows > 0 Then
       DBS_TRANS_AET.AE_SECTION = "CXP_CHK";
    Else
       DBS_TRANS_AET.AE_SECTION = "GIRO_CHK"
    End-If;
End-If;
&Count_SQL.Close();

如代码所示,如果返回的行数为零,则将CXP_CHK赋给AE_SECTION, else GIRO_CHK.

完成这一步后,只需要添加一个动态调用section的方法就可以了,如上图所示。将ProgramID设置成current(当前),将Dynamic选中,这样将程序运行到这一步时,则会调用当前AE_SECTION所存储的值。

时间: 2024-09-10 01:43:55

在App Engine 中实现动态调用Section的相关文章

在Google App Engine中使用Struts2框架

"GAE"(Google App Engine)在早些时候发布了Java语言的支持,对广大的Java开发者来说,可以使用自己熟悉的语法来进行开发,是很舒服的一件事情.Java世界中有大量已有的工具和框架,有一些是我们日常工作中就已经熟练使用的.而且广为流行的成熟的,如果能够直接在GAE中使用,将大大提高我们的开发效率. 这几天利用Struts2,在GAE的Java版本支持环境中,写了个简单博客,现在将GAE+Struts2的组合经验,记录下来. 背景介绍 Python是一门有趣的语言,

Xcode中Objc动态调用方法同时避免警告的几个办法

我们在Xcode中使用objc写代码的时候往往会碰到动态调用方法的时候. 如果是静态调用这很常见,不会有任何问题: [self performSelector:@selector(method)]; 但如果method是运行时变化的值,则编译器就会发出警告: 简单来说,这是因为编译器在开启ARC后不知道该方法的返回值是什么,该如何处理,是标记为ns_returns_retained还是ns_returns_autoreleased. 在网上搜了一下有几种办法可以解决,首先如果动态调用的方法不返回

C++中如何动态调用dll杀进程

代码如下: #include <stdio.h> #include <windows.h> typedef int (*lpE_Pro_KillProcessByName)(IN const char* pchar_param_ProName); int main(int argc, char *argv[]) { HINSTANCE hDll; //DLL句柄 lpE_Pro_KillProcessByName KillProcessByName; hDll = LoadLibr

Google App Engine

Google App Engine 是一种让您可以在 Google 的基础架构上运行您的网络应用程序.Google App Engine 应用程序易于构建和维护,并可根据您的访问量和数据存储需要的增长轻松扩展.使用 Google App Engine,将不再需要维护服务器:您只需上传您的应用程序,它便可立即为您的用户提供服务. 简介 您可以使用 Google提供的免费域名(见扩展阅读)为您的应用程序提供服务,也可以使用 Google Apps 从您自己的域为它提供服务.您可以与全世界的人共享您的

什么是 Google App Engine?

Google App Engine 让您可以在 Google 的基础架构上运行您的网络应用程序.Google App Engine 应用程序易于构建和维护,并可根据您的访问量和数据存储需要的增长轻松扩展.使用 Google App Engine,将不再需要维护服务器:您只需上传您的应用程序,它便可立即为您的用户提供服务. 您可以使用 appspot.com 域上的免费域名为您的应用程序提供服务,也可以使用 Google Apps 从您自己的域为它提供服务.您可以与全世界的人共享您的应用程序,也可

使用 Eclipse 在 Google App Engine 上创建 mashup,第 2 部分: 构建 Ajax mashup

使用社会网络可以更轻松地获取并聚合数据,从而创建富有革新精神的新 Web 应用程序.但是,仍然必须处理创建可伸缩 Web 应用程序的所有常见问题.现在,使用 Google App Engine (GAE) 也可以简化工作.使用 GAE,可以不必考虑管理应用服务器池的所有事务,而是集中精力创建优秀的 mashup.本文是共分三部分的系列文章 "使用 Eclipse 在 Google App Engine 上创建 mashup" 的第二部分,在本文中,将利用并增强在第 1 部分中构建的应用

Google App Engine - 5G支持Python免费虚拟主机

Google App Engine是Google推出的免费虚拟主机空间,其实这比一般虚拟主机强悍的多,你可以利用Google App Engine工具来开发网站或制作网络应用程序,Google会在自己的庞大服务器集群上为你提供空间.带宽.资源等.目前Google App Engine为每个用户提供10个Application(简称App),每个App有500M免费空间,每个App限制1000个文件,单个文件1M以内,每天流量20G.每个App提供免费二级域名1个,同时也可绑米.目前还仅支持Pyt

Google App Engine for Java,第 3 部分: 持久性和关系--基于 Java 的持久性和 Google App Engine 数据存储

在企业环境中,数据持久性是交付可伸缩应用程序的基础.Rick Hightower 在他撰写的有关 Google App Engine for Java 的系列文章的最后一篇中,介绍了 App Engine 当前基于 Java 的持久性框架.让我们学习一些基础知识,了解为什么当前预览版中的 Java 持久性还未到发布的最佳时间,同时获得一个良好的演示,看看您如何在 App Engine for Java 应用程序中保存数据.注意,您将需要启动并运行来自第2部分的联系人管理应用程序,在此过程中学习如

Google App Engine提供5GB免费空间支持虚拟主机

Google App Engine是Google推出的免费虚拟主机空间,其实这比一般虚拟主机强悍的多,你可以利用Google App Engine工具来开发网站或制作网络应用程序,Google会在自己的庞大服务器集群上为你提供空间.带宽.资源等.目前Google App Engine为每个用户提供10个Application(简称App),每个App有500M免费空间,每个App限制1000个文件,单个文件1M以内,每天流量20G.每个App提供免费二级域名1个,同时也可绑米.目前还仅支持Pyt