/[sap_import]/dir2sap.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /dir2sap.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (show annotations)
Mon Mar 24 16:35:39 2003 UTC (21 years ago) by dpavlin
Branch: MAIN
Changes since 1.1: +23 -4 lines
File MIME type: text/plain
lims changes

1 #!/usr/bin/perl -w
2 #
3 # Read files from directory and import them to SAP
4 #
5
6 use strict;
7 use SAP::Rfc;
8 use Data::Dumper;
9 use XML::Simple;
10 use Fcntl; # For O_RDWR
11 use NDBM_File;
12
13 my $config_file;
14
15 if ($#ARGV < 0) {
16 print "usage: $0 config.xml\n";
17 exit 1;
18 } else {
19 $config_file = $ARGV[0];
20 }
21
22 $|++;
23
24 my $config = XMLin($config_file);
25
26 my $log = $config->{log} || die "config: no <log> defined";
27
28 # open log and redirect die to it...
29 open(LOG,">> $log") || warn "open log $log: $!";
30 local $SIG{__DIE__} = sub { print LOG scalar localtime," ",$_[0] ; die $_[0] };
31
32 # directory in which are files
33 my $indir = $config->{indir} || die "config: no <indir> defined";
34
35 # directory in which are files
36 my $dbm = $config->{dbm} || die "config: no <dbm> defined";
37
38 my %dbmhash;
39 tie %dbmhash, "NDBM_File", $dbm, O_RDWR, 0666 || die "tie: can't tie to '$dbm': $!";
40
41 my $rfc = new SAP::Rfc(
42 ASHOST => $config->{sap}->{ashost},
43 USER => $config->{sap}->{user},
44 PASSWD => $config->{sap}->{passwd},
45 LANG => $config->{sap}->{lang},
46 CLIENT => $config->{sap}->{client},
47 SYSNR => $config->{sap}->{sysnr},
48 TRACE => $config->{sap}->{trace}
49 ) || die "new: $!";
50
51 $rfc->is_connected || die "FATAL: SAP not connected";
52
53 print STDERR "Using '$indir' as input directory...\n";
54
55 opendir(DIR, $indir) || die "can't opendir $indir: $!";
56 my @files = grep { !/^\./ && -f "$indir/$_" } readdir(DIR);
57 closedir DIR;
58
59 print LOG scalar localtime," Found ",$#files+1," files in directory...\n";
60
61 foreach my $file (@files) {
62 if ($dbmhash{$file}) {
63 print LOG scalar localtime," New file '$file', processing...\n";
64 $dbmhash{$file}++;
65 } else {
66 print STDERR scalar localtime," Skipping file '$file'\n";
67 }
68 }
69
70 exit 1; # fix
71
72 my $it = $rfc->discover($config->{sap}->{discover}) || die "FATAL: SAP discover: $!";
73
74 foreach my $p ($config->{sap}->{params}) {
75 foreach my $p_name (keys %{$p}) {
76 # print "$p_name --> ",$p->{$p_name},"\n";
77 $it->$p_name($p->{$p_name});
78 }
79 }
80
81 ## FIX
82 my $file="foobar";
83
84 # override FILENAME with my name
85 $it->FILENAME($file);
86 print "Using file '$file'\n";
87
88 # call SAP R/3
89 $rfc->callrfc( $it );
90
91 $rfc->close();
92

  ViewVC Help
Powered by ViewVC 1.1.26