This post can be closed.
I found the correct way to fire a callback function.
Here the code I used to do it.
local/coursecompletion/db/events.php
<?php
defined('MOODLE_INTERNAL') || die();
$observers = [
[
'eventname' => '\core\event\course_completed',
'callback' => '\local_coursecompletion\local_coursecompletion_observer::external_table_update'
],
<?php
namespace local_coursecompletion;
defined('MOODLE_INTERNAL') || die();
class local_coursecompletion_observer {
public static function external_table_update(\core\event\course_completed $event) {
// function code
}