[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jan 2012
    Beiträge
    3

    Programm via PHP ausführen

    Hallo

    Ich muss via PHP ein Programm auf der iSeries ausführen Zend ist installiert nur bekomme ich immer den Fehler: NR:311 Msg: Program not found.

    Doch das Programm ist vorhanden doch ich weiß leider nicht warum es nicht gefunden wird mein Code:

    PHP-Code:
    $opts = array(I5_OPTIONS_INITLIBL => "EFS" );
                    
                    
    $conn i5_connect("localhost""user""pw"$opts);
                    if (!
    $conn)
                    die(
    "
    Connection using \"localhost\" with USERID and PASSWORD failed. Error
                    number ="
    .i5_errno()." msg=".i5_errormsg())."
    "
    ;
                    else
                    echo 
    "
    Connection using \"localhost\" with USERID and PASSWORD OK!
    \n"
    ;
                    
                    
                    
                    
    //$this->log("Archiv " . $archivId . " DocId " . $docId . " Path: " . $outputPath);
                    
                    //system("EFS/EXPSTMF ARCID($archivId) DOCID($docId) TODIR('$outputPath')", $success); 
                    
                    //exec("call efscse/cse318");
                    
                    
    $description = array (
                    array (
    "Name"=>"arcid""IO"=>I5_IN"Type"=>I5_TYPE_CHAR"Length"=>8),
                    array (
    "Name"=>"docid""IO"=>I5_IN"Type"=>I5_TYPE_CHAR"Length"=>8),
                    array (
    "Name"=>"todir""IO"=>I5_IN"Type"=>I5_TYPE_CHAR"Length"=>63)
                    );
                    
                    
    $input = array(
                            
    "arcid" => "INTASI",
                            
    "docid" => "D00AAA17",
                            
    "todir" => "/www/zendsvr/test",                        
                            );
                    
    $Output = array();
                    
                    
    $testprog i5_program_prepare("EFS/EXPSTMF" $description);
                    
    //$testprog = i5_program_prepare("EXPSTMF ARCID($archivId) DOCID($docId) TODIR('$outputPath')");
                    
                    
    echo var_dump($input);
                    if (!
    $testprog) {
                        echo 
    "i5_program_prepare";
                        exit();
                    }
                    else
                    {
                        echo 
    "Preparing erfolgreich..."$testprog ." " ;
                        echo 
    "
    rtvneta command failed. errno="
    .i5_errno()."
                    msg="
    .i5_errormsg();
                    }
                    
                    
    $ret i5_program_call($testprog$input); 
    Ich hoffe es kann mir jemand helfen.

  2. #2
    Registriert seit
    Jan 2011
    Beiträge
    81
    PHP-Code:
    $conn_resource i5_connect ('127.0.0.1'$user2$pass2); 
    vielleicht sollte die CONNECTION so aussehen. Nicht die Konstante USER oder PASS übertragen, sondern den Inhalt. ob *LOCALHOST oder '127.0.0.1' ist dasselbe.

  3. #3
    Registriert seit
    Jan 2012
    Beiträge
    3
    Hallo

    Danke für die Antwort ich habe es ausprobiert leider ohne Erfolg.
    Aber das hatte ich mir schon gedacht weil es ja eig keinen Unterschied machen dürfte.
    Hat noch jemand eine Idee?

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Ggf. ein Berechtigungsproblem?
    Vielleicht kann dein User nicht auf die Lib oder das Programm zugreifen, überprüf das doch mal.
    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 2012
    Beiträge
    3
    Danke für die Antwort

    In der Konsole kann ich jedoch auf den Befehl zugreifen.
    Ich habe es in meinem Programm jetzt mit allen möglichen Parametern versucht wie QSYS/EFS/EXPSTMF , EFS/EXPSTMF und EXPSTMF.

    Ich weiß mir leider nicht mehr zu helfen...

    PS: ich habe mich auf der Konsole mit dem selben User wie bei meinem Script eingeloggt.

  6. #6
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Zitat Zitat von DomGre Beitrag anzeigen
    In der Konsole kann ich jedoch auf den Befehl zugreifen.
    Ich habe es in meinem Programm jetzt mit allen möglichen Parametern versucht wie QSYS/EFS/EXPSTMF , EFS/EXPSTMF und EXPSTMF.
    "Befehl" oder "Programm"?

    Funktioniert denn ein CALL EFS/EXPSTMF von der Konsole aus?

  7. #7
    Registriert seit
    Jan 2011
    Beiträge
    81
    Der Unterschied liegt darain, das Du mit der Konstanten "USER" abfragst. Gibt es bei Dir einen User = USER mit dem Passwort "PW". in meinem Beispiel wird dieser Wert in einer Variablen übergeben.
    Wenn Du die Programm über die Konsole oder sonstwie testet, dann bis Du doch schon als USER angemeldet und definitert mit Deinen Rechten.

Similar Threads

  1. v4 of PHP Toolkit can be downloaded from AURA
    By Hellena Smejda in forum Archiv NEWSblibs
    Antworten: 0
    Letzter Beitrag: 22-04-11, 05:20
  2. darstellung von daten aus PF via odbc und php auf windows-pc
    By karin-vogelmann in forum NEWSboard Windows
    Antworten: 2
    Letzter Beitrag: 23-10-09, 09:58
  3. RPG Programm via DB2 SQL Procedure ausführen / JDBC
    By Curan in forum NEWSboard Java
    Antworten: 4
    Letzter Beitrag: 21-09-09, 15:53
  4. Programm auf "ferner" AS400 ausführen.
    By Souljumper in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 13-05-09, 19:50
  5. PHP Aufruf AS400 RPG Programm
    By chrisonline in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 07-12-07, 17:39

Berechtigungen

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