[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2004
    Beiträge
    923

    Parameterübergabe über QSH mit SH möglich?

    Hello,

    ich rufe aus nem CLP ein JAVA auf.
    Der CLP-Code im Groben:
    PHP-Code:
    QSH        CMD '/HOME/KUEMPI/KUEMPI.SH'
    Der SH-Code im Groben:
    PHP-Code:
    cd /home/kuempi
    java 
    -cp ELLENLANGEBEFEHLSZEILEMITLIBUNDJARZEUCHS Meinjava dummy dummy dummy 
    Gibt es eine Möglichkeit die drei "dummy" Parametergesteuert mit Leben zu füllen um dem Programm "Meinjava" diese zu übermitteln?

    kuempi

  2. #2
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Hallo Kuempi,

    ich verstehe den Sinn davon nicht so ganz. Warum erstellst Du überhaupt eine SH-Datei und führst das Ganze nicht direkt im CLP aus ?

    Gruß,
    KM

  3. #3
    Registriert seit
    Aug 2004
    Beiträge
    923
    Na ja, warum?
    Weil ichs nicht besser weiss...

    Mir ist schon klar, dass ich im CLP auch direkt:
    PHP-Code:
    QSH  CMD 'java -cp ELLENLANGEBEFEHLSZEILEMITLIBUNDJARZEUCHS Meinjava dummy dummy dummy' 
    oder so ähnlich zusammenbasteln könnte...
    Aber dann fehlt mir ja der CD Befehl davor.
    Der Umweg uber die .SH-Datei war ganz nett um eine Kette von Befehlen abzuarbeiten...

    Wie müsste denn dafür die CLP-Lösung aussehen?

    Wäre ich durchaus mit eiverstanden, das auch so zu lösen, wenn ich wüsste wie.
    Diese .SH-Geschichte stört mich eh schon lange...

    kuempi

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    An QSH kann eine ganze Reihe von Befehlen übergeben werden (wie ein Script:

    CMD('Befehl1;Befehl2;...')

    Das Semikolon gilt als Befehlstrenner, für dich also:

    cmd('cd /MyPath;java ....')

    Ansonsten empfängt ein Script seine Parameter in $1, $2, ... $9 als Pseudovariablen.
    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
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Ich glaube jetzt hab ich's verstanden. Dadurch, dass Du QSH benutzt und dabei für die QSH-Sitzung ein neuer Job gestartet wird, funktioniert das mit einem vorher abgesetzten CD im CLP nicht, da sich der ja nur auf den Job bezieht.

    Hast Du's schon mal mit der Shell von PASE versucht ? Der Aufruf startet glaube ich keinen neuen Job und somit könntest Du im CLP vorher einfach einen CD ausführen. Dann würdest Du nicht QSH aufrufen, sondern QP2SHELL.

    Das müsste eigentlich so ähnlich funktionieren.

    Gruß,
    KM

    Code:
    DCL        VAR(&CMD) TYPE(*CHAR) LEN(30)                
    DCL        VAR(&PARM1)   TYPE(*CHAR) LEN(30)            
    DCL        VAR(&PARM2)   TYPE(*CHAR) LEN(300)           
    DCL        VAR(&PARM3)   TYPE(*CHAR) LEN(30)            
    DCL        VAR(&PARM4)   TYPE(*CHAR) LEN(5)             
    DCL        VAR(&PARM5)   TYPE(*CHAR) LEN(5)       
    DCL        VAR(&PARM6)   TYPE(*CHAR) LEN(5)         
    DCL        VAR(&NULL)    TYPE(*CHAR) LEN(1) VALUE(X'00')
    
    CHGVAR     VAR(&CMD) VALUE('/QOpenSys/usr/bin/java')     
    CHGVAR     VAR(&CMD) VALUE(&CMD *TCAT &NULL)             
                                                             
    CHGVAR     VAR(&PARM1) VALUE('-classpath')               
    CHGVAR     VAR(&PARM1) VALUE(&PARM1 *TCAT &NULL)         
                                                             
    CHGVAR     VAR(&PARM2) +                                 
                 VALUE('/DeinClasspath/')                    
    CHGVAR     VAR(&PARM2) VALUE(&PARM2 *TCAT &NULL) 
    
    CHGVAR     VAR(&PARM3) VALUE('DeinJavaProgramm')
    CHGVAR     VAR(&PARM3) VALUE(&PARM3 *TCAT &NULL) 
                                                     
    CHGVAR     VAR(&PARM4) VALUE(&Parameter1)             
    CHGVAR     VAR(&PARM4) VALUE(&PARM4 *TCAT &NULL) 
                                                     
    CHGVAR     VAR(&PARM5) VALUE(&Parameter2)           
    CHGVAR     VAR(&PARM5) VALUE(&PARM5 *TCAT &NULL)   
    
    CHGVAR     VAR(&PARM6) VALUE(&Parameter3)           
    CHGVAR     VAR(&PARM6) VALUE(&PARM5 *TCAT &NULL)   
    
    CALL       PGM(QP2SHELL) PARM(&CMD &PARM1 &PARM2 +
                 &PARM3 &PARM4 &PARM5 &PARM6)

  6. #6
    Registriert seit
    Sep 2002
    Beiträge
    47
    Moin!

    Aber warum benutzt Du nicht einfach das OS/400 Command
    JAVA? Drückst F4 und trägst da Deine Parameter ein!
    Ciao
    Nili

  7. #7
    Registriert seit
    Aug 2004
    Beiträge
    923
    Jo,

    erst mal Danke der vielen Antworten.
    Ich werde das prüfen und ne Rückmeldung geben dann.

    Ist eben so, dass das ne übernommene Altanwendung ist von der ich nicht wirklich weiss, was ich da mache anscheinend.
    Motto: "Denn Sie Wissen Nicht Was Sie Tun"...

    Man lernt doch nie aus...

    k.

  8. #8
    Registriert seit
    Aug 2004
    Beiträge
    923
    Also vielen Dank nochmal an Alle!

    Habe als erstes die Variante von Fuerchau gewählt und gleich im zweiten Versuch Erfolg gehabt (Fehlte noch beginnend und abschliessend ein Hochkomma jeweils).

    Coole Sach.
    Schönen Tag noch.

    kuempi

Similar Threads

  1. qsh
    By tomikra in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 30-06-06, 10:33
  2. QSH und Java
    By FKathmann in forum IBM i Hauptforum
    Antworten: 14
    Letzter Beitrag: 21-11-05, 09:02
  3. QSH auf V5R2
    By ExAzubi in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 14-06-05, 11:12
  4. Java Job aus Qsh im CL
    By DEVJO in forum NEWSboard Java
    Antworten: 1
    Letzter Beitrag: 27-05-05, 09:07
  5. qsh
    By delphix in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 21-12-01, 07:28

Berechtigungen

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