博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OAF_OAF增删改-修改的实现(案例)
阅读量:6220 次
发布时间:2019-06-21

本文共 5080 字,大约阅读时间需要 16 分钟。

2014-06-02 Created By BaoXinjian

一、摘要


实现OAF修改功能Update

 

二、案例


需求:实现修改功能

1. 建立Update按钮的连接

2. 设定触发事件为FireAction

3. 在SearchInvoiceCO.java中添加如下方法

4. 建立UpdateInvoicePG

5. 在UpdateInvoiceCO.java中添加如下方法

6. 在InvoiceAM中添加如下方法

7. 在InvocieUpdateVO中添加如下方法

8. 在UpdateInvoiceCO.java中添加如下方法

9. 在InvoiceAM中添加如下方法

 

三、案例实现


1. 建立Update的连接

    

 

2. 设定触发事件为FireAction

    

 

3. 在SearchInvoiceCO.java中添加如下方法

1 public void processFormRequest(OAPageContext pageContext,OAWebBean webBean) { 2  3     super.processFormRequest(pageContext, webBean); 4  5     /**按下更改发票Button,触发AM中的AmUpdateInvocie方法**/ 6  7     if ("update".equals(pageContext.getParameter(EVENT_PARAM))) { 8  9         OAApplicationModule am = pageContext.getApplicationModule(webBean);10 11         pageContext.setForwardURL("OA.jsp?page=/oracle/apps/bxj/ap/invoice/webui/UpdateInvoicePG",12 13                                    null,14 15                                    OAWebBeanConstants.KEEP_MENU_CONTEXT,16 17                                    null,18 19                                    null,20 21                                    true,22 23                                    OAWebBeanConstants.ADD_BREAD_CRUMB_NO,24 25                                    OAWebBeanConstants.IGNORE_MESSAGES);26 27     }28 29 }

 

4. 建立UpdateInvoicePG

    

 

5. 在UpdateInvoiceCO.java中添加如下方法

1 public void processRequest(OAPageContext pageContext, OAWebBean webBean) { 2  3     super.processRequest(pageContext, webBean); 4  5     /**从SearchInvoice调转至UpdateInvoice,对修改发票页面初始化**/ 6  7     String InvoiceId = pageContext.getParameter("InvoiceId"); 8  9     if (!pageContext.isBackNavigationFired(false)) {10 11         TransactionUnitHelper.startTransactionUnit(pageContext,"UpdateInvoiceTxn");12 13         if (!pageContext.isFormSubmission()) {14 15             Serializable[] params = { InvoiceId };16 17             OAApplicationModule am = pageContext.getApplicationModule(webBean);18 19             am.invokeMethod("AmInitUpdateInvoice",params);20 21         }22 23     } else {24 25         if (!TransactionUnitHelper.isTransactionUnitInProgress(pageContext,"UpdateInvoiceTxn",true)) {26 27             OADialogPage dialogPage = new OADialogPage(NAVIGATION_ERROR);28 29             pageContext.redirectToDialogPage(dialogPage);30 31         }32 33     }34 35 }

 

6. 在InvoiceAM中添加如下方法

1 /**显示Invoice 明细页面**/ 2  3 public void AmShowInvoice(String InvoiceId){ 4  5     InvoiceDetailVOImpl vo = getInvoiceDetailVO1(); 6  7     if (vo == null) { 8  9         MessageToken[] errtokens = {
new MessageToken("OBJECT_NAME","InvoiceDetailVO1")};10 11 throw new OAException("AK","FWK_TBX_OBJECT_NOT_FOUND",errtokens);12 13 }14 15 vo.VoShowInvoice(InvoiceId);16 17 }

 

 

7. 在InvocieUpdateVO中添加如下方法

1 /**从SearchInvoice页面跳转至UpdateInvoice页面,实现自动查询**/ 2  3 public void VoShowInvoice(String InvoiceId) { 4  5     if ((InvoiceId != null) & (!("".equals(InvoiceId.trim())))) { 6  7         Number Invoice_Id = null; 8  9         try {10 11             Invoice_Id = new Number(InvoiceId);12 13         } catch (Exception e) {14 15             throw new OAException("CUX", "CUX_INVOICE_INVALID_NOTIFY_ID");16 17         }18 19         setWhereClause("INVOICE_ID = :1");20 21         setWhereClauseParams(null);22 23         setWhereClauseParam(0, Invoice_Id);24 25         executeQuery();26 27     }28 29 }

 

8. 在UpdateInvoiceCO.java中添加如下方法

1 public void processFormRequest(OAPageContext pageContext,OAWebBean webBean) { 2  3     super.processFormRequest(pageContext, webBean); 4  5     /**按下确定Button后,调用修改Invoice的AM 方法**/ 6  7     OAApplicationModule am = pageContext.getApplicationModule(webBean); 8  9     if (pageContext.getParameter("Apply") != null) {10 11         OAViewObject vo = (OAViewObject)am.findViewObject("UpdateInvoiceVO1");12 13         am.invokeMethod("AmUpdateApply", null);14 15         TransactionUnitHelper.endTransactionUnit(pageContext,"UpdateInvoiceTxn");16 17         pageContext.forwardImmediately("OA.jsp?page=/oracle/apps/bxj/ap/invoice/webui/SearchInvoicePG",18 19                                         null,20 21                                         OAWebBeanConstants.KEEP_MENU_CONTEXT,22 23                                         null, null, true,24 25                                         OAWebBeanConstants.ADD_BREAD_CRUMB_NO);26 27     } else if (pageContext.getParameter("Cancel") != null) {28 29         am.invokeMethod("AmCreateRollback", null);30 31         TransactionUnitHelper.endTransactionUnit(pageContext, "CreateInvoiceTxn");32 33         pageContext.forwardImmediately("OA.jsp?page=/oracle/apps/bxj/ap/invoice/webui/SearchInvoicePG", null,34 35                                        OAWebBeanConstants.KEEP_MENU_CONTEXT,36 37                                        null,null,true,38 39                                        OAWebBeanConstants.ADD_BREAD_CRUMB_NO);40 41     }42 43 }

 

9. 在InvoiceAM中添加如下方法

1 /**修改Invoice,将资料做Commit**/2 3 public void AmUpdateApply() {4 5     getTransaction().commit();6 7 }

 

Thanks and Regards

参考:Oracle Developer Guide

参考:王重东 OAF开发笔记

转载于:https://www.cnblogs.com/eastsea/p/3764049.html

你可能感兴趣的文章
postgresql存储过程
查看>>
vue.js的安装部署+cnpm install 安装过程卡住不动----亲测可用
查看>>
如何使用win7自带的备份还原以及创建系统镜像------傻瓜式教程
查看>>
类,接口,抽象类,结构
查看>>
Linux GSO逻辑分析
查看>>
ORACLE 创建表空间
查看>>
keepalived+双主架构
查看>>
robotframwork的WEB功能测试(二)—登录
查看>>
java_有秒计时的数字时钟
查看>>
最小生成树-Prim算法与Kruskal算法
查看>>
阅读笔记11
查看>>
Javascript中大括号“{}”的多义性
查看>>
Loadrunner Get&Post方法性能测试脚本解析
查看>>
Android manifest 获取源代码
查看>>
第三讲课后作业1
查看>>
Studio快捷键
查看>>
弹丸类以及魂类的构想
查看>>
Daily Srum 10.21
查看>>
11-13 js操作css样式
查看>>
html5 css练习 画廊 元素旋转
查看>>