Our custom numbering rule for part creation doesn’t execute when engineers create new parts through the standard UI form. The rule is supposed to generate part numbers based on part classification and project code, following a pattern like PROJ-CAT-####. We configured this as a server event on the Part itemtype, but new parts are being created with empty part numbers instead of our auto-generated values.
The custom numbering rule works when we manually trigger it through a custom action, which suggests the logic itself is sound. However, during normal part creation workflows through the UI, the server event simply doesn’t fire. We’ve verified the event is set to onBeforeAdd and the handler method is registered correctly in the database.
This is causing duplicate part numbers when users manually enter values and breaking our traceability requirements. Engineers are having to go back and update part numbers after creation, which defeats the purpose of automation. Has anyone experienced server event configuration issues where events don’t trigger during standard UI part creation operations?
I checked the Method configuration and it’s definitely set as server-side with onBeforeAdd event. There are two other server events on Part itemtype but they handle different properties. Could the issue be related to the Part form itself? Maybe there’s a form event that’s bypassing the server event chain?
I’ve seen this happen when the server event priority conflicts with other events. If you have multiple onBeforeAdd events on the Part itemtype, they might be interfering with each other. Check the execution order in your event configuration. Also, make sure your custom method isn’t throwing any exceptions that would silently fail during the event chain.
Based on your symptoms, this is a multi-layered configuration issue involving all three focus areas. Let me walk through the complete diagnostic and solution:
Custom Numbering Rule Verification:
First, confirm your server event is properly registered. Navigate to Administration > Methods and locate your numbering method. Verify these settings:
- Method Type: Server
- Execution: onBeforeAdd
- Item Type: Part
- Event Priority: Set to a value lower than 50 to ensure early execution
The fact that manual triggering works confirms your logic is correct, so the issue is purely configuration-based.
Server Event Configuration Deep Dive:
The most common issue in Aras 13.0 is event registration scope. Your server event must be associated with the Part ItemType, not just exist as a standalone method. Check the Server Events relationship on the Part ItemType definition:
- Open ItemType: Part in the TOC
- Navigate to Server Events tab
- Verify your numbering method appears with Event=“OnBeforeAdd”
- Ensure no duplicate or conflicting events exist
If the relationship is missing, manually add it. This is often the root cause when events don’t fire during UI operations but work via actions.
UI Part Creation Investigation:
The Part form configuration can interfere with server events. Inspect your Part form definition:
- Check for any onFormPopulate or onBeforeApply client events that manipulate item_number
- Verify the item_number field properties:
- Should NOT be marked as Required (let server event populate it)
- Should NOT have a default value set
- Should be editable but empty on new item creation
- Look for hidden form fields that might be initializing item_number to empty string
In Aras 13.0 specifically, there’s a known behavior where form field initialization happens before server events if the field has any client-side event handler. Remove any client-side scripts on the item_number field.
Complete Solution Steps:
- Remove any client-side initialization of item_number from the Part form
- Verify Server Events relationship exists on Part ItemType definition
- Set event priority to 25 (ensures execution before other events)
- Add error logging to your numbering method to catch silent failures:
- Log entry at method start
- Log successful number generation
- Log any exceptions
- Clear the server cache and restart the Aras service
- Test part creation with logging enabled to confirm event execution
For your specific pattern (PROJ-CAT-####), ensure the Sequence itemtype has entries for each project-category combination, or modify your method to create sequences dynamically if they don’t exist.
The combination of proper event registration, clean form configuration, and priority ordering will resolve your issue. The key insight is that UI-driven creation follows a different event chain than programmatic creation, which is why manual triggering worked while normal creation didn’t.
That’s a good thought about the form. If your Part form has a client-side event that sets the item_number property before submission, it would override your server event. Check the form’s onBeforeApply or onFormSubmit events for any JavaScript that manipulates the part number field. Also verify that the item_number field isn’t marked as required on the form, which would force users to enter a value before the server event can generate one.
Check your server event registration in the Method itemtype. Make sure the event handler is associated with the correct lifecycle state and that there are no conditional filters preventing execution. Also verify that the method is set as a server-side method, not client-side.
We had exactly this problem in our Aras 13.0 implementation. The issue was that the Part form had a hidden field initialization that was setting item_number to an empty string, which technically satisfied the server but prevented our auto-numbering from triggering. Once we removed that form-level initialization, the server event worked perfectly.
Another common issue is the sequence generator configuration itself. Even if your server event fires, if the underlying sequence isn’t properly configured in the Sequence itemtype, it will fail silently. Make sure your PROJ-CAT sequence exists and has the correct pattern defined with proper permissions for the Identity that creates parts.