- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I'm a bit stumped and could use some pointers. I'm almost certain this is a case of processes running in parallel, or when they are queued up, but I'm not smart enough to find a way around. I've uploaded a simple sample part to show my issue. We have about 900 iPart/iAssy Factories for standard parts. 600 of those are iParts and many are sheet metal. We pass a parameter "SM_AREA" to our new ERP system to track material usage. It 'reserves' or triggers an order for more if we don't have enough on hand. The real numbers come from our laser workflow but are checked against this as a kind of balance. We discovered at inventory last year we were way off. I added some iLogic and an event trigger to grab the latest sheet metal flat extents and pass it to a unitless parameter called SM_AREA. That is in turn set to export to a custom iProperty as a 3 digit precision number that goes to ERP. Since ipart members don't have iLogic, this throws errors upon opening assemblies using them, with those event triggers set.
My solution was to remove the event triggers from any iPart factory. I replaced it with a suppressed rule we run before checking in a factory. it walks through each member, updates the flat extents and SM_AREA, and generates the member so we can check up to date ones in to Vault. I thought I had this nailed, when I started finding parts out of date with erroneous numbers, typically all members would have the default/current members values. I tried a second variation and got closer, but still some errors. I'm on to my third iteration, forcing calcs in between etc. The closest I've gotten updates all rows but the last two, which end up both having the value of the last row. I'm hoping someone can point out some glaring mistake to my code or thought process. Thanks in advance!
Solved! Go to Solution.