ERROR ON ADDING A RELATED BEAN TO MAIN

Hi there,

I made a custom Module to register some data, this custom module have a relationship with Email one to many

To handle my custom Module bean no problem all its working fina, but when I try to add the bean as relation to Email i retrieve following error:

Fatal error occurred
Message: Uncaught Error: Call to a member function add() on null in C:\Users\piercarlo\Documents\Visual Studio 2015\Projects\SuiteCRM-7.8.3\RegisterEmailTracking.php:54
Stack trace:
#0 C:\Users\piercarlo\Documents\Visual Studio 2015\Projects\SuiteCRM-7.8.3\include\MVC\Controller\SugarController.php(864): require_once()
#1 C:\Users\piercarlo\Documents\Visual Studio 2015\Projects\SuiteCRM-7.8.3\include\MVC\Controller\SugarController.php(394): SugarController->handleEntryPoint()
#2 C:\Users\piercarlo\Documents\Visual Studio 2015\Projects\SuiteCRM-7.8.3\include\MVC\Controller\SugarController.php(307): SugarController->process()
#3 C:\Users\piercarlo\Documents\Visual Studio 2015\Projects\SuiteCRM-7.8.3\include\MVC\SugarApplication.php(105): SugarController->execute()
#4 C:\Users\piercarlo\Documents\Visual Studio 2015\Projects\SuiteCRM-7.8.3\index.php(52): SugarApplication->execute()
#5 {main}
thrown

following the code:

<?php
    use Sendinblue\Mailin;
    require('mailin.php');

    $mailin = new Mailin("https://api.sendinblue.com/v2.0","xxxxxxxxxxxxxxxxx");

    /*Mi ricavo la data odierna*/
    $dataOdierna = new DateTime('now');
    $dataOdiernaFormattata = $dataOdierna->format('Y-m-d');

    /*Mi ricavo i tracking odierni*/
    $data = array(
        "start_date" => "2017-04-25" /*$dataOdiernaFormattata*/
    );
    $my_array = $mailin->get_report($data);
    $myData = $my_array["data"];

    foreach($myData as $trackedEmail){
        $trackedId = $trackedEmail['tag'];
        if($trackedId != null)
        {
        /*Controllo se Ho giá registrato il track*/
            /*Mi ricavo il bean*/
            $TrackedBean = BeanFactory::getBean('ETR_EmailTracking');
            /*Controllo se non é registrato*/
            $exist = $TrackedBean->retrieve_by_string_fields(
                    array(
                        'email_id' => $trackedId,
                        'date_of_event' => $trackedEmail['date'],
                        'deleted' => 0
                    )
                );
            /*Se il bean é nullo lo registro*/
            if($exist == null)
            {
                /*Mi carico il bean della email relativa*/
                $emailBean = BeanFactory::getBean('Emails', $trackedId);
                /*se il bean della email esiste lo registro*/
                if($emailBean != null)
                {
                    /*Mi carico le relazioni del Bean*/
                    $emailBean->load_relationship('ETR_EmailTracking');

                    /*Creo il Tracking Bean e lo salvo*/
                    $trackReg = BeanFactory::newBean('ETR_EmailTracking');
                    $trackReg->email_id = $trackedId;
                    $trackReg->date_of_event = $trackedEmail['date'];
                    $trackReg->event = $trackedEmail['event'];
                    $trackReg->link = $trackedEmail['link'];
                    $trackReg->reason = $trackedEmail['reason'];
                    $trackReg->save();

                    /*Registro la Relazione con le Email*/
                    $emailBean->ETR_EmailTracking->add($trackReg);   [b]<-- Here I get the error[/b]
                }
            }
        }
    };
?>

Thank you in advance for helping.

Piercarlo

I solved from myself it was a mismatching of table name.

Thankyou

I just want to comment I also use Visual Studio (with PHP Tools) for SuiteCRM. There aren’t many of us doing it, from what I gather. :slight_smile:

Very nice free IDE, and I’m using it with Git integration, and with remote debugging via XDEBUG (my web server is not local, it’s remote).