除了SECATT和LSMW之外,SAP还提供了另外一个VB脚本工具,通过VB脚本我们可以进行大量的活动,VB脚本很容易使用(记录和回放)在脚本中添加固定的代码部分,只是excel的更改路径,买云服务器,在那里它会被提取细节进行处理一旦最终脚本准备好,您可以根据您的要求使用它,无需重新创建它。
请找到以下步骤来创建VB脚本
先决条件–
脚本参数需要启用->我们可以通过RZ11 tcode启用参数使值为真当前值将为假
参数名称–sapgui/用户脚本
参数启用后,您将找到如下脚本录制和回放选项
我们将通过SU10
1.转到SU10屏幕
2.单击自定义布局图标,选择您将录制和回放的脚本录制和回放窗口…
3.绿色按钮用于运行脚本,红色按钮用于记录脚本。更多选项将允许您选择要保存脚本的文件路径(我们将录制)
4.单击红色按钮开始录制(将变为黄色)。一旦您完成了所需的操作,它将开始记录您执行的所有活动单击同一按钮(黄色)停止脚本
按照以下步骤记录脚本执行/nSU10输入用户id进入编辑模式分配角色并保存,然后再次执行/nSU10使其进入初始屏幕并停止脚本(角色分配活动已记录)
5。您将在给定的路径(步骤3中提供的路径)中找到一个VBS文件,在记事本中打开相同的文件,我们必须使用固定代码编辑下面的文件(提供excel的路径,从中获取用户id等数据,执行大规模活动和循环的角色)
固定代码-如果语句
====================================================================================================================
Dim cnnExcel,rstExcel
Dim strExcelFile,则在结束后粘贴此代码strExcelFile="C:\Users\Documents\My Received Files\VB\Book1.xls"
设置cnnExcel=CreateObject("数据库控制")cnnExcel.打开"提供商=微软.Jet.OLEDB.4.0;"&"数据源="&strExcelFile&";"&"_"扩展属性=""Excel 8.0;HDR=NO;""
设置rstExcel=CreateObject("记录集")rstExcel.打开"从[Sheet1$A1:G1000]中选择*",cnnExcel,A补偿
会话.findById("wnd[0]"),最大化
rstExcel.movenext移动
直到rstExcel.EOF公司或UCASE(rstExcel.字段(0).Value)="LAST"
============================================================================================
添加代码文件的第一部分后,将如下所示(excel的路径,从中获取用户id等数据,执行大规模活动的角色)
固定代码描述(代码的第一部分)-它给出Excel文件的路径(Excel文件必须是97–2003格式),从中获取数据用户id和角色,在Excel中我们将维护用户id和需要分配的角色。在第一列中,我们将添加最后一个文本,这样脚本在到达最后一个
Excel文件(97–2003格式)时将停止,应采用以下格式(第一列用户id和第二列角色)
中间部分将是我们的实际记录,我们必须在其中进行以下更改,以便它将从特定列中获取数据excel
rstExcel.字段(0).Value–指excel的第一列(用户id)(将"TESTUSER"替换为rstEXCel.字段(0).值)
rstExcel.字段(1) .Value–指excel(角色)的第二列(将"Z\u Role\u 1"替换为rstEXCel.字段(1) .Value)
您将在文件末尾添加的代码的第二部分,如下所示–
============================================================================
rstExcel.movenext移动
如果rstExcel.EOF公司然后退出Do
LOOP
rstExcel.关闭
设置rstExcel=无
cnnExcel.关闭
设置cnnExcel=Nothing
===================================================================================
编辑脚本前–
如果没有IsObject(应用程序)Then设置SapGuiAuto=GetObject("SAPGUI")设置应用程序=SapGuiAuto.GetScriptingEngine结束If如果不是IsObject(连接),则设置连接=申请。孩子们(0)结束If如果不是IsObject(会话),则设置会话=联系。孩子们(0)结束If如果是IsObject(WScript),那么WScript.ConnectObject会话,"开"WScript.ConnectObject应用程序,"开"如果
结束会话.findById("wnd[0]")。最大化会话.findById("wnd[0]/tbar[0]/okcd").text="SU10"会话.findById("wnd[0]")。sendVKey 0会话.findById("wnd[0]/usr/tblSAPLSUID\u MAINTENANCETC\u USERS/ctxtSUID\u ST\u BNAME-BNAME[0,0]")text="测试用户"会话.findById("wnd[0]/usr/tblSAPLSUID\u MAINTENANCETC\u USERS/ctxtSUID\u ST\u BNAME-BNAME[0,0]")。caretPosition=7会话.findById("wnd[0]")。sendVKey 0会话.findById("wnd[0]/tbar[1]/btn[18]"),按会话.findById("wnd[0]/usr/tabsTABSTRIP1/tabpACTG")。选择会话.findById("wnd[0]/usr/tabsTABSTRIP1/tabpACTG/ssuB主区域:SAPLSUID\U维护:1106/cntlG\u ROLES\u CONTAINER/shellcont/shell").modifyCell 0,"AGR\u NAME","Z\u role\u 1"会话.findById("wnd[0]/usr/tabsTABSTRIP1/tabpACTG/ssuB主区域:SAPLSUID\U维护:1106/cntlG\u ROLES\u CONTAINER/shell cont/shell").currentCellColumn="AGR\u NAME"会话.findById("wnd[0]/usr/tabsTABSTRIP1/tabpACTG/ssuB主区域:SAPLSUID\U维护:1106/cntlG\u ROLES\u CONTAINER/shell cont/shell")。按Enter键会话.findById("wnd[0]/tbar[0]/btn[11]"),按会话.findById("wnd[0]/tbar[0]/okcd").text="/nsu10"会话.findById("wnd[0]")。sendVKey 0
======================================================================================