# Searching Custom Component Methods

**URL:** <https://forum.inductiveautomation.com/t/searching-custom-component-methods/77589>\
**Category:** Ignition\
**Tags:** scripting, vision, ignition81\
**Created:** [August 8, 2023, 9:33pm UTC](https://forum.inductiveautomation.com/t/searching-custom-component-methods/77589 "2023-08-08T21:33:09Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Alexandre\_Riebel](https://avatars.discourse-cdn.com/v4/letter/a/ce7236/32.png) [@Alexandre\_Riebel](https://forum.inductiveautomation.com/u/Alexandre_Riebel)\
**Post date:** [August 8, 2023, 9:33pm UTC](https://forum.inductiveautomation.com/t/searching-custom-component-methods/77589/1 "2023-08-08T21:33:09Z")

</div>

We are in the process of converting from 7.9 to 8.1 and I am trying to locate all of the places in our Ignition system that we use the system.tag.browseConfiguration function since it is obsolete in 8.1. I am planning on replacing them system.tag.getConfiguration, but I am running into a problem.

On our templates, we use a lot of Custom Component Methods, and we discovered that one of these custom methods used the system.tag.browseConfiguration function. The issue is that when I search for "system.tag.browseConfiguration" with the Find/Replace (CTRL+F), it does not search the custom methods in our templates. I need to know whether there are any more custom methods that use system.tag.browseConfiguration, but it seems like my only option is to pour through each line of code in each individual custom method. Is there really no way to search the custom methods?

EDIT: It seems like the Find/Replace function is not working properly for me. When I search the templates, I get the following error in the output console:

```auto
18:51:46.515 [ForkJoinPool.commonPool-worker-9] WARN SearchReplace - Error during search.
java.lang.NullPointerException: null

```

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [August 8, 2023, 10:00pm UTC](https://forum.inductiveautomation.com/t/searching-custom-component-methods/77589/2 "2023-08-08T22:00:32Z")

</div>

You have a corrupted template somewhere. You'll need to find the corrupted binding in the bad template to fix the find tool

> [@\[BUG\]Find/Replace Open/All Windows](https://forum.inductiveautomation.com/t/bug-find-replace-open-all-windows/75740/2):
>
> Check your console, you'll most likely see an error in there. I forget what it says, but essentially you've got a corruption in one of your windows. I don't know if you can find out which it failed on from the logs (I couldn't see it anywhere for me), but to narrow it down, I selected half of my windows and used the context menu 'find in selected' (or option to that effect) and searched for something I knew existed in all windows (I think you can search for anything really, as you'll see the pro…

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 8, 2023, 10:19pm UTC](https://forum.inductiveautomation.com/t/searching-custom-component-methods/77589/3 "2023-08-08T22:19:15Z")

</div>

Aside from the broken template, why are you replacing the function? For IA, deprecated means no longer documented, and might eventually break, but they aim for backwards compatibility.

Get upgraded, then deal with deprecated items at your convenience. Don't hold back a critical update (like this is) over any of these.

---

<div class="post-metadata">

**Author:** ![Alexandre\_Riebel](https://avatars.discourse-cdn.com/v4/letter/a/ce7236/32.png) [@Alexandre\_Riebel](https://forum.inductiveautomation.com/u/Alexandre_Riebel)\
**Post date:** [August 8, 2023, 10:35pm UTC](https://forum.inductiveautomation.com/t/searching-custom-component-methods/77589/4 "2023-08-08T22:35:37Z")

</div>

system.tag.browseConfiguration is not deprecated; it is obsolete and has been removed from the code base. We need to address it during the upgrade. Here is the paragraph from the upgrade guide:

#### Replacement for the system.tag.browseConfiguration Function

The Tags system in Ignition changed dramatically in Ignition 8, which makes the Ignition 7 function `system.tag.browseConfiguration` obsolete. The function has been removed from the code base, so scripts using the old browseConfiguration function will break upon upgrade. The functionality has been replaced by [system.tag.getConfiguration](https://docs.inductiveautomation.com/display/DOC81/system.tag.getConfiguration).

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 8, 2023, 10:37pm UTC](https://forum.inductiveautomation.com/t/searching-custom-component-methods/77589/5 "2023-08-08T22:37:18Z")

</div>

> [@Alexandre\_Riebel](#):
>
> The function has been removed from the code base

Hmm. Missed that.

---

<div class="post-metadata">

**Author:** ![Alexandre\_Riebel](https://avatars.discourse-cdn.com/v4/letter/a/ce7236/32.png) [@Alexandre\_Riebel](https://forum.inductiveautomation.com/u/Alexandre_Riebel)\
**Post date:** [August 8, 2023, 10:38pm UTC](https://forum.inductiveautomation.com/t/searching-custom-component-methods/77589/6 "2023-08-08T22:38:09Z")

</div>

Thanks for the tip. We will look for the corrupted binding.

---

<div class="post-metadata">

**Author:** ![Tim\_Carlton](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tim_carlton/32/52835_2.png) [@Tim\_Carlton](https://forum.inductiveautomation.com/u/Tim_Carlton)\
**Post date:** [August 9, 2023, 1:14pm UTC](https://forum.inductiveautomation.com/t/searching-custom-component-methods/77589/7 "2023-08-09T13:14:59Z")

</div>

Ignition 8 stores much of the code and configuration in text files rather than as proprietary binaries or in the database. The remaining items can be exported to text files. My understanding was that this was done so that standard configuration control tools could be used (read: git). There is a best practices whitepaper describing it. There is also a module that makes it easy.

A side effect of this is that you can use any search/replace tool you like (read: grep) and take advantage of features that aren't part of the designer (wildcards, regular expressions). I like dnGrep, but notepad++ or vscode or lots of other options are available.

Given the number of posts about "search isn't working" and the importance of not missing anything in an upgrade, I would at least use something like grep as a QA or sanity check.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 9, 2023, 1:27pm UTC](https://forum.inductiveautomation.com/t/searching-custom-component-methods/77589/8 "2023-08-09T13:27:09Z")

</div>

> [@Tim\_Carlton](#):
>
> stores much of the code and configuration in text files rather than as proprietary binaries

Not yet true for Vision resources.

---

<div class="post-metadata">

**Author:** ![Tim\_Carlton](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tim_carlton/32/52835_2.png) [@Tim\_Carlton](https://forum.inductiveautomation.com/u/Tim_Carlton)\
**Post date:** [August 9, 2023, 1:35pm UTC](https://forum.inductiveautomation.com/t/searching-custom-component-methods/77589/9 "2023-08-09T13:35:19Z")

</div>

> [@pturmel](#):
>
> Not yet true for Vision resources

_sigh_  
8.3 then...

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [August 9, 2023, 1:37pm UTC](https://forum.inductiveautomation.com/t/searching-custom-component-methods/77589/10 "2023-08-09T13:37:45Z")

</div>

> [@pturmel](#):
>
> Not yet true for Vision resources.

There's a project property to switch Vision resources to store in their XML representation.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 9, 2023, 1:38pm UTC](https://forum.inductiveautomation.com/t/searching-custom-component-methods/77589/11 "2023-08-09T13:38:58Z")

</div>

When did that hit? I recall Named Queries changing format.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [August 9, 2023, 1:40pm UTC](https://forum.inductiveautomation.com/t/searching-custom-component-methods/77589/12 "2023-08-09T13:40:36Z")

</div>

Fairly recently. 8.1.20-something, I think.

The actual XML format still hasn't gone through any real optimizations so it's not very friendly, but it's at least human readable if not really editable.
