首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取SAP系统日期

获取SAP系统日期
EN

Stack Overflow用户
提问于 2018-01-28 13:12:55
回答 2查看 1.9K关注 0票数 1

使用SAP脚本,我正在尝试找出一种获取SAP当前系统日期的方法。

如果我遵循System > Status...,就会有一个显示SAP系统当前时间的字段,但不幸的是,没有表示当前日期的字段。下面的代码。

代码语言:javascript
复制
Set SapGuiAuto = GetObject("SAPGUI")
Set SAPApp = SapGuiAuto.GetScriptingEngine
Set SAPConnection = SAPApp.Children(0)
Set session = SAPConnection.Children(0)

Dim systemDate, systemTime As String

session.findById("wnd[0]/mbar/menu[4]/menu[11]").Select
systemTime = session.findById("wnd[1]/usr/ctxtSYST-UZEIT").Text
'systemDate = .....

我觉得肯定有一种简单的方法来获取系统日期,但在网上搜索了几个小时后,我什么也没有找到。任何帮助都会很感谢,谢谢。

编辑:

我找到了一个解决方案。这不是最简单的方法,但是我可以在(IW37N)中保存一个变量,以便它在输入时自动使用动态值now填充日期和时间字段。保存变量后,我可以使用SAP脚本访问事务>访问变量>访问两个动态字段(代码如下)。再说一次,这不是最简单的选择,所以我愿意听到更好的想法。

代码语言:javascript
复制
'Connect to SAP

Set SapGuiAuto = GetObject("SAPGUI")
Set SAPApp = SapGuiAuto.GetScriptingEngine
Set SAPConnection = SAPApp.Children(0)
Set session = SAPConnection.Children(0)

'Enter Transaction

session.findById("wnd[0]/tbar[0]/okcd").Text = "/NIW37N"
session.findById("wnd[0]").sendVKey 0

'Select Variant

session.findById("wnd[0]/tbar[1]/btn[17]").press
session.findById("wnd[1]/usr/txtV-LOW").Text = "TEST001"
session.findById("wnd[1]/usr/ctxtENVIR-LOW").Text = ""
session.findById("wnd[1]/usr/txtENAME-LOW").Text = ""
session.findById("wnd[1]/usr/txtAENAME-LOW").Text = ""
session.findById("wnd[1]/usr/txtMLANGU-LOW").Text = ""
session.findById("wnd[1]/tbar[0]/btn[8]").press

'Select Dates Tab

session.findById("wnd[0]/usr/tabsTABSTRIP_TABBLOCK1/tabpS_TAB5").Select

'Get Field Values

Dim systemDate, systemTime As String
systemDate = session.findById("wnd[0]/usr/tabsTABSTRIP_TABBLOCK1/tabpS_TAB5/ssub%_SUBSCREEN_TABBLOCK1:RI_ORDER_OPERATION_LIST:1500/ctxtS_ISDD-LOW").Text
systemTime = session.findById("wnd[0]/usr/tabsTABSTRIP_TABBLOCK1/tabpS_TAB5/ssub%_SUBSCREEN_TABBLOCK1:RI_ORDER_OPERATION_LIST:1500/ctxtS_ISDZ-LOW").Text
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-15 18:36:25

Sergii是对的。问题是,相同的日期是隐藏的。因此,变量不可用。我想知道,所以我在午夜前不久登录了SAP。它将看起来像这样:

脚本可能如下所示:

代码语言:javascript
复制
'...
session.findById("wnd[0]/mbar/menu[1]/menu[11]").select 
on error resume next
LAST_LOGON_DATE = session.findById("wnd[1]/usr/ctxtLAST_LOGON_DATE").text
SESSION_START_DATE = session.findById("wnd[1]/usr/ctxtSESSION_START_DATE").text 
SYST_DATE = session.findById("wnd[1]/usr/ctxtSYST-DATUM").setFocus
on error goto 0
session.findById("wnd[1]").close
if SESSION_START_DATE = "" then SESSION_START_DATE = LAST_LOGON_DATE
if SYST_DATE = "" then SYST_DATE = SESSION_START_DATE 
msgbox  LAST_LOGON_DATE & " / " & SESSION_START_DATE  & " / " & SYST_DATE
'...

致敬,ScriptMan

票数 2
EN

Stack Overflow用户

发布于 2018-01-29 14:42:44

让您尝试一下: session.findById("wnd1/usr/ctxtSYST-DATUM").Text = systemDate您可以在这里查看详细信息:https://archive.sap.com/discussions/thread/1095191

向Sergii致敬

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48483379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档