# Related to MXSuite

FAQ related to MXSuite

# Field types of custom attributes

At several places in MXSuite custom attributes are used to populate data. Each field type has its own behavior. Below is the overview with all field types and explanations.

<p class="callout success">An example of a form with all field types:  
[![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/BlXimage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/BlXimage.png)</p>

<table id="bkmrk-type-description-ima" style="border-collapse:collapse;width:100%;"><colgroup><col style="width:19.6826%;"></col><col style="width:47.0635%;"></col><col style="width:33.3731%;"></col></colgroup><tbody><tr><th style="background-color:rgb(230,126,35);">**Type**</th><th style="background-color:rgb(230,126,35);">**Description**</th><th style="background-color:rgb(230,126,35);">**Image**</th></tr><tr><td>##### AUTO NUMBER

</td><td>This is an automatically generated sequential number. It can be used for example to have a unique numbering for created documents.

**Configuration options:**

- Prefix: Here a prefix for the number can be set. For example to distinguish documents created by the office from the ones created by the vessels.: 
    - ABC-1
    - ABC-2
    - OFF-3
    - OFF-4
- Start number: the first number the sequential number should start with.

</td><td>[![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/KxIimage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/KxIimage.png)</td></tr><tr><td>##### BOOLEAN

</td><td>This is a yes/no tickbox.

**Configuration options:**

- Default value: to have the tickbox by default enabled or disabled.

</td><td>[![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/hOXimage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/hOXimage.png)</td></tr><tr><td>##### DATE TIME

</td><td>This is a field where the date can be filled or chosen from a calendar. Also can be defined if the field should contain only the date or the time as well.

**Configuration options:**

- Is date only: when selected only the date can be filled. If not selected also the time can be given.
- Default value: a default date (and time) can be given.

</td><td>[![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/4TIimage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/4TIimage.png)</td></tr><tr><td>##### DOUBLE

and

##### INTEGER

</td><td>This is a numeric field. The difference between a *double* and an *integer*:

- A *double* is a numeric value with decimals, like 123,45
- An *integer* is a numeric value without decimals, like 123

**Configuration options:**

- Minimum value: fill here the minimum allowed value.
- Maximum value: fill here the maximum allowed value.
- Default value: a default value can be given here.

</td><td>[![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/jMFimage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/jMFimage.png)

</td></tr><tr><td>##### LOOKUP 

and

##### SYSTEM LOOKUP

</td><td>A lookup is a list with predefined selections. The difference between a *lookup* and a *system lookup*:

- A *lookup* is a list that can be defined by the user in Administration &gt; Lookups.
- A *system lookup* is a predefined list with values or a list that is managed anywhere else in MXSuite. For example the list with users or the list with countries.

**Configuration options:**

- Lookup type as configured in Administration &gt; Lookups or one of the system lookups.
- Default value: a default selection can be made here.

</td><td>[![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/prOimage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/prOimage.png)

</td></tr><tr><td>##### TEXT

</td><td>A text field is a field where a free text can be entered.

**Configuration options:**

- Multiline: if enabled the text field will be shown with 3 lines. If disabled, the field has a height of one line.
- Maximum length: the maximum number of characters that can be filled in the text field.
- Default value: a default text can be given here.

</td><td>[![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/Aw0image.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/Aw0image.png)

</td></tr><tr><td>##### LOGBOOK

</td><td>A logbook is an extended version of a text field. Every new entry will be saved with username and date and time.

**Configuration options:**

- Multiline: if enabled the text field will be shown with 3 lines. If disabled, the field has a height of one line.
- Users can edit their own logs: allow the user to change the text he typed afterwards.
- Use edit rights: editing the logbook depends on the user rights of the current user.
- Default value: a default text can be given here.

</td><td>[![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/2HGimage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/2HGimage.png)

</td></tr><tr><td>##### IMAGE

and

##### FILE

</td><td>An image or a file can be used to save an attachment to MXSuite.

- For an *image* only known extensions are allowed: .bmp .jpg .gif .png .svg .tiff .dds .wdp .emf .ico .wmf
- For a *file* all extensions can be saved.

**Configuration options:**

- Maximum file size: fill here the maximum attachment size in bytes. 
    - 1 MB = 1.048.576 bytes
    - 5 MB = 5.242.880 bytes
    - 10 MB = 10.485.760 bytes
    - 50 MB = 52.428.800 bytes

</td><td>[![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/k7Vimage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/k7Vimage.png)

</td></tr><tr><td>##### READ ONLY

</td><td>Read-only information is used to show a text in the form or page, which is helpful for the user.

**Configuration options:**

- Show name: if enabled, the name (first field in the picture) is also shown on the form or page.
- Default value: type here the text that should be shown on the form or page.

</td><td>[![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/Hu5image.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/Hu5image.png)

</td></tr><tr><td>##### GPS

</td><td>With a GPS field, the exact position can be saved in Degrees, Minutes and Seconds.

**Configuration options:**

- none

</td><td>[![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/WCeimage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/WCeimage.png)

</td></tr><tr><td>##### AVERAGE

</td><td>In the field *Average*, you can add a numeric value including decimals. For each average attribute, you can decide how much the score will adjust the overall score.

The total value of all average fields should be in total 100.

**Configuration options:**

- Minimum value: fill here the minimum allowed value.
- Maximum value: fill here the maximum allowed value.
- Default value: a default value can be given here.
- Average: the weight of this field. The total value of all average fields in the form or page should be 100.

</td><td>[![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/9H6image.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/9H6image.png)

</td></tr></tbody></table>

# Update MXSuite V3 to a newer version

To update MXSuite V3 to the latest version available please follow the below steps.

<p class="callout info">There is no need to create a backup of the database as the update does not affect the data in the database and cannot cause any loss.</p>

1. Check if there is a new version available for the update.  
    
    - Go to **Summary -&gt; About -&gt; Check for Updates**
    - A pop-up window appears with the information (either that you are already on the latest version or about the latest version available):  
        [![1.JPG](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/1.JPG)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/1.JPG)
2. Download the latest version 
    - Press **OK** to proceed with the download of the latest version (screenshot above).
3. Wait until the download is finished.
4. Open the downloaded file, and right click on the installation file -&gt; **Run as administrator**  
    <p class="callout warning">The installation file should be run as administrator to be able to update all files.  
    </p>
5. Follow the steps from the installation wizard (click on Next button)  
    [![install-1.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/install-1.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/install-1.png)
6. The update is ready and installed successfully the message shows: Completed the MXSuite Setup Wizard  
    [![install-2.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/install-2.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/install-2.png)

# Custom Properties and Word merge

##### In MXSuite

The fields that are available to merge to a Microsoft Word document, are defined in MXSuite. You can find these fields in:

- For the document module:  
    **Administration &gt;** **Documents &gt;** **Custom** **Properties  
    [![properties-documents_module.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/properties-documents-module.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/properties-documents-module.png)**
- For the crewing module:  
    **Administration** &gt; **Crewing &gt;** **Contract Templates** &gt; **Contract Custom Properties** or  
    **Administration** &gt; **Crewing &gt;** **Contract Templates** &gt; **Conformation of employment Custom Properties   
    [![properties-crewing_module_contract.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/properties-crewing-module-contract.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/properties-crewing-module-contract.png)**

##### In Microsoft Word

Open the document in Microsoft Word and do the following.

1. Select **File**
2. Select **Info**
3. Click on the arrow right of **Properties**
4. Select **Advanced Properties.  
    [![advanced_properties_word.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/advanced-properties-word.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/advanced-properties-word.png)**

When the popup opens, select the **Custom** tab.

Add new text values with the same descriptions as defined in MS Word Mail merge Exchange. These fields are case sensitive so it needs to be used “Vessel Name” and not “vessel name”.

##### In the content of the document

1. Select the tab Insert
2. Select **Quick Parts**
3. Select **Fields**
4. Choose the category: **Document information**
5. Select field name: **DocProperty**

In the right window, you get your properties.  
[![insert_properties.png](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/scaled-1680-/insert-properties.png)](https://docs.mxsuite.nl/uploads/images/gallery/2024-11/insert-properties.png)

At Vessel Name insert, automatically in MXSuite the name of the vessel is inserted in the document.

# API interface

The application programming interface (API) is used to make a connection between MXSuite and other software.

# Manage API keys

The HTTP(S) API has been available since MXSuite version 3.3.0.

To create an API key, there are 2 steps needed:

1. Create the API-user
2. Create the API-key

##### Create an API user

1. Open the **Administration** module
2. Click on **Users**  
    [![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-01/scaled-1680-/image.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-01/image.png)
3. Create a new user for the API with the correct user rights. Assure that you select user type API.  
    [![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-01/scaled-1680-/1BZimage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-01/1BZimage.png)

##### Create the API key

1. Open the **Administration** module
2. Click on **API keys**  
    [![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-01/scaled-1680-/5cHimage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-01/5cHimage.png)
3. Click on **New...** [![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-01/scaled-1680-/qzTimage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-01/qzTimage.png)
4. Enter the **Name** of the API so you can easily distinguish all API keys.
5. Select the related API user
6. If needed, enter an expiry date.
7. Click on **Save &amp; close**
8. Now the API key is created and visible.

# General API usage

##### Authentication

To access the API, first an API key needs to be created from the Administration page. The key will be used as a header in the HTTP request.

MXSuite expects a `mx-apikey` header on each request.

```bash
mx-apikey: apikey
```

<p class="callout warning">Besides the mx-apikey header, two more headers are required.  
  
**accept**: application/json, text/plain, \*/\*  
**content-type**: application/json  
</p>

##### Error handling

Successful responses will return a 200 or 204 HTTP response code. Errors will return a 4xx or a 5xx.

Some scenarios of errors:

- missing the mx-apikey header
- wrong api key
- expired api key
- MXSuite license expired
- The user doesn't have enough rights for that specific request

##### Examples

Below an example of how to use the API key in MXSuite. In this example the following parameters are used:

- URL for MXSuite: [http://localhost:4200/](http://localhost:4200/)
- Location mane: vessel2
- API key: 4a74ad039ffc4f3288da7a0e03e608da

##### Postman

Postman can be downloaded here: [https://www.postman.com/downloads/](https://www.postman.com/downloads/)  
Open Postman, click on Import button and paste the following command:

```bash
curl 'http://localhost:4200/api/ExternalCounters/UploadCountersHistory' \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'mx-apikey: 4a74ad039ffc4f3288da7a0e03e608da' \
  --data-raw '[{"name":"c1","locationName":"vessel2","value":1119,"timestamp":"2024-10-05T12:11:11.000Z"},{"name":"C2","locationName":"Vessel2","value":2229,"timestamp":"2024-10-05T12:11:11.000Z"},{"name":"c3","locationName":"Vessel2","value":3339,"timestamp":"2024-10-05T12:11:11.000Z"}]'
```

In the Headers tab the API key can be changed:

[![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-01/scaled-1680-/cejimage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-01/cejimage.png)

In the Body tab, the payload value can be changed.

[![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-01/scaled-1680-/CR6image.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-01/CR6image.png)

##### Console

Define a payload variable:

```json
let payload = [
    {
        "name": "c1",
	"locationName": "vessel2",
        "value": 1119,
        "timestamp": new Date(2024,09,05,15,11,11)
    },
    {
        "name": "C2",
	"locationName": "Vessel2",
        "value": 2229,
        "timestamp": new Date(2024,09,05,15,11,11)
    },
    {
        "name": "c3",
	"locationName": "Vessel2",
        "value": 3339,
        "timestamp": new Date(2024,09,05,15,11,11)
    }
];
```

Request:

```
fetch("http://localhost:4200/api/ExternalCounters/UploadCountersHistory", {
  "headers": {
    "accept": "application/json",
    "content-type": "application/json",
    "mx-apikey": "4a74ad039ffc4f3288da7a0e03e608da",
  },
  "body": JSON.stringify(payload),
  "method": "POST"
}).then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));

```

<p class="callout info">Don't forget to change the mx-apikey header value</p>

# Update counters via API

### Overview

The Counters API provides endpoints for managing running hours (counters) within the MXSuite system. This API allows you to upload counter history records for one or more counters at a location, with proper authorization controls.

### Base URL

- api/external/Counters/

#### 1. Upload Counters History

##### Overview

The Upload Counters History endpoint allows authorized users to upload a batch of running hours (counter) history records for one or more counters at a specific location. This is typically used to record the latest readings for equipment counters.

##### Endpoint

**POST** /api/external/Counters/UploadCountersHistory

##### Authentication

All endpoints require authentication and appropriate user rights.  
This endpoint requires the UpdateRunningHours right and the location must not be read-only.  
Authorization is enforced via the MXApiPolicyAuthorize attribute.

##### Request

```json
{
  name: string,
  locationName: string,
  value: number,
  timeStamp: Date
}
```

```json
[
  {
    "Name": "Main Engine",
    "LocationName": "Neptune",
    "Value": 12345,
    "TimeStamp": "2025-06-23T14:00:00Z"
  },
  {
    "Name": "Generator 1",
    "LocationName": "Neptune",
    "Value": 6789,
    "TimeStamp": "2025-06-23T14:00:00Z"
  }
]

```

##### Error Responses

• 400 Bad Request: Invalid input data (e.g., missing required fields, invalid values).  
• 401 Unauthorized: User is not authenticated.  
• 403 Forbidden: User does not have the required rights or location is read-only.  
• 500 Internal Server Error: An unexpected error occurred.

<p class="callout warning">If there is no location with that name, the entry is ignored.  
If there is no counter with that name for that location, the entry is ignored.  
If there is already an entry added for that counter in that location with the same value and timestamp, the entry is ignored.</p>

# API for Assets Tasks

<section class="markdown-section" data-markdown-raw="

## Overview" data-section-index="2" id="bkmrk-overview"><section class="markdown-section" data-markdown-raw="

## Overview" data-section-index="2" id="bkmrk-overview-1">### Overview

The Assets APIs provides endpoints for managing assets categories, assets groups, assets tasks and sign off tasks within the MXSuite system. This API allows you to retrieve assets categories, assets groups and task sign offs, to create, update, delete and retrive assets tasks with proper authorization controls.

### Base URL


- api/external/AssetsCategories/
- api/external/AssetsGroups/
- api/external/AssetsTasks/
- api/external/AssetsTaskSignOffs/

#### 1. Assets Categories

##### Overview

</section><section class="markdown-section" data-markdown-raw="
The Maintenance Task API provides endpoints for managing maintenance tasks within the MXSuite system. This API allows you to create, update, delete, and retrieve maintenance tasks with proper authorization controls." data-section-index="3" id="bkmrk-the-maintenance-task">The Assets Category API provides endpoints for managing assets categories within the MXSuite system. This API allows you to retrieve assets categories with proper authorization controls.</section>
##### Base URL

api/external/AssetsCategories/

<section class="markdown-section" data-markdown-raw="

## Authentication" data-section-index="5" id="bkmrk-authentication">##### Authentication

</section><section class="markdown-section" data-markdown-raw="
All endpoints require authentication and appropriate user rights. The API uses token-based authentication through the `MXApiPolicyAuthorize` attribute." data-section-index="6" id="bkmrk-all-endpoints-requir">All endpoints require authentication and appropriate user rights. The API uses token-based authentication through the <span class="markdown-inline-code leading-[1.4]">MXApiPolicyAuthorize</span> attribute.</section>
### Endpoints

#### 1. Get categories

Endpoint: <section class="markdown-section" data-markdown-raw="

## Base URL
```
api/ExternalMaintenanceTask/
```" data-section-index="4">GET /api/external/AssetsCategories/Get?locationName=Neptune

##### Request:

Query parameter:  
• locationName=Neptune

##### Validations:  


- **LocationName**: Required, max length 128.

##### Response:

```json
[
  {
    "id": "b1a2c3d4-e5f6-7890-abcd-1234567890ab",
    "uniqueId": "CAT-001",
    "name": "Engine Room",
    "parentId": "c2b3a4d5-e6f7-8901-bcda-2345678901bc",
    "displayIndex": 1
  }
]

```

</section></section><section class="markdown-section" data-markdown-raw="

## Overview" data-section-index="2" id="bkmrk-2.-assets-groups-ove">### 2. Assets Groups

#### Overview

</section><section class="markdown-section" data-markdown-raw="
The Maintenance Task API provides endpoints for managing maintenance tasks within the MXSuite system. This API allows you to create, update, delete, and retrieve maintenance tasks with proper authorization controls." data-section-index="3" id="bkmrk-the-assets-groupsapi">The Assets GroupsAPI provides endpoints for managing assets groups within the MXSuite system. This API allows you to retrieve assets groups with proper authorization controls.</section><section class="markdown-section" data-markdown-raw="

## Base URL
```
api/ExternalMaintenanceTask/
```" data-section-index="4" id="bkmrk-base-url-api%2Fexterna-1">#### Base URL

api/external/AssetsGroups/

<section class="markdown-section" data-markdown-raw="

## Authentication" data-section-index="5" id="bkmrk-authentication-2">#### Authentication

</section><section class="markdown-section" data-markdown-raw="
All endpoints require authentication and appropriate user rights. The API uses token-based authentication through the `MXApiPolicyAuthorize` attribute." data-section-index="6" id="bkmrk-all-endpoints-requir-1">All endpoints require authentication and appropriate user rights. The API uses token-based authentication through the <span class="markdown-inline-code leading-[1.4]">MXApiPolicyAuthorize</span> attribute.</section><section class="markdown-section" data-markdown-raw="

## Endpoints" data-section-index="7" id="bkmrk-endpoints-1.-get-gro">### Endpoints

#### 1. Get groups

##### Endpoint:

GET /api/external/AssetsGroups/Get?categoryId=b1a2c3d4-e5f6-7890-abcd-1234567890ab

##### Request:

Query parameter:  
• categoryId=b1a2c3d4-e5f6-7890-abcd-1234567890ab

##### Response:

```json
[
  {
    "id": "d3e4f5a6-b7c8-9012-cdab-3456789012cd",
    "type": 1,
    "uniqueId": "GRP-001",
    "name": "Auxiliary Systems",
    "displayIndex":1
  }
]

```

##### Validations:  


- **CategoryId**: Required, valid GUID

</section></section><section class="markdown-section" data-markdown-raw="

## Overview" data-section-index="2" id="bkmrk-overview-5">### 3. Assets Tasks

#### Overview

</section><section class="markdown-section" data-markdown-raw="
The Maintenance Task API provides endpoints for managing maintenance tasks within the MXSuite system. This API allows you to create, update, delete, and retrieve maintenance tasks with proper authorization controls." data-section-index="3" id="bkmrk-the-assets-task-api-">The Assets Task API provides endpoints for managing maintenance tasks within the MXSuite system. This API allows you to create, update, delete, and retrieve maintenance tasks with proper authorization controls.</section>```json
{
  "GroupId":"3C160DF1-3A5C-406F-BAC6-00A4AB8C44A9",
  "GroupType":1,
  "UniqueId": "Task-001",
  "TaskName": "Oil Change - Updated",
  "Interval": 45,
  "IntervalType": 1,
  "DueDate": "2025-06-01T00:00:00Z",
  "IsCounterBased": false,
  "IsRemarkMandatory": true,
  "IsProject": false,
  "IsRecurrent": true,
  "IsFixedInterval": true,
  "IsAtServiceRequest": false,
  "IsDefect": false,
  "TaskDescription": "Updated description for oil change.",
  "MaxInterval": 90,
  "MaxIntervalType": 2,
  "DueCounters": 150,
  "Downtime": 3.0,
  "WarningInterval": 10,
  "WarningIntervalType": 1,
  "CounterName": "Main Engine",
  "DefaultEstimatedBudget": {
    "Amount": 600.0,
    "Currency": "USD" 
  },
  "Ranks": ["Rank1", "Rank2"],
  "ApproverRanks": ["Approver1"],
  "RequiresApproval": true
}

```

<section class="markdown-section" data-markdown-raw="

## Base URL
```
api/ExternalMaintenanceTask/
```" data-section-index="4" id="bkmrk-base-url-api%2Fexterna-2">#### Base URL

api/external/AssetsTasks/

<section class="markdown-section" data-markdown-raw="

## Authentication" data-section-index="5" id="bkmrk-authentication-4">#### Authentication

</section><section class="markdown-section" data-markdown-raw="
All endpoints require authentication and appropriate user rights. The API uses token-based authentication through the `MXApiPolicyAuthorize` attribute." data-section-index="6" id="bkmrk-all-endpoints-requir-2">All endpoints require authentication and appropriate user rights. The API uses token-based authentication through the <span class="markdown-inline-code leading-[1.4]">MXApiPolicyAuthorize</span> attribute.</section><section class="markdown-section" data-markdown-raw="

## Endpoints" data-section-index="7" id="bkmrk-endpoints-3">### Endpoints

</section><section class="markdown-section" data-markdown-raw="

### 1. Create Maintenance Task" data-section-index="8" id="bkmrk-1.-create-maintenanc">#### 1. Create Maintenance Task

</section><section class="markdown-section" data-markdown-raw="
Creates a new maintenance task in the system." data-section-index="9" id="bkmrk-creates-a-new-mainte">Creates a new maintenance task in the system.</section><section class="markdown-section" data-markdown-raw="
Creates a new maintenance task in the system." data-section-index="9"></section>##### <span class="markdown-bold-text">Endpoint</span>

<section class="markdown-section" data-markdown-raw="
**Endpoint:** `POST api/ExternalMaintenanceTask/Create`" data-section-index="11"><span class="markdown-inline-code leading-[1.4]">POST api/external/AssetsTasks/Create</span></section>##### <span class="markdown-bold-text">Authorization Required:</span>

<section class="markdown-section" data-markdown-raw="
**Authorization Required:**
- User must have `AddMaintenanceTask` rights
- Location must not be read-only" data-section-index="13">- User must have <span class="markdown-inline-code leading-[1.4]">AddMaintenanceTask</span> rights

##### Validations  


- **GroupId:** identifies the group together with **GroupType.** Both are ***required***
- **UniqueId**: Max length 50. Not required, but should be unique if provided.
- **TaskName**: ***Required***, max length 128, must be unique.
- **Interval**: Must be greater than 0, within limits based on **IntervalType**.
- **IntervalType, MaxIntervalType** or **WarningIntervalType**: should contain one of these values: 
    - - 1 = days
        - 2 = weeks
        - 3 = months
- **DueDate**: Must be between **01/01/1900** and **01/01/2100**.
- **TaskDescription**: ***Required*** depending on how it is set in Administration &gt; Assets &gt; Tasks &gt; Settings  
    [![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-07/scaled-1680-/NP5image.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-07/NP5image.png)
- **Ranks**: ***Required*** for tasks requiring approval.
- **RequiresApproval**: Must be false for Silver licenses.
- **ApproverRanks: *Required*** only if **RequiresApproval** is set to **true.**
- **Currency**: when provided, it should contain the currency name as seen in Administration &gt; Currencies [![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-07/scaled-1680-/dReimage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-07/dReimage.png)
- When a **rank** is provided (e.g.: **Ranks** or **ApproverRanks**), the name from Administration &gt; Ranks should be used: [![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-07/scaled-1680-/FFbimage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-07/FFbimage.png)
- **CounterName**: required when **IsCounterBased** is set to true. The values provided should be the ones defined in Symmary &gt; Counters
- **WarningInterval + WarningIntervalType**: required when **IsCounterBased** is set to true.

##### Errors

- 409 Conflict
- 404 Not Found: Task not found.
- 412 Precondition failed: Exceeding limits for intervals
- 403 Forbidden
- 400 Bad Request: Validation errors and required fields

##### Response

```json
{
  "TaskId": "1463aea5-9062-45bf-8b9c-24cc5615d467"
}

```

##### Fields details:

- General task details  
    [![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-07/scaled-1680-/image.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-07/image.png)

- Counter based tasks: [![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-07/scaled-1680-/MOPimage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-07/MOPimage.png)

- Approver ranks: [![image.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-07/scaled-1680-/ZJximage.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-07/ZJximage.png)

</section><section class="markdown-section" data-markdown-raw="
**Request Body:**" data-section-index="15" id="bkmrk-2.-update-maintenanc"><section class="markdown-section" data-markdown-raw="

### 2. Update Maintenance Task" data-section-index="19" id="bkmrk-2.-update-maintenanc-1">#### 2. Update Maintenance Task

</section><section class="markdown-section" data-markdown-raw="
Updates an existing maintenance task." data-section-index="20" id="bkmrk-updates-an-existing-">Updates an existing maintenance task.</section>##### <span class="markdown-bold-text">Endpoint</span>

<section class="markdown-section" data-markdown-raw="
**Endpoint:** `PUT api/ExternalMaintenanceTask/Update`" data-section-index="22"><span class="markdown-inline-code leading-[1.4]">PUT api/external/AssetsTasks/Update</span></section>##### <span class="markdown-bold-text">Authorization Required</span>

<section class="markdown-section" data-markdown-raw="
**Authorization Required:**
- User must have `EditMaintenanceTask` rights
- Location must not be read-only" data-section-index="24">- User must have <span class="markdown-inline-code leading-[1.4]">EditMaintenanceTask</span> rights

```json
{
  "UniqueId": "Task-001",
  "TaskName": "Oil Change - Updated",
  "TaskId": "1463aea5-9062-45bf-8b9c-24cc5615d467",
  "GroupId":"3C160DF1-3A5C-406F-BAC6-00A4AB8C44A9",
  "GroupType":1,
  "Interval": 45,
  "IntervalType": 1,
  "DueDate": "2025-06-01T00:00:00Z",
  "IsCounterBased": false,
  "IsRemarkMandatory": true,
  "IsProject": false,
  "IsRecurrent": true,
  "IsFixedInterval": true,
  "IsAtServiceRequest": false,
  "IsDefect": false,
  "TaskDescription": "Updated description for oil change.",
  "MaxInterval": 90,
  "MaxIntervalType": 2,
  "DueCounters": 150,
  "Downtime": 3.0,
  "WarningInterval": 10,
  "WarningIntervalType": 1,
  "CounterName": "Main Engine",
  "DefaultEstimatedBudget": {
    "Amount": 600.0,
    "Currency":  "EURO"
  },
  "Ranks": ["Rank1", "Rank2"],
  "ApproverRanks": ["Approver1"],
  "RequiresApproval": true
}
```

##### Validations

Same as the **Create** action.

##### Errors

- 409 Conflict
- 404 Not Found: Task not found.
- 412 Precondition failed: Exceeding limits for intervals
- 403 Forbidden
- 400 Bad Request: Validation errors and required fields

</section></section><section class="markdown-section" data-markdown-raw="
```json
{
    "locationName": "string",
    "categoryName": "string",
    "groupName": "string",
    "taskName": "string",
    "taskDescription": "string",
    "uniqueId": "string",
    "interval": number,
    "intervalType": "string",
    "warningInterval": number,
    "warningIntervalType": "string",
    "maxInterval": number,
    "maxIntervalType": "string",
    "projectTypeIds": ["string"],
    "defaultContractor": "string",
    "estimatedBudget": number,
    "currency": "string",
    "taskRanks": ["string"],
    "projectRanks": ["string"],
    "defectRanks": ["string"],
    "approverRanks": ["string"],
    "runningHours": number,
    "costCode": "string",
    "dueDate": "string"
}
```" data-section-index="16" id="bkmrk-3.-delete-maintenanc"><div class="markdown-code-outer-container"><div class="composer-message-codeblock"><div forcegap="2" forcererender="1"><div><section class="markdown-section" data-markdown-raw="

### 3. Delete Maintenance Task" data-section-index="30" id="bkmrk-3.-delete-maintenanc-1">#### 3. Delete Maintenance Task

</section><section class="markdown-section" data-markdown-raw="
Deletes a maintenance task from the system." data-section-index="31" id="bkmrk-deletes-a-maintenanc">Description: Deletes a maintenance task.</section><section class="markdown-section" data-markdown-raw="
Deletes a maintenance task from the system." data-section-index="31">- **HTTP Method**: DELETE
- There can be to types of request bodies, please see examples below

</section><section class="markdown-section" data-markdown-raw="
**Authorization Required:**
- User must have `DeleteMaintenanceTask` rights
- Location must not be read-only" data-section-index="35" id="bkmrk-authorization-requir-2">##### <span class="markdown-bold-text">Authorization Required</span>

</section><section class="markdown-section" data-markdown-raw="
**Authorization Required:**
- User must have `DeleteMaintenanceTask` rights
- Location must not be read-only" data-section-index="35">- User must have <span class="markdown-inline-code leading-[1.4]">Delete Maintenance Task</span> rights

**Request body for URL /api/external/AssetsTasks/delete?taskId={taskId}**

</section></div></div></div></div><div class="markdown-code-outer-container"><div class="composer-message-codeblock"><div forcegap="2" forcererender="1"><div><div class="anysphere-icon-button bg-[transparent] border-none text-foreground flex w-3 items-center justify-center undefined">Response</div><div class="anysphere-icon-button bg-[transparent] border-none text-foreground flex w-3 items-center justify-center undefined">• Status Code: 204 No Content  
• Body: Empty response on success.  
</div><div class="anysphere-icon-button bg-[transparent] border-none text-foreground flex w-3 items-center justify-center undefined">  
</div></div></div></div></div>##### Validations

**• taskId:** Required, must be a valid GUID.

##### Errors

• 404 Not Found: Task not found.  
• 500 Internal Server Error: Unexpected errors.

<section class="markdown-section" data-markdown-raw="

### 4. Get Maintenance Task Details" data-section-index="41" id="bkmrk-4.-get-maintenance-t">#### 4. Get

##### Endpoint

/api/external/AssetsTasks/Get**?taskId={taskId}**

##### Validations

• taskId: Required, must be a valid GUID.

#### 5. Get Multiple Tasks 

##### Endpoint

/api/external/AssetsTasks/GetTasks

##### Request JSON

```json
[
    "1463aea5-9062-45bf-8b9c-24cc5615d467",
    "7b95cb8b-0cb8-4cdf-ad3e-3285a162cbea"
]

```

##### Validations

• taskIds: Required, must be a list of valid GUIDs.

#### 6. Get Tasks Ids

 Retrieves the IDs of maintenance task/s.

</section><section class="markdown-section" data-markdown-raw="
**Endpoint:** `GET api/ExternalMaintenanceTask/Get`" data-section-index="44" id="bkmrk-endpoint%3A%C2%A0get-api%2Fex">• HTTP Method: GET  
• URL: /api/external/AssetsTasks/GetTasksIds</section><section class="markdown-section" data-markdown-raw="
**Endpoint:** `GET api/ExternalMaintenanceTask/Get`" data-section-index="44"></section>##### <span class="markdown-bold-text">Authorization Required</span>

<section class="markdown-section" data-markdown-raw="
**Authorization Required:**
- Location must not be read-only" data-section-index="46">- Location must not be read-only

</section><section class="markdown-section" data-markdown-raw="
**Query Parameters:**" data-section-index="48" id="bkmrk-request-body%3A-%7B-%C2%A0-%C2%A0-"><div><section class="markdown-section" data-markdown-raw="
**Authorization Required:**
- User must have `DeleteMaintenanceTask` rights
- Location must not be read-only" data-section-index="35" id="bkmrk-request-body%3A">##### Request body

</section></div>```json
{
  "GroupId": "d3e4f5a6-b7c8-9012-cdab-3456789012cd",
  "GroupType": 1
}

```

</section><section class="markdown-section" data-markdown-raw="
```
locationName: string
categoryName: string
groupName: string (optional)
taskName: string (optional)
```" data-section-index="49" id="bkmrk-response%E2%80%A2-%C2%A0-%C2%A0status-"><div class="markdown-code-outer-container"><div><div class="composer-message-codeblock"><div><div><div forcegap="2" forcererender="1"><div>  
</div><div>Response</div><div>• Status Code: 200 OK</div><div>  
</div></div><div>  
</div></div></div></div></div></div>```json
[
  "e4f5a6b7-c8d9-0123-dabc-4567890123de",
  "f5a6b7c8-d9e0-1234-abcd-5678901234ef"
]
```

<div class="markdown-code-outer-container"><div><div class="composer-message-codeblock"><div><div><div>Validations</div><div>• **GroupId**: Must be GUID• **GroupType**: Must be a positive number.</div><div forcegap="2" forcererender="1"><div>  
</div><div>  
</div><div>Errors</div><div>  
• 404 Not Found: Task not found.  
• 500 Internal Server Error: Unexpected errors.</div></div></div></div></div></div></div><section class="markdown-section" data-markdown-raw="

## Overview" data-section-index="2" id="bkmrk-overview-7">### 4. Assets Task Sign Offs

#### Overview

</section><section class="markdown-section" data-markdown-raw="
The Maintenance Task API provides endpoints for managing maintenance tasks within the MXSuite system. This API allows you to create, update, delete, and retrieve maintenance tasks with proper authorization controls." data-section-index="3" id="bkmrk-the-assets-task-sign">The Assets Task Sign Offs API provides endpoints for managing task sign offs within the MXSuite system. This API allows you to retrieve task sign offs with proper authorization controls.</section><section class="markdown-section" data-markdown-raw="

## Base URL
```
api/ExternalMaintenanceTask/
```" data-section-index="4" id="bkmrk-base-url-api%2Fexterna-3">#### Base URL

api/external/AssetsTaskSignOffs/

<section class="markdown-section" data-markdown-raw="

## Authentication" data-section-index="5" id="bkmrk-authentication-6">#### Authentication

</section><section class="markdown-section" data-markdown-raw="
All endpoints require authentication and appropriate user rights. The API uses token-based authentication through the `MXApiPolicyAuthorize` attribute." data-section-index="6" id="bkmrk-all-endpoints-requir-3">All endpoints require authentication and appropriate user rights. The API uses token-based authentication through the <span class="markdown-inline-code leading-[1.4]">MXApiPolicyAuthorize</span> attribute.</section><section class="markdown-section" data-markdown-raw="

## Endpoints" data-section-index="7" id="bkmrk-endpoints-1.-get-sig">### Endpoints

#### 1. Get Sign-Offs

</section></section><div class="markdown-code-outer-container"><div>  
</div><div>Endpoint</div><div>  
</div><div>/api/external/AssetsTaskSignOffs/Get</div><div>  
</div><div>**Request JSON:**</div><div>  
</div></div>```json
{
  "TaskId": "7b95cb8b-0cb8-4cdf-ad3e-3285a162cbea",
  "NumberOfSignOffs": 5
}

```

##### Validations

• TaskId: Required, must be a valid GUID.  
• NumberOfSignOffs: Optional, must be a valid number.

<div class="markdown-code-outer-container">  
</div><div class="markdown-code-outer-container" id="bkmrk--1"><div>Authorization</div><div>  
</div><div>• Ensure the user has the required rights (UserRights) for each endpoint (Add task, edit task, delete task )  
• The LocationIsNotReadOnly flag must be true for all operations.  
</div></div></section><div><section class="markdown-section" data-markdown-raw="

## Error Responses" data-section-index="51" id="bkmrk-error-responses">### Error Responses

All error responses follow this structure:

```json
{
  "Errors": [
    {
      "message": "string",
      "errorCode": number,
      "isBusinessException": false,
      "businessExceptionData": null,
      "failureServerReason": null
    }
  ]
}
```

```json
{
    "errors": [
        {
            "message": "Category name is required",
            "errorCode": 9,
            "isBusinessException": false,
            "businessExceptionData": null,
            "failureServerReason": null
        }
    ]
}
```

</section><section class="markdown-section" data-markdown-raw="
The API may return the following error responses:" data-section-index="53" id="bkmrk-the-api-may-return-t">The API may return the following error responses:</section><section class="markdown-section" data-markdown-raw="

1. **400 Bad Request**
   - When request validation fails
   - When required fields are missing
   - When field values are invalid" data-section-index="54" id="bkmrk-400-bad-request-when">1. <span class="markdown-bold-text">400 Bad Request</span>

- When request validation fails

- When required fields are missing

- When field values are invalid

</section><section class="markdown-section" data-markdown-raw="

2. **401 Unauthorized**
   - When authentication token is missing or invalid
   - When user doesn't have required rights" data-section-index="55" id="bkmrk-401-unauthorized-whe">1. <span class="markdown-bold-text">401 Unauthorized</span>

- When authentication token is missing or invalid

- When user doesn't have required rights

</section><section class="markdown-section" data-markdown-raw="

3. **403 Forbidden**
   - When location is read-only
   - When user doesn't have sufficient permissions" data-section-index="56" id="bkmrk-403-forbidden-when-l">1. <span class="markdown-bold-text">403 Forbidden</span>

- When location is read-only

- When user doesn't have sufficient permissions

</section><section class="markdown-section" data-markdown-raw="

4. **404 Not Found**
   - When requested task doesn't exist
   - When location or category doesn't exist" data-section-index="57" id="bkmrk-404-not-found-when-r">1. <span class="markdown-bold-text">404 Not Found</span>

- When requested task doesn't exist

- When location or category doesn't exist

</section><section class="markdown-section" data-markdown-raw="

5. **409 Conflict**
   - When trying to create a duplicate task
   - When task name already exists in the specified location/category/group" data-section-index="58" id="bkmrk-409-conflict-when-tr">1. <span class="markdown-bold-text">409 Conflict</span>

- When trying to create a duplicate task

- When task name already exists in the specified location/category/group

<section class="markdown-section" data-markdown-raw="

## Validation Rules" data-section-index="59" id="bkmrk-validation-rules">### Validation Rules and status codes

</section></section><div><div>0: **UnknownError** - A generic or unspecified error. Used as a fallback when the specific cause is not known. </div><div>Status: **400 Bad Request**</div>  
<div>1–3: **Duplicate/Uniqueness Errors**</div><div>• 1: **TaskNameDuplicate**: The task name already exists in the system.</div><div>• 2: **UniqueIdDuplicate**: The unique identifier for a task is already in use.</div><div>• 3: **TaskNameDuplicateInGroup**: The task name is duplicated within a specific group.</div>  
<div>Status: **409 Conflict**</div>  
<div>4–10: **Not Found Errors**</div><div>• 4: **LocationNotFound**: The specified location does not exist.</div><div>• 5: **CategoryNotFound**: The specified category does not exist.</div><div>• 6: **GroupNotFound**: The specified group does not exist.</div><div>• 7: **TaskNotFound**: The specified task does not exist.</div><div>• 8: **RankNotFound**: The specified rank does not exist.</div><div>• 9: **ApproverRankNotFound**: The specified approver rank does not exist.</div><div>• 10: **CurrencyNotFound**: The specified currency does not exist.</div>  
<div>Status: **404 Not Found**</div>  
<div>11–31: **Required Field Errors**</div><div>• 11: **LocationRequired**: Location is required but missing.</div><div>• 12: **CategoryRequired**: Category is required but missing.</div><div>• 13: **GroupRequired**: Group is required but missing.</div><div>• 14: **TaskRequired**: Task is required but missing.</div><div>• 15: **TaskNameRequired**: Task name is required but missing.</div><div>• 16: **TaskDescriptionRequired**: Task description is required but missing.</div><div>• 17: **UniqueIdRequired**: Unique ID is required but missing.</div><div>• 18: **IntervalRequired**: Interval value is required but missing.</div><div>• 19: **IntervalTypeRequired**: Interval type is required but missing.</div><div>• 20: **WarningIntervalRequired**: Warning interval is required but missing.</div><div>• 21: **WarningIntervalTypeRequired**: Warning interval type is required but missing.</div><div>• 22: **MaxIntervalTypeRequired**: Max interval type is required but missing.</div><div>• 23: **ProjectRanksRequired**: Project ranks are required but missing.</div><div>• 24: **DefectRanksRequired**: Defect ranks are required but missing.</div><div>• 25: **ApproverRanksRequired**: Approver ranks are required but missing.</div><div>• 26: **RunningHoursRequired**: Running hours are required but missing.</div><div>• 27: **DueDateRequired**: Due date is required but missing.</div><div>• 28: **TaskIdRequired**: Task ID is required but missing.</div><div>• 29: **RankRequired**: Rank is required but missing.</div><div>• 30: **RanksRequired**: Ranks are required but missing.</div><div>• 31: **TaskListEmptyOrNull**: The list of tasks is empty or null.</div><div>Status: **400 Bad Request**</div>  
<div>32–34: **Length Validation Errors**</div><div>• 32: **TaskNameTooLong**: Task name exceeds the maximum allowed length.</div><div>• 33: **LocationNameTooLong**: Location name exceeds the maximum allowed length.</div><div>• 34: **UniqueIdTooLong**: Unique ID exceeds the maximum allowed length.</div><div>Status: **400 Bad Request**</div>  
<div>35–44: **Numeric/Value Validation Errors**</div><div>• 35: **GroupTypeGreaterThanZero**: Group type must be greater than zero.</div><div>• 36: **IntervalGreaterThanZero**: Interval must be greater than zero.</div><div>• 37: **WarningIntervalGreaterThanZero**: Warning interval must be greater than zero.</div><div>• 38: **MaxIntervalGreaterThanZero**: Max interval must be greater than zero.</div><div>• 39: **IntervalExceedsLimit**: Interval exceeds the allowed limit.</div><div>• 40: **WarningIntervalExceedsLimit**: Warning interval exceeds the allowed limit.</div><div>• 41: **MaxIntervalExceedsLimit**: Max interval exceeds the allowed limit.</div><div>• 42: **EstimatedBudgetAmountGreaterThanZero**: Estimated budget must be greater than zero.</div><div>• 43: **DueRunningHoursPositiveError**: Due running hours must be positive.</div><div>• 44: **DowntimeGreaterThanZero**: Downtime must be greater than zero. Status:</div><div>• 39–41: **412 Precondition Failed**</div><div>• Others: **400 Bad Request**</div>  
<div>45–51: **Business Rule Validation Errors**</div><div>• 45: **ProjectCannotBeCounterBased**: Projects cannot be based on counters.</div><div>• 46: **TaskCompletionApprovalNotAllowed**: Task completion approval is not allowed.</div><div>• 47: **DefectRequiresOneTimeTask**: Defect tasks must be one-time tasks.</div><div>• 48: **ApproverRankNotAllowed**: Approver rank is not allowed.</div><div>• 49: **DowntimeNotAllowed**: Downtime is not allowed.</div><div>• 50: **AttachmentNotAllowed**: Attachments are not allowed.</div><div>• 51: **PriorityNotAllowed**: Priority is not allowed. Status:</div><div>• 45, 47: **412 Precondition Failed**</div><div>• 46, 48–51: **403 Forbidden**</div>  
<div>54–56: **Invalid/Out-of-Range Errors**</div><div>• 54: **WarningIntervalTypeInvalid**: Warning interval type is invalid.</div><div>• 55: **IntervalTypeInvalid**: Interval type is invalid.</div><div>• 56: **MaxIntervalTypeInvalid**: Max interval type is invalid.</div><div>• 57: **InvalidRanks**: Ranks are invalid</div>  
Status: **400 Bad Request**</div><div>  
<div>• 58: **UserIsNotAllowedOnLocation**: User is not allowed on the specified location (**400 Bad Request**)</div></div>  
</div></section></section>

# Why don't I have enough space on the disk while we are processing document packages?

Processing the document package creates a very big temp file on the disk. The temporary file is located in C:\\temp.  
  
The steps to solve this issue are the following in Windows settings:

1. Open **Component Services** from Windows Start
2. Click on **Distributed Transaction Coordinator**
3. Right click on **Local DTC**
4. Click on **Properties** (a new window will open)  
    [![Local DTC Properties.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-02/scaled-1680-/local-dtc-properties.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-02/local-dtc-properties.png)
5. Click on tab **Security**
6. Enable **Client and Administration / Transaction Manager Communication**  
    [![Local DTC Properties Security tab.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-02/scaled-1680-/local-dtc-properties-security-tab.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-02/local-dtc-properties-security-tab.png)
7. Open **SQL Server Configuration Manager** from Windows Start
8. Click on **SQL Server Services**
9. Right click on **SQL Server (MXSuite)**
10. Click on **Properties** (a new window will open)
11. Go to the tab **Filestream**
12. Enable **Filestream for transact SQL access**  
    If sharename **MXSuite** already exists, use the filestream share name **MXSuite2**  
    [![Properties instance.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-02/scaled-1680-/properties-instance.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-02/properties-instance.png)  
    [![Enable Filestream IO on instance.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-02/scaled-1680-/enable-filestream-io-on-instance.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-02/enable-filestream-io-on-instance.png)
13. Open **Services** from Windows Start
14. Restart **Distributed Transaction Coordinator**

The steps to solve the issue are the following in MXSuite:

1. Go to (C:\\Program Files\\Mastex\\Synchronization Service) **MXSuiteSync.exe.config**
2. Right click **Open**
3. Edit **connectionStrings** (The **bold** letters must be changed)  
    **New:** *&lt;add name="BaseConnectionString" connectionString="Data Source=(LOCAL)\\mxsuite;Initial Catalog=MXSuite;**Integrated Security=SSPI**;MultipleActiveResultSets=True;Connect Timeout=60"/&gt;*  
    **Old:** *&lt;add name="BaseConnectionString" connectionString="Data Source=VLMAPP01\\mxsuite;Initial Catalog=MXSuite;**UserID=MXSuiteApp;Password=MXSuiteApp@1234**;MultipleActiveResultSets=True;Connect Timeout=60"/&gt;*
4. Restart the database
5. Check the logfiles of the synchronization service to check if there are no errors

# MXSuite Excel Import – Export

In this chapter you can find technical details on preparing an import per module.

# General info

#### <span style="color: rgb(0, 65, 130);">Import field relations with general data</span>

<span lang="EN-GB" style="mso-ansi-language: EN-GB;">If you filled in the following columns in the Excel file: </span>

- <span lang="EN-GB" style="mso-ansi-language: EN-GB;">Budgetcodes </span>
- <span lang="EN-GB" style="mso-ansi-language: EN-GB;">Currencies</span>
- <span lang="EN-GB" style="mso-ansi-language: EN-GB;">Product categories</span>
- <span lang="EN-GB" style="mso-ansi-language: EN-GB;">Units</span>
- <span lang="EN-GB" style="mso-ansi-language: EN-GB;">Ranks</span>

<span lang="EN-GB" style="mso-ansi-language: EN-GB;">Then this data must exist in the Administration module</span>

<span lang="EN-GB" style="mso-ansi-language: EN-GB;">All fields in the Excel file must be in text format.  
For example, if there is a problem after importing inventory with the PartNumber (column C) change the format of this column (Right mouse click on this column, select Format Cells) to category General   
</span>

<span lang="EN-GB" style="mso-ansi-language: EN-GB;">[![Excel field format.jpg](https://docs.mxsuite.nl/uploads/images/gallery/2025-05/scaled-1680-/excel-field-format.jpg)](https://docs.mxsuite.nl/uploads/images/gallery/2025-05/excel-field-format.jpg)</span>

<p class="callout info"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">Do not change the top row of the Excel file! If this is changed, the import will fail</span></p>

# AssetsCategories

#### <span style="color: rgb(0, 65, 130);">General</span>

<span style="color: rgb(0, 0, 0);">The categories will be used to link all maintenance tasks and spare parts to a category. The sheet in the Excel file is called “AssetsCategories”</span>

#### <span style="color: rgb(0, 65, 130);">Details fields</span>

<span style="color: rgb(0, 0, 0);">To fill the Excel file correctly, make sure that all fields are filled correctly. Below are the fields listed.</span>

<table border="1" id="bkmrk-field-max-characters" style="border-collapse: collapse; width: 100%; height: 301.766px;"><colgroup><col style="width: 17.7592%;"></col><col style="width: 10.7271%;"></col><col style="width: 9.34105%;"></col><col style="width: 62.1727%;"></col></colgroup><thead><tr style="background-color: rgb(230, 126, 35); height: 46.5938px;"><td style="height: 46.5938px;">**Field**</td><td style="height: 46.5938px;">**MAX Characters**</td><td style="height: 46.5938px;">**Required**</td><td style="height: 46.5938px;">**Comment**</td></tr></thead><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><span lang="EN-GB" style="color: black; mso-color-alt: windowtext; mso-ansi-language: EN-GB;">ID</span></td><td style="height: 29.7969px;">128</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">Id number of the category</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;"><span lang="EN-GB" style="color: black; mso-color-alt: windowtext; mso-ansi-language: EN-GB;">ParentCategories</span></td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">If this category is a child of another category, enter the ID number of the parent category, followed by a space, followed by the name of the parent category</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><span lang="EN-GB" style="color: black; mso-color-alt: windowtext; mso-ansi-language: EN-GB;">Name</span></td><td style="height: 29.7969px;">128</td><td style="height: 29.7969px;">X</td><td style="height: 29.7969px;"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">Name of the category</span></td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><span lang="EN-GB" style="color: black; mso-color-alt: windowtext; mso-ansi-language: EN-GB;">IsCritical</span></td><td style="height: 29.7969px;">5</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">True or False</span></td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><span lang="EN-GB" style="color: black; mso-color-alt: windowtext; mso-ansi-language: EN-GB;">IsOperationalCritical</span></td><td style="height: 29.7969px;">5</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">True or False</span></td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><span lang="EN-GB" style="color: black; mso-color-alt: windowtext; mso-ansi-language: EN-GB;">Priority</span></td><td style="height: 29.7969px;">18.2</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">Number with 2 decimals, separated by a comma</span></td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><span lang="EN-GB" style="color: black; mso-color-alt: windowtext; mso-ansi-language: EN-GB;">Comments</span></td><td style="height: 29.7969px;">1024</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">Comment for the category</span></td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><span lang="EN-GB" style="color: black; mso-color-alt: windowtext; mso-ansi-language: EN-GB;">Defaultcounter</span></td><td style="height: 29.7969px;">128</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">Preferred counter for counter-based maintenance tasks. The name of the counter should be mentioned</span></td></tr></tbody></table>

#### <span style="color: rgb(0, 65, 130);">Example</span>

[![SheetAssetsCategories.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-05/scaled-1680-/sheetassetscategories.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-05/sheetassetscategories.png)

# AssetsCategoriesProperties

<span lang="EN-GB" style="mso-ansi-language: EN-GB;">This part is used to load all Category Attributes in MXSuite. The sheet in the Excel file is called “AssetsCategoriesProperties”.</span>

#### <span lang="EN-GB" style="color: rgb(0, 65, 130);">Details fields</span>

To fill the Excel file correctly, make sure that all fields are filled correctly. Below are the fields listed.

<table border="1" id="bkmrk-field-max-characters" style="border-collapse: collapse; width: 100%; height: 309.36px;"><colgroup><col style="width: 19.0703%;"></col><col style="width: 10.8462%;"></col><col style="width: 9.0584%;"></col><col style="width: 61.025%;"></col></colgroup><thead><tr style="background-color: rgb(230, 126, 35); height: 46.5938px;"><td style="height: 46.5938px;">**Field**  
</td><td style="height: 46.5938px;">**MAX Characters**</td><td style="height: 46.5938px;">Required</td><td style="height: 46.5938px;">Comment</td></tr></thead><tbody><tr style="height: 80.1875px;"><td style="height: 80.1875px;">ParentCategories</td><td style="height: 80.1875px;">  
</td><td style="height: 80.1875px;">X</td><td style="height: 80.1875px;">Show the category path of the category that this entity needs to be connected to. If this is linked to a subcategory, enter the ID + name of the main category, followed by a space, &gt; , and a space, followed by the ID + name of the subcategory</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Name</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">X</td><td style="height: 29.7969px;">The Name of the attribute</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Value</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">The Value of the attribute</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Type</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">X</td><td style="height: 29.7969px;">The Type of the attribute, the default value is None</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">ShowOnServiceOrders</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">If this information must be printed on the Service order, set the value to True; otherwise, set it to False</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">ShowOnProductOrders</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">If this information must be printed on the Product order, set the value to True; otherwise, set it to False</td></tr></tbody></table>

#### <span style="color: rgb(0, 65, 130);">Example</span>

<span style="color: rgb(0, 65, 130);">[![SheetAssetsCategoriesProperties.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-05/scaled-1680-/sheetassetscategoriesproperties.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-05/sheetassetscategoriesproperties.png)</span>

# Counters

#### <span style="color: rgb(0, 65, 130);">General</span>

<span lang="EN-GB" style="mso-ansi-language: EN-GB;">This part is used to load all counters in MXSuite. The sheet in the Excel file is called “Counters”.</span>

#### <span lang="EN-GB" style="color: rgb(0, 65, 130);">Details fields</span>

<span lang="EN-GB" style="mso-ansi-language: EN-GB;">To fill the Excel file correctly, make sure that all fields are filled correctly. Below are the fields listed.</span>

<table border="1" id="bkmrk-field-max-characters" style="border-collapse: collapse; width: 100%; height: 247.563px;"><colgroup><col style="width: 17.64%;"></col><col style="width: 10.6079%;"></col><col style="width: 9.77283%;"></col><col style="width: 61.9793%;"></col></colgroup><thead><tr style="background-color: rgb(230, 126, 35); height: 46.5938px;"><td style="height: 46.5938px;">**Field**</td><td style="height: 46.5938px;">**MAX Characters**</td><td style="height: 46.5938px;"> **Required**</td><td style="height: 46.5938px;">**Comment**</td></tr></thead><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Name</td><td style="height: 29.7969px;">128</td><td style="height: 29.7969px;">X</td><td style="height: 29.7969px;">Name of the Counter</td></tr><tr style="height: 48.1875px;"><td style="height: 48.1875px;">Unit</td><td style="height: 48.1875px;">128</td><td style="height: 48.1875px;">X</td><td style="height: 48.1875px;"><span lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-GB; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">The unit name should exactly match the<u> name</u> of the Unit as known in Administration -&gt; Units</span></td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">AveragePerWeek</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">X</td><td style="height: 46.5938px;">The maximum average per week for the selected unit. For unit Running hours, the average must be set to 168</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">ActualCounterValue</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">X</td><td style="height: 29.7969px;">The actual counter value for the imported counter machine</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">ParentCounter</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">If the counter will use the input from another counter, specify here the countername</td></tr></tbody></table>

#### <span style="color: rgb(0, 65, 130);">Example</span>

<span style="color: rgb(0, 65, 130);">[![SheetCounters.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-05/scaled-1680-/sheetcounters.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-05/sheetcounters.png)</span>

# AssetsTasksGroups

#### <span style="color: rgb(0, 65, 130);">General</span>

<span lang="EN-GB" style="mso-ansi-language: EN-GB;">All maintenance tasks are linked to a maintenance job plan. The job plan is linked to a category. So the maintenance job plans are between the categories and maintenance tasks.</span>

<span lang="EN-GB" style="mso-ansi-language: EN-GB;">The sheet in the Excel file is called “AssetsTasksGroups”.</span>

#### <span style="color: rgb(0, 65, 130);">Details fields</span>

<span style="color: rgb(0, 0, 0);">To fill the Excel file correctly, make sure that all fields are filled correctly. Below are the fields listed.</span>

<table border="1" id="bkmrk-field-max-characters" style="border-collapse: collapse; width: 100%; height: 165.781px;"><colgroup><col style="width: 15.2563%;"></col><col style="width: 10.6079%;"></col><col style="width: 9.77311%;"></col><col style="width: 64.3628%;"></col></colgroup><thead><tr style="height: 46.5938px; background-color: rgb(230, 126, 35);"><td style="height: 46.5938px;">**Field**</td><td style="height: 46.5938px;">**MAX Characters**</td><td style="height: 46.5938px;"> **Required**</td><td style="height: 46.5938px;">**Comment**</td></tr></thead><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">ParentCategories</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">X</td><td style="height: 29.7969px;">Show the category path of the category that this entity needs to be connected to. If this is linked to a subcategory, enter the ID + name of the main category, followed by a space, &gt; , and a space, followed by the ID + name of the subcategory</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Name</td><td style="height: 29.7969px;">128</td><td style="height: 29.7969px;">X</td><td style="height: 29.7969px;">Name of the group</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">ID</td><td style="height: 29.7969px;">128</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">ID number of the group</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">CostCode</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">The Costcode name should exactly match the<u> name</u> of the Budgetcode as known in Administration -&gt; Budgetcodes</td></tr></tbody></table>

#### <span style="color: rgb(0, 65, 130);">Example</span>

<span style="color: rgb(0, 65, 130);">[![SheetAssetsTasksGroups.png](https://docs.mxsuite.nl/uploads/images/gallery/2025-05/scaled-1680-/sheetassetstasksgroups.png)](https://docs.mxsuite.nl/uploads/images/gallery/2025-05/sheetassetstasksgroups.png)</span>

# AssetsTasks

#### <span style="color: rgb(0, 65, 130);">General</span>

This part is used to load all tasks in MXSuite. The sheet in the Excel file is called “AssetsTasks”.

#### <span lang="EN-GB" style="color: rgb(0, 65, 130);">Details fields</span>

<span lang="EN-GB">To fill the Excel file correctly, make sure that all fields are filled correctly. Below are the fields listed.</span>

<table border="1" id="bkmrk-field-max-characters" style="border-collapse: collapse; width: 100%; height: 2004.24px;"><colgroup><col style="width: 25.5066%;"></col><col style="width: 10.7271%;"></col><col style="width: 10.0119%;"></col><col style="width: 53.7545%;"></col></colgroup><thead><tr style="background-color: rgb(230, 126, 35); height: 46.5938px;"><td style="height: 46.5938px;">Field</td><td style="height: 46.5938px;">MAX Characters</td><td style="height: 46.5938px;"> Required</td><td style="height: 46.5938px;">Comment</td></tr></thead><tbody><tr style="height: 80.1875px;"><td style="height: 80.1875px;">ParentCategories</td><td style="height: 80.1875px;">  
</td><td style="height: 80.1875px;">X</td><td style="height: 80.1875px;">Show the category path of the category that this entity needs to be connected to. If this is linked to a subcategory, enter the ID + name of the main category, followed by a space, &gt; , and a space, followed by the ID + name of the subcategory</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">AssetsTasksGroupName</td><td style="height: 29.7969px;">128</td><td style="height: 29.7969px;">X</td><td style="height: 29.7969px;">Name of the group which the maintenance task is connected. </td></tr><tr style="height: 115.375px;"><td style="height: 115.375px;">TaskType</td><td style="height: 115.375px;">9</td><td style="height: 115.375px;">X</td><td style="height: 115.375px;"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">Type of the interval of the maintenance task. </span>

<span lang="EN-GB" style="mso-ansi-language: EN-GB;">2 options are possible: </span>

<span lang="EN-GB" style="mso-ansi-language: EN-GB;">- Recurring: This is used if the task needs to be done according to a given interval</span>

<span lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-GB; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">- OneTime: This is used if the task needs to be done one time. There is no interval connected</span></td></tr><tr style="height: 30.5938px;"><td style="height: 30.5938px;">ID</td><td style="height: 30.5938px;">128</td><td style="height: 30.5938px;">  
</td><td style="height: 30.5938px;"><span lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-GB; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">ID number of the maintenance task</span></td></tr><tr style="height: 30.5938px;"><td style="height: 30.5938px;">TaskName</td><td style="height: 30.5938px;">128</td><td style="height: 30.5938px;">X</td><td style="height: 30.5938px;">The name <span lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-GB; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">of the maintenance task</span></td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">UseTaskOnce</td><td style="height: 46.5938px;">5</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">If the TaskType is set to Onetime, this setting must be set to True   
Otherwise, this setting must be set to False  
</td></tr><tr style="height: 63.3906px;"><td style="height: 63.3906px;">IsDefect</td><td style="height: 63.3906px;">5</td><td style="height: 63.3906px;">  
</td><td style="height: 63.3906px;">Only if the Tasktype is set to Onetime, and the UseTaskOnce is set to True, can this setting be set to True if the task is a defect. Usually, this setting is False.</td></tr><tr style="height: 96.9844px;"><td style="height: 96.9844px;">IsCounterBased</td><td style="height: 96.9844px;">5</td><td style="height: 96.9844px;">  
</td><td style="height: 96.9844px;">If the maintenance task is based on running hours, this must be set to True; otherwise, fill in the option False.  
If the maintenance task is both based on running hours and time-based, set this to True. In column Duedate, fill in the proper date, and fill in column DueRunningHours, the due running hours value  
</td></tr><tr style="height: 80.1875px;"><td style="height: 80.1875px;">IsRemarkMandatory</td><td style="height: 80.1875px;">  
</td><td style="height: 80.1875px;">  
</td><td style="height: 80.1875px;">If a remark is mandatory during marking a maintenance task as done, set this to True  
If no remark is needed during marking a maintenance task as done, set this to False  
</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">CostCode</td><td style="height: 46.5938px;">50</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">The Costcode name should exactly match the name of the Budgetcode as known in Administration -&gt; Budgetcodes</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">IsFixedInterval</td><td style="height: 46.5938px;">5</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">If the maintenance task has a fixed interval, set this option to True. Otherwise, fill in option False </td></tr><tr style="height: 96.9844px;"><td style="height: 96.9844px;">IntervalValue</td><td style="height: 96.9844px;">  
</td><td style="height: 96.9844px;">  
</td><td style="height: 96.9844px;">If the task has a time interval, fill in here the value of days/weeks/months  
If the task has a counter interval, fill in the value of the counters  
If the task is a one-time task, leave this field empty  
If the task is a docking task, leave this field empty  
</td></tr><tr style="height: 130.547px;"><td style="height: 130.547px;">IntervalType</td><td style="height: 130.547px;">6</td><td style="height: 130.547px;">X\*</td><td style="height: 130.547px;">\* In case that the task is not a counter-based task or the field IsDocking = false, this field is mandatory  
Fill in here the type of interval. Possible values are:  
- Days  
- Weeks  
- Months  
</td></tr><tr style="height: 81.7812px;"><td style="height: 81.7812px;">DueDate</td><td style="height: 81.7812px;">19</td><td style="height: 81.7812px;">X\*</td><td style="height: 81.7812px;"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">\* In case that the task is not a counter-based task or the field IsDocking = false, this field is mandatory.</span>

<span lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-GB; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">The due date of the task. Written in the date-time format of the PC that imports the file. The default Dutch format is D-M-YYYY HH:MM:ss</span></td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">MaximumIntervalValue</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">If the task is based on counters and time-based, fill here the number of days/weeks/months</td></tr><tr style="height: 113.781px;"><td style="height: 113.781px;">MaximumIntervalType</td><td style="height: 113.781px;">6</td><td style="height: 113.781px;">X\*</td><td style="height: 113.781px;">\* In case a value is entered in MaximumIntervalValue, this field is mandatory.  
Fill in here the type of interval. Possible values are:  
- Days  
- Weeks  
- Months  
</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">RunningHoursMachine</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">X\*</td><td style="height: 46.5938px;">\*In case the task is counter-based, this field is mandatory.

Fill in the name of the related counter machine here.

</td></tr><tr style="height: 65.7812px;"><td style="height: 65.7812px;">DueRunningHours</td><td style="height: 65.7812px;">  
</td><td style="height: 65.7812px;">X\*</td><td style="height: 65.7812px;"><span lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-GB; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">\*In case the task is counter-based, this field is mandatory. </span>

<span lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-GB; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Fill in here the value of the counter when the task becomes due. A numeric value is accepted without decimals.</span>

</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">IsProject</td><td style="height: 46.5938px;">5</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">Is the task is related to a project, set the value to True, otherwise set to False</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">DownTime</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">The time needed to finish the task in hours. Only a numeric value without decimals is accepted.</td></tr><tr style="height: 80.1875px;"><td style="height: 80.1875px;">WarningPeriod</td><td style="height: 80.1875px;">  
</td><td style="height: 80.1875px;">  
</td><td style="height: 80.1875px;">Here, the warning period as a numeric field in combination with the field WarningType.  
For example, WarningPeriod 7 and WarningType 1 mean that the task becomes due 7 days before the due date; in this case, fill in number 7.  
</td></tr><tr style="height: 80.1875px;"><td style="height: 80.1875px;">WarningType</td><td style="height: 80.1875px;">1</td><td style="height: 80.1875px;">  
</td><td style="height: 80.1875px;">Fill in here the type of interval. Possible values are:  
Value 1 for the interval in days  
Value 2 for the interval in weeks  
Value 3 for the interval in months  
</td></tr><tr style="height: 80.1875px;"><td style="height: 80.1875px;">LongDescription</td><td style="height: 80.1875px;">  
</td><td style="height: 80.1875px;">  
</td><td style="height: 80.1875px;">The long task description where the procedures can be described how to perform the task.  
With Alt-Enter in the Excel sheet, the text starts on a new line.  
**Note:** layout formatting is not possible via the import from Excel.  
</td></tr><tr style="height: 96.9844px;"><td style="height: 96.9844px;">TaskCompletionNeedsApproval</td><td style="height: 96.9844px;">5</td><td style="height: 96.9844px;">  
</td><td style="height: 96.9844px;">If the task needs to be approved by another rank, set the value to True. If the task does not need to be approved by another rank, set the value to False.

**Note:** The approver rank can be entered in Sheet: AssetsTasksApproversRanks

</td></tr><tr style="height: 80.1875px;"><td style="height: 80.1875px;">IsAttachmentMandatory</td><td style="height: 80.1875px;">5</td><td style="height: 80.1875px;">  
</td><td style="height: 80.1875px;">If an attachment is required when completing the task, set this value to True

If an attachment is not required when completing the task, set this value to False

</td></tr><tr style="height: 197.766px;"><td style="height: 197.766px;">Priority</td><td style="height: 197.766px;">  
</td><td style="height: 197.766px;">  
</td><td style="height: 197.766px;">The possible priorities are:

\- Top priority  
\- Urgent  
\- High  
\- Normal  
\- Low  
\- Not prioritized

  
The priorities can be managed in Administration -&gt; Lookups -&gt; Task priority

</td></tr></tbody></table>

# AssetsTasksRanks

#### <span style="color: rgb(0, 65, 130);">General</span>

<span style="color: rgb(0, 0, 0);">This part is used to link ranks to a task. The sheet in the Excel file is called “AssetsTasksRanks”.</span>

#### <span style="color: rgb(0, 65, 130);">Details fields</span>

<span style="color: rgb(0, 0, 0);">To fill the Excel file correctly, ensure that all fields are completed accurately. Below are the fields listed.</span>

<table border="1" id="bkmrk-field-max-characters" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; width: 100%; height: 216.969px;"><colgroup><col style="width: 25.5066%;"></col><col style="width: 10.7271%;"></col><col style="width: 10.0119%;"></col><col style="width: 53.7545%;"></col></colgroup><thead><tr style="background-color: rgb(230, 126, 35); height: 46.5938px;"><td style="height: 46.5938px;">Field</td><td style="height: 46.5938px;">MAX Characters</td><td style="height: 46.5938px;"> Required</td><td style="height: 46.5938px;">Comment</td></tr></thead><tbody><tr style="height: 80.1875px;"><td style="height: 80.1875px;">ParentCategories</td><td style="height: 80.1875px;">  
</td><td style="height: 80.1875px;">X</td><td style="height: 80.1875px;">Show the category path of the category that this entity needs to be connected to. If this is linked to a subcategory, enter the ID + name of the main category, followed by a space, &gt; , and a space, followed by the ID + name of the subcategory</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">AssetsTasksGroupName</td><td style="height: 29.7969px;">128</td><td style="height: 29.7969px;">X</td><td style="height: 29.7969px;">Name of the group to which the maintenance task is connected. </td></tr><tr style="height: 30.5938px;"><td style="height: 30.5938px;">TaskName</td><td style="height: 30.5938px;">128</td><td style="height: 30.5938px;">X</td><td style="height: 30.5938px;">The name <span lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-GB; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">of the maintenance task</span></td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">RankName</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">X</td><td style="height: 29.7969px;">The name of the rank that must be linked to the task</td></tr></tbody></table>

<p class="callout info">If more ranks must be linked to one task, add per rank a new line to be linked to the task.</p>

# AssetsTasksApproversRanks

#### <span style="color: rgb(0, 65, 130);">General</span>

<span style="color: rgb(0, 0, 0);">This part is used to link the ranks that must approve the task signoff. The sheet in the Excel file is called “AssetsTasksApproversRanks”.</span>

#### <span style="color: rgb(0, 65, 130);">Details fields</span>

<span style="color: rgb(0, 0, 0);">To fill the Excel file correctly, ensure that all fields are completed accurately. Below are the fields listed.</span>

<table border="1" id="bkmrk-field-max-characters" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; width: 100%; height: 216.969px;"><colgroup><col style="width: 25.5066%;"></col><col style="width: 10.7271%;"></col><col style="width: 10.0119%;"></col><col style="width: 53.7545%;"></col></colgroup><thead><tr style="background-color: rgb(230, 126, 35); height: 46.5938px;"><td style="height: 46.5938px;">Field</td><td style="height: 46.5938px;">MAX Characters</td><td style="height: 46.5938px;"> Required</td><td style="height: 46.5938px;">Comment</td></tr></thead><tbody><tr style="height: 80.1875px;"><td style="height: 80.1875px;">ParentCategories</td><td style="height: 80.1875px;">  
</td><td style="height: 80.1875px;">X</td><td style="height: 80.1875px;">Show the category path of the category that this entity needs to be connected to. If this is linked to a subcategory, enter the ID + name of the main category, followed by a space, &gt;, and a space, followed by the ID + name of the subcategory</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">AssetsTasksGroupName</td><td style="height: 29.7969px;">128</td><td style="height: 29.7969px;">X</td><td style="height: 29.7969px;">Name of the group to which the maintenance task is connected. </td></tr><tr style="height: 30.5938px;"><td style="height: 30.5938px;">TaskName</td><td style="height: 30.5938px;">128</td><td style="height: 30.5938px;">X</td><td style="height: 30.5938px;">The name <span lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-GB; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">of the maintenance task</span></td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">RankName</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">X</td><td style="height: 29.7969px;">The name of the rank that must approve the task signoff </td></tr></tbody></table>

<p class="callout info">If more ranks can approve the task signoff, add a new line per rank to be linked to the task.</p>

# AssetsTasksParts

#### <span style="color: rgb(0, 65, 130);">General</span>

<span style="color: rgb(0, 0, 0);">This part is used to link the parts that are used during the task sign-off. The sheet in the Excel file is called “AssetsTasksParts”.</span>

#### <span style="color: rgb(0, 65, 130);">Details fields</span>

<span style="color: rgb(0, 0, 0);">To fill the Excel file correctly, ensure that all fields are completed accurately. Below are the fields listed.</span>

<table border="1" id="bkmrk-field-max-characters" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; width: 100%; height: 216.969px;"><colgroup><col style="width: 25.5066%;"></col><col style="width: 10.7271%;"></col><col style="width: 10.0119%;"></col><col style="width: 53.7545%;"></col></colgroup><thead><tr style="background-color: rgb(230, 126, 35); height: 46.5938px;"><td style="height: 46.5938px;">Field</td><td style="height: 46.5938px;">MAX Characters</td><td style="height: 46.5938px;"> Required</td><td style="height: 46.5938px;">Comment</td></tr></thead><tbody><tr style="height: 80.1875px;"><td style="height: 80.1875px;">ParentCategories</td><td style="height: 80.1875px;">  
</td><td style="height: 80.1875px;">X</td><td style="height: 80.1875px;">Show the category path of the category that this entity needs to be connected to. If this is linked to a subcategory, enter the ID + name of the main category, followed by a space, &gt;, and a space, followed by the ID + name of the subcategory</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">AssetsTasksGroupName</td><td style="height: 29.7969px;">128</td><td style="height: 29.7969px;">X</td><td style="height: 29.7969px;">Name of the group to which the maintenance task is connected. </td></tr><tr style="height: 30.5938px;"><td style="height: 30.5938px;">TaskName</td><td style="height: 30.5938px;">128</td><td style="height: 30.5938px;">X</td><td style="height: 30.5938px;">The name <span lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-GB; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">of the maintenance task</span></td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Owncode</td><td style="height: 29.7969px;">50</td><td style="height: 29.7969px;">X</td><td style="height: 29.7969px;">The unique number of the part that will be linked to the task</td></tr><tr><td>Quantity</td><td>  
</td><td>X</td><td>The quantity of the part that will be used during the task sign-off</td></tr><tr><td>CostCode</td><td>50</td><td>  
</td><td><span lang="EN-GB" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-GB; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Lookup to the Cost Codes as defined in the tab Administration. This should exactly match the <u>name</u> of the cost code.</span></td></tr></tbody></table>

# C-drive full during synchronisation

During the creation of a big synchronisation package, it could happen that a lot of files are created in the folder C:/Windows/SystemTemp. If there is not enough space on the disk, the sync package cannot be created. Therefore, it could be useful to move that folder to another location.

Here is how to do that.

1. Log in using a Windows administrator account on the server.
2. Create a folder named "SystemTemp" on a drive with sufficient space.
3. Search for "This PC".
4. Right-click Properties.
5. Select "Advanced Settings".
6. Click on "Environment Variables".
7. Click on "New" under <u>system</u> variables.
8. Enter "SYSTEMTEMP" for the variable name and the location of the folder you created earlier.  
      
    ![clipboard_e7e7995828250a69535467641b68d488d.png](https://support.waters.com/@api/deki/files/34349/clipboard_e7e7995828250a69535467641b68d488d.png?revision=1&size=bestfit&width=552&height=521)
9. Click OK, and then reboot the server.
10. Restart the client computer and attempt to create the sync package again.

# The specified network password is not correct.

When login to MXSuite the following error message <span class="HwtZe" lang="en"><span class="jCAhz ChMk0b"><span class="ryNqvb">appear</span></span></span> : \[System.Security.Cryptography.CryptographicException\] The specified network password is not correct.  
  
[![Error.png](https://docs.mxsuite.nl/uploads/images/gallery/2026-03/scaled-1680-/error.png)](https://docs.mxsuite.nl/uploads/images/gallery/2026-03/error.png)

**Solution**

- Go to folder C:\\ProgramData\\Microsoft\\Crypto\\RSA\\
- Right mouse click on the folder MachineKeys and choose **Properties**
- Go to the tab **Security** and click **Edit**
- Check if **IIS\_IUSRS** has Full control permission

***In case you don't see the user IIS\_IUSRS, please follow the steps below:***

- Click **Add** and search for user: **IIS\_IUSRS** and click on **OK**
- Give the user **IIS\_IUSRS** Full control rights on the folder MachineKeys  
    [![settings.png](https://docs.mxsuite.nl/uploads/images/gallery/2026-03/scaled-1680-/settings.png)](https://docs.mxsuite.nl/uploads/images/gallery/2026-03/settings.png)
- Click **OK** and **OK**
- 

# Unable to upload big files

It can happen that MXSuite fails when uploading a file larger than 30 MB.   
When you expect that MXSuite will upload the file, the upload will never happen.

This can be related to a missing setting in the file: applicationHost.config.  
You can find this file in C:\\Windows\\System32\\inetsrv\\config  
  
The following line must be added:

```json
<requestLimits maxAllowedContentLength="262144000" />
```

This line must be added between

```json
 <security> 
 <requestFiltering>
[Other commands]

 </requestFiltering> 
 </Security>
```

**Example below:**

```json

                    <add fileExtension=".refresh" allowed="false" />
                    <add fileExtension=".compiled" allowed="false" />
                    <add fileExtension=".msgx" allowed="false" />
                    <add fileExtension=".vsdisco" allowed="false" />
                    <add fileExtension=".rules" allowed="false" />
                </fileExtensions>
                <verbs allowUnlisted="true" applyToWebDAV="true" />
                <hiddenSegments applyToWebDAV="true">
                    <add segment="web.config" />
                    <add segment="bin" />
                    <add segment="App_code" />
                    <add segment="App_GlobalResources" />
                    <add segment="App_LocalResources" />
                    <add segment="App_WebReferences" />
                    <add segment="App_Data" />
                    <add segment="App_Browsers" />
                </hiddenSegments>
            </requestFiltering>
            <requestLimits maxAllowedContentLength="262144000" />
        </security>
```

After the file is saved, a restart of the IIS Server is required.

<p class="callout info">Administrative rights of this folder must be present for the current user</p>