<?xml version="1.0" encoding="UTF-8"?><unload unload_date="2025-09-25 12:35:54">
<sys_remote_update_set action="INSERT_OR_UPDATE">
<application display_value="ShareLogic Unifi">74f0b4550f8ca20094f3c09ce1050e6a</application>
<application_name>ShareLogic Unifi</application_name>
<application_scope>x_snd_eb</application_scope>
<application_version>4.3.1</application_version>
<collisions/>
<commit_date/>
<deleted/>
<description>Add a business rule to allow deleted attachments to be processed by Unifi.</description>
<inserted/>
<name>ShareLogic Unifi - Deleted Attachments Patch</name>
<origin_sys_id/>
<parent display_value=""/>
<release_date/>
<remote_base_update_set display_value=""/>
<remote_parent_id/>
<remote_sys_id>8d5131c03390be509e9e0ff13d5c7b94</remote_sys_id>
<state>loaded</state>
<summary/>
<sys_class_name>sys_remote_update_set</sys_class_name>
<sys_created_by>james@sharelogic.com</sys_created_by>
<sys_created_on>2025-09-25 12:35:53</sys_created_on>
<sys_id>99ff718433d0be509e9e0ff13d5c7bb3</sys_id>
<sys_mod_count>0</sys_mod_count>
<sys_updated_by>james@sharelogic.com</sys_updated_by>
<sys_updated_on>2025-09-25 12:35:53</sys_updated_on>
<update_set display_value=""/>
<update_source display_value=""/>
<updated/>
</sys_remote_update_set>
<sys_update_xml action="INSERT_OR_UPDATE">
<action>INSERT_OR_UPDATE</action>
<application display_value="ShareLogic Unifi">74f0b4550f8ca20094f3c09ce1050e6a</application>
<category>customer</category>
<comments/>
<name>sys_script_0ac1f9c03390be509e9e0ff13d5c7b73</name>
<payload>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;record_update sys_domain="global" table="sys_script"&gt;&lt;sys_script action="INSERT_OR_UPDATE"&gt;&lt;abort_action&gt;false&lt;/abort_action&gt;&lt;access&gt;package_private&lt;/access&gt;&lt;action_delete&gt;true&lt;/action_delete&gt;&lt;action_insert&gt;false&lt;/action_insert&gt;&lt;action_query&gt;false&lt;/action_query&gt;&lt;action_update&gt;false&lt;/action_update&gt;&lt;active&gt;true&lt;/active&gt;&lt;add_message&gt;false&lt;/add_message&gt;&lt;advanced&gt;true&lt;/advanced&gt;&lt;change_fields&gt;false&lt;/change_fields&gt;&lt;client_callable&gt;false&lt;/client_callable&gt;&lt;collection&gt;sys_attachment&lt;/collection&gt;&lt;condition&gt;(current.table_name + '').indexOf('x_snd_eb') == -1 &amp;amp;&amp;amp; AttachmentHandler.shouldProcessAttachment(current)&lt;/condition&gt;&lt;description/&gt;&lt;execute_function&gt;true&lt;/execute_function&gt;&lt;filter_condition/&gt;&lt;is_rest&gt;false&lt;/is_rest&gt;&lt;message/&gt;&lt;name&gt;[S] Unifi attachment handler - delete&lt;/name&gt;&lt;order&gt;100&lt;/order&gt;&lt;priority&gt;100&lt;/priority&gt;&lt;rest_method/&gt;&lt;rest_method_text/&gt;&lt;rest_service/&gt;&lt;rest_service_text/&gt;&lt;rest_variables/&gt;&lt;role_conditions/&gt;&lt;script&gt;&lt;![CDATA[/**
 * When the attachment is deleted, we can update the Unifi Bonded Attachment
 * records and then trigger outbound messages for associated integrations.
 * 
 * The trigger condition for the 'attachment deleted' message should simply be:
 * source.$deleted_attachment
 * 
 * In the Source to Stage script, this can be mapped directly to stage: 
 * $stage.deleted_attachment = source.$deleted_attachment;
 * 
 * And then used however is required in the payload/URL, e.g.
 * payload.deleted_attachment = $stage.deleted_attachment;
 */
function onBefore(current, previous) {
  ws_console.execute('[S] Unifi attachment handler - delete', function () {
    ActivityLog.setDocument(current.table_name, current.table_sys_id);

	var ba = getBondedAttachments();
	while (ba.next()) {
		setBondedAttachmentDeleted(ba);
	}
	updateIntegrations();
  });

  function getBondedAttachments() {
	var grd = new GlideRecord('x_snd_eb_attachment');
	grd.addQuery('attachment', '=', current.sys_id);
	grd.query();
	return grd;
  }

  function setBondedAttachmentDeleted(ba) {
	ba.attachment = null;
	ba.state = 'Deleted';
	ba.status = 'Deleted by ' + gs.getUserDisplayName() + ' [' + gs.getUserName() + '] on ' + new GlideDateTime();
	ba.update();
  }

  function updateIntegrations() {
	var target = new GlideRecord(current.table_name);
	if (!target.get(current.table_sys_id)) {
		return;
	}

	// Use this as the trigger for the message to send when the attachment is deleted
	target.$deleted_attachment = {
		sys_id: current.getValue('sys_id'),
		file_name: current.getValue('file_name')
	};

	Message.processOutbound(target, {parent_tables: true});
  }
}]]&gt;&lt;/script&gt;&lt;sys_class_name&gt;sys_script&lt;/sys_class_name&gt;&lt;sys_created_by&gt;james@sharelogic.com&lt;/sys_created_by&gt;&lt;sys_created_on&gt;2025-09-25 11:33:57&lt;/sys_created_on&gt;&lt;sys_domain&gt;global&lt;/sys_domain&gt;&lt;sys_domain_path&gt;/&lt;/sys_domain_path&gt;&lt;sys_id&gt;0ac1f9c03390be509e9e0ff13d5c7b73&lt;/sys_id&gt;&lt;sys_mod_count&gt;6&lt;/sys_mod_count&gt;&lt;sys_name&gt;[S] Unifi attachment handler - delete&lt;/sys_name&gt;&lt;sys_overrides/&gt;&lt;sys_package display_value="ShareLogic Unifi" source="x_snd_eb"&gt;74f0b4550f8ca20094f3c09ce1050e6a&lt;/sys_package&gt;&lt;sys_policy/&gt;&lt;sys_scope display_value="ShareLogic Unifi"&gt;74f0b4550f8ca20094f3c09ce1050e6a&lt;/sys_scope&gt;&lt;sys_update_name&gt;sys_script_0ac1f9c03390be509e9e0ff13d5c7b73&lt;/sys_update_name&gt;&lt;sys_updated_by&gt;james@sharelogic.com&lt;/sys_updated_by&gt;&lt;sys_updated_on&gt;2025-09-25 12:34:11&lt;/sys_updated_on&gt;&lt;template/&gt;&lt;when&gt;before&lt;/when&gt;&lt;/sys_script&gt;&lt;sys_translated_text action="delete_multiple" query="documentkey=0ac1f9c03390be509e9e0ff13d5c7b73"/&gt;&lt;/record_update&gt;</payload>
<payload_hash>353710233</payload_hash>
<remote_update_set display_value="ShareLogic Unifi - Deleted Attachments Patch">99ff718433d0be509e9e0ff13d5c7bb3</remote_update_set>
<replace_on_upgrade>false</replace_on_upgrade>
<sys_created_by>james@sharelogic.com</sys_created_by>
<sys_created_on>2025-09-25 12:35:53</sys_created_on>
<sys_id>ddff718433d0be509e9e0ff13d5c7bb3</sys_id>
<sys_mod_count>0</sys_mod_count>
<sys_recorded_at>19980ddea520000001</sys_recorded_at>
<sys_updated_by>james@sharelogic.com</sys_updated_by>
<sys_updated_on>2025-09-25 12:35:53</sys_updated_on>
<table>sys_attachment</table>
<target_name>[S] Unifi attachment handler - delete</target_name>
<type>Business Rule</type>
<update_domain>global</update_domain>
<update_guid>5c9f3d044ed0be5073b6f93ef91cbc27</update_guid>
<update_guid_history>5c9f3d044ed0be5073b6f93ef91cbc27:353710233,093e39c015d0be5033f7d8933a1d66a2:-206686406,f96d3d80d6d0be508cb91c6b79ba0dd0:2089479428,f79cb54016d0be506a766e0e3ba95db7:1367900938,6849f14ce290be506c973122df162c70:1097784835,08d231046690be50f830d8c050d5d183:814268811,cac1fdc0ab90be503fa7a78b8d62e6e4:883019794</update_guid_history>
<update_set display_value=""/>
<view/>
</sys_update_xml>
</unload>
