壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1590|回复: 17

[财务] [分享知识 原创连载]Oracle ERP技术总结,我的Oracle ERP轨迹,遇上ERP真是机缘偶合

[复制链接]
发表于 2013/7/20 17:40:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
       遇上ERP,对我而言,真是机缘偶合。两年前,面试时本来是去另一个部门的,结果阴差阳错地把我调到了ERP的部门,从那时起,就跟ERP解下了不解之缘,开始了我的ERP之旅·····       常常听到一句话:好记性比如烂笔头!如果没有及时积累,很多东西过段时间真就忘了,当我前些天还在头疼一张报表的取数不准确时,翻开之前的项目,竟发现一年前自己已经做了一份几乎一样的报表,而且数据逻辑准备无误,这才发现及时的积累有多重要。古人还有一句话叫:温故而知新。希望通过这次连载,能够把这几年学的东西及以往的项目过一遍,学习和积累更多的东西。
       现在初步的想法是先对一些技术知识点做些总结,毕竟做技术的,不能把技术丢了,然后再对着以往的方案,就自己的理解和体会来写。

技术篇之个性化 1>
     --先从用途和使用思路谈谈自己对个性化的理解:
1.1个性化的用途:
       当标准form不足于满足当前实际业务需求的时候,可以在不需要重新开发form的情况下使用个性化来对form做特定的处理,以满足特定业务的需求。
1.2如何使用个性化:
          1.不同的人对同个界面需要有不同的处理,可以优先考虑个性化,比如限定只允许某些人可以看到某些敏感的栏位(价格,金额),只允许某些人可以   点击某个处理按钮,某些人进去只能看到特定的数据等等;
          2.除了标准form提供的验证之外,还需要根据实际业务情况对录入的数据做验证,或变更标准form的选项值,比如更改lov值或初始化某些字段值等等。
      1.3个性化使用实例:
--大都基于实际开发用到例子
1  要求某个非必输栏位变成必输项
           2  要求某些按钮对某些用户不可见或在某个职责下不可见
           3  要求某些金额栏位不可见
           4  要求改变lov的选值
           5  要求某些删除按钮不可用
           6  要求保存时对特定的栏位做出验证,验证不通过,不予保存
         
            个性化.doc (837.5 KB, 下载次数: 13)
1.png

点评

很有价值;宝贵的总结;  发表于 2013/8/14 06:49
需要把附件的内容都传到正文中  发表于 2013/7/20 22:15

本帖被以下淘专辑推荐:

 楼主| 发表于 2013/7/20 23:42:03 | 显示全部楼层
实际用例:要求离散任务在创建的时候需要输入完工子库,否则不予保存。
1.效果如下: 1.png
2.设置如下:
2.png
3.png 4.png

 楼主| 发表于 2013/7/20 23:51:33 | 显示全部楼层
实际用例:某些用户和特定的职责下不允许查询日记账
1. 效果图如下:
21.png 22.png
2.设置如下:
23.png 24.png 25.png

实际用例:要求销售查询用户的职责可以查到销售订单号,但不能看到具体金额
1. 效果图如下:
31.png
2.设置如下:
32.png 33.png



更多图片 小图 大图
组图打开中,请稍候......
 楼主| 发表于 2013/7/20 23:58:10 | 显示全部楼层
实际用例:应收模块要求创建了批名,就不允许删除,保证批号的连续性,因此要屏蔽删除按钮。
1 效果图如下:
41.png
2.设置如下:
42.png 43.png

实际用例:应付模块要求查询发票界面,供应商的栏位只显示当前组织的供应商
设置如下:
51.png 52.png 53.png


 楼主| 发表于 2013/7/28 23:16:22 | 显示全部楼层
接上篇内容,
技术篇之个性化 2>
1.4个性化中字符的处理
      个性化中赋值有两种形式:
       1.If the string you type does not startwith ‘=’, then it will be used exactly as you typed it
       2. If the string you type starts with ‘=’, then it willbe evaluated at runtime.
       其实举个简单的例子就是:
       ’select sysdate from dual’ 相当于 ‘select sysdate from dual’,而要真正获取sysdate的值应该是=select sysdate from dual
       这里要注意最后是没有分号的!
      


1.5个性化:custom.pll
      custom.pll可以来处理在表单个性化实现不了的功能,有些标准表单的个性化处理跟标准的触发器冲突了,这时候表单的个性化就会不起作用,比如日记账的删除功能,在表单做个性化处理不了,只能通过修改custom.pll进行个性化。
    而具体使用方式,可以直接打开custom.pll文件来看,里面写得非常清楚。
    当然还是建议这种方式不要作为首选,因为这个会影响到全局的,有可能会导致整个环境的form都打不开,之前试过,所以确实需要使用的时候,可以建立一个自己的库文件,然后在custom.pll中调用自己建立的库文件,比较安全。


1.6个性化的表:
      FND_FORM_CUSTOM_RULES

      FND_FORM_CUSTOM_ACTIONS
      FND_FORM_CUSTOM_SCOPES
      FND_FORM_CUSTOM_PROP_LIST
      FND_FORM_CUSTOM_PROP_VALUES
      FND_FORM_CUSTOM_PARAMS
      FND_INDUSTRIES

1.7个性化的迁移:
     例子:
     下载:
     $NLS_LANG="SIMPLIFIEDCHINESE_CHINA.ZHS16GBK";export NLS_LANG
     $FNDLOAD apps/prodapps 0 Y DOWNLOAD@FND:patch/115/import/affrmcus.lct CUX_RCV_RCVTXERT.lct FND_FORM_CUSTOM_RULESfunction_name="RCV_RCVTXERT"
   上传:
     $FNDLOAD apps/apps 0 Y UPLOAD@FND:patch/115/import/affrmcus.lct CUX_RCV_RCVTXERT.lct





评分

参与人数 1努力值 +200 收起 理由
纵横四海 + 200

查看全部评分

 楼主| 发表于 2013/7/28 23:19:02 | 显示全部楼层
自己顶一个,个性化大致就这几个方面,有遇到新的好的内容,再更新

点评

感谢你的辛勤工作;  发表于 2013/7/29 00:18
 楼主| 发表于 2013/8/4 11:53:47 | 显示全部楼层
技术篇之ReportBuilder        就我目前的项目经验来说,Report Builder已经用的很少,Report Builder要实现的功能,都可以通过HTML或XML来实现,现在对Report Builder的运用主要是用于生产XML文件做XML格式的报表,当然这种方式也渐渐被淘汰了,XML报表也可以通过PL/SQL来完成,只要懂得XML语法就可以了,另一个运用就是项目上需要对已有的Report Builder的报表做修改,新增报表一般都不用REPORT格式来。
        下面主要讲一些修改Report Builder需要知道的技术点,估计掌握这些也就差不多了,毕竟这东西oracle自己都要淘汰它了。
1.1.       Report Builder参数的使用     Report Builder中参数用法有两种:
       1 .带冒号如:p_org_id;
       2.带&号 如&p_where_cause.
       在代码中写入加冒号参数,会在REPORTBUILDER里面自动生成参数,带&号的参数,可以动态生成where条件,这个&号的条件一般用于报表触发器:AFTER PARAMETER FORM。
1.2   Report Builder中触发器的使用

       常用的触发器有四个:
       1. BEFORE PARAMETER FORM
    这个触发器一般用于初始化环境如:
          BEGIN
           mo_global.set_policy_context('S', 2811);
           fnd_global. apps_initialize(user_id =>12709, resp_id => 53094,
                              resp_appl_id=> 201);
           END;
      2. AFTER PARAMETER FORM
    这个触发器一般跟&参数结合,动态生成条件,如:
          if :p_release_header_id is not null then
             :p_where_cause:= ' and rh.release_header_id = :p_release_header_id';
            else
             :p_where_cause:= ' and rh.group_id = :p_group_id';
          end if;         其中p_where_cause是带&号参数
     3.  BEFORE REPORT
      设置一下报表运行前需要执行的动作,比如获取临时表的序列号,用于报表过程写入临时表
     4.   AFTER REPORT
      用于报表运行完后需要执行的动作,比如删除临时表的数据。

1.3    Report Builder中层次关系如图:
QQ图片20130804115046.jpg

      连接线连接的两端是同层,并且连接线两端的值是一致的,实际上连接线就相当于加上一个关联相等的条件而已,理解了这幅图,就可以知道报表分组的情况了。










点评

期待后文;  发表于 2013/8/12 07:01
期待后文;  发表于 2013/8/12 06:50
期待后文;  发表于 2013/8/12 06:50
你的文章很精彩;楼主加油;知识在于积累,温故而知新;  发表于 2013/8/12 06:50
 楼主| 发表于 2013/8/14 21:38:39 | 显示全部楼层
前几天旅游休假去了,晚了几天更新,今天继续 接下次未完内容,对Report Builder再做两点补充:
1.4  Report Builder生成XML报表做法


1.通过文件->生成到文件->xml,生成XML文件
    1.png
     2. 新建一个RTF文件,装入xml数据
      2.png
     3. 可以通过向导生成报表格式
      3.png
    4.要注意修改报表的属性,XML Prolog值
       这个值可以根据当前语言环境来设置值,如:<?xmlversion="1.0" encoding="GBK"?> 或者直接值为<?xml version="1.0"?>


1.5  Report Builder报表的追踪
     要在并发请求启用对ReportBuilder的跟踪分析,要在BeforeReport& AfterReport调用出口函数:
     SRW.USER_EXIT('FND SRWEXIT');
   

   
 楼主| 发表于 2013/8/14 21:41:27 | 显示全部楼层
关于REPORT BUILDER的报表就大致上述几个方面,以后有更多积累,再继续更新,接下来的是html及xml形式的报表,先酝酿一下,再继续。
发表于 2013/8/15 09:55:13 | 显示全部楼层
很不错的总结分享,学习了。
 楼主| 发表于 2013/9/10 01:19:00 | 显示全部楼层
HTML  HTML报表,通过在数据库端直接生成HTML格式的文件,称“HTML报表”,由于可以通过代码来实现各种格式或数据处理,所以html报表是一种比较高效的开发报表的方式,特别对于简单格式的报表来说。


1.常见元素
  
元素名
  
说明
html
网页标识
head
网页头内容
title
网页头
body
网页内容
table
表格
tr
表格的行
td
表格的列
div
p
段落
  
属性名
  
说明
备注
width
宽度
  
height
高度
  
border
边框
  
align
水平对齐
left,center,right
valign
垂直对齐
left,center,right
rowspan
行合并
rowspan=2 表示有二行合并
colspan
列合并
colspan=2 表示有二列合并

简单常用的网页元素还是要懂的。
2.HTML报表的实现原理
   通过在数据库端,调用过程“FND_FILE.PUT_LINE”生成输出文件;
   fnd_file.put_line(fnd_file.output,’内容到输出界面’);
   fnd_file.put_line(fnd_file.log,’内容到输出日志’);--多用于调试 3.HTML报表开发注意事项
   3.1开发调试
      一般在开发报表的过程中都需要我们去调试报表,同时也为了后期维护检查错误的方便,可以在报表开发的每个步骤点设置step,记录下程序执行的步骤,抛异常的时候把步骤也随便带出,可以比较快速的知道报表在哪一步执行处了错误,对于开发复杂的报表,这步挺有用的。
   3.2开发复杂格式的报表
      开发复杂格式报表的时候,当对于HTML语法不是很熟悉的时候,可以通过配合其他工具,比如DREAMWEAVER,可以按照复杂表格的格式在dreamweaver中画出来,可以直接得出对应的HTML代码,当然还是建议学好HTML语法,这种只是为了方便开发,提高效率而是使用的。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 03:47 , Processed in 0.069277 second(s), 25 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表