Index: trunk/ippToPsps/scripts/ippToPsps_run.pl
===================================================================
--- trunk/ippToPsps/scripts/ippToPsps_run.pl	(revision 28083)
+++ trunk/ippToPsps/scripts/ippToPsps_run.pl	(revision 28084)
@@ -103,4 +103,7 @@
 #######################################################################################
 sub process {
+    my $lastExpId = getLastExpId();
+
+    print "* Last successfully processed exposure ID was $lastExpId\n";
 
     # Set up the database
@@ -126,4 +129,5 @@
             AND chipRun.exp_id = rawExp.exp_id
             AND camRun.label LIKE '%$label%'
+            AND rawExp.exp_id > $lastExpId
             ORDER BY rawExp.exp_id ASC
 SQL
@@ -143,10 +147,4 @@
     my $batchesPerJob = 1;
 
-    # get a new jobId
-    my $jobId = getJobId();
-    if ($jobId < 0) { print "* Cannot find sensible jobId ($jobId)\n";
-        return 0;
-    }
-
     print "*******************************************************************************\n*\n";
 
@@ -157,10 +155,12 @@
 
     open (LOGFILE, ">> $logFile");
+
+    my $jobId = -1;
 
     # loop round exposures
     while (my @row = $query->fetchrow_array()) {
         my ($expId, $distGroup) = @row;
-        $jobId++;
-        setJobId($jobId);
+
+        $jobId = getNewJobId();
 
         print "* Exposure ID = $expId with dist group = '$distGroup' as job ID $jobId\n";
@@ -238,8 +238,18 @@
 #######################################################################################
 #
+# Gets the last processed exposure ID (ini file for now - will be Db eventually TODO) 
+#
+########################################################################################
+sub getLastExpId {
+
+    return `tail $logFile -n 1 | awk '{print \$2}'`;
+}
+
+#######################################################################################
+#
 # Gets the current jobId (ini file for now - will be Db eventually TODO) 
 #
 ########################################################################################
-sub getJobId {
+sub getNewJobId {
 
     my $jobId = -1;
@@ -253,15 +263,6 @@
 
     if ($verbose) { print "* Current jobId = $jobId\n"; }
-
-    return $jobId;
-}
-
-#######################################################################################
-#
-# Sets the current jobId (in file for now - will be Db eventually TODO) 
-#
-########################################################################################
-sub setJobId {
-    my ($jobId) = @_;
+    $jobId++;
+    if ($verbose) { print "* New jobId = $jobId\n"; }
 
     open (MYFILE, "> $jobIdFilePath");
@@ -269,10 +270,10 @@
     close (MYFILE);
 
-    if ($verbose) { print "* New jobId = $jobId\n"; }
-}
-
-#######################################################################################
-#
-#run IppToPsps 
+    return $jobId;
+}
+
+#######################################################################################
+#
+# run IppToPsps 
 #
 #######################################################################################
