Need Help: Make Attachment Mandatory on submission Only When Subject Person’s Country = India
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 hours ago
- There is a reference variable called Subject Person (points to sys_user).
- If the selected user’s country = India, then at least one attachment must be added before submission.
- If the country is not India, submission should proceed without attachment.
What We Tried So Far:
- OnSubmit Client Script using getReference()
- We fetched the country from the Subject Person record and then checked attachments using Angular DOM (scope.attachments.length).
- Issue: Works partially, but fails when attachments are added (still blocks submission).
- DOM Manipulation Approach
- Used document.getElementsByClassName('get-attachment') for Service Portal and $j("li.attachment_list_items") for native UI.
- GlideAjax + Script Include
- Created a Script Include (CheckAttachment) to check attachments and country.
- Tried multiple patterns (pause submission, resubmit after validation).
- Issue: Logic works for blocking when no attachment, but still blocks even after attachment is added.
- System Property Approach
- Attempted to make country configurable via system property and validate in Script Include.
- Issue: Still facing the same problem with attachment validation.
Where We Are Stuck:
- We need a robust solution that works in Service Portal and Mobile UI.
- Ideally, we want one GlideAjax call that:
- Gets the country.
- Checks if attachments exist for the current record.
- Returns true/false so we can allow or block submission.
Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
Hi @NowNinja727 ,
Please try below code and let me know if that works
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago - last edited 2 hours ago
Your use case isn't simple given that you need the functionality in both Service Portal and Mobile UI which don't support the same methods. So you would need to approach this in a way that doesn't use many of the standard functions you'll find related to Service Portal.
In order to apply this logic across these two UIs you will need to use a business rule with the when to apply set to before-insert. I don't know of another way to apply it to both UIs with one configuration. You would start with a condition that Subject Person's country is India. If this evaluates to true then check the attachments.
You stated this is occurring on a record producer so the query on sys_attachment works since you are in a before-insert business rule. You would need to query sys_attachment where table_name is your table and table_sys_id is current.sys_id. This would return a count of attachments which could then be used inside the if condition to either cancel the insert or allow it to proceed.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
an hour ago
Thanks for the reply @John Gilmore , please refer my reply below from @Sandeep Rajput 's thread and suggest me anything if you have anything, thank you so much!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
@NowNinja727 Ideally a combination of GlideAjax + Script include should work here. You can simply check the subject person country and see if they uploaded an attachment by querying the sys_attachment table. However, if this is not working then there must be something wrong with the logic here.
Could you please share your client script and script include code here to suggest the improvements.