Javascript与SAP GUI界面的集成

原创 2011年04月15日 15:15:00

1. 先决条件:

在本机上安装SAP GUI, 最好选择同时选择with RFC SDK。确保WINDOW/SYSTEM32下出现必要的dll。

 

2. Javascript代码实例(在ECC6下测试有效):

注:如果直接存成本地HTML文件会无法运行哦,直接放BSP里面吧。

 

<script language="JavaScript"
retcd = 0; 
exceptions = 0; 

// *** SAPLogon() creates an object that has the methods to 
//        execute call to an SAP function module 

function SAPlogon() {     
alert("ok");
fns         = new ActiveXObject("SAP.Functions"); 
trans       = fns.Transactions; 
conn        = fns.connection;   /* get new connection object */ 

conn.ApplicationServer = your server;
conn.SystemNumber = "00";
conn.System     = "DEV";   /* Set the system ID (see: SY-SYSID) */ 
conn.user       = username;          /* set userid (blank for dialog) */ 
conn.password         = password;   /* set password (blank for dialog) */ 
conn.Client       = "200";     /* set password (blank for dialog) */ 
conn.Language         = "ZH"; /* set language (blank for default) */ 
conn.tracelevel    = 6;    /* set password (blank for dialog) */ 
conn.RFCWithDialog = 1;    /* true: opens visible session window */ 
exceptions = 0; 
conn.logon(0, 0);     /* *** this call creates the object *** */ 
SAPcallTransaction();
SAPlogoff();
}; 

function SAPlogoff() {

  conn.logoff(0, 0); 
  exceptions = 0; 
}; 

// *** execute the SAP function MODULE "RFC_CALL_TRANSACTION_USING" 
//      as method execution of object type SAP.functions 

function SAPcallTransaction() 

{
  exceptions            = 0; 
  callta                  = fns.add("RFC_CALL_TRANSACTION_USING"); 
  callta.exports("TCODE") = "SE38"
  callta.exports("MODE")  = "E"
  retcd                   = callta.call; 

  conn.logoff();                  
  alert(retcd); 
  SAPcallTransaction      = retcd; 
}; 
</script> 

<body> 
<!—Create an HTML button with JavaScript call attached –> 
<input TYPE="button"  VALUE="Call ABAP Editor"  OnClick "SAPlogon();" 
</body> 

 

 

3.  单点登录

在第2步完成后,测试的时候出弹出SAP GUI登录的对话框。

要实现想portal那样的singlesignon功能,必须要提供ECC的SSO ticket。每个instance是不一样的。

增加以下参数,并可以去掉conn.password

conn.ticket = "MIIC/DCCArsCByARBBMBNkcwCQYHKoZIzjgEAzBkMQswCQYDVQQGEwJERTEcMBoG" +
"A1UEChMTU0FQIFRydXN0IENvbW11bml0eTETMBEGA1UECxMKU0FQIFdlYiBBUzEU" +
"MBIGA1UECxMLSTAwMjA2MzcxOTIxDDAKBgNVBAMTA0VHUTAeFw0xMTA0MTMwMTM2" +
"NDdaFw0zODAxMDEwMDAwMDFaMGQxCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNTQVAg" +
"VHJ1c3QgQ29tbXVuaXR5MRMwEQYDVQQLEwpTQVAgV2ViIEFTMRQwEgYDVQQLEwtJ" +
"MDAyMDYzNzE5MjEMMAoGA1UEAxMDRUdRMIIBtzCCASwGByqGSM44BAEwggEfAoGB" +
"AP/UzX5lnXRk6QbS7CEboUI0WKQcS9sAK2J88kCkNYOBfCI34pV1VttrG+dcEIQ1" +
"nnbC6MKF3feWDQ7ayRWBSWwZNgez+bE/2R789TInAxEAGVJCZkhPmFvsvnxj6XsZ" +
"OJXJeiKMtxOmEHAo5jcKHJfiKCUiKyxW1VcfQjJldliJAhUA3y6wdWacew2pbOuh" +
"GVBkS5IKCTkCgYEAqOa2FowF8FZd74L09/Y6DEMAysJSKp0SFjXALOjVAGJ9Nd0M" +
"wwbC2RLaRXgLlMkLutfVxOT/w0u8IWZoBpXEscppq/zlRdt3ogHfcJ6rduUVOzTX" +
"DRhKIWWfZpR9K0RbANgAClRXqTzCGvdE40Sk06aq3TcJzmy0BNab8sMqiC4DgYQA" +
"AoGAAIYIVVFPz0NONR6FVuEptmMm8a/JngQCVMFbmUxTG2eXuAW7jXfXCfS7sZXU" +
"XC8NeVzWAzWGaK7IbQObtQkAwdscEoU9QUcFwk/PMpbYCyGNSM9hq5o9+i46kyNG" +
"14rdo+Wxi/Un2h/IHS5BQR4uTaS06/TDkmF2ZzYzZ8NiIMwwCQYHKoZIzjgEAwMw" +
"ADAtAhUAz00pAVQOPp90yn9fr5ZIygOUdKcCFDeDnZZGdRJXzpbKflJLxBCSmrDx";

当然,需要保证javascript运行时能够得到当前用户的SAP用户名。

测试,是不是很爽啊!

 

4. 参数的传递

其实上述的方法,是用来使用SAP的RFC的, 只不过RFC_CALL_TRANSACTION_USING这个RFC本身具有调用TCODE的功能。

  callta.exports("TCODE") = "SE38"
  callta.exports("MODE")  = "E"
是RFC的传入参数,传出参数应该为 callta.imports,表参数是callta.tables。

 

未完待续。。。

【第一篇】SAP HANA XS使用JavaScript数据交互详解

【第一篇】SAP HANA XS使用JavaScript数据交互详解
  • SAPmatinal
  • SAPmatinal
  • 2017年06月03日 10:32
  • 450

Web编程学习三: 使用SAPUI5来创建Web应用UI

第三个练习,试试SAPUI5。这是SAP比较重要的一个UI库。完全通过HTML5实现,可以作为Web和移动应用的UI开发。 现在已经开源了。在这里可以下载: http://sap.github.i...
  • starshus
  • starshus
  • 2014年03月30日 14:20
  • 19517

SAP WEB GUI的实现,SAP在网页中使用

SAP WEB GUI的实现,SAP在网页中使用
  • SAPmatinal
  • SAPmatinal
  • 2014年12月17日 10:51
  • 1141

SAP GUI安装问题

在安装SAP GUI的新版本后,出现按F1的技术帮助按钮,弹出框内显示“无法显示该网页...” 这多半是因为安装过程中,有杀毒软件或者管家类的安全软件阻止了SAP某些功能对系统的修改,比如其中有一些...
  • fengxing11
  • fengxing11
  • 2016年08月26日 13:06
  • 620

SAP 本地文件上传到内表 sap gui 安全性弹出框 解决方法

SAP 本地文件上传到内表 sap gui 安全性弹出框 解决方法
  • forever_crazy
  • forever_crazy
  • 2014年03月11日 10:13
  • 4706

SAP GUI中创建的快捷方式直接保存密码方法介绍

我们在使用SAP  GUI的时候通过创建快捷方式,免去了输入client号和用户名的步骤,但是对于经常需要进入同一账号的时候,我们就会发现每次都要输入密码,这是个很麻烦的事情,这里介绍一种直接保存密码...
  • wanglei880526
  • wanglei880526
  • 2013年06月24日 10:12
  • 6175

SAP修改登录桌面背景图片

SAPgui 提供了丰富的界面风格设定功能,跟 Windows 桌面主题一样,可以任意设定自己喜欢的颜色风格。不过美中不足,它的背景图片却比较单调,天天看惯了正式系统的蔚蓝水池或者 IDES 系统的小...
  • zhongguomao
  • zhongguomao
  • 2016年09月10日 13:10
  • 1457

SAP常用命令、 BASIS操作

http://blog.itpub.net/169369/viewspace-621568/Pfcg         角色,权限参数文件配置Su53        查看权限对象  st01  跟踪St...
  • u011981242
  • u011981242
  • 2015年09月22日 10:57
  • 2167

SAP接口编程-RFC系列03 : RFC调用SAP函数

RFC方式调用SAP函数,调用SAP函数代码基本上是模式的代码
  • stone0823
  • stone0823
  • 2015年10月09日 15:40
  • 2223

ALV工具栏对象GUI Status与GUI Title的创建方法

GUI Status与GUI Title用于自定义工具栏按钮及Report程序标题栏显示内容,可以通过SE81或直接在SE38中展开对象列表进行相关操作。如下图所示为ABAP编辑器中展开,点击:或者按...
  • Sarah_zheng
  • Sarah_zheng
  • 2013年11月24日 12:13
  • 2296
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Javascript与SAP GUI界面的集成
举报原因:
原因补充:

(最多只允许输入30个字)