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"));
}
*/
-------------------------------------------