Hallo folgendes möchte ich tun:
1. Von einem IBM mainframe mittels ftp eine datei downloaden.
2. Diese in eine Db importieren.
3. Dies sollte autom. nachts geschehen (wenn möglich)
4. Wenn 3. nicht möglich dann so autom. das ein user nur auf einen button klickt (ohne Abfrage nach Dateinamen etc.)
Punkt 1 habe ich soweit realisiert (feintuning später)
Zu Punkt 2 habe ich aus dem LDD Forum ein script gefunden das die Daten der .col Datei in die notes.ini schreibt und dann importiert.
Dieses script funktioniert aber bei mir nicht muß wohl angepasst werden,.. aber wo?
Angepasst habe ich die .col Datei (bei mir auf c:\) die Importdatei und das Dok.
Die .col Datei sieht so aus:
ServNr_T: TYPE TEXT START 06 END 14
KatNrVorgr_T: TYPE TEXT START 16 END 21
Die Import Datei:
0 13148917 01 12 EINSATZ SK L03070
Das script so:
(Declar)
Type ColStruc
FieldName As String
FieldStart As Integer
FieldEnd As Integer
End Type
(Init..)
Sub Initialize
Dim Fields() As ColStruc
Dim FieldCntr As Integer
Dim Counter As Integer
Dim txt As String
Dim ColFileName As String
Dim DataFileName As String
Dim FormName As String
Dim FieldContents As String
Dim pos As Integer, spacePos As Integer
Dim session As New NotesSession
Dim db As NotesDataBase
Dim doc As NotesDocument
' Set the names.
ColFileName="c:\catalogalert_import.col"
DataFileName="c:\catalogalert.txt"
FormName="Import"
' Determine the number of fields described.
Counter = 0
Open ColFileName For Input As 1
Do While Not Eof(1)
Line Input #1,txt$
Counter = Counter +1
' Correct if the line is empty (less than 3 characters), so ignore then the line
If Len(txt$)<3 Then
Counter = Counter - 1
End If
Loop
' Now read the field names with their start and end positions
Redim Fields(1 To Counter)
' Move to first record again
Seek 1, 1
FieldCntr=1
Do While Not Eof(1)
Line Input #1, txt$
If Len(txt$)>3 Then
pos=Instr(txt$,":")
Fields(FieldCntr).FieldName=Left$(txt$,pos-1)
'get the START position
pos=Instr(txt$,"START ")+6 'Returns the position of the character that begins the first occurrence of one string within another string.
'get the first space after the number following 'START '
spacePos = Instr(pos,txt$," ")
Fields(FieldCntr).FieldStart=Cint(Mid$(txt$,pos,spacePos-pos)) 'Extracts a string from within another string, beginning with the character at a specified position. expr , start [ , length ]
'get the END position
pos=Instr(txt$,"END ")+4
'the number following 'END ' is at the end of the string
Fields(FieldCntr).FieldEnd=Cint(Mid$(txt$,pos,Len(txt$)-pos+1))
FieldCntr = FieldCntr + 1
End If
Loop
Close 1
Set db = session.CurrentDatabase
' Now read the data file
Open DataFileName For Input As 1
Do While Not Eof(1)
' For each row, create a document
Set doc = New NotesDocument(db)
Line Input #1, txt$
For FieldCntr=1 To Counter
' Determine the content of the field
If txt$<>"" Then
FieldContents=Mid$(txt$,Fields(FieldCntr).FieldStart,Fields(FieldCntr).FieldEnd - Fields(FieldCntr).FieldStart+1)
Else
FieldContents=""
End If
doc.AppendItemValue Fields(FieldCntr).FieldName, FieldContents
Next
Loop
Close 1
End Sub
Hoffe mir kann jemand helfen, im voraus Vielen Dank!!!!