ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 天空的天

[求助] 请问可以直接用VBA直接登录SAP再进行操作吗?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-12-16 13:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
yngkey 发表于 2019-12-14 16:21
大哥, 麻烦把剩余代码段给补齐一下, 测试查几句, 万分感谢;
GetAccount_test 还有GetAccount这两个

这就是获取用户名密码的子程序,你可以直接用你的方式获取或者直接写进程序里。我的你不一定适用。我GetAccount取得用户名密码是存在MySQL数据库里的。下面供参考。

Sub GetAccount_test(UserName As Variant, Password As Variant)
    '从路径文件中获取文件路径

    UserName = "CNYAZHA11"
    Password = "zZ567890"

End Sub

Sub GetAccount_Txt(UserName As Variant, Password As Variant)
    '从路径文件中获取文件路径
    Dim StrLine As String
    Open ThisWorkbook.Path & "\settings\account.txt" For Input As #1
    Do While Not EOF(1)
        Line Input #1, StrLine
        If InStr(StrLine, "UserName:") Then
            UserName = Trim(Replace(StrLine, "UserName:", ""))
        ElseIf InStr(StrLine, "Password:") Then
            Password = Trim(Replace(StrLine, "Password:", ""))
        End If
    Loop
    Close #1

End Sub

Sub GetAccount_xls(UserName As Variant, Password As Variant)

Set ShtST = Sheets("settings")
    With ShtST
        UserName = Trim(.Range("B1").Value)
        Password = Trim(.Range("B2").Value)
    End With

End Sub

Sub GetAccount(UserName As Variant, Password As Variant)

Dim con_str, sql_str, Str, rs, Cnn
Set rs = CreateObject("ADODB.recordset")
Set Cnn = CreateObject("ADODB.Connection")

con_str = MESConnString
sql_str = "SELECT config_value FROM sln_index.z_config where config_key = ""ProdOrder_GetInfoFromSAP"""
   
Cnn.Open (con_str)
   rs.Open sql_str, Cnn
    Str = rs.getrows
        UserName = Mid(Str(0, 0), 18, 8)
        Password = Mid(Str(0, 0), 44, 8)
   
End Sub

TA的精华主题

TA的得分主题

发表于 2020-9-17 20:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zhzhang9756 发表于 2019-10-11 11:47
Sub SAPLogin()

Dim SapApp

您好,请问下Set SAPConn = SapApp.OpenConnectionByConnectionString(SAPConnStr),这句话什么含义吗?是输密码的前面一个界面吗?我想点进去的是,”生产系统“。点进去界面之后,输入密码

TA的精华主题

TA的得分主题

发表于 2023-4-22 13:50 | 显示全部楼层
江南新绿 发表于 2019-3-11 22:46
方法一:Sap的快捷登录方式
开始菜单(Ctrl+Esc),右键点击"SAP Logon",打开"属性",在"快捷方式"选项卡上"打 ...

请教大神一下,我用SAP录制的脚本放到VBA里后有一句是这样的:
session.findById("wnd[0]/usr/tblSAPLCOVGTCTRL_0100/ctxtAFVGD-ARBPL[2,0]").Text = "G1047"
我要把[2,0]这句中的0设为变量[2 , k],k是变量,可是实际直接写成
session.findById("wnd[0]/usr/tblSAPLCOVGTCTRL_0100/ctxtAFVGD-ARBPL[2,k]").Text = "G1047" 时k不随变量变化,我应该怎么写才能随变量而变呢?

TA的精华主题

TA的得分主题

发表于 2023-4-22 13:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
江南新绿 发表于 2019-3-11 23:19
管理员账号通常是不会被要到的.一旦要到等同于开挂了,一路登天,不用打怪了.
录制脚本的功能权限也不太会被 ...

请教大神一下,我用SAP录制的脚本放到VBA里后有一句是这样的:
session.findById("wnd[0]/usr/tblSAPLCOVGTCTRL_0100/ctxtAFVGD-ARBPL[2,0]").Text = "G1047"
我要把[2,0]这句中的0设为变量[2 , k],k是变量,可是实际直接写成
session.findById("wnd[0]/usr/tblSAPLCOVGTCTRL_0100/ctxtAFVGD-ARBPL[2,k]").Text = "G1047" 时k不随变量变化,我应该怎么写才能随变量而变呢?

TA的精华主题

TA的得分主题

发表于 2023-4-22 13:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请教大神一下,我用SAP录制的脚本放到VBA里后有一句是这样的: session.findById("wnd[0]/usr/tblSAPLCOVGTCTRL_0100/ctxtAFVGD-ARBPL[2,0]").Text = "G1047" 我要把[2,0]这句中的0设为变量[2 , k],k是变量,可是实际直接写成 session.findById("wnd[0]/usr/tblSAPLCOVGTCTRL_0100/ctxtAFVGD-ARBPL[2,k]").Text = "G1047" 时k不随变量变化,我应该怎么写才能随变量而变呢?

TA的精华主题

TA的得分主题

发表于 2023-4-22 13:53 | 显示全部楼层
tspliu 发表于 2019-3-7 13:58
'我是利用下面这样的方式实现自动登录我们公式系统的
Sub aa()
Dim WshShell

您这是放到VBA里用??另外请教您下:
请教大神一下,我用SAP录制的脚本放到VBA里后有一句是这样的:
session.findById("wnd[0]/usr/tblSAPLCOVGTCTRL_0100/ctxtAFVGD-ARBPL[2,0]").Text = "G1047"
我要把[2,0]这句中的0设为变量[2 , k],k是变量,可是实际直接写成
session.findById("wnd[0]/usr/tblSAPLCOVGTCTRL_0100/ctxtAFVGD-ARBPL[2,k]").Text = "G1047" 时k不随变量变化,我应该怎么写才能随变量而变呢?

TA的精华主题

TA的得分主题

发表于 2023-4-22 13:59 | 显示全部楼层
zhzhang9756 发表于 2019-10-11 11:47
Sub SAPLogin()

Dim SapApp

请教大神一下,我用SAP录制的脚本放到VBA里后有一句是这样的:
session.findById("wnd[0]/usr/tblSAPLCOVGTCTRL_0100/ctxtAFVGD-ARBPL[2,0]").Text = "G1047"
我要把[2,0]这句中的0设为变量[2 , k],k是变量,可是实际直接写成
session.findById("wnd[0]/usr/tblSAPLCOVGTCTRL_0100/ctxtAFVGD-ARBPL[2,k]").Text = "G1047" 时k不随变量变化,我应该怎么写才能随变量而变呢?

TA的精华主题

TA的得分主题

发表于 2023-4-23 08:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
玫瑰蝴蝶雨 发表于 2023-4-22 13:53
您这是放到VBA里用??另外请教您下:
请教大神一下,我用SAP录制的脚本放到VBA里后有一句是这样的:
s ...


最开始学的时候这样操作公司各平台,再在都是直接request请求了,浏览器都不开了,模拟操作容易受外界因素干扰出错。
字符串加变量的话,需要用连接符
id="wnd[0]/usr/tblSAPLCOVGTCTRL_0100/ctxtAFVGD-ARBPL[2," & k &"]"
session.findById(id).Text = "G1047"

TA的精华主题

TA的得分主题

发表于 2023-4-23 10:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

我研究sap编程好几年了。刚好遇上这个帖子,无偿奉献一下。

image.png
以上模块为主登录模块,直接调用这个函数就能全自动启动sap


image.png
以上模块为子模块,用来更改注册表,修改guixt文件配置,出除sap登录提示。
image.png

以上模块为子模块,用来判断sap是否打开。

全自动登录sap.zip

20.95 KB, 下载次数: 21

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-10-9 09:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ovxyz 发表于 2023-4-23 10:16
我研究sap编程好几年了。刚好遇上这个帖子,无偿奉献一下。

你好,我想借楼请问一下关于SAP GuiXT_Script编码的问题,就是我先录了操作之后生成的脚本,但里面有个日期是选当前日期的前一天,是一个不固定的值,我要在脚本里怎么改成变量?谢谢了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-2 21:36 , Processed in 0.037682 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表