`
maoone2003
  • 浏览: 57613 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Discoverer 4i 使用

阅读更多
安装Discoverer

Admin

如果机器上已有Oracle Home,安装时会程序要求安装在Default Home,其他Home不行,可修改注册表Default_Home后重新安装,重新安装前记得使用Oracle Home Selector选到Default_Home(不一定是必需,但这样做比较保险)。

安装Discoverer后可能出现以下问题:

1如果先装6i,后装Discover,需要备份Bin目录下的UIW60.DLL,装完之后把UIW60.DLL拷贝回来;否则Form. Builder起不来,需要重新安装或从别人那里拷贝UIW60.DLL;

2 Form可以起来,但是中文变成乱码,重新覆盖UIW60.DLL后,该fmb文件莫名奇妙坏掉;

3注册表中NLS_LANG被改掉,中文显示可能出现问题,需一个个查找改回来;

4系统无法解析TNSNAME,这个错误真是莫名其妙,利用Oracle配置工具重新配置一个服务名成功后,所有TNSNAME立马重新生效,真妖,同事说可能是Oracle Home太多,系统都搞不清楚了,重新配一个,帮它理清思路就好了,呵呵。

如果安装失败,到注册表里面把关于Discoverer的咚咚全部删掉,重新装就好了。



Patch

   4.1.37升级到4.1.48(黄建华的文档说是添加登录验证文件fndpu115.dll),最主要的作用应该是保证用户可以以Application用户登陆。



创建EUL数据库用户并授权

   CREATE USERDISCOVERIDENTIFIED BY DISCOVER     

DEFAULT TABLESPACE DISCOVER_REPORT   

TEMPORARY TABLESPACE TEMP        

GRANT CONNECT, RESOURCE TODISCOVER



创建EUL

以数据库用户DISCOVER用Discover Administrator登陆,首次登陆会提示创建EUL

此处有2种方式建立EUL

a.     基于应用用户(fnd_user)

b.     基于数据库用户DISCOVER

在Admin里面,如果用登录的用户自己创建EUL,可能会报“不能给自己Grant或Revoke权限”,可以换成system用户登录,然后建给需要的用户即可.

创建基于Application的EUL的时候,我习惯选择Public选项,默认的Scheme选择APPS,否则在创建自定义的Folder需要加apps前缀

登录standard EUL用的是数据库用户;登录application EUL用的是Oracle OA用户,登录之后要选择职责,这样也就选择了OU,这个很关键,大部分业务视图都是需要过滤OU的,如果不以application身分登录,意味着OA的VIEW我们要重写,改成基于基表,然后通过其他办法过滤OU,这个工作量太大



LOGIN IN

要以Application用户登录,首先要保证在Admin里面建的EUL是基于Application的,不是就删掉重建;然后需要在Tools->Option->Connection设置为Connect to application EUL或者Connect to both standard and application EUL,前者默认就以application身份登录,后者在登录的时候会出现一个Check Box让我们选择;Gareway User Id和Foundation Name不用填,系统默认用applsyspub和apps

Desktop登录时,也要设置该选项Tools->Option->Connection



业务应用

   Discoverer中Business Area就类似于Scheme,Folder类似于表或视图,Item类似与Collumn,结构还是非常简单明了的。Admin Edition主要用于提供报表数据源和进行权限分配,Desktop Edition主要用于提取数据和提供用户需要的展现方式。需要注意的是:Admin赋权需要将BA赋给用户或职责,然后还要将Folder的priviledge权限(Admin/User)赋给用户或职责。

   在Desktop中创建worksheet,只要把Tools下面的菜单功能弄明白,绝大部分的报表基本OK,也比较简单。

   另外还有几个可能用到的概念或咚咚,Item Class,Hierarchy,Drill,Join

   Join之于Folder就类似于联结之于表,对于熟悉sql的用户来说,完全可以在创建Customer Folder中用Sql语句实现这样的关联,但是对于不大熟悉Sql的用户或者从Folder的重用性考虑,创建Join是个不错的选择,而且在随后Item Class,Hierarchy,Drill的应用中可能也需先创建Join。

   创建Item Class有3个选项:1List of Values;2Alternative Sort;3Drill to Detail。

   类型为1和2的Item Class都要指定一个值列表,方法一般是从对某个Folder的某个Item

进行Distinct取值,在数据量很大的情况下会影响性能,还不如手工为值列表建一个Folder;2除了要指定值列表外还要指定排序字段。1这种类型可以应用在报表运行参数选择上,2可以自定义排序。3主要定义钻入/钻出字段,还要配合其他的定义(如Hierarchy)使用。需要注意的是如果钻入/钻出至其他的Folder,应事先定义好Join。



Admin中的Folder可以Refresh,这样可以反映对应VIEW的修改,菜单在File下

注册Function的时候,Function Name需要大写,Packge Name也需要大写,不然它会报Invalid Function



权限控制

   在Admin端,一个EUL属于一个数据库用户,下面可以创建多个BA,每个BA下面又可创建多个FOLDER,分配权限时,先把BA的分配给用户/指责,然后再将BA下的Folder的Admin或User权限分配给用户/指责。

   在Desktop端,别忘了把Workbook share给某个用户/指责。

 

导入/导出

Business Area可以在Admin里面导入导出,这个对发布很重要,注意导的时候也要用Application登录方式;Workbook可以通过命令行导出,但我用下来速度很慢,只好一个个手工发布了



有待探讨

   还有关于Summary Folder,Hierarchy Template之类的咚咚没有用到也就没有研究了。

   另外一个问题就是Discoverer报表平台的规划问题。如何在查询效率,Folder的重用性,可扩展性,企业员工的应用难度找到一个较好的平衡点,在不改变当前Folder的情况下能够支持更多的企业发表发布,都是值得我们思考的问题。



一点感想

   总体感觉Discoverer还是十分好用,上手很快,开发的速度也很快,简单的报表一般都能对付,省略了调格式之苦,但是感觉调矩阵报表的格式很困难,
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics