<http://forum.pspad.com/read.php?f=2&i=10725&t=10725> 
----------------------------------------------------------------

Version: 4.5.0(2175)
I met a case that "find" function didn't work. There are two
"$rlpf_base" variable in the perl file. But when I used "find"
function,It can't find it.
You can refer the perl file as following:
#!/usr/bin/perl

use FindBin;
use lib ("$FindBin::Bin/../util/EZXAP_FLEX");
use lib ("$FindBin::Bin/../util/EZXAP_FLEX/Compare");
use lib ("$FindBin::Bin/../util/EZXAP_FLEX/Setup");

use APFlexConst;
use APFlexUtil;
use APFlexTxtSync;
use CGI;
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);
use APFlexTxtSync;
use APFlexGenerateSetup;
use Resource::APFlexGenerateResource;
use APFlexResourceSync;
use Template;
use DBI;


my $dbh_mysql =
DBI->connect("DBI:mysql:gsmflex:$MYSQL_HOST",'gsmflex_u1','gsmflex_u1')
or die "DB connect error".DBI->errstr;
my $sth_mysql;

#Get request id and model argument
my $cgi = CGI->new();
my $sync_obj = APFlexTxtSync->New();
my $setup_obj = APFlexGenerateSetup->New();
my @request = $cgi->param("sync_request");
my $fcc     = $cgi->param("fcc");

my $session_user = cookie("session_user");
my %trans_request;
my ($req_id,$sync_model);
my $req_item;
foreach $req_item  (@request)
 {
   ($req_id,$sync_model) = split(/:/,$req_item,2);
   push (@{$trans_request{$sync_model}},$req_id);
 
 }
 
#update sync request status
my $sync_date = `date '+%Y/%m/%d'`;
my $update_sql = qq/UPDATE sync_request SET `Req_Status`
='done',`Sync_By`='$session_user',`Sync_Date`='$sync_date' WHERE
`Req_ID`=? AND `Model` = ?/;
my $get_base_sql = qq/SELECT `Sync_Base` FROM sync_request WHERE
(`Req_ID`=? AND `Model` = ?)/;
my $update_item_status = qq/UPDATE sync_request_status SET `Item_Status`=
'done' WHERE (`Req_ID`=? AND `Model` = ? AND `If_Need_Sync` = 'yes')/;
my $sth_update = $dbh_mysql->prepare($update_sql) ;
my $item_update = $dbh_mysql->prepare($update_item_status) ;
my $sth_get_base = $dbh_mysql->prepare($get_base_sql) ;

 #begion to sync
my $sync_model ; 
my $sync_request;
my %env_var;
my $pdc;
my $row_ref;
my $root_dir;
my $baseflex;
my $version;
my %all_flexurl;
my $fetch_result;
my $base_flex_version;
my $latest_flex_verion;
my $rlpf_base;
 foreach  $sync_model (keys %trans_request)
 {
    my %model_flexlocation;
    my $query_sql = qq/ SELECT PDC FROM model_name WHERE NAME = ?/;
       $sth_mysql = $dbh_mysql->prepare_cached($query_sql);
       $sth_mysql->execute($sync_model);
       $row_ref = $sth_mysql->fetchrow_hashref();
       $pdc = $$row_ref{'PDC'};
    my @request_bymodel = @{%trans_request->{$sync_model}};
   
    # sync according the serize of request id
    @request_bymodel = sort {$a<=>$b} @request_bymodel;
        foreach  $sync_request (@request_bymodel)
        
          { 
             $sth_get_base->execute($sync_request,$sync_model);
             $fetch_result = $sth_get_base->fetchrow_hashref();
             $base_flex_version = $$fetch_result{'Sync_Base'};
            if($fcc eq "FCC01")
            {

            %env_var =
$sync_obj->sync_feature($sync_request,$sync_model,"FCC01",$session_user,$base_flex_version);
            $root_dir = %env_var->{'root_dir'};
            $latest_flex_verion = %env_var->{'latest_flex'};
            
            $version = substr($latest_flex_verion,-3);
            $version = sprintf("%03U",($version + 1));
            %model_flexlocation =
$setup_obj->generate_setup_flex($pdc,$sync_model,$version,$base_flex_version,$root_dir,$session_user);
            
push(@{$all_flexurl{$sync_model}},%model_flexlocation->{'url'});
             $sth_update->execute($sync_request,$sync_model);
             $item_update->execute($sync_request,$sync_model);
            }
            
            if($fcc eq "FCC05")
            {
              $rlpf_base = $$fetch_result{'Rlpf_Base'};
              my $res_sync = APFlexResourceSync->New();
              my $res_gen  = APFlexGenerateResource->New();
              my $tmp_dir = $EZXAP_FLEX_TEMP_ROOT_DIR;
                     $tmp_dir =~ s/session_user/$session_user/g;
                 $root_dir =
$res_sync->data_resource_sync($sync_request,$sync_model,$base_flex_version,$rlpf_base,$tmp_dir);
              
             
             }
           
          }
          
         
 
 
 
 }
 
$sth_mysql->finish();
$sth_update->finish(); 
 
 










&front_end();

   
# front end
sub front_end()
{
my $tdir  = $EZXAP_FLEX_CGI_ROOT_DIR . "/template";
$| = 1;
my $tt    = Template->new( {INCLUDE_PATH => [ '.', $tdir ]});
my $input = 'sync_flex.html';

my $vars   ={
        head => {
           title=>'Choice Sync Items',
                css =>[
                        
                {                       
                          path =>$EZXAP_FLEX_CGI_ROOT_URL . "/css",
                              name=>'apflex_cr.css'     
                }                            
                
              ],
                
                
                   },
           
         
        files =>{%all_flexurl},
        APURL =>$EZXAP_FLEX_CGI_ROOT_URL,
          
           
};
                
$tt->process($input, $vars)|| die $tt->error( );
    
}




-- 
PSPad freeware editor http://www.pspad.com
  • "find" function d... Mao Deng Feng - PSPad english discussion forum

Reply via email to