URL Parameter im Formular (AgilePoint eForms) verwenden


URL Parameter sind ein einfacher Mechanismus zur Steuerung dynamischen Verhaltens. Es gibt vielfältige Szenarien, die jedoch Variationen (oder Erweiterungen) des vorgestellten einfachen Ansatzes sind. Das fertiger Beispiel finden Sie hier.

Wir starten üblicherweise (meistens implizit über MyApplications)  ein eForm über die folgende URL:

http(s)://<YourServer>:<YourPort>/ApplicationBuilder/eFormRender.html?Process=MyProcessTemplateName

Anmerkung: es gibt einige Mechanismen zum setzen von Feldwerten. Dieser hier vorgestellte Weg ist eine Alternative für spezielle Einsatzszenarien.

Nun möchten wir einen Parameter in der URL übergeben, der dann beim Laden des Formulars ausgelesen wird, bspw.:

http(s)://<YourServer>:<YourPort>/ApplicationBuilder/eFormRender.html?Process=MyProcessTemplateName&Param1=MyValue

Das folgende JavaScript-Snippet liest den Wert von Parameter 'Param1' aus und setzt den Wert in das Control mit der ID 'Param1Target'


eFormEvents.onFormLoadComplete = function () 
{
    getQueryStringData('Param1', 'Param1Target');
}


var getQueryStringData = function(pName, targetControlId)
{    
    var result = null;
    var uri= window.location.href;
    
    var regexS = "[\\?&#]" + pName + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var qString = uri.split('?')[1];
    var results = regex.exec('?' + qString);
    
    if (results !== null) {
        result = decodeURIComponent(results[1].replace(/\+/g, " "));
      
        // set value in form
        var options = {'fieldId' : targetControlId, 'value' : result }  
        eFormHelper.setFieldValue(options, function (result){});
    }
  
    return result;
};

Fügen Sie das JavaScript-Snippet im eForm ein:


Und führen ein Deployment durch, dann rufen Sie die Url auf:

http(s)://<YourServer>:<YourPort>/ApplicationBuilder/eFormRender.html?Process=MyProcessTemplateName&Param1=MyValue

dies ergibt dann:





Kontaktformular

Name

E-Mail *

Nachricht *