Forum Discussion
Hi community,
this old topic became relevant again. I want to replace the current floating behavior with something custom. Does anyone has done something similar already?
- christopher_gillis1 year agoCommunity Manager
Hi Angela,
As a rough implementation, you might be able to accomplish something like this by adding an extra property (either a boolean or an Item property) to the Part BOM relationship that will track whether that specific element of the BOM has been updated via a float. Then, to set that property, you could add an onAfterUpdate event to the Part ItemType that will do a reverse lookup to find all BOMs that include the updated Part. Then you can set the value of that new property you added to Part BOM to serve as a flag that an update has been made via a float.
If you want to notify your users before this update happens, you can instead do a onBeforeUpdate to check if any BOMs will be updated as part of this float and return that information to the user before the update actually occurs.
Let me know if this general idea could work for you.
- jeremy_biggs_capellaspace_com11 days agoIdeator II
Hi Angela,
I know I'm late to the party but figured I'd throw in in two cents anyway. I've used an onAfterAdd/Update method to control float before. In one case, if the updated part (or CAD) was of a specific type/state, the desired behavior was to float it into Released BOMs/CAD Structure, which of course have Fixed behavior. I used SQL for this and it did work nicely with no noticeable performance impact. Obviously not very configurable though, and I didn't need to keep track of what was floated and when, so this might not be very useful in your case. I suppose you could run a select first to identify the relationships that will be updated and then store those somewhere for visibility. I've also implemented a CreateHistoryRecord method I can call from anywhere, which takes a part id, action name (e.g. "Update") and comment, and creates a history record against the item with those values. It's an easy way to store something on the item that indicates a change occurred and what it was.
Razorleaf also has a feature they developed called Manufacturing Suite, which has a Change Management module that includes float configuration options for which items to float into which relationships when an ECO completes. This actually keeps track of what was floated and into what items, but it's limited to floating affected items being released on an ECO.
As for notifying users, I don't quite follow Christopher Gillis's suggestion. It seems like it would have to be triggered by a client-side method to run the check first, because as far as I know you can't prompt the user during server events. So you'd have to hijack/interrupt the client-side Save action. Might not be fully understanding your intent though.
Anyway, hope my ramblings are helpful to someone!