[toulouse-pm] Question Stupide

eric.vernichon.ev at borchers.fr eric.vernichon.ev at borchers.fr
Fri Sep 20 02:45:35 CDT 2002


                Bonjour ,


        Plus je regarde passer vos mails plus j'ai peur de poser des 
questions ( à la c.. ) .

        Mais comme je suis bloqué tant pis je me lance .

        J'utilise perl pour écrire des scripts d'administrations SAP R3.

        Jusqu'à présent je ne séparai rien par fonctions et tout 
fonctionné  à merveille

        Mais voila je veux écrire une interface TK et j'ai donc besoin de 
créer des fonctions.

        Mon problème est le suivant :

        Ce code fonctionne ( sans fonction ) 

#!/usr/bin/perl

use strict;
use SAP::Rfc;

my $rfc = new SAP::Rfc(
              ASHOST   => 'serveur',
              USER     => 'utilisateur',
              PASSWD   => 'motdepasse',
              LANG     => 'EN',
              CLIENT   => '000',
              SYSNR    => '00',
              TRACE    => '0' );



my $table = 'E070';

my $it = $rfc->discover("RFC_READ_TABLE");
my $s = $rfc->structure($table);

$it->QUERY_TABLE($table);

$rfc->callrfc( $it );


print "Nombre de transports : ".$it->tab('DATA')->rowCount()." \n";

for my $row ( $it->DATA ){
  $s->value( $row );
    print $s->TRKORR." ". $s->AS4DATE." ".$s->KORRDEV." ".$s->TRSTATUS." 
".$s->as4TIME." ".$s->AS4USER." ".$s->TARSYSTEM." ".$s->STRKORR." 
".$s->TRFUNCTION."\n"
 
}

$rfc->close();


Mais si je le place dans une fonction 

#!/usr/bin/perl
use strict;
use SAP::Rfc;

sub transport {
my ( $serveur , $mandant , $utilisateur,$password) = @_;

my $rfc = new SAP::Rfc(
              ASHOST   => $serveur,
              USER     => $utilisateur,
              PASSWD   => $password,
              LANG     => 'EN',
              CLIENT   => $mandant,
              SYSNR    => '00',
              TRACE    => '0' );



my $table = 'E070';

my $it = $rfc->discover("RFC_READ_TABLE");
my $s = $rfc->structure($table);

$it->QUERY_TABLE($table);

$rfc->callrfc( $it );


print "Nombre de transports : ".$it->tab('DATA')->rowCount()." \n";

for my $row ( $it->DATA ){
  $s->value( $row );
    print $s->TRKORR." ". $s->AS4DATE." ".$s->KORRDEV." ".$s->TRSTATUS." 
".$s->as4TIME." ".$s->AS4USER." ".$s->TARSYSTEM." ".$s->STRKORR." 
".$s->TRFUNCTION."\n"
 
}

$rfc->close();
}

transport "serveur","000", "user","motdepasse" ;



j'ai ce message d'erreur :

Parameter QUERY_TABLE does not exist in Interface - no autoload at 
C:/Perl/site/lib/SAP/Iface.pm line 82, <DATA> line 1.


Si ma question est vraiment trop stupide pour vous excusez moi sinon merci 
pour l'aide.


Eric Vernichon



More information about the Toulouse-pm mailing list