哪个脚本更适合PTC完整性应用程序的自动化



我想创建一个脚本,将打开windows应用程序,并使用该应用程序来执行一些任务。我在下面列出了我想要自动化的活动:

应用程序是PTC完整性。它与数据库服务器链接,数据库服务器中有许多文件,这些文件具有唯一的ID。所以我需要使用ID来打开文档并导出它。

步骤:

    打开应用程序。
  1. 使用ID打开文档。
  2. 将文件导出为特定格式

我想知道要使用哪个脚本来自动化此过程,即,我给出id数组,脚本将打开应用程序,然后使用id打开文档并导出它们,直到导出所有id。使用Excel VBA可以完成。

是的,你可以在VBA中做到这一点。您的VBA可以通过使用PTC完整性命令行接口的Shell命令调用批处理文件。

要导出文档,可以使用'im exportissue ' CLI命令。

要同步调用批处理文件,您可以使用下面的ShellandWait函数或查看相关的StackOverflow问题。

    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess _
    As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle _
    As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Sub ShellAndWait(ByVal program_name As String, _
                             Optional ByVal window_style As VbAppWinStyle = vbNormalFocus, _

                Optional ByVal max_wait_seconds As Long = 0)
'http://www.vbforums.com/showthread.php?t=505172
' Example:
' Private Sub Form_Load()
'  Me.Show
'  ShellAndWait "Notepad.exe", , 3
'  Me.Caption = "done"
' End Sub
Dim lngProcessId As Long
Dim lngProcessHandle As Long
Dim datStartTime As Date
Const WAIT_TIMEOUT = &H102
Const SYNCHRONIZE As Long = &H100000
Const INFINITE As Long = &HFFFFFFFF
    ' Start the program.
    On Error GoTo ShellError
    lngProcessId = Shell(program_name, window_style)
    On Error GoTo 0
    DoEvents
    ' Wait for the program to finish.
    ' Get the process handle.
    lngProcessHandle = OpenProcess(SYNCHRONIZE, 0, lngProcessId)
    If lngProcessHandle <> 0 Then
        datStartTime = Now
        Do
          If WaitForSingleObject(lngProcessHandle, 250) <> WAIT_TIMEOUT Then
            Exit Do
          End If
          DoEvents
          If max_wait_seconds > 0 Then
            If DateDiff("s", datStartTime, Now) > max_wait_seconds Then Exit Do
          End If
        Loop
        CloseHandle lngProcessHandle
    End If
    Exit Sub
ShellError:
End Sub

我更喜欢Python来自动化PTC中的多个进程。您可以使用CLI命令进行所有操作。使用subprocess方法从Python运行这些CLI命令。

相关内容

最新更新