# Integration Toolkit wiki - setup discussion

**URL:** <https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078>\
**Category:** 3rd Party Modules\
**Created:** [April 14, 2025, 8:06pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078 "2025-04-14T20:06:42Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [April 14, 2025, 8:06pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/1 "2025-04-14T20:06:42Z")

</div>

According to [Editing and creating wiki posts - Using Discourse - Discourse Meta](https://meta.discourse.org/t/editing-and-creating-wiki-posts/30801#p-128958-creating-or-removing-a-wiki-post-4) I should be able to convert this post into a wiki post when I've saved it.

* * *

Yup. 1, 2.

 ![Wiki creation](https://us1.discourse-cdn.com/inductiveautomation/original/3X/5/c/5ce5685c8980f312fc218adf5b926faeb63eb6d8.png)

* * *

 ![Wiki icon](https://us1.discourse-cdn.com/inductiveautomation/original/3X/5/8/58723330aea3d381d112f3a0421f849495051815.png)

Click the wiki icon to edit.

Michael: It Works! But how messy can/will it get?

Transistor: This is related to posting working examples for Phil's Integration Toolkit as discussed over in [Automation Professionals' Integration Toolkit Module - #270 by Transistor](https://forum.inductiveautomation.com/t/automation-professionals-integration-toolkit-module/74934/270). I think that it would need its own category rather than have them jumbled in with other stuff.

---

<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:** [April 14, 2025, 8:48pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/2 "2025-04-14T20:48:14Z")

</div>

Looks good. I will make one in the 3rd party modules category for the toolkit.

Done: [Integration Toolkit Solutions Wiki](https://forum.inductiveautomation.com/t/integration-toolkit-solutions-wiki/105080)

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [April 14, 2025, 8:52pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/3 "2025-04-14T20:52:31Z")

</div>

But wouldn't you need a post per function to keep it somewhat organized and not one large post? And even then, they'll get buried based on how long since someone edited/posted to it. (Discourse doesn't really seem like the right tool for the job).

I had forgotten about this, but I started making a wiki for myself that I was gonna build up with a bunch of Ignition stuff on my homelab server that I never got around to actually adding much.

I can open it up (PM me if anyone wants a login to write posts).

> **[Glimmer](https://glimmer.raddadit.com)**

I just made an Automation Professionals "book" if we want to test/play.

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [April 14, 2025, 9:00pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/4 "2025-04-14T21:00:51Z")

</div>

> [@michael.flagler](#):
>
> But wouldn't you need a post per function to keep it somewhat organized and not one large post?

That was my idea. I suggested one thread per function (or maybe groups of similar / related functions) but Phil suggests that many examples will rely on multiple functions all at once and that it would be something like "task" based. I'm not sure how easy it would be to find what one was looking for.

---

<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:** [April 14, 2025, 9:06pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/5 "2025-04-14T21:06:21Z")

</div>

Take a look at the editing guidelines I laid down...

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [April 14, 2025, 9:14pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/6 "2025-04-14T21:14:45Z")

</div>

Looks like it would be a good start. Really, once converted to Wiki style, if someone doesn't follow the style, it can be cleaned up by others, or tweaks to the style can be made afterward.

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [April 14, 2025, 9:49pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/7 "2025-04-14T21:49:33Z")

</div>

So, looking at your example, and a newbie trying to figure out what each function is actually doing, would it be helpful (I think it would be) to maybe give an explanation as to how it's functioning. For example:

> **Usage Explanation**
>
> `forEach()` - Iterates through each row of the dataset  
> `asMap()` - Maps the values of the cells in each row as a key-value pair with the key being the column name.  
> `it()` - Returns the index of each row so that the dataset is ordered properly??? (I really don't know on this one, which is why I'm asking if this would help, and I may be completely wrong on my previous assumptions as well)

---

<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:** [April 14, 2025, 9:53pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/8 "2025-04-14T21:53:21Z")

</div>

Please make the edits. (:

{ `it()` delivers the subject row of the source dataset as a single row. `asMap()` converts one row of a dataset to key-value pairs. }

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [April 14, 2025, 9:55pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/9 "2025-04-14T21:55:06Z")

</div>

I was going to, but didn't want to put wrong information on it (although I guess if I did, someone would correct me).

So the `forEach()` just kinda re-assembles the results from the `asMap()` ?

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [April 14, 2025, 9:59pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/10 "2025-04-14T21:59:31Z")

</div>

Ok, made an edit....we'll see how well I did. 🙂

---

<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:** [April 14, 2025, 10:03pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/11 "2025-04-14T22:03:45Z")

</div>

Not bad. Probably would look nicer if the usage was in the same bullet list as the features employed. (Would be worth looking at the Iterables link I just added to better understand what `forEach()` is doing.

> [@michael.flagler](#):
>
> So the `forEach()` just kinda re-assembles the results from the `asMap()` ?

The `forEach()` makes a list of the mappings from calling `asMap()` on each row.

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [April 14, 2025, 10:07pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/12 "2025-04-14T22:07:06Z")

</div>

I made a tweak after you added your iterable link. I think my explanation is a little closer now, but I could still be off.

---

<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:** [April 14, 2025, 10:12pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/13 "2025-04-14T22:12:55Z")

</div>

I fleshed out the features used list--you can probably drop the usage section now.

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [April 14, 2025, 10:20pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/14 "2025-04-14T22:20:56Z")

</div>

I like it!

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [April 14, 2025, 11:05pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/15 "2025-04-14T23:05:16Z")

</div>

Should we add the line,  
`// This expression uses Integration Toolkit functions.`  
as a header to each piece of sample code to encourage documenting the fact in projects? Someone maintaining a project wouldn't find any help in the IA documentation.

---

<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:** [April 14, 2025, 11:07pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/16 "2025-04-14T23:07:30Z")

</div>

Sounds like bloat. Heavy users of the toolkit will figure it out pretty quickly, especially if they come to the forum.

_Pssst!_ You didn't make your new comment a wiki....

---

<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:** [April 14, 2025, 11:38pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/17 "2025-04-14T23:38:23Z")

</div>

I wanted to do something like this for the [CSS Useful Stuff](https://forum.inductiveautomation.com/t/useful-css-stuff/95414) topic I created, to avoid all the chatter surrounding the useful posts. Maybe I should convert that post to a wiki instead...

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [April 15, 2025, 12:08am UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/18 "2025-04-15T00:08:45Z")

</div>

Eh, I don't immediately love it. I like the idea of keeping the body of knowledge on the forum but I'm not sure how well the wiki thread will scale; I guess if you let the search function to the heavy lifting it could be fine.

I'll keep my mess of Embr threads for now and let you prove out this idea 😉

---

<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:** [April 15, 2025, 4:46pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/19 "2025-04-15T16:46:00Z")

</div>

If it gets unwieldy, I could probably add something like this:

> **[DiscoTOC - automatic table of contents](https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143)**
>
> :discourse2: Summary DiscoTOC will allow you to generate an interactive table of contents for your topics with one click! 👓 Preview Preview on Discourse Theme Creator 🛠 Repository Link https://github.com/discourse/DiscoTOC 📖 New to...

---

<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:** [April 15, 2025, 4:50pm UTC](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078/20 "2025-04-15T16:50:33Z")

</div>

There's always the option to split into more topics with a finer focus.

[Next page](https://forum.inductiveautomation.com/t/integration-toolkit-wiki-setup-discussion/105078.md?page=2)
