我是靠谱客的博主 坦率黑裤,最近开发中收集的这篇文章主要介绍OAF知识点整理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、processFormRequest不能更改webBean的属性

2、row.setNewRowState(Row.STATUS_NEW/STATUS_INITIALIZED);

两种状态的区别:

  a.STATUS_NEW 会对新增的行进行有效的验证,如有必填项,若未填写,则新增失败,
    而 STATUS_INITIALIZED 不会进行验证
  b.在新增后设置STATUS_INITIALIZED状态,表示新增行处于脱管状态,不参与事务提交,不参与验证,
直到页面进行更新,然后OA框架自动把状态设回为STATUS_NEW,以重新参与事物和验证


对VO增加语句为:

EmployeesVOImpl vo = (EmployeesVOImpl)getEmployeesVO1();//获取VO
if (!vo.isPreparedForExecution())//判断是否已经执行
{
  vo.executeQuery();//首先必须执行VO
}
Row row = vo.createRow();//创建一个新行
row.setNewRowState(Row.STATUS_NEW); //给创建的新行赋类型
vo.insertRow(row);//将新创建的行加入到VO里
//现在的vo(缓存中的数据),状态是持久状态(提交后直接保存至数据库)
新增的列一般没有删除图标,需要在VO里的删除图标加一个默认值,因为只有执行查询语句才会给删除
列赋值或在createRow();后设置值row.setAttribute("deleteFlag",true);



对VO删除语句为:

1)、得到row:Row 
row = (XXXVORowImpl)deleteIter.getRowAtRangeIndex(i);
或Row[] rows = vo.getFilteredRows("OutPlanDetId", detailId);//rows[i]
2)删除并其提交
row.remove();
getTransaction().commit();



3、item中的disable的属性设置true

界面不能修改,在代码也获得不到值(pageContext.getParameter("techTrialDate");),获取不到值,只能抓取标签


4、隐藏LOV及下拉框对应的Value值的控件

这种设置方法是不形成html标签,因此也无法获取input内的value,所以要在PG里设置CSS属性或者设置item style为formvalue

OAMessageTextInputBean sAppPropCodeValue = 
            (OAMessageTextInputBean)webBean.findChildRecursive("SAppPropCodeValue");
sAppPropCodeValue.setRendered(false);


5、命名规范:cux.oracle.apps.inv001(这个是需求上的缩写).*** 

前面加INV,是因为在运行的时候,会去数据库中查找对应的应用模块INV

6、table每个字段必须有vo映射,控件有个required设置为yes表示为必填项

7、LOV常用的三个事件:lovPrepare、lovFilter、lovUpdate 

lovPrepare:点击查询图标(手电筒)触发事件(通常这里传入客户过滤条件的参数值)
lovFilter:点击弹出页面中的开始按钮触发事件,因此通常在这里加客户过滤条件。
lovUpdate:选择查询结果数据返回到 主Page页面后触发


        String event = pageContext.getParameter("event");
        if (pageContext.isLovEvent()) { 判断是否是 lovUpdate 【此为从LovInput Page 选择数据返回到 主Page页面后触发】
            OAMessageLovInputBean SCategory = 
                (OAMessageLovInputBean)webBean.findChildRecursive("SCategory");
            Hashtable lovResults = 
                pageContext.getLovResultsFromSession("CategoryLOV");


            OAMessageLovInputBean SForm = 
                (OAMessageLovInputBean)webBean.findChildRecursive("SForm");
            ShapeVOImpl formVO = (ShapeVOImpl)am.findViewObject("ShapeVO1");


            if ("类别1".equals(lovResults.get("Description"))) {
                formVO.setWhereClause("FlexValue in ('形态1','形态2')");
                formVO.executeQuery();
            }
        }

8、jdeveloper数据库连接

Business Components和Oracle Applications

9、am方法调用另一个am

ApplicationModule ss = am.findApplicationModule("SubInvLovAM1");
SubInvOrgLovVOImpl vo = (SubInvOrgLovVOImpl)ss.findViewObject("SubInvOrgLovVO1");



10、职责与库存组织视图 CUX_INV_USE_UNIT_V

am.getOADBTransaction().getResponsibilityId()--职责
am.getOADBTransaction().getResponsibilityApplicationId()--应用开发员

11、调用函数:

String sqlStr="{? = call cux_common_wyb_pkg.outbillcancelchecksatus(?,?)}";
CallableStatement proc = null;
String v_result = null;
OADBTransaction tr = getOADBTransaction();
proc = tr.createCallableStatement(funcStr, 1);
try {
//注册返回类型
proc.registerOutParameter(1, Types.VARCHAR);
proc.setString(2, idOne);
proc.setString(3, idTwo);
proc.execute(); //执行
v_result = proc.getString(1); //获得结果
proc.close();
} catch (SQLException e) {
throw new OAException("执行存储过程出现错误:" + funcStr, OAException.ERROR);
}

12、调用数据库存储过程用这种方式         

CallableStatement st = null;                               
String x_succ_flag;                      
String x_error_msg;
String stmt = "begin " + strImportPkg + "(p_file_id => :1," +
"p_template_id => :2, " +
"x_succ_flag => :3, " +
"x_error_msg => :4); " + "end;";    
OADBTransaction tr = getOADBTransaction();
st = tr.createCallableStatement(stmt, 1);     

try 
{
 // Bind the input parameters
 //Integer.parseInt
 st.setString(1, fileId);
 st.setString(2, templateCode);
 // Register return variables
 st.registerOutParameter(3, Types.VARCHAR);
 st.registerOutParameter(4, Types.VARCHAR);
 st.execute();
 // Assign returned values to variables
 x_succ_flag = st.getString(3);
 x_error_msg = st.getString(4);
 st.close();
} catch (SQLException e)
{
 //throw OAException.wrapperException(e);
 throw new OAException("执行存储过程出现错误:" + stmt, OAException.ERROR);

13、提示消息

EO方面字段验证抛出异常http://www.cnblogs.com/eastsea/p/4729709.html

OAException(String appShortName,//应用短名

                  String messageName, //消息名称

                    MessageToken[] messageTokens,//消息参数

                     byte messageType, //异常类型

                      Exception[] details)//异常明细

可以省略其中部分参数,例如: OAException(String messageName)

                          OAException(String messageName, byte messageType)

                          OAException(String messageName, MessageToken[],byte messagType)

OAException message =

   new OAException("messageStr", OAException.CONFIRMATION);

pageContext.putDialogMessage(message);

//提示消息(类似抛出异常消息)

String msg =am.getOADBTransaction().getMessage("CUX","CUX_SELECT_ONE_DATA",null);

//msg可以直接是中文

throw new OAException(msg,OAException.WARNING);


消息定义都建在CUX应用产品下面:

throw new OAException("AK","FWK_TBX_CATEGORY_NOT_FOUND");最简单方式



select * from fnd_application whereapplication_short_name ='CUX'

update Fnd_New_Messages set application_id=20003 where message_name like'CUX%';

一个是查application_id查到了以后就update)

 

同时消息提示可以传入参数

MessageToken[] tokens = { new MessageToken("COLNAME","仓库") };       

throw new OAException(shortName, infoName,tokens, OAException.WARNING,null);

1)、CuxMsgUtils.actWarningInfo("OP","发送

","CUX",CuxMsgConstants.CUX_MSG_OPERATE_SUCCEED);

//只有状态为1(登录)、3(待转发仓库)、A(打回采购中心)的数据可以发送                2)、CuxMsgUtils.actWarningInfo("STATUS","登录、待转发仓库、打回采购中心","CUX",CuxMsgConstants.CUX_MSG_ONLY_STATUS_OPERATE);



14、webBean子类:
OAMessageTextInputBean
OAMessageLovInputBean
OAMessageDateFieldBean
OAFormValueBean
OAMessageCheckBoxBean
OAMessageChoiceBean
OAMessageStyledTextBean
OASubmitButtonBean
OAButtonBean
OABodyBean


15、各大网站
http://www.codepub.com/源代码

http://www.csdn.net/最大的中文IT网站

http://www.knowsky.com/动态网站制作指南

http://soft.knowsky.com/共享软件下载

http://www.cr173.com/soft/13209.html  西西软件园

http://sc.chinaz.com/  素材下载

http://hi.baidu.com/alby/blog/item/4081b3de67dcf45eccbf1a89.html  数据库2005下载地址

http://www.rsdown.cn/downinfo/9404.html  红软基地 数据库2008下载地址

http://www.51ppt.com.cn/  无忧ppt网.

http://itboba.com/ IT播吧

http://www.zhubajie.com 猪八戒网站

http://www.51zxw.net  51自学网

http://www.php100.com  php100.com 中文网

http://www.zhubajie.com 猪八戒网站

http://www.cnblogs.com 博客园

http://msdnwebcast.net madn

http://docs.oracle.com/cd/A97337_01/ias102_otn/buslog.102/bc4j/jboerrormessages.html#55003  JBO错误上这个地址一下就知道是什么错误的还有解决办法


最后

以上就是坦率黑裤为你收集整理的OAF知识点整理的全部内容,希望文章能够帮你解决OAF知识点整理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部