OBIEE 12C 回写配置

浏览: 1340

一、目的

       这次我使用配置回写,主要是为了能够更新BIEE的外部用户表。配置方式与11g时一样,只是12C的版本,各个文件位置不一样了。

二、回写配置官方文档

ORACLE官方文档  章节 17.8

三、配置RPD文件

      1、将需要回写的表导入RPD文件中,在物理层, 去掉勾选  可高速缓存


2、在逻辑层,将需要回写的字段,设置可写 (我这里是做外部用户表,所以我将所有字段都设置成可写)



3、在表示层,设置表的权限, 选择 读/写



4、自此,RPD文件已经设置完成,更新至BI服务。

     上传更新命令,请查看 seng总 blog OBIEE12c rpd文件更新及rpd所在目录介绍 

四、配置回写模板文件

       回写模板有以下两种,主要区别是sql语句中 变量的获取方式不一样。

1、使用column ID 的配置文件

<?xml version="1.0" encoding="utf-8" ?>
<WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
<WebMessageTable lang="en-us" system="WriteBack" table="Messages">
<WebMessage name="SetQuotaUseID"> <!-- 此处的name 是模板名, 在answer中配置时需要用到 -->
<XML>
<writeBack connectionPool="Supplier"> <!-- 此处的connectionPool 是使用的RPD中的连接池名称 PS.必须是把表导入RPD中使用的那个连接池 -->
<insert>INSERT INTO regiontypequota VALUES(@{c0},@{c1},'@{c2}','@{c3}',@{c4})</insert> <!-- 此处的c1 c2 是 column ID-->
<update>UPDATE regiontypequota SET Dollars=@{c4} WHERE YR=@{c0} AND Quarter=@{c1} AND Region='@{c2}' AND ItemType='@{c3}'</update>
</writeBack>
</XML>
</WebMessage>
</WebMessageTable>
</WebMessageTables>

column ID 是 answer编辑页面-高级 中的,获取方式如下:



2、使用位置序号 的 配置文件 (以下是我使用的)

<?xml version="1.0" encoding="utf-8" ?>
<WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
<WebMessageTable lang="en-us" system="WriteBack" table="Messages">
<WebMessage name="SetQuota">
<XML>
<writeBack connectionPool="连接池">
<insert> INSERT INTO bi_user_auth VALUES('@1','@2',FN_GETMD5('@3'),'@4','@5') </insert>
<update> UPDATE bi_user_auth SET username='@2',userpwd='@3',userrole='@4',property='@5' WHERE userid='@1' </update>
</writeBack>
</XML>
</WebMessage>
</WebMessageTable>
</WebMessageTables>

PS.@1 表示 第一个字段,@2 表示第二个字段,以此类推,  此顺序是answer中字段顺序。我这边加单引号'' 是由于字段是字符类型, 如果是数字类型的,可以省略单引号。

3、上传模板配置文件

    1) 根据文档中所说,模板配置文件是放在 SDD/components/OBIPS/customMessages 文件夹下的;



   2)  SSD 在DOMAIN_HOME/bidata下。



但是在我实际使用中,上传至这个路径下的配置文件, BI服务没有正确读取到。在google上查找,是在另一个路径下,

原文链接  这里面把几个重要的BIEE 文件夹与文件的位置给标出来了,大家可以收藏一下。

# Write-Back template files

file=<obiee_home>/user_projects/domains/{your_domain}/bidata/service_instances/{your_instance}/metadata/content/msgd/l_en/customMessages/my_writeback_template.xml

#writeback.xml
文档中的路径:
/DATA/Middleware/user_projects/domains/bi/bidata/components/OBIPS

实际有效的路径:
/DATA/Middleware/user_projects/domains/bi/bidata/service_instances/ssi/metadata/content/msgdb/l_en/

PS. customMessages 文件夹 是需要自己创建的,  模板文件是xml格式,名字自定义,可以随便取。



五、配置 LightWriteback

在 instanceconfig.xml 文件中 配置  LightWriteback 为true

文件路径:
/DATA/Middleware/user_projects/domains/bi/config/fmwconfig/biconfig/OBIPS

在 instanceconfig.xml 文件中添加 

<LightWriteback>true</LightWriteback>

如下:




配置保存完后,重启BIEE服务。

六、配置前端页面

1、打开回写权限

在BIEE页面中,管理-管理权限-最下面,配置回写的权限。



2、在分析编辑器-标准页面,设置字段列属性,启用回写。


PS.此处的文本字段宽度,是控制在会后回写页面时,输入框的长度,如果要输入的字符长度比较大,可在此处设置大一点。


3、在分析编辑器-结果页面,设置表属性中,开启回写,并写入模板名。

    PS. 此处的模板名,就是刚刚在模板配置文件中 name 配置的名称。


3、保存分析,然后打开分析,最下面点击更新后,就可以更新与插入了。


PS.update 可以直接在原来的基础上进行更新,如果要insert,需要表中有一个空行,才可以插入。

推荐 5
本文由 Lmeno 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

5 个评论

说的很详细啊,谢谢Lmeno分享。
赞赞赞!
好东西。。感谢
果断收藏了
请教,报错“系统无法读取回写模板,请与系统管路员联系”

要回复文章请先登录注册