[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Jan 2010
    Beiträge
    83

    Upload - Datei vom Webserver auf AS400

    Hallo,
    iSeries V5R3

    Ich möchte gerne eine Datei, die auf dem WebServer (Intranet) liegt auf die AS400 hochladen. Wie stelle ich das an?
    Bisher greife ich auf den lokalen PC auf das LW C zu über diesen Befehl:

    CPYFRMIMPF FROMSTMF('QNTC/P4055/THYSSENEIN/hoet') +
    TOFILE(SWDTA/THYS00H) MBROPT(*REPLACE) +
    RCDDLM(*CRLF) STRDLM(*NONE) FLDDLM('#')

    Wie kann ich denn jetzt eine Datei vom Webserver abgreifen (z.B. \\Web1\Freigegebener Ordner\Datei.txt)???

    Vielen Dank für Eure Hilfe.

    Gruss
    Tobias

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wenn der Webserver lokal erreichbar ist, kannst du auch per MKDIR einen QNTC-Zugriff definieren.
    Allerdings gilt auch hier, dass USER und PASSWORD auf dem Server vorhanden ist.
    Ansonsten funktioniert meist auch FTP.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jan 2010
    Beiträge
    83
    ...ich befinde mich im Intranet auf dem Webserver (also Webserver ist nicht lokal auf meinem Rechner). Die hochzuladende Textdatei liegt jetzt auf dem Webserver, also nicht mehr lokal auf meinem Rechner.

    Frage: Wie muß der Pfad im u.g. Codesegment jetzt aussehen, damit die Textdatei auf dem Werbserver abgegriffen wird.

    Ich habe derzeit dieses kleine Codesegment, wenn die Textdatei lokal auf meinem Rechner liegt (das funktioniert):

    /* WRKLNK QNTC FÜR VERBINDUNG */
    /* */
    MKDIR DIR('/QNTC/P4055')
    MONMSG MSGID(CPF0000)
    /* */
    CPYFRMIMPF FROMSTMF('QNTC/P4055/THYSSENEIN/hoet') +
    TOFILE(SWDTA/THYS00H) MBROPT(*REPLACE) +
    RCDDLM(*CRLF) STRDLM(*NONE) FLDDLM('#')

    Name des Webserver ist: Web1
    Virtuelles Verzeichnis ist: Intranet

    Danke.

  4. #4
    Registriert seit
    May 2007
    Beiträge
    295
    Das Codesegment ist genau das gleiche nur muss eben der Name von P4055 durch die IP-Adresse oder den Namen (Hosttabelle) des Webservers ausgetauscht werden.

    ZB:

    /* WRKLNK QNTC FÜR VERBINDUNG */
    /* */
    MKDIR DIR('/QNTC/Web1')
    MONMSG MSGID(CPF0000)
    /* */
    CPYFRMIMPF FROMSTMF('/QNTC/Web1/Intranet/blabla/etc') +
    TOFILE(SWDTA/THYS00H) MBROPT(*REPLACE) +
    RCDDLM(*CRLF) STRDLM(*NONE) FLDDLM('#')

    Grüße!
    Last edited by prsbrc; 02-03-10 at 07:45. Grund: zb
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

  5. #5
    Registriert seit
    Jan 2010
    Beiträge
    83
    genauso umgesetzt,
    wenn ich aber das jetzt absetze:

    Dim cnn As ADODB.Connection
    Dim CallCmd As String
    cnn = New ADODB.Connection

    cnn.Open("Provider=IBMDA400;" & _
    "Data Source=SERVERNAME;" & _
    "User ID=USER;" & _
    "Password=PW;")
    CallCmd = "CALL PGM(TRUMPFH/THYS00CWEB)"
    cnn.Execute("CALL QSYS.QCMDEXC ('" & CallCmd & "', " & Format(Len(CallCmd), "0000000000.00000") & ")")
    cnn.Close()

    werden die Daten nicht in die PF-Datei geschrieben.

  6. #6
    Registriert seit
    May 2007
    Beiträge
    295
    Wie schauts aus wenn du das CL-Programm direkt auf der Befehlszeile der AS/400 aufrufst?
    Wird dann deine PF gefüllt oder auch nicht?
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wenn du den IBMDA400 verwendest, gibt es unterscheidungen in der CALL-Syntax.
    Wobei ich i.M. nicht weiß, welche IBMDA400 wann verwendet (muss man mal nachlesen).

    CALL ohne Klammern entspricht meines Wissens dem Call einer SQL-Prozedur.

    Ansonsten
    {CALL ...}
    oder
    {{CALL ...}}

    das bleibt auszuprobieren.

    Ausserdem kannst du dir den Aufruf des QCMDEXC sparen, du kannst dein programm auch direkt aufrufen:

    {CALL MYLIB.MYPGM}

    Hatten wir das nicht schon mal ?

    Was gibt denn der Execute für eine Fehlermeldung zurück ?
    Wie siehts mit der Bibliotheksliste aus, braucht da dein CLP noch was in *LIBL ?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    In folgendem Beitrag siehst du die Lösung (ganz am Ende), dass der IBMDA400 mit den CALL's sehr spezifisch umgeht.
    Man sollte in diesem Fall doch besser den ODBC-Treiber verwenden, wie das gemacht wird, steht auch in dem Beitrag.

    Suche mal nach "IBMDA400 CALL".
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Jan 2010
    Beiträge
    83
    bibliothek ist in libl vorhanden.
    auch der copy befehl scheint nicht zu funktionieren
    nichts funktioniert, bin am verzweifeln...

    vielleicht seht Ihr einen Fehler:

    CLP (TRUMPFH/THYS00CWEB):
    PGM
    /* */
    /* */
    /* WRKLNK QNTC FÜR VERBINDUNG */
    /* */
    MKDIR DIR('/QNTC/WEB1')
    MONMSG MSGID(CPF0000)
    /* */
    CPYFRMIMPF FROMSTMF('QNTC/WEB1/THYSSENEIN/hoericht') +
    TOFILE(SWDTA/THYS00H) MBROPT(*REPLACE) +
    RCDDLM(*CRLF) STRDLM(*NONE) FLDDLM('#')

    Visual Basic:

    Dim cnn As ADODB.Connection
    Dim CallCmd AsString
    cnn = New ADODB.Connection
    cnn.Open("Provider=IBMDA400;" & _
    "Data Source=SERVER;" & _
    "User ID=USER;" & _
    "Password=PWD;")


    CallCmd = "{CALL TRUMPFH.THYS00CWEB}"
    cnn.Execute(CallCmd)
    cnn.Close()

    Arbeite hier mit strpdm, also auf /400 Basis
    Auch doppelte geschweifte Klammern beim Call blieb ohne Erfolg...

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Gibt der execute einen Fehler zurück (Err-Objekt)?
    Wenn nicht, wird dein Programm wohl ausgeführt.
    Funktioniert dein CLP denn beim Aufruf auf der AS/400 ?
    Verwendest du auf der AS/400 den selben User wie per ODBC ?
    Ist der User auf dem Server WEB1 mit dem selben Kennwort als lokaler User registriert ?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  11. #11
    Registriert seit
    May 2007
    Beiträge
    295
    Wenn der Copy schon nicht funktioniert sollte der JobLog was dazu sagen (DSPJOBLOG ... wenn du das CL direkt auf der Befehlszeile aufgerufen hast).
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

  12. #12
    Registriert seit
    Jan 2010
    Beiträge
    83
    --> kein Error, VBA-Programm wird ausgeführt.

    Funktioniert dein CLP denn beim Aufruf auf der AS/400 ?

    -->Getestet - einwandfrei -->
    auf der AS400 per: CALL THYS00CWEB

    Verwendest du auf der AS/400 den selben User wie per ODBC ?

    --> ja (auf der AS400, WEB1 und ODBC alle gleich)

    Ist der User auf dem Server WEB1 mit dem selben Kennwort als lokaler User registriert ?

    -->Ja

    es kann nur noch an diesen Befehlen liegen:

    CallCmd = "{{CALL PGM(TRUMPFH/THYS00CTTR)}}"
    'cnn.Execute("{{CALL QSYS.QCMDEXC PARM('" & CallCmd & "', " & Format(Len(CallCmd), "0000000000.00000") & ")}}")
    cnn.Execute(CallCmd)
    cnn.Close()

Similar Threads

  1. Tape von einer AS400 von anderer AS400 aus nutzen?
    By hs in forum IBM i Hauptforum
    Antworten: 15
    Letzter Beitrag: 07-11-06, 19:28
  2. AS400 als webserver
    By cc in forum NEWSboard Linux
    Antworten: 5
    Letzter Beitrag: 09-08-06, 11:37
  3. Druckereinrichtung auf AS400?
    By stephanr1 in forum NEWSboard Drucker
    Antworten: 7
    Letzter Beitrag: 20-07-06, 14:00
  4. Textdatei per FTP in AS400 Datei
    By hs in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 25-10-05, 08:33
  5. AS400 Operatorin sucht Stelle im Raum Frankfurt
    By NixWisserin in forum NEWSboard Server Job
    Antworten: 0
    Letzter Beitrag: 15-02-05, 17:51

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •