# MSSQL in a function

**URL:** <https://discourse.nodered.org/t/mssql-in-a-function/73878>\
**Category:** General\
**Tags:** database, function-node\
**Created:** [18 January 2023 18:19 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878 "2023-01-18T18:19:11Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![pkdata-pkthedj](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/pkdata-pkthedj/32/74598_2.png) [@pkdata-pkthedj](https://discourse.nodered.org/u/pkdata-pkthedj)\
**Post date:** [18 January 2023 18:19 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/1 "2023-01-18T18:19:11Z")

</div>

Can anyone figure out the problem here

```auto
var endDate = flow.get("endDate") || false;
    //var endTime = flow.get("endTime") || false;

    // check if date range is correct
    if (startDate && endDate && new Date(endDate) >= new Date(startDate))
    {
        msg.topic = "SELECT * FROM [Dev].[dbo].[MQTTData] WHERE Timestamp BETWEEN 'startDate' AND 'endDate' ";
        return msg;
    } else 

```

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [18 January 2023 18:39 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/2 "2023-01-18T18:39:15Z")

</div>

> [@pkdata-pkthedj](#):
>
> ```auto
> if (startDate && endDate && new Date(endDate) >= new Date(startDate))
> {
> 
> ```

where is startDate?

---

<div class="post-metadata">

**Author:** ![pkdata-pkthedj](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/pkdata-pkthedj/32/74598_2.png) [@pkdata-pkthedj](https://discourse.nodered.org/u/pkdata-pkthedj)\
**Post date:** [18 January 2023 18:42 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/3 "2023-01-18T18:42:43Z")

</div>

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/e/d/ed89181990200a2e2fc5318287b47c266d56f1ae.png)

---

<div class="post-metadata">

**Author:** ![pkdata-pkthedj](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/pkdata-pkthedj/32/74598_2.png) [@pkdata-pkthedj](https://discourse.nodered.org/u/pkdata-pkthedj)\
**Post date:** [18 January 2023 18:44 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/4 "2023-01-18T18:44:31Z")

</div>

tryonemoretime

---

<div class="post-metadata">

**Author:** ![pkdata-pkthedj](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/pkdata-pkthedj/32/74598_2.png) [@pkdata-pkthedj](https://discourse.nodered.org/u/pkdata-pkthedj)\
**Post date:** [18 January 2023 18:49 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/5 "2023-01-18T18:49:46Z")

</div>

```auto
[
    {
        "id": "2f8bfd2a84ecd1ae",
        "type": "tab",
        "label": "Flow 8",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "ddf7bdc1ff21ce85",
        "type": "inject",
        "z": "2f8bfd2a84ecd1ae",
        "name": "query",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "query",
        "payload": "",
        "payloadType": "date",
        "x": 170,
        "y": 360,
        "wires": [
            [
                "5c1e10ae15dfe082",
                "a51468253ed967fb"
            ]
        ]
    },
    {
        "id": "c548e007839fafe8",
        "type": "debug",
        "z": "2f8bfd2a84ecd1ae",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 1050,
        "y": 360,
        "wires": []
    },
    {
        "id": "eac240528b89c9a5",
        "type": "MSSQL",
        "z": "2f8bfd2a84ecd1ae",
        "mssqlCN": "df8c0b88.91b0a8",
        "name": "",
        "outField": "payload",
        "returnType": 0,
        "throwErrors": 1,
        "query": "",
        "modeOpt": "queryMode",
        "modeOptType": "query",
        "queryOpt": "payload",
        "queryOptType": "editor",
        "paramsOpt": "queryParams",
        "paramsOptType": "none",
        "rows": "rows",
        "rowsType": "msg",
        "params": [],
        "x": 880,
        "y": 360,
        "wires": [
            [
                "c548e007839fafe8",
                "b36ee57218125cf6"
            ]
        ]
    },
    {
        "id": "5c1e10ae15dfe082",
        "type": "change",
        "z": "2f8bfd2a84ecd1ae",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "download",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 310,
        "y": 460,
        "wires": [
            [
                "a51468253ed967fb"
            ]
        ]
    },
    {
        "id": "9a3d637577bf2de2",
        "type": "change",
        "z": "2f8bfd2a84ecd1ae",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "startDate",
                "pt": "flow",
                "to": "$moment($$.payload).format(\"YYYY-MM-DD HH:mm:ss\")",
                "tot": "jsonata"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 670,
        "y": 100,
        "wires": [
            [
                "b26398ef742a467e",
                "a51468253ed967fb"
            ]
        ]
    },
    {
        "id": "3f08de5283efc210",
        "type": "change",
        "z": "2f8bfd2a84ecd1ae",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "endDate",
                "pt": "flow",
                "to": "$moment($$.payload).format(\"YYYY-MM-DD HH:mm:ss\")",
                "tot": "jsonata"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 670,
        "y": 160,
        "wires": [
            [
                "17d6e9f449142773",
                "a51468253ed967fb"
            ]
        ]
    },
    {
        "id": "b26398ef742a467e",
        "type": "debug",
        "z": "2f8bfd2a84ecd1ae",
        "name": "debug 21",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 860,
        "y": 100,
        "wires": []
    },
    {
        "id": "17d6e9f449142773",
        "type": "debug",
        "z": "2f8bfd2a84ecd1ae",
        "name": "debug 22",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 860,
        "y": 160,
        "wires": []
    },
    {
        "id": "8b58a03ce3f4a568",
        "type": "moment",
        "z": "2f8bfd2a84ecd1ae",
        "name": "",
        "topic": "",
        "input": "payload",
        "inputType": "msg",
        "inTz": "Europe/Copenhagen",
        "adjAmount": "1",
        "adjType": "hours",
        "adjDir": "subtract",
        "format": "YYYY-MM-DD HH:mm:ss",
        "locale": "dk",
        "output": "payload",
        "outputType": "msg",
        "outTz": "Europe/Copenhagen",
        "x": 420,
        "y": 160,
        "wires": [
            [
                "3f08de5283efc210"
            ]
        ]
    },
    {
        "id": "c6077467d4fb818a",
        "type": "moment",
        "z": "2f8bfd2a84ecd1ae",
        "name": "",
        "topic": "",
        "input": "payload",
        "inputType": "msg",
        "inTz": "Europe/Copenhagen",
        "adjAmount": "1",
        "adjType": "hours",
        "adjDir": "subtract",
        "format": "YYYY-MM-DD HH:mm:ss",
        "locale": "dk",
        "output": "payload",
        "outputType": "msg",
        "outTz": "Europe/Copenhagen",
        "x": 420,
        "y": 100,
        "wires": [
            [
                "9a3d637577bf2de2"
            ]
        ]
    },
    {
        "id": "f8b2b11cb7b65ea5",
        "type": "inject",
        "z": "2f8bfd2a84ecd1ae",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 220,
        "y": 100,
        "wires": [
            [
                "c6077467d4fb818a"
            ]
        ]
    },
    {
        "id": "6c9e2c0d8381d677",
        "type": "inject",
        "z": "2f8bfd2a84ecd1ae",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 220,
        "y": 160,
        "wires": [
            [
                "8b58a03ce3f4a568"
            ]
        ]
    },
    {
        "id": "9a7533924fe3e985",
        "type": "ui_text_input",
        "z": "2f8bfd2a84ecd1ae",
        "name": "",
        "label": "Start Time",
        "tooltip": "",
        "group": "e44f634b20faeabb",
        "order": 6,
        "width": 6,
        "height": 2,
        "passthru": true,
        "mode": "datetime-local",
        "delay": "0",
        "topic": "topic",
        "sendOnBlur": true,
        "className": "",
        "topicType": "msg",
        "x": 170,
        "y": 220,
        "wires": [
            [
                "c6077467d4fb818a",
                "841e01466cb98a6c"
            ]
        ]
    },
    {
        "id": "2d7bf953862cd85b",
        "type": "ui_text_input",
        "z": "2f8bfd2a84ecd1ae",
        "name": "",
        "label": "End Time",
        "tooltip": "",
        "group": "e44f634b20faeabb",
        "order": 8,
        "width": 6,
        "height": 2,
        "passthru": true,
        "mode": "datetime-local",
        "delay": "0",
        "topic": "endTime",
        "sendOnBlur": true,
        "className": "",
        "topicType": "msg",
        "x": 160,
        "y": 280,
        "wires": [
            [
                "8b58a03ce3f4a568",
                "5356411ef9be38e2"
            ]
        ]
    },
    {
        "id": "841e01466cb98a6c",
        "type": "debug",
        "z": "2f8bfd2a84ecd1ae",
        "name": "debug 23",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 400,
        "y": 220,
        "wires": []
    },
    {
        "id": "5356411ef9be38e2",
        "type": "debug",
        "z": "2f8bfd2a84ecd1ae",
        "name": "debug 24",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 400,
        "y": 280,
        "wires": []
    },
    {
        "id": "a51468253ed967fb",
        "type": "function",
        "z": "2f8bfd2a84ecd1ae",
        "name": "My SQL Database Request",
        "func": "// only execute query if download button has been clicked\nif(msg.topic == \"download\" || msg.topic == \"query\")\n{\n var startDate = flow.get(\"startDate\") || false;\n //var startTime = flow.get(\"startTime\") || false;\n \n var endDate = flow.get(\"endDate\") || false;\n //var endTime = flow.get(\"endTime\") || false;\n\n // check if date range is correct\n if (startDate && endDate && new Date(endDate) >= new Date(startDate))\n {\n msg.topic = \"SELECT * FROM [Dev].[dbo].[MQTTData] WHERE Timestamp BETWEEN ('\" + startDate + \"', 'AND' , '\" + endDate + \"')\"\n return msg;\n } else \n {\n node.warn(\"end date is before start date. or context not set\");\n }\n\n}\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 520,
        "y": 360,
        "wires": [
            [
                "2786afb55dc8df9b",
                "eac240528b89c9a5"
            ]
        ]
    },
    {
        "id": "b36ee57218125cf6",
        "type": "ui_table",
        "z": "2f8bfd2a84ecd1ae",
        "group": "e44f634b20faeabb",
        "name": "",
        "order": 6,
        "width": 0,
        "height": 0,
        "columns": [],
        "outputs": 0,
        "cts": false,
        "x": 1070,
        "y": 400,
        "wires": []
    },
    {
        "id": "2786afb55dc8df9b",
        "type": "debug",
        "z": "2f8bfd2a84ecd1ae",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 750,
        "y": 460,
        "wires": []
    },
    {
        "id": "3522418d20bd200c",
        "type": "inject",
        "z": "2f8bfd2a84ecd1ae",
        "name": "query",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "query",
        "payload": "SELECT * FROM [Dev].[dbo].[MQTTData] WHERE Timestamp BETWEEN '2023-01-01 13:51:00' AND '2023-01-18 18:51:00'",
        "payloadType": "str",
        "x": 290,
        "y": 600,
        "wires": [
            [
                "eac240528b89c9a5"
            ]
        ]
    },
    {
        "id": "df8c0b88.91b0a8",
        "type": "MSSQL-CN",
        "name": "Dev",
        "server": "P202-LAERER",
        "port": "1433",
        "encyption": false,
        "trustServerCertificate": false,
        "database": "dev",
        "useUTC": false,
        "connectTimeout": "",
        "requestTimeout": "",
        "cancelTimeout": "",
        "pool": "",
        "parseJSON": false,
        "enableArithAbort": true
    },
    {
        "id": "e44f634b20faeabb",
        "type": "ui_group",
        "name": "Siemens",
        "tab": "c781e4a970e06e4d",
        "order": 1,
        "disp": true,
        "width": "12",
        "collapse": false,
        "className": ""
    },
    {
        "id": "c781e4a970e06e4d",
        "type": "ui_tab",
        "name": "Home",
        "icon": "dashboard",
        "disabled": false,
        "hidden": false
    }
]

```

---

<div class="post-metadata">

**Author:** ![pkdata-pkthedj](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/pkdata-pkthedj/32/74598_2.png) [@pkdata-pkthedj](https://discourse.nodered.org/u/pkdata-pkthedj)\
**Post date:** [18 January 2023 18:55 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/6 "2023-01-18T18:55:33Z")

</div>

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/0/1/01ebb4b2aec091db4267c693c1fa7486be2bddb1.png)

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [18 January 2023 18:56 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/7 "2023-01-18T18:56:34Z")

</div>

Are the values there  
add more node.warn()'s  
e.g.

```auto
// only execute query if download button has been clicked
if(msg.topic == "download" || msg.topic == "query")
{
    node.warn(msg.topic)
    var startDate = flow.get("startDate") || false;
    //var startTime = flow.get("startTime") || false;
    node.warn(startDate)
    var endDate = flow.get("endDate") || false;
    //var endTime = flow.get("endTime") || false;
    node.warn(endDate)
    // check if date range is correct
    if (startDate && endDate && new Date(endDate) >= new Date(startDate))
    {
        msg.topic = "SELECT * FROM [Dev].[dbo].[MQTTData] WHERE Timestamp BETWEEN ('" + startDate + "', 'AND' , '" + endDate + "')"
        return msg;
    } else 
    {
        node.warn("end date is before start date. or context not set");
    }

}

```

And what is the out put of  
`new Date(endDate)` and `new Date(startDate)`

---

<div class="post-metadata">

**Author:** ![pkdata-pkthedj](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/pkdata-pkthedj/32/74598_2.png) [@pkdata-pkthedj](https://discourse.nodered.org/u/pkdata-pkthedj)\
**Post date:** [18 January 2023 19:01 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/8 "2023-01-18T19:01:24Z")

</div>

Used youre flow

this is the result

"The input property was NOT a recognisable date. Output will be a blank string"

---

<div class="post-metadata">

**Author:** ![pkdata-pkthedj](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/pkdata-pkthedj/32/74598_2.png) [@pkdata-pkthedj](https://discourse.nodered.org/u/pkdata-pkthedj)\
**Post date:** [18 January 2023 19:05 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/9 "2023-01-18T19:05:08Z")

</div>

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/5/4/546974ced1ccc35b67c5417aa05ef39ebb29061a.png)

---

<div class="post-metadata">

**Author:** ![pkdata-pkthedj](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/pkdata-pkthedj/32/74598_2.png) [@pkdata-pkthedj](https://discourse.nodered.org/u/pkdata-pkthedj)\
**Post date:** [18 January 2023 19:06 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/10 "2023-01-18T19:06:00Z")

</div>

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/1/c144f30f9c78ef59894d9b61f4b357fe3897d0c0.png)

---

<div class="post-metadata">

**Author:** ![pkdata-pkthedj](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/pkdata-pkthedj/32/74598_2.png) [@pkdata-pkthedj](https://discourse.nodered.org/u/pkdata-pkthedj)\
**Post date:** [18 January 2023 19:08 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/11 "2023-01-18T19:08:30Z")

</div>

And from MSSQL a clip look very similar i think it is the syntax of the SQL statement

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/f/7ff43fc456e0ff2b8171d45495426a1d3af6938c.png)

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [18 January 2023 19:09 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/12 "2023-01-18T19:09:31Z")

</div>

Feed it into a debug node set to show complete message and see what the query is.

Does the mssql node use the topic for the query? Which node are you using?

---

<div class="post-metadata">

**Author:** ![pkdata-pkthedj](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/pkdata-pkthedj/32/74598_2.png) [@pkdata-pkthedj](https://discourse.nodered.org/u/pkdata-pkthedj)\
**Post date:** [18 January 2023 19:12 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/13 "2023-01-18T19:12:49Z")

</div>

When i copy the debug sql statement to my sql and execute it it works ☹

im using ms-sql plus

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [18 January 2023 23:10 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/14 "2023-01-18T23:10:09Z")

</div>

> [@pkdata-pkthedj](#):
>
> im using ms-sql plus

Firstly, you are setting msg.topic but have the SQL node set to use the internal SQL editor.

Secondly, you should use parameters for this. Especially for dates & times as getting the correct format date string is often difficult.

The better way to do a request is enter the SQL in the mssql node & use parameters

Example..

```auto
SELECT * FROM [Dev].[dbo].[MQTTData] 
WHERE 
Timestamp BETWEEN (@startDate AND @endDate)

```

where @startDate & @endDate are entered in the "parameters" section & mapped to the correct property in the msg and set for the intended type.

Here is a previous working example

> [@SQL data return array data types? MSSQL Node](https://discourse.nodered.org/t/sql-data-return-array-data-types-mssql-node/72157/3):
>
> Also, when using SQL Server (or any SQL), you should avoid building string queries as it opens you up to [SQLi hacks](https://en.wikipedia.org/wiki/SQL_injection) Here is how you would (should) do this using node-red-contrib-MSSQL-PLUS [image]

---

<div class="post-metadata">

**Author:** ![pkdata-pkthedj](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/pkdata-pkthedj/32/74598_2.png) [@pkdata-pkthedj](https://discourse.nodered.org/u/pkdata-pkthedj)\
**Post date:** [19 January 2023 08:41 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/15 "2023-01-19T08:41:00Z")

</div>

Thx for help  
I can see now that it is your flow i'm working on 🙂  
i change msg.topic = "SELECT \* FROM fuzzy WHERE datetime BETWEEN '"  
to msg.payload = "SELECT \* FROM fuzzy WHERE datetime BETWEEN '"

and now it all work without any change in the SQL thx for the input and the original flo  
Reg  
Peter

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [19 January 2023 09:44 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/16 "2023-01-19T09:44:34Z")

</div>

Doing it that way leaves your system open to attack by SQL injection, so don't do that if your node-red is accessible outside your local network. In fact you should get into the habit of doing it the safer way whether it is accessible or not.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [20 March 2023 09:45 UTC](https://discourse.nodered.org/t/mssql-in-a-function/73878/17 "2023-03-20T09:45:14Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
