View Full Version : ScreenScraping??
Hallo Sascha,
Ich habe da ein Tool entwickelt das genau dein Problem lösen kann.
SCS/400 ist ein ScreenScrapper der nativ auf der AS/400 läuft und beide 5250 Format verarbeiten kann.
Sogar dynamische Subfiles.
Damit kannst Du beliebige eigene Programme aufrufen ohne Änderungen an den existierenden Applikationen.
hier der entsprechende Link (http://www.balleis.com/as400/TipAndTricks/ScreenScrap400/Index1.html)
Es ist bereits bei mehreren Kunden eines bekannten ERP-Systems im Einsatz
Nur ein paar Facts
Aufruf von Programmen mit beliebiger Anzahl Paramter
Gültigkeits und Formatierungsoptionen
Übergabe mit variabler Länge.
und vieles mehr..
:eek:
Sven Schneider
12-01-04, 18:47
Wenn du jetzt noch auf dem Bildschirm eine fixes Textfeld hast z.B. "Artikel", dann kannst du das VBS-Macro auch Artikel.MAC nennen und bei Aktivierung der Detailpunkte für Macros/Scripts braucht der Anwender, dann nur noch auf den dann vorhandenen 3D-Button Artikel drücken.
Wir haben damit sogar unsere App. erweitert und z.B. per VB-Script einer externe Datenbank mit Schlüsseln aus der 5250-Maske Daten gelesen und das Ergebnis in 5250-Felder zurückgeschrieben.
Sven
Moin,
danke für die ganzen Tipps. Ich werde einiges davon mal testen. Ich poste dann mal meine Erfahrungen. Vielen Dank!!
mfg
Sascha
Wenn auf dem Bildschirm noch Platz ist,
einfach ausgeben:
http://(ip_as400)/bilder/2312312.jpg
Die ClientAccess Emulation kann daraus einen direkt klickbaren Hyperlink machen.
-h
Hallo,
wir haben iseries access V5R2 mit SP 9809 installiert.
Wie funktioniert das denn mit dem Hyperlink ?
Wenn ich einen entsprechenden String auf dem
Bildschirm ausgebe macht mir die CA Emulation daraus keinen Hyperlink...
Hallo Sascha,
in VB den Verweis auf PCOMM autoECLPS Automation Object 1.0 Library aktivieren und folgenden Code einbauen
Dim text As String
Set PSObj = CreateObject("PCOMM.autECLPS")
PSObj.SetConnectionByName ("A")
text = PSObj.GetText(12, 17, 9)
Damit lese ich aus Session A Zeile 12, Spalte 17 in der Länge 9 aus.
Gruß
Bruno
Wie kannich einen ganzen Bereich (mehrere Zeilen von bis) in die Zwischenablage kopieren ? Es funktionieren alle Tasten, wie zum Beispiel pf1 pf2 enter usw. usw., aber die strg-v bzw. die edit-copy nicht. Ich möchte einen bestimmten Teil des angezeigten Bildschirms auf die oben aufgeführte Art und Weise in eine Excel-Tabelle kopieren und auch einige Sachen aus dieser Tabelle in einen bestimmten Bildschirmbereich schreiben. Ich habe mir Hilfsweise zwei Macros aufgezeichnet(makieren und kopieren / und einfügen), die stoße ich dann mit PS.StartMacro "mymacro" an, das gefällt mir aber nicht. Gibt es eine Lösung direkt in Excel ?
Wir haben die Software gewechselt, bei der alten Software(Attachmate) sah das so aus :
Sub kopiere_bestand_stueck_()
' Das Hauptsystemobjekt abrufen
Dim Sessions As Object
Dim System As Object
Set System = CreateObject("EXTRA.System") ' Ruft das Systemobjekt ab.
If (System Is Nothing) Then
MsgBox "EXTRA! Systemobjekte konnten nicht erstellt werden. Makro-Wiedergabe wird abgebrochen."
Stop
End If
Set Sessions = System.Sessions
If (Sessions Is Nothing) Then
MsgBox "Sessions-Kollektionsobjekt konnte nicht erstellt werden. Das abgespielte Marko wird abgebrochen."
Stop
End If
'--------------------------------------------------------------------------------
' Den Wert der Standard-Wartezeitüberschreitung einstellen
g_HostSettleTime = 50 ' Millisekunden
OldSystemTimeout& = System.TimeoutValue
If (g_HostSettleTime > OldSystemTimeout) Then
System.TimeoutValue = g_HostSettleTime
End If
' Das erforderliche Session-Objekt abrufen
Dim Sess0 As Object
Set Sess0 = System.ActiveSession
If (Sess0 Is Nothing) Then
MsgBox "Session-Objekt konnte nicht erstellt werden. Makro-Wiedergabe wird abgebrochen."
Stop
End If
If Not Sess0.Visible Then Sess0.Visible = True
Sess0.Screen.WaitHostQuiet (g_HostSettleTime)
System.TimeoutValue = OldSystemTimeout
Dim Sys As Object, Sess As Object, MyArea As Object
Set Sys = CreateObject("EXTRA.System")
' Geht davon aus, daß eine Session geöffnet ist.
Set Sess = Sys.ActiveSession
' Demonstriert die Methode "Copy" für Screen-Objekte.
Set MyScreen = Sess.Screen
MyScreen.SelectAll
MyScreen.Copy
' Demonstriert die Methode Copy für Area-Objekte.
Set MyArea = MyScreen.Area(19, 45, 24, 55)
MyArea.Select
MyArea.Copy
End Sub
Kann da Jemand helfen ???
Dekker EDV
18-11-05, 13:00
Warum das Rad neu erfinden :confused:
Foxtrot (http://www.myfoxtrot.de) macht das ganze per Mausklick und auch noch Hard- und Software unabhängig.
Grüße
Dick Dekker
wir benutzen Windows XP, das funktioniert leider nicht, oder ?
Dekker EDV
19-11-05, 10:27
Na Klar funzt das auch bei XP. (sogar mit W98 ;) )
Ist alles egal; W98, XP, NT, W2003, Unix, AS400, MVS, BS2000 .....