OXIESEC PANEL
- Current Dir:
/
/
home
/
cubot
/
bin
/
etl_odbc
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📄
-d
10 bytes
02/03/2023 07:34:13 AM
rw-r--r--
📁
..
-
02/03/2023 08:06:37 AM
rwxr-xr-x
📄
config.pl
7.61 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
cross2normal.pl
3.71 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
dataextract.sh
2.51 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
etl.pl
5.42 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
etlproc
9.99 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
func.pl
4.01 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
globvar.sh
127 bytes
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
initetl.pl
1.88 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
libawk.awk
3.07 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
makeXtab2NormalExcel.pl
5.73 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
process.pl
6.91 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
process_changed.pl
5.69 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
readwrite.pl
4.16 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
rxcsv.pl
7.94 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
rxdb.pl
11.06 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
rxfile.pl
4.68 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
rxsalesforce.pl
3.5 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
rxxml.pl
13.83 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
rxxml2.pl
4.18 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
sendmail.pl
1.06 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
sourcequery.pl
4.18 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
sql.pl
23.98 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
store.pl
7.97 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
tags
13.14 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
task.pl
33.48 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📁
test
-
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
userfunc.pl
5.05 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
valid.pl
3.64 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
workflow.pl
3.94 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
📄
xform.pl
2.62 KB
02/03/2023 07:34:13 AM
rwxr-xr-x
Editing: process.pl
Close
#!/usr/bin/perl use File::Temp qw/ :mktemp /; sub execute_etl{ #IF Executing Commad my $TF; my $tfile = "$RXXLS_DIR/$$.time"; open($TF, "> $tfile") or die "Failed to write $tfile (Time Stamp)\n";#Creating Start Time Stamp File printlog($MAX, "Writing Out ETL Start Time Stamp[$TF:$RXXLS_DIR/$$.time]"); print $TF time or die "Failed to write $tfile\n"; close($TF); $G_DB = $CMD_HARGS{'db'}; printlog($MAX, "Execution Started using connection [$conn]"); if((defined $CMD_HARGS{"cmd"}) && ($CMD_HARGS{"cmd"} ne '')){ #Try TO Use get_execmd(); ^vj return process_command($CMD_HARGS{"cmd"}); } if((defined $CMD_HARGS{"prcsid"}) && ($CMD_HARGS{"prcsid"} ne '')){ #If prcsid is in arg get dtl from prcs_info & exe my $exres = ''; die "Invalid Database Connection " if($conn eq 'ERR' || $conn eq ''); my $res = SQL_prcsmaster($CMD_HARGS{"prcsid"}); if(@$res[2] eq 'W' && isnumeric(@$res[4])){ printlog($MAX, "First Here for workflow"); $exres = process_workflow(@$res[4]); } elsif(@$res[2] eq 'P'){ printlog($MAX, "First Here for Process"); my $cmd = "@$res[0] @$res[4]"; $ETLMode = 'Normal WF-Execution'; $G_logseq = getnextlogseq(); updatelogseq_file($G_logseq); $G_CurWflowId = @$res[1]; my $logid = etl_dblog('', $G_CurWflowId, '', $G_CurTaskId, time, '', '', '', '', '', '', 'RUN', $G_logseq, $CMD_HARGS{"prcsid"}, '0'); $exres = process_command($cmd); etl_dblog($logid, '', '', '', '', time, $G_NumRecTotal, $G_NumRecProc, $G_NumRecDisc, $G_NumRecIgnr, '', $G_Err, $G_logseq); #executewf($wfid); #Start ETL Workflow Execution } my $qry = "update etl_prcs_info set ep_end_time = ". time . " where ep_proc_id=". $CMD_HARGS{"prcsid"}; execute_query($conn, "$qry"); printlog($MAX, "ETL Finished."); return $exres; } #Process Workflow Normal ETL if(isnumeric($CMD_HARGS{"wfid"}) && $CMD_HARGS{"wfid"} > 0){ return process_workflow($CMD_HARGS{"wfid"}); } elsif(isnumeric($CMD_HARGS{"mapid"}) && $CMD_HARGS{"mapid"} > 0){ $G_Purpose = "xformpreview"; return executetask($CMD_HARGS{"mapid"}); } # Redirect to XLS Converter if xls file is input ;-) Ideally Wfid will be numeric !! Really .. (,`-) elsif($CMD_HARGS{"fname"} =~ m/\.xls/g){ printlog($MAX, "XLS Process"); $ETLMode = 'XLScsvGen'; $G_Purpose = "xformpreview"; printlog($MAX, "Process is calling wait_for_xls()"); wait_for_xls($CMD_HARGS{"fname"}, '', $CMD_HARGS{"ident"} eq 'Y' ? '*' : ''); } elsif($CMD_HARGS{"fname"} =~ m/\.xml/g){ printlog($MAX, "XML Process"); my $dir = $CMD_HARGS{"dir"}; $G_Purpose = "xformpreview"; $ETLMode = 'XMLcsvGen'; my $schmfile = write_xmlformat2csv($CMD_HARGS{"dir"}, $CMD_HARGS{"mask"}); printlog($MAX, "Writing XML Data 2 CSV: $G_Purpose\n"); write_xmldata2csv($CMD_HARGS{"dir"}, $CMD_HARGS{"mask"}); return 1; } elsif($CMD_HARGS{"fname"} =~ m/\.mdb/g){ printlog($MAX, "MDB Process"); my $dir = $CMD_HARGS{"dir"}; $G_Purpose = "xformpreview"; process_mdb($dir, $CMD_HARGS{"fname"}); } elsif(isnumeric($CMD_HARGS{"taskid"}) && $CMD_HARGS{"taskid"} > 0){ #Oh! You Are Testing Task ;-) printlog($MAX, "TASK Process"); if($CMD_HARGS{"logseq"} ne ''){ $ETLMode = 'TaskTest'; $G_logseq = $CMD_HARGS{"logseq"}; #Get Logseq as cmdline arg test_task($CMD_HARGS{"taskid"}); #Excute Task in Test Mode; } else{ printlog($ERROR, "Log sequence not found while testing task."); } return 1; } elsif($CMD_HARGS{"fname"} =~ m/salesforce/g){ my $conn=$CMD_HARGS{"conn"}; #%s/etl/xldir/%s/%d/ if($CMD_HARGS{"action"} =~ m/gettable/g){ $OUTFILE ="$CUBOT_HOME/etl/xldir/$G_DB/sf$conn.tables"; chmod 0777, $OUTFILE; open(FHOUTFILE, ">$OUTFILE"); print FHOUTFILE getTableList($CMD_HARGS{"user"}, $CMD_HARGS{"pass"}, $CMD_HARGS{"token"}); } elsif($CMD_HARGS{"action"} =~ m/getsearchtable/g){ $OUTFILE ="$CUBOT_HOME/etl/xldir/$G_DB/sf$conn.tables"; chmod 0777, $OUTFILE; open(FHOUTFILE, ">$OUTFILE"); print FHOUTFILE getSearchTableList($CMD_HARGS{"user"}, $CMD_HARGS{"pass"}, $CMD_HARGS{"token"}, $CMD_HARGS{"search"}); } elsif($CMD_HARGS{"action"} =~ m/getfield/g){ $OUTFILE ="$CUBOT_HOME/etl/xldir/$G_DB/sf$conn.fields"; chmod 0777, $OUTFILE; open(FHOUTFILE, ">$OUTFILE"); print FHOUTFILE getTableFieldInfo($CMD_HARGS{"tabname"},$CMD_HARGS{"user"}, $CMD_HARGS{"pass"}, $CMD_HARGS{"token"}); } elsif($CMD_HARGS{"action"} =~ m/getconn/g){ $OUTFILE ="$CUBOT_HOME/etl/xldir/$G_DB/sf$conn.conn"; print $OUTFILE; chmod 0777, $OUTFILE; open(FHOUTFILE, ">$OUTFILE"); print FHOUTFILE sfLogin($CMD_HARGS{"user"}, $CMD_HARGS{"pass"}, $CMD_HARGS{"token"}); } else{ # Nothing } } else{ printlog($ERROR, "Command Line Arguments Are Not Proper"); return 0; } } sub process_workflow{ my $wfid = shift; $ETLMode = 'Normal WF-Execution'; $G_logseq = getnextlogseq(); updatelogseq_file($G_logseq); $G_Datetime = undef ; executewf($wfid); #Start ETL Workflow Execution } sub process_command{ #Try TO Use get_execmd(); my $cmd = shift; $cmd =~ s/"//g; $G_Err=""; my $err_file = mktemp("etl_err.XXXXXX"); #Bug No: 1030 printlog($MAX, "########### TMP FILE : $err_file"); printlog($MAX, "Executing Process : $cmd"); if(index($cmd,"cub") != -1){ printf "\n cubot service is running\n"; system($cmd); } else{ $G_Err = `$cmd 2>>$RXXLS_DIR/$err_file`; } my $FERR; open($FERR, "$RXXLS_DIR/$err_file"); my $err = <$FERR>; $err =~ s/\n//g; printlog($ERROR, "==========>>>>>>>> Error:[$?] $err <<<<<<<,============"); close ($FERR); chomp($err); $G_Err = $??$err:"DONE"; `rm $RXXLS_DIR/$err_file`; printlog($ERROR, "SYSTEM ERROR MESSAGE : [$?]-$G_Err"); if(length($G_Err) eq 0 ){ $G_Err="DONE"; } return $G_Err; } sub process_mdb{ my $dirname = shift; my $mask = shift; $dirname = "$dirname/"; $dirname =~ s/\/\//\//g; if ( !-d $dirname ){ printlog($ERROR, "Error: $dirname does not exist"); return -9999 ; } printlog($INFO, "Started Getting Mask files: "); my @maskedfiles = get_masked_files($dirname, $mask); printlog($INFO, "Aftr get_masked_files: "); my $input_file = $maskedfiles[0]; use File::Basename; my $filename = basename ($input_file); $G_xml_stg_dirname = "$RXXLS_DIR"."/"."$filename"; mkdir($G_xml_stg_dirname);#or die "Can't Create Staging Dir: $!"; my $schmfile = "$G_xml_stg_dirname/Tables"; my @fmtstat = stat $schmfile; my @fmtstat1 = stat $input_file; printlog($INFO, "Time Stat : File = $fmtstat[9] ******************** Filemodified=$fmtstat1[9]"); if($fmtstat[9] > $fmtstat1[9]){ printlog($INFO, "Format File Is Recent: Not Generating Again"); return -9999; } $myDataLine=`mdb-tables -d':' $input_file`; $myDataLine=~s/:$//g; @array=split(/:/, $myDataLine); @splchr=(" ", " ", "@", "!", "#", "%", "&", "="); open($mysrcstmt, "> $G_xml_stg_dirname/Tables"); foreach $i(@array){ $j=$i; $i=~s/ /\\ /g; foreach $spl(@splchr){ $j=~s/$spl/_/g; } `mdb-export -d'|' -Q $input_file $i> $G_xml_stg_dirname/$j`; print $mysrcstmt $j; print $mysrcstmt " "; } close($mysrcstmt); } 1;