以前都是Enterprise Portal(EP)在管理BW的报表,所以也不存在诸如用户切换的问题。
但是,今天用户真的没有用到EP,情形是怎么样的呢?
第一次登录(无论你是刚开IE或是已经有其他也没打开了)系统会采用弹出窗口的方式让你做用户登录。 当然,你可以在Service把用户定好,这样就不会出现提供用户输入的框了,不过就失去了权限控制。
当然,今天的问题不是在这个,而是用户第一次登录后,输入了用户密码,进行了身份确认,如果要切换用户怎么办? 因为我们发现,除非关掉整个IE,否则,再次进入系统是不需要输入用户密码信息的,也就是,输入地址后,直接就可以进入到report或WAD。
用户为了切换用户,不得不关闭已经打开的所有
web页面,用广东话来说就是“接受唔到!”,
我的重心倒不是去找BW的什么功能,因为这个不是她的错。 关键是ITS的logout问题,我最初想到请cookie,不过找不到证据。 可以确认的是Session的作用,因为关闭IE即可以实现退出功能。
于是乎,疯狂查询诸如ITS, logout ,seesion等字眼,在某个时候一条JS语句把我深深的吸引住了,不是S型的。
document.execCommand( 'ClearAuthenticationCache' );
还没有做任何测试,我已经感觉到这个就是我要的了。
经过测试之后,解决了ITS注销的问题。 在加入一些JS修饰之后,就更完整了。
代码如下, 只要把这个函数放到除非事件中即可。
function w_close(){
var txtPrompt = "是否关闭当前窗口?";
if( window.confirm( txtPrompt ) ) {
document.execCommand( 'ClearAuthenticationCache' );
var browserName=navigator.appName;
if (browserName=="Netscape") {
window.open('','_parent','');
window.close();
} else if (browserName=="Microsoft Internet Explorer") {
window.opener = "Page";
var txtPrompt = "是否关闭当前窗口?";
if( window.confirm( txtPrompt ) ) {
document.execCommand( 'ClearAuthenticationCache' );
var browserName=navigator.appName;
if (browserName=="Netscape") {
window.open('','_parent','');
window.close();
} else if (browserName=="Microsoft Internet Explorer") {
window.opener = "Page";
window.close();
}
}
}
}
=========================================================================
SAP GUI For HTML with ITS
在EP中可以創建一個System Object用來與第三方系統建立鏈接,比如說SAP BI,R3,其中有一項設置為ITS,該功能可以用來將BW后臺的Transaction Code以HTML的形式展現。理論少說,也說不了多少,直接上步驟。
1. 激活相應的服務
T-Code : SICF ,根據路徑激活以下服務:/sap/public/bc/its/mimes ; /sap/bc/gui/sap/its/webgui; /sap/public/ping
2. 發布
2.1 T-Code : SE80 菜單Utilities-->Settings-->Internet Transaction Server(Tab)-->Publish(Tab),將“On Selected Site”的值設置為“INTERNAL”。(BI7.0的版本默認值就是INTERNAL).
2.2 選擇Internet Services,在下面輸入SYSTEM,發布: Menu-->Publish-->Complete Service; 輸入WEBGUI重復該步驟完成。
3. 測試
在IE中輸入http://<server>:<icmport>/sap/bc/gui/sap/its/webgui,輸入用戶名和密碼,如果登陸后的界面與你從后臺登陸的界面一致,恭喜你,你成功了~