PDA

View Full Version : ScreenScraping??



Seiten : 1 [2]

fabax
10-01-04, 08:41
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

JonnyRico
13-01-04, 06:45
Moin,

danke für die ganzen Tipps. Ich werde einiges davon mal testen. Ich poste dann mal meine Erfahrungen. Vielen Dank!!

mfg

Sascha

gwoe
14-05-04, 15:49
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...

dslraser
08-09-05, 21:53
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

dslraser
19-11-05, 08:18
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 .....