Attribute Error in Component Custom Method

Hello All,

The custom method definitely (seems at least anyway) can’t reference system.tag but I found a solution (more like a work-around?) thanks to @silverbacknet (post Using system.* inside a custom function? - #9 by systemparadox) where a reference to system.tag must be passed as an argument to the custom method. It works and is not messy.

This is my buttons actionPerformed script, see line 5 (import system.tag as sysTag) and the last line.

# ==========================================================================
# Commit the version notes and increment the version number...only after everything is validated.
# ==========================================================================
# The import is needed for the custom methods...refer to line 42.
import system.tag as sysTag
# The three user input fields must be validated.
projectArea = event.source.parent.getComponent('dd_projectArea').selectedStringValue
topic = event.source.parent.getComponent('ta_topic').text
notes = event.source.parent.getComponent('ta_versionNotes').text

if (projectArea == ''):
	system.gui.messageBox("You must select a project area.")
elif (topic == ''):
	system.gui.messageBox("You must enter a topic.")
elif (notes == ''):
	system.gui.messageBox("You must enter notes.")
else:
	if system.gui.confirm(
		"Are you sure you want to commit these notes and increment the version?",
		"Commit"):
			selectedVersion = event.source.parent.versionNumber
			if (selectedVersion == 0):
				event.source.forgetVersionInfo()
				system.nav.closeParentWindow(event)
				event.source.resetAllVerNums(projectArea, topic, notes)
			elif (selectedVersion == 1):
				event.source.forgetVersionInfo()
				system.nav.closeParentWindow(event)
				event.source.incrementVerNum1st(projectArea, topic, notes)
			elif (selectedVersion == 2):
				event.source.forgetVersionInfo()
				system.nav.closeParentWindow(event)
				event.source.incrementVerNum2nd(projectArea, topic, notes)
			elif (selectedVersion == 3):
				event.source.forgetVersionInfo()
				system.nav.closeParentWindow(event)
				event.source.incrementVerNum3rd(projectArea, topic, notes)
			else:
				event.source.forgetVersionInfo()
				system.nav.closeParentWindow(event)
				event.source.incrementVerNum4th(projectArea, topic, notes, sysTag)

This is the custom method where I was getting the error, but with a system.tag reference argument it works nicely.

def incrementVerNum4th(projectArea, topic, notes, sysTag):
	# =====================================================================
	# Increments the 4th version number (work in progress).
	# <major> . <feature> . <bug fix> . <work in progress>
	# =====================================================================
	newVerNum = sysTag.readBlocking('[gw1]_Project Version Information/verNum4th')[0].value + 1
	sysTag.writeBlocking('[gw1]_Project Version Information/verNum4th', newVerNum)
	self.addVersionNote(projectArea, topic, notes, sysTag)

Thank you everyone for you assistance, it so nice to have volunteers like yourselves. I’ve been Ignition’ing for about a month…maybe after 12 months I’ll have enough experience to help others :slight_smile:
Regards,
Ted.