Thank you Matthew. The only problem I found was this line: <!--- REMOVE THE RELATED myCustomObject from the object broker, so that it will refresh without the deleted specialObject references ---> <cfset objectBroker.RemoveFromObjectBroker(lObjectIDs="#structKeyList(qRelated.pare ntID)#", typename="#relatedTypename#")> Should have been <cfset objectBroker.RemoveFromObjectBroker(lObjectIDs="#valueList(qRelated.parentID )#", typename="#relatedTypename#")> If I have a FU assigned to an objectID, is it in this type of DELETE function that I should remove it?
Thanks! Derek ________________________________ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Matthew Bryant Sent: Thursday, June 21, 2007 7:39 PM To: [email protected] Subject: [farcry-dev] Re: Maintain array cleanliness Try adding the following delete function to mySpecialObject.cfc I haven't actually run this so their will ;) be syntax errors. Let me know and I can help you fix. It should be relatively self explanatory though. As always, PLEASE backup before you run any code that I write ;) <cffunction name="delete" access="public" hint="Deletes related objects before deleting this object" returntype="struct" output="false"> <cfargument name="objectid" required="yes" type="UUID" hint="Object ID of the object being deleted"> <cfargument name="user" type="string" required="true" hint="Username for object creator" default=""> <cfargument name="auditNote" type="string" required="true" hint="Note for audit trail" default=""> <!--- CHANGE THESE VARIABLES AS REQUIRED ---> <cfset var relatedTypename = "myCustomObject" /> <cfset var relatedTypenameArrayTable = "myCustomObject_aSpecialObjectIDs" /> <!--- LEAVE THESE VARIABLES AS IS ---> <cfset var st = structNew() /> <cfset var stSuccess = structNew() /> <cfset var qRelated = queryNew("blah") /> <cfset var qDelete = queryNew("blah") /> <cfset var objectBroker = createObject("component", "farcry.core.packages.fourq.objectBroker") /> <!--- FIND ALL THE RELATED myCustomObject's ---> <cfquery datasource="#application.dsn#" name="qRelated"> SELECT parentID FROM #relatedTypenameArrayTable# WHERE data = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.objectid#"> </cfquery> <!--- DELETE ALL THE RELATED myCustomObject's ---> <cfquery datasource="#application.dsn#" name="qDelete"> DELETE FROM #relatedTypenameArrayTable# WHERE data = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.objectid#"> </cfquery> <!--- REMOVE THE RELATED myCustomObject from the object broker, so that it will refresh without the deleted specialObject references ---> <cfset objectBroker.RemoveFromObjectBroker(lObjectIDs="#structKeyList(qRelated.pare ntID)#", typename="#relatedTypename#")> <!--- CALL THE SUPER DELETE FUNCTION TO FINALLY DELETE THE OBJECT ---> <cfset stReturn = super.delete(objectid=arguments.objectid, user=arguments.user, auditNote=arguments.auditNote) /> <cfreturn stReturn /> </cffunction> Kind regards -- -- Matthew Bryant Product Development Manager Daemon Internet Consultants Adobe Solutions Partner http://www.daemon.com.au/ p. 02 9380 4162 f. 02 9380 4204 On 22/06/2007, at 5:55 AM, Derek Westfall wrote: Assuming I have this object relationship: myCustomObject.cfc cfproperty name=aSpecialObjectIDs type="array" hint="array of mySpecialObject IDs" mySpecialObject.cfc cfproperty name="title" What can I do with the ft:objectadmin for typename=mySpecialObject to make sure that when I delete a mySpecialObject, the myCustomObject.aSpecialObjectIDs gets updated? Should I add a <ft:processform action="delete"> above the ft:objectadmin and handle it there, or should I add a delete function to myspecialobject.cfc to override the core delete function? Or do you just not worry about deleted objects in arrays? Thanks, Derek Westfall ________________________________ Message protected by MailGuard: e-mail anti-virus, anti-spam and content filtering. http://www.mailguard.com.au/mg --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "farcry-dev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/farcry-dev?hl=en -~----------~----~----~----~------~----~------~--~---
