Datum uit tekst halen en bij streefdatum plaatsen

Goedendag,

Wij misbruiken een meldingsformulier voor het bestellen van boeketten bloemen. Nu is het verzoek om de datum van levering die ingevuld wordt op het formulier de streefdatum te laten worden. Nu lukt het mij wel om de datum ,wat een string is, op te halen uit de tekst maar loop tegen de conversie van string naar date aan.

De string heeft bijv. waarde: "29 november 2023 9:00
En de targetDate(streefdatum) verwacht de waarde “2023-11-29T09:00:00Z”

Ik heb deze vraag ook gesteld aan TOPdesk maar kreeg niet een kant en klaar antwoord.
Reactie:
Naar aanleiding van uw melding stuur ik u het volgende:

Dit kan gedaan worden met behulp van Freemarker. In principe ondersteunen we het opstellen van Freemarker code bij Support niet, maar omdat ik hier zelf interesse in heb en mezelf op dit vlak verder wil ontwikkelen, ben ik hiermee aan de slag gegaan.

U kunt met behulp van de volgende body de platte tekst omzetten naar het .json datum formaat. Hierbij is het van belang dat u de 01-07-2023 01-07-2023 12:30:45 nog vervangt door de variabele waar in uw geval de datum mee opgehaald wordt.

<#assign inputDateTime = “01-07-2023 12:30:45”>
<#assign formattedDateTime = inputDateTime?datetime(“dd-MM-yyyy HH:mm:ss”)?string(“yyyy-MM-dd HH:mm:ss”)>

{
“targetDateTime”: “${formattedDateTime}”
}

Ik vertrouw erop u hiermee voldoende geïnformeerd te hebben. Voor nu sluit ik dit incident. Mocht u verder nog vragen hebben over dit incident, neemt u dan gerust contact met ons op.

Heb je dit inmddels werkend?
Ik loop tegen hetzelfde probleem aan en had via Reddit een (andere) oplossing gekregen.
Dit resulteert in het juiste formaat, alleen krijg ik een Parsing errror bij het patchen. Die vraag ligt nu bij TOPdesk.
De oplossing die TOPdesk aanbiedt in d Action Sequence Library is dus om de datum op het aanvraagformulier te leiden naar een datumveld op het optopnele tabblad. Via de aangeboden actiereeks lukt het dan wel om die datum naar het streefdatumveld te krijgen. Maar ondanks dat de datum hetzelfde formaat heeft lukt het vooralsnog niet met onderstaande oplossin de streefdatum gevuld te krijgen. Voordeel hiervan is dat de datum als onderdeel van het verzoekveld zichtbaar blijft.

De oplossing die ik kreeg was:
<#assign monthTranslations = { “januari”: “January”, “februari”: “February”, “maart”: “March”, “april”: “April”, “mei”: “May”, “juni”: “June”, “juli”: “July”, “augustus”: “August”, “september”: “September”, “oktober”: “October”, “november”: “November”, “december”: “December” }>
<#assign dateString = _progresstrail.requests?first.richtext?keep_after(“${_variables.keepAfterDate}”)?keep_before(“${_variables.keepBefore}”)> <#list monthTranslations?keys as dutchMonth> <#assign dateString = dateString?replace(dutchMonth, monthTranslations[dutchMonth])> </#list>
<#assign dateTime = dateString?datetime(“dd MMMM yyyy HH:mm”)!> <#assign iso8601 = dateTime>
{
“targetDate” : “${iso8601}”
}

Ja ik heb het werkend maar op de manier zoals deze staat in de action sequence Library.

Optioneel datum veld aangemaakt vrijedatum1. Deze in het meldingsformulier opgenomen en vervolgens onderstaande json gebruikt. Hierna een gebeurtenis er aan gekoppeld en werkt als een zonnetje. Enige nadeel dat dit heeft is dat het datumveld wat opgevoerd wordt in het ssp meldingsformulier in het verzoekveld terechtkomt. Ga nog kijken of ik de datum als een string in het verzoekveld kan toevoegen maar nog niet aan gezeten.

{
    "formatVersion": "2.16",
    "exportDate": 1705407489049,
    "action": {
        "module": "tas_incident",
        "name": "Bestelling bloemen streefdatum aanpassen",
        "description": "Aanpassen streefdatum aan de hand van vrije datum veld 1",
        "configuration": {
            "variables": [
                {
                    "name": "topdesk_user",
                    "value": ""
                },
                {
                    "name": "topdesk_applicationpassword",
                    "value": ""
                },
                {
                    "name": "topdesk_url",
                    "value": ""
                }
            ],
            "mappingDefinitions": [],
            "steps": [
                {
                    "type": "HTTP_REQUEST",
                    "executionCondition": "ONLY_WHEN_PREVIOUS_SUCCEEDED",
                    "customExecutionCondition": "",
                    "name": "UpdateIncident",
                    "method": "PATCH",
                    "url": "${_variables.topdesk_url?no_esc}/tas/api/incidents/id/${unid}",
                    "headers": [
                        {
                            "name": "Content-Type",
                            "value": "application/json"
                        },
                        {
                            "name": "Authorization",
                            "value": "Basic ${_base64(_variables.topdesk_user + \":\" + _variables.topdesk_applicationpassword)}"
                        }
                    ],
                    "escapeBodyValues": true,
                    "bodyType": "FREEMARKER_TEMPLATE",
                    "logRequestBody": true,
                    "logResponseBody": true,
                    "authenticationType": "NONE",
                    "authenticationKey": null,
                    "body": "{\n  \"targetDate\": \"${_card[\"vrijedatum1\"]!}\"\n}\n"
                }
            ]
        }
    }
}