Session D-COM

Der ‘FoxPro Communication
Manager’

Peter Müller / Rudolf Vogel
Müller Software / Vogel Software GmbH


Übersicht

Entstehungsgeschichte

Ehemaliger Ist-Stand

Anforderungen

Lösungsmöglichkeiten: Internet oder ?

Internet
PRO
  • Weltweit zum Ortstarif erreichbar
  • "Medium der Zukunft"
  • "Echtzeit"-Fähigkeit
KONTRA
  • Lange Onlinezeiten
  • Schlechte Performance
  • Hohe Kosten für Inhouse-Server und Standleitung
  • Aufwendige Neuprogrammierung der Anwenderschnittstelle
  • Kostenintensive Implementierung in das bestehende Warenwirtschaftssystem

?
PRO
  • Weltweit zum Ortstarif erreichbar
  • "Medium der Zukunft"
  • "Echtzeit"-Fähigkeit
  • Kurze Onlinezeiten
  • Hohe Performance
  • Niedrige Kostenfür Inhouse-Server
  • Keine Standleitung
  • Keine Neuprogrammierung der Anwenderschnittstelle
  • Kostengünstige Implementierung in das bestehende Warenwirtschaftssystem
KONTRA    

FoxPro Communication Manager

Funktionsübersicht

Client Server
  • Connect
  • Upload
  • Download
  • SQL
  • Disconnect
  • Error
  • CLIENT.INI
  • Before/After-Events
  • USER.DBF
  • SERVER.INI
  • SERVER.LOG
  • START.TMP
  • STOP.TMP
  • SHUTDOWN.TMP

Connect

lnErrno = Client("connect","02987Test","Pedro","atx3dt0,,12345^M", 60)
IF lnErrno > 0
WAIT WINDOW Client( "error", lnErrno, "G" )
ENDIF

Upload

lnErrno = Client( "upload", "*.dbf", "f:\temp", 60, .T., .T., 1,1 )
IF lnErrno > 0
WAIT WINDOW Client( "error", lnErrno, "G" )
ENDIF

Download

lnErrno = Client( "download", "*.dbf", "f:\temp", 60, .T., .T., 1,1 )
IF lnErrno > 0
WAIT WINDOW Client( "error", lnErrno, "G" )
ENDIF

SQL

sSQL = "select item_no, description, quantity from order where ;
cust_no = '12345'..."
sSQL = "insert into..."
sSQL = "update table..."
sSQL = "delete from ..."
lnErrno = Client( sSQL, "download", 60, "VFP", 2, 2 )
IF lnErrno > 0
WAIT WINDOW Client( "error", lnErrno, "G" )
ENDIF

Disconnect

lnErrno = Client( "disconnect" )
IF lnErrno > 0
WAIT WINDOW Client( "error", lnErrno, "G" )
ENDIF

Error

lnErrno = Client( "disconnect" )
IF lnErrno > 0
WAIT WINDOW Client( "error", lnErrno, "G" )
ENDIF

CLIENT.INI

[MODEM]
Port=COM3
Baudrate=38400
Init=AT &F^M~~~~~~
Hangup=+++~~~ATH0^M~~~~~~ATZ^M~~~~~~
HangUpDTR=N
HangUpDTROffline=
HangUpDTROnline=
[COMMON]
COMPRESS=20000

SERVER.INI

[MODEM]
Port=COM1
Baudrate=57600
Init=AT&F^M~~~
HangUp=+++~~~ATH^M~~~
Rings=1
[USER]
Table=user
[COMMON]
Language=G
Timeout=60
[LOG]
Start/Stop=Y
Errortext=Y
Login/-off=Y
LoginUser=Y
LoginPW=Y
Insert=Y
Update=Y
Select=Y
Upload=Y
Download=Y

USER.DBF

USER
C
20
PASSWORD
C
20
UPLOAD
L
1
DOWNLOAD
L
1
SELECT
L
1
INSERT
L
1
UPDATE
L
1

SERVER.LOG

+ 19970214 12:27:41 Server gestartet
> 19970214 12:29:00 Eingeloggt: 03444 TESTUSER
S 19970214 12:29:01 SELECT FILME.ARTIKEL_NR, FILME.TITEL, FILME.BESTAND FROM
\BESTELL\FILME WHERE FILME.NO = 28843, F26, 3, 3
I 19970214 12:29:22 INSERT INTO SERVBEST(DATUM, NO, ARTIKEL_NR, MENGE, ZEIT,
GEBUENDELT) VALUES(CTOD('14.02.97'), 27884,'5161 ', 1,'12:29:31', 'GEBÜNDELT'), F26, 1, 1
^ 19970214 12:59:01 \BESTELL\EXP_MINI\FOXFIL.EXE, R, N, 1, 1
< 19970214 12:30:25 Ausgeloggt nach 20 Sekunden
- 19970214 14:39:17 Server heruntergefahren
+ 19970214 14:41:00 Server gestartet

STOP.TMP/START.TMP/
SHUTDOWN.TMP

copy file c:\autoexec.bat \bestell\server\stop.tmp
do while file("\bestell\server\stop.tmp")
enddo
do reindex.prg
copy file c:\autoexec.bat \bestell\server\start.tmp
do while file("\bestell\server\start.tmp")
enddo

Praktisches Beispiel: Die Medienwelt

Resümee