Procedure + Botão Run[Resolvido]

Pessoal, estou com o seguinte problema.
Criei aqui uma procedure em Firebird e estou precisando executa-la através do botão Run. O problema é que a procedure está executando apenas uma vez dentro do loop sendo que selecionei 3 registros. O que pode ser?
Abaixo como estou fazendo:

//onRecord Botão Run:
$arr=[j];
[total_chked_j][$arr]={empresa}.' '.[ano].' '.[mes].' '.{funcionario}.' '.{adm}.' '.{tipo}.' '.{qtd};
[j]++;

//onFinish Botão Run:
$tot = count([total_chked_j]);

echo '<div style="border:1px solid grey;padding:10px;font-size:12pt;text-align:left;text-color:red">';
for($x=0;$x<$tot;$x++){
//echo $x.'<br>';
    $vr = [total_chked_j][$x];
    
    $v_vr = explode(" ", $vr);
    
    $emp = $v_vr[0];
    //$ano = $v_vr[1];
    //$mes = $v_vr[2];
    $fun = $v_vr[3];
    $adm = $v_vr[4];
    $tip = $v_vr[5];
    $qtd = $v_vr[6];
    
    if ($qtd != ''){    
        if([sc_glo_tpbanco] == "firebird" or [sc_glo_tpbanco] == "ibase" or [sc_glo_tpbanco] == "interbase"){
            $sql = "EXECUTE PROCEDURE sp_calculo(
	           '".$emp."',"
	             .$adm.","
	             .$tip.","
	             .$v_vr[1]."," 
	             .$v_vr[2].","
	             .$fun.");";
            sc_lookup(rs,$sql);
	 
	    if(!empty({rs})){
	        if({rs[0][0]} <> 'S'){
		    sc_error_message("Erro na execucao da procedure [".{rs[0][0]}."] [".{rs[0][1]}."]");
		    sc_error_exit();
		    sc_rollback_trans();
	        }
	    }
        }elseif([sc_glo_tpbanco] == "oracle" or [sc_glo_tpbanco] == "oci805" ){
            $sql = "BEGIN sp_calculo("
                  . "'" . $emp. "',"
                  . $adm . ","
                  . $tip . ","
                  . $v_vr[1] . ","
                  . $v_vr[2] . ","
                  . $fun. ",:ret_sts,:ret_msg"
                  . "); END;";
            $stmt = $this->Db->PrepareSP($sql);
            $this->Db->OutParameter($stmt,$sts,'ret_sts');
            $this->Db->OutParameter($stmt,$msg,'ret_msg');
            $this->Db->Execute($stmt);
            $response = array("ret_sts"=>$sts, "ret_msg"=>$msg);
            if (!rtrim($sts) != ''){
                sc_rollback_trans();  
                sc_error_message($msg);  
                sc_error_exit("form","_parent");
            }
        }
    }
}
echo '</div>';

[b]Detalhe…vcs podem ver que chamo uma procedure em oracle. Quando está na conexão oracle, ele faz o loop e executa a procedure normalmente. Isso está acontecendo apenas com o firebird.

Obs: Uso o scriptcase 5[/b]

Att.

Não seria possível fazer esses cálculos em um método no próprio script ?

Infelizmente não é possível. É necessária a utilização de uma procedure.

Alguma idéia do que possa ser pessoal?

Pessoal, esse problema estava dando porque a chamada da procedure estava sendo feita dentro de um loop no evento onFinish. Coloquei dentro do onRecord e funcionou perfeitamente! Lembrando que esse problema estava ocorrendo somente na chamada da procedure feita em Firebird. Em Oracle, estava ok.