# Kanoa MES Overview Check

<details>
<summary>Why shouldn't you edit the kanoaAPP project directly, and where should your custom views go instead?</summary>

`kanoaAPP` is the only project that is updated on module updates, so any changes you make to its views are overwritten on each update (a backup of `kanoaAPP` is created first). Instead, copy views into your own custom project that inherits from `kanoaAPP` and is inherited by the runnable projects (kanoaMES, kanoaMobile, kanoaTablet, kanoaMarquee). See [Kanoa Ignition projects](./1-projects.md).

</details>

<details>
<summary>Why do Kanoa write functions such as system.kanoa.order.addProductionOrder() take a user ID, and what do you pass when a script runs without a logged-in user?</summary>

The `userId` parameter is the ID of the user executing the function, so Kanoa can record who created or changed each record (records carry `createdBy` and `changedBy` fields). Write functions typically take an info dictionary plus a user ID, e.g. `addProductionOrder(woInfo, userId)`. In gateway scripts, the course looks up the SYSTEM user with `system.kanoa.security.getIDPUserId({'userName': 'SYSTEM'})`. See [addProductionOrder](../../systemFunctions/order/addProductionOrder.md).

</details>

<details>
<summary>Many Kanoa get functions return datasets. How do you make them easier to work with in a script?</summary>

Use the utility functions `system.kanoa.utilities.convertDatasetToJSON(dataset)` for a list of dictionaries, or `system.kanoa.utilities.convertDatasetRowToJSON(dataset, 0)` for a single row as a dictionary. See [convertDatasetToJSON](../../systemFunctions/utilities/convertDatasetToJSON.md).

</details>

<details>
<summary>What creates the assetOEE tag UDT instance for an asset, and which of its folders do you connect to your equipment data?</summary>

Kanoa creates an assetOEE UDT instance in the `Kanoa` tag provider whenever an asset is OEE-enabled. You connect equipment data in the **Inputs** folder: at a minimum, the infeed and outfeed counts and the asset state. See [Tags](./5-tags.md).

</details>
