¿como se hacen consultas en las bases de datos utilizando las beans?

Hola si alguien me puede guiar como utilizar las beans para realizar consultas de las bases de datos, navegando encontré este post , pero no soy capaz de entender como se utilizan las beans en un modulo personalizado.

Se puede realizar una búsqueda utilizando el método retrieve_by_string_fields. En el siguiente ejemplo se buscan cuentas por nombre:

<?php
require_once('modules/Accounts/Account.php');
$account = new Account();
$account->retrieve_by_string_fields( array ('name' => 'Sales Agility') );
// ...
?>

Gracias disytel, sobre el tema, hace tiempo traigo una duda me gustaría que la despejes, esta es mi idea se puede crear un gancho de lógica utilizando las beans que permita insertar datos en las tablas de otro modulo?. Es decir cuando creo una entrada en el modulo A y la guardo, el logic hook actualice datos en el modulo B.
Es un requisito que el modulo A y B tengan una relación?

No es necesario que ambos tengan una relación. Eventualmente podrías modificar cualquier módulo del sistema. Por ejemplo, el siguiente logic hook crea una tarea de “datos faltantes” cuando un Contacto tiene vacío el número telefónico:

<?php 
class HookDatosFaltantes {
    function crearTarea(&$bean, $arg, $ev) {
        if (empty($bean->phone_work)){
            require_once('modules/Tasks/Task.php');
            $t = new Task();
            $t->name = 'Faltan completar datos del contacto '.$bean->name;
            $t->save();
        }
    }
}
?>

Una forma de relacionar esta tarea con el contacto sería agregar antes de $t->save(); lo siguiente:


$t->parent_type = 'Contacts';
$t->parent_id = $bean->id; 

Esto es así por el tipo de relaciones que tienen las actividades. Otros módulos se relacionan diferente dependiendo de si sus relaciones son one-to-many o many-to-many.

1 Like

gracias por tus respuestas, me guiare de tu ejemplo para hacer pruebas y veré si logro lo que deseo.

Hola Disytel, espero poder conseguir resultados. trate de aplicar tu ejemplo utilizando logic hook en mis módulos personalizados. La representación clara de lo que quiero hacer esta en el esquema.