after_save
Overview
The after_save
hook executes after a record is saved.
Definition
function after_save($bean, $event, $arguments){}
Arguments
Name | Type | Description |
bean | Object | The bean object |
event | String | The current event |
arguments | Array | Additional information related to the event (typically empty) |
arguments.isUpdate | Boolean | Whether or not the record is newly created or not. True is an existing record being saved. False is a new record being created |
arguments.dataChanges | Array | A list of the fields in the auditable fields on the bean, including the ones that changed and the ones that did not. Note: This argument is deprecated and it is recommended to use arguments.stateChanges instead. |
arguments.stateChanges | Array | Contains the fields which were changed comparing to the previous bean state |
Considerations
- Calling save on the bean in this hook will cause an infinite loop if not handled correctly. (i.e: $bean->save())
Examples
Creating a Logic Hook using the Extension Framework
./custom/Extension/modules/<module>/Ext/LogicHooks/<file>.php
<?php
$hook_array['after_save'][] = Array(
//Processing index. For sorting the array.
1,
//Label. A string value to identify the hook.
'after_save example',
//The PHP file where your class is located.
'custom/modules/<module>/after_save_class.php',
//The class the method is in.
'after_save_class',
//The method to call.
'after_save_method'
);
?>
./custom/modules/<module>/after_save_class.php
<?php
if (!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
class after_save_class
{
function after_save_method($bean, $event, $arguments)
{
//logic
}
}
?>
Creating a Core Logic Hook
Prior to Sugar 6.3.x, logic hooks could only be created using the following method. Please note that this approach is still valid but is not recommended when building plugins as it may conflict with existing customizations.
./custom/modules/<module>/logic_hooks.php
<?php
$hook_version = 1;
$hook_array = Array();
$hook_array['after_save'] = Array();
$hook_array['after_save'][] = Array(
//Processing index. For sorting the array.
1,
//Label. A string value to identify the hook.
'after_save example',
//The PHP file where your class is located.
'custom/modules/<module>/after_save_class.php',
//The class the method is in.
'after_save_class',
//The method to call.
'after_save_method'
);
?>
./custom/modules/<module>/after_save_class.php
<?php
if (!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
class after_save_class
{
function after_save_method($bean, $event, $arguments)
{
//logic
}
}
?>