sub process_amend_userorderroute() { my($amuuid,$amufunct,$amurouting,$frame) = @_; # Get values from user input.... my $guid = $amuuid->get; my $func= $amufunct->get; my $orderouting = $amurouting->get; $txt->insert('end', "INFO: The following admins password ($guid) was reset\n"); my $ret1 = &orderrouting("check",$guid,$orderouting); # Check users order routing. my $ret2 = &checkuserexists("apama",$guid); # Check user is in the database if($debug){&writelog(1,"$date: DEBUG: process_amend_userorderroute_rt: userid = $guid");} if($debug){&writelog(1,"$date: DEBUG: process_amend_userorderroute_rt: function = $func");} if($debug){&writelog(1,"$date: DEBUG: process_amend_userorderroute_rt: order_routing = $orderouting");} if($debug){&writelog(1,"$date: DEBUG: process_amend_userorderroute_rt: current routing for uid = $ret1");} if($debug){&writelog(1,"$date: DEBUG: process_amend_userorderroute_rt: user exists in Apama DB = $ret2");} if(($func =~ m/add/i)&&(!$ret1)&&($ret2)&&($orderouting =~ m/fastfix/i)) { # User does not have the order routing that is being required. my $amuid = "$guid-FF"; $amuid =~ s/-//g; my $ans = &sendcorrelatorupdates("ADD:$amuid:$orderouting"); # And send the new data into the Correlator Logon.evt file if($debug){&writelog(1,"$date: DEBUG: process_amend_userorderroute_rt: correlator response = $ans");} if($ans =~ m/COMPLETED:ADDED/i) { # WE know the new user has been injected into the correlator, so we update the database. &orderrouting("newrouting",$guid,$orderouting); # Add new routing into the database $txt->insert('end', "New Order routing setup $guid:$orderouting \n"); &writelog(1,"$date: INFO: New Order routing setup $guid:$orderouting ($amuid)"); }elsif($ans =~ m/REJECTED-EXISTS/i) { $txt->insert('end', "Order routing $guid:$orderouting Correlator rejected, Already exists\n"); &writelog(1,"$date: INFO: Order routing $guid:$orderouting Correlator rejected, Already exists ($amuid)"); } $frame->destroy; }elsif(($func =~ m/add/i)&&(!$ret1)&&($ret2)&&($orderouting =~ m/exchangelink/i)) { # User does not have the order routing that is being required. my $ans = &sendcorrelatorupdates("ADD:$guid:$orderouting"); # And send the new data into the Correlator Logon.evt file if($debug){&writelog(1,"$date: DEBUG: process_amend_userorderroute_rt: correlator response = $ans");} if($ans =~ m/COMPLETED:ADDED/i) { # WE know the new user has been injected into the correlator, so we update the database. &orderrouting("newrouting",$guid,$orderouting); # Add new routing into the database $txt->insert('end', "New Order routing setup $guid:$orderouting \n"); &writelog(1,"$date: INFO: New Order routing setup $guid:$orderouting "); }elsif($ans =~ m/REJECTED-EXISTS/i) { $txt->insert('end', "Order routing $guid:$orderouting Correlator rejected, Already exists\n"); &writelog(1,"$date: INFO: Order routing $guid:$orderouting Correlator rejected, Already exists "); } $frame->destroy; }elsif(($func =~ m/add/i)&&($ret1)&&($ret2)) { # User already has the required routing. $txt->insert('end', "New Order routing setup $guid:$orderouting already configured\n"); &writelog(1,"$date: INFO: New Order routing setup $guid:$orderouting already configured"); $frame->destroy; } # Start Delete functions # Add in support for FF translation on userid elsif(($func =~ /remove/)&&($orderouting =~ /fastfix/)) { # Delete users order routing, and routing is not in database. # First run some checks to see if user has order routing and in apama. if($ret1) { my $damuid = "$guid-FF"; my $ans = &sendcorrelatorupdates("DEL:$damuid:$orderouting"); # And send the new data into the Correlator Logon.evt file if($debug){&writelog(1,"$date: DEBUG: process_amend_userorderroute_rt: correlator response = $ans ($damuid)");} if($ans =~ m/COMPLETED:DEL/i) { # We know the correlator has removed it from the Logon.evt file $txt->insert('end', "Order routing setup $guid:$orderouting deleted\n"); &writelog(1,"$date: INFO: Order routing setup $guid:$orderouting deleted ($damuid)"); &orderrouting("delrouting",$guid,$orderouting); # Add new routing into the database }elsif($ans =~ m/REJECTED-NOEXISTS/i) { $txt->insert('end', "Order routing setup $guid:$orderouting Correlator rejected, Does not exists\n"); &writelog(1,"$date: INFO: Order routing setup $guid:$orderouting Correlator rejected, Does not exists ($damuid)"); } $frame->destroy; }elsif(($func =~ /remove/)&&($orderouting =~ /exchangelink/)) { # Delete users order routing, and routing is not in database. # First run some checks to see if user has order routing and in apama. if($ret1) { my $ans = &sendcorrelatorupdates("DEL:$guid:$orderouting"); # And send the new data into the Correlator Logon.evt file if($debug){&writelog(1,"$date: DEBUG: process_amend_userorderroute_rt: correlator response = $ans ");} if($ans =~ m/COMPLETED:DEL/i) { # We know the correlator has removed it from the Logon.evt file $txt->insert('end', "Order routing setup $guid:$orderouting deleted\n"); &writelog(1,"$date: INFO: Order routing setup $guid:$orderouting deleted "); &orderrouting("delrouting",$guid,$orderouting); # Add new routing into the database }elsif($ans =~ m/REJECTED-NOEXISTS/i) { $txt->insert('end', "Order routing setup $guid:$orderouting Correlator rejected, Does not exists\n"); &writelog(1,"$date: INFO: Order routing setup $guid:$orderouting Correlator rejected, Does not exists "); } $frame->destroy; }else{ $txt->insert('end', "New Order routing setup $guid:$orderouting Not in database \n"); &writelog(1,"$date: INFO: New Order routing setup $guid:$orderouting Not in database ::$ret1 : $ret2"); $frame->destroy; } } }