我想创建一个"输入字段"在SAP中使用vb脚本中传递的值。举一个具体的例子,我想打开FBL5n,将发票过去到一个字段中,并在VF03中查看发票。执行此操作的脚本已准备就绪,适用于硬编码的发票或VBA值。
这是GUI脚本部分
inputfield (2,35) "inv" (2,45) size=10 name="V_inv"
pushbutton (toolbar) "print_inv" process="InvoiceScript.txt"
using MYINV = "V_inv"
现在,我不知道如何处理inputcript部分。我想在这件事上提供帮助。这是我的第一次尝试:
Screen SAPLSLVC.0500
ApplyGuiScript template="VF03INV.vbs"
Enter
感谢您的帮助,如果您需要任何精确度,请告诉我。 以下是获取上述代码的灵感来源: http://www.synactive.com/tutor_e/lessonia03.html http://www.synactive.com/docu_e/docia_process2.html
***如果它可能有一个在剪贴板中读取值的版本,那就更好了。
答案 0 :(得分:2)
经过多次尝试后,这是一个解决方案:
脚本(SAPLSLVC.0500.txt):
inputfield (2,35) "inv" (2,45) size=10 name="V_inv"
pushbutton (toolbar) "script" "/OVF03" process="startvf03.txt"
using INV = [V_inv] ' need this when opening new screen
InputScript(startvf03.txt):
parameter INV
Screen SAPMV60A.0101 'this is the VF03 screen
SET F[VBRK-VBELN] "&U[INV]" 'pass invoice # parameter
ApplyGuiScript "C:\guiXT\scripts\VF03INV.vbs"
VBScript(VF03INV.vbs):
inv = session.findById("wnd[0]/usr/ctxtVBRK-VBELN").text
session.findById("wnd[0]/mbar/menu[0]/menu[11]").Select
session.findById("wnd[1]/tbar[0]/btn[37]").press
session.findById("wnd[0]/tbar[0]/okcd").Text = "pdf!"
session.findById("wnd[0]").sendVKey 0
'with some little extra here on how to save a pdf in SAP
'get new strings for locations (specific to my situation)
abc = session.findById("wnd[1]/usr/cntlHTML/shellcont/shell").Browserhandle.locationURL
beg = instr(abc,"C:")
cde = mid(abc,beg,9999)
dest = "C:\111\invoices\" & inv & ".pdf"
'changing from temp to a specific folder
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.copyfile cde, dest
'close the open file
session.findById("wnd[1]").close
session.findById("wnd[0]").close
Set fso = nothing
*您通常看到的几个If Not IsObject(application) Then
没有必要,但是没有必要。
我希望这有助于每个人学习Guixt
答案 1 :(得分:0)
在带有参数“template”的VB脚本中,您可以按如下方式处理GuiXT变量。
例如:
msgbox "&V[V_inv]"