A simple custom state, named SampleState, formats the current date.
You can modify the date format in the properties-context.xml file. The formatted date is stored in an output variable.
package com.sap.example; import java.text.Format; import java.text.SimpleDateFormat; import java.util.Date; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.sybase365.mobiliser.brand.dao.DBException; import com.sybase365.mobiliser.brand.jpa.SmappState; import com.sybase365.mobiliser.brand.plugins.api.smapp.SmappStateProcessingAction; import com.sybase365.mobiliser.brand.plugins.api.smapp.SmappStateProcessingContext; import com.sybase365.mobiliser.brand.plugins.smapp.controls.Attribute; import com.sybase365.mobiliser.brand.plugins.smapp.controls.OutputAttribute; import com.sybase365.mobiliser.brand.plugins.smapp.state.SmappStatePlugin; import com.sybase365.mobiliser.brand.processing.exceptions.MwizProcessingException; public class SampleState extends SmappStatePlugin { private static final Logger LOG = LoggerFactory.getLogger(SampleState.class); protected static final OutputAttribute outDate = new OutputAttribute("DATE", "Current Date"); private static Attribute[] stateAttr; private String country = ""; public void setCountry(String value) { LOG.debug("Country = " + value); this.country = value; } static { stateAttr = new Attribute[] {outDate}; } private static long STATE_ID = 600000L; @Override public String getStateNotes() { return "A sample state. When executed, it returns the current \n" + " date in the format of the configured country.\n\n" + "Use the following follow up states:\n" + "- OK: date and time in the output variable.\n" + "- FAIL: If an error occurs during processing.\n"; } @Override public boolean supportsFailTransition() { return true; } @Override protected Attribute[] getStateAttributes() { return stateAttr.clone(); } public String getRevisionString() { return "1.0.0"; } public long getStateId() { return STATE_ID; } public String getStateName() { return "Example - Get Date"; } @Override protected SmappState processStateLogic( SmappStateProcessingContext context, SmappStateProcessingAction action) throws MwizProcessingException, DBException { Format formatter = new SimpleDateFormat("MM dd yyyy"); if (!country.equalsIgnoreCase("US")) formatter = new SimpleDateFormat("dd MM yyyy"); outDate.setValue(formatter.format(new Date())); return continueOk(); } }