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

    AS400 Programm per VBA starten

    Hallo,
    iServer V5R3.
    Ist es möglich per VBA ein Programm auf der AS400 anzustossen und wie? Wie muss der SQL-Call aussehen, damit ich ein Programm (Name: TESTC)auf der AS400 anstossen kann? Mehr muss nicht passieren.

    Danke.

    Gruss
    padawan

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ganz einfach per "CALL MYLIB.MYPGM".
    Allerdings kehrt SQL erst nach Ende des Programmes zurück.
    Ggf. wird das Programm abgebrochen, wenn es zu lange dauert.
    Soll das Programm einfach nur im Batch laufen, kannst du auch ein CLP schreiben, dass dein Programm ber SBMJOB übergibt und direkt zurückkehrt.
    Das CLP rufst du wie oben auf.
    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

    AS400 Programm per VBA starten

    Hast Du einen kurzen Beispielcode, wie ich von ASP.NET heraus das Programm TESTC auf der AS400 starten kann? Die Verbindung zur AS400 ist über ODBC realisiert.

    Danke.

    Gruss
    Tobias

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Hab ich doch oben schon gesagt:

    MyConnection.Execute("CALL MYLIB.MYPGM")
    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

  5. #5
    Registriert seit
    Jan 2010
    Beiträge
    83

    AS400 Programm per VBA starten

    Programm auf der AS400 erwartet zwei Eingaben: Datumsparameter (PADATV und PADATB) im Format ttmmjjjj und die Eingaben werden anschließend mit Enter bestätigt, aber trotzdem ruft u.g. Code das Programm nicht auf und führt es aus (Fehlermeldung kommt auch keine). Was mache ich evt falsch? Würden Sie mal drüber schauen?
    Danke.


    ProtectedSub Button1_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles Button1.Click
    Dim AS400Name AsString = "AS400Server"
    Dim AS400User AsString = "USER"
    Dim AS400Password AsString = "PWD"
    Dim AS400Pgm = "TTRRENOMR"
    Dim AS400Lib = "TRUMPFH"
    Dim AS400 AsNew cwbx.AS400System
    Dim program AsNew cwbx.Program
    OnErrorResumeNext
    AS400.Define(AS400Name)
    'AS400.Connect("CALL DTALIB/RENOMAC")
    program.system = AS400
    program.system.UserID = AS400User
    program.system.Password = AS400Password
    program.LibraryName = AS400Lib
    program.ProgramName = AS400Pgm
    '************************************************* ********
    'Parameter
    Dim stringConverter AsNew cwbx.StringConverterClass()
    Dim packedConverter AsNew cwbx.PackedConverterClass()
    packedConverter.DecimalPosition = 0
    packedConverter.Digits = 8
    Dim parameters AsNew cwbx.ProgramParametersClass()
    'parameters.Append("Parameter1Name", cwbx.cwbrcParameterTypeEnum.cwbrcInout, 1)
    'stringConverter.Length = 1
    'parameters("Parameter1Name").Value = stringConverter.ToBytes("W".PadRight(1, " "c)) '
    parameters.Append("PADATV", cwbx.cwbrcParameterTypeEnum.cwbrcInout, 8)
    stringConverter.Length = 8
    parameters(
    "PADATV").Value = stringConverter.ToBytes("01012010".PadRight(8, " "c)) '
    parameters.Append("PADATB", cwbx.cwbrcParameterTypeEnum.cwbrcInout, 8)
    stringConverter.Length = 8
    parameters(
    "PADATB").Value = stringConverter.ToBytes("13022010".PadRight(8, " "c)) '

    parameters.Append(
    "PADATV", cwbx.cwbrcParameterTypeEnum.cwbrcInout, 8)
    parameters(
    "PADATV").Value = packedConverter.ToBytes("8") '

    AS400.Signon()
    AS400.Connect(cwbcoServiceEnum.cwbcoServiceRemoteC md)
    program.Call(parameters)

    EndSub

  6. #6
    Registriert seit
    Jul 2005
    Beiträge
    1.053
    Versuche es mal mit Datenfreigabe, Enter klingt nach Feldexit

    Gruß AS400.lehrling

  7. #7
    Registriert seit
    Jan 2010
    Beiträge
    83
    ...kann mir bitte jemand helfen. Benötige dringend Hilfe.
    Danke.

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Du kannst per CALL keine Dialog-Programme aufrufen!
    D.h., wenn dein Programm auf eine Eingabe wartet bzw. eine DSPF enthält, gibt es einen CPF-Fehler beim Aufruf.

    Was also genau macht dein Programm ?
    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
    beim start des AS400 Programms kommt eine DSPF und erwartet eine Datum-von und eine Datum-bis Eingabe, um damit eine Tabelle (Datei) mit Daten zu füllen, d.h. ich muss beim call zwei Datumsparameter übergeben.

  10. #10
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    wie baldur schon gesagt hat, du kannst über sql kein pgm aufrufen, welches ein dspf ausgibt.
    jetzt musst du ein neues pgm ohne dspf schreiben, welches die parameter über dein call übergeben bekommt.

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Genau.
    Teile dein derzeitiges Programm in 2 einzelne Programme:
    Programm A, dass die DSPF benutzt, die Eingaben vornimmt und dann Programm B mit den *Entry-Parametern aufruft, dass die gewünschte Aktion durchführt.
    Dann kannst du Programm B alternativ über SQL oder cwbx-Interface aufrufen (wobei SQL eher zu empfehlen ist, da es einfacher handlebar ist).
    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

Similar Threads

  1. Programm auf "ferner" AS400 ausführen.
    By Souljumper in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 13-05-09, 19:50
  2. as400 export zu einem externen programm
    By mican in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 18-01-07, 08:07
  3. Dateien per FTP von IFS auf der AS400 holen
    By kroehn in forum NEWSboard Windows
    Antworten: 5
    Letzter Beitrag: 08-11-06, 19:36
  4. Programm auf anderer AS400 starten
    By codierknecht in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 04-07-06, 11:52
  5. Antworten: 1
    Letzter Beitrag: 24-04-06, 10:37

Berechtigungen

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