BIEE回写

利用BIEE的回写功能。

第一步:创建要回写调用的模板。
OracleBI\web\msgdb\customMessages\   目录下创建一个XML文件,内容如下:

<?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="BI_UPPWD">
      <XML>
        <writeBack connectionPool="BI_UPPWD">
          <insert> </insert>
          <update>UPDATE BI_USERS SET PASSWORD='@{c3}' WHERE WORKNO ='@{c0}' </update>
        </writeBack>
      </XML>
    </WebMessage>
  </WebMessageTable>
  <WebMessageTable lang="en-us" system="WriteBack" table="Messages">
    <WebMessage name="ADMIN_INFO">
      <XML>
        <writeBack connectionPool="BI_UPPWD">
          <insert> </insert>
          <update>UPDATE BI_USERS SET GROUPS='@{c3}',GEO='@{c4}',STATE='@{c5}',PASSWORD='@{c2}' WHERE WORKNO ='@{c0}' </update>
        </writeBack>
      </XML>
    </WebMessage>
  </WebMessageTable>

</WebMessageTables>


目前看到的XML文件里我定义了2个回写模版

1、BI_UPPWD       | 用户自己修改密码
2、ADMIN_INFO   | 管理员管理用户的信息

文件名称可以随便定义,必须要放置到上面指定的文件目录下。

模板内容中必须有<insert></insert>   和 <update></update>   2个标签
如果insert 内容没有的话,用空格代替

遇到的错误列表,和解决方案:

1、系统无法读取回写模板 'writeback'。请与您的系统管理员联系
      解答:如果在 insert 和update 中没有写要执行的语句,必须要有空格
2、写入服务器时出错,请检查以确保您已输入合适的值,如果仍有问题,请与您的系统管理员联系。
      解答:需要在Admin Tool 里面的GROUP 属性 Query Limits 中Execute Direct Database Requests 设置为 allow。
       
3、写入到服务器时出错。 请检查以确保您已输入合适的值。 如果仍有问题, 请与您的系统管理员联系。
Odbc 驱动程序返回一个错误 (SQLExecDirectW)。
错误明细
错误代码: OPR4ONWY:U9IM8TAC:OI2DL65P
状态: HY000。 代码: 10058。 [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] 出现一般错误。 [nQSError: 27024] EXECUTE PHYSICAL 语句必须指定一个要执行的物理 SQL 语句。 (HY000)
发出的 SQL: EXECUTE PHYSICAL CONNECTION POOL ndsc_pool
    解答:在insert和update中放入相同的SQL语句(这个问题我一直认为是BIEE的BUG,我当时尝试了很多种方法都不得解决,最后在OTN上找到相关资料)

ANSWER 设置:

将用户表信息展示在页面上,必须用表视图显示数据
 
在 设置回写属性
 
其中BI_UPPWD 是我们在回写模板中指定的 <WebMessage name="BI_UPPWD">

然后操作要进行回写的列,点击属性
 
设置值交互作用 类型为回写。

模板中的UPDATE 语句 中的顺序必须跟报表中的列需要一致
 
<update>UPDATE BI_USERS SET PASSWORD='@{c3}' WHERE WORKNO ='@{c0}' </update>
                                                                              这里对应新密码                         代表第一列 用户工号              

调整完模板需要重启的服务

1、BISERVER
2、Oracle BI Presentation Server
3、OC4J

你可能感兴趣的:(BIEE回写)