wiegele
I'm new here

Mit CMS_SET Rückgabewert setzen

Hallo zusammen,

ich verstehe die Funktionsweise von CMS_SET und oder CMS_RENDER scheinbar nicht.

Ich möchte eine Variable deklarieren und diese in einer Schleife als Parameter für eine Script immer wieder verwenden.

Dabei soll das Script die Variable manipulieren und wieder an das Hauptprogramm zurückgeben.

Hier vereinfacht dargestellt

var1=1

var2=2

For Schleife

var1=FunktionsAufruf(var1,var2)

end For

FunktionsAufruf(para1,para2)

para2=para1+para2

return para2

end FunktionsAufruf

Soblad ich aber mit CMS_SET die Variable old_publication_date neu beschreiben will ist sie leer.

FS Version 5.0.425.60000

Variable initialisieren

$CMS_SET(old_publication_date,"0000-00-00 00:00:00.1")$

$CMS_FOR(news, frNewsCategory.sublist(0,st_number))$

     $CMS_SET(publication_date,news.publication_date.format("yyyy-MM-dd hh:mm:ss.S"))$

     $CMS_VALUE("Old-" + old_publication_date.toString())$<br>

     $CMS_SET(old_publication_date)$

     $CMS_RENDER(script:"comparedates", oldNewsDate:old_publication_date.toString(), newsDate:publication_date.toString)$

     $CMS_END_SET$

$CMS_END_FOR$  

Script ----------------------------------

import java.text.SimpleDateFormat;

import java.util.Date;

import java.text.ParseException;

par_oldNewsDate = context.getVariableValue("oldNewsDate");

par_newsDate = context.getVariableValue("newsDate");

result.setValue(context.getVariableValue("oldNewsDate"));

/*

Damit es einfacher zu testen ist gebe ich direkt den Eingabeparameter wieder zurück.

dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.S");

//context.logError("Caught exception while parsing", date.toString());

try {

newsDate = dateFormat.parse(par_newsDate).getTime();

oldNewsDate = dateFormat.parse(par_oldNewsDate).getTime();

date = new Date();

//date1 = dateFormat.parse(date.toString());

date1 = dateFormat.format(date);

date1 = dateFormat.parse(date1).getTime();

    }

    catch (ParseException e)

    {

        context.logError("Caught exception while parsing", e);

    }

if(newsDate <= date1 && oldNewsDate < newsDate){

result.setValue(context.getVariableValue("newsDate"));

    }

else

{

result.setValue(context.getVariableValue("oldNewsDate"));

}

*/

-------------------------------------------

10 Replies

Es freut mich das zu hören! 🙂

0 Kudos