Je reprends le sujet, j’ai configuré un objet service basique:
Auquel j’ai associé l’action suivante:
Et voici le code de cet objet:
package com.simplicite.objects.Application;
import java.util.ArrayList;
import java.util.List;
import com.simplicite.util.Action;
import com.simplicite.util.AppLog;
import com.simplicite.util.Message;
import com.simplicite.util.ObjectService;
import com.simplicite.util.annotations.BusinessObjectAction;
public class AppTestService extends ObjectService {
private static final long serialVersionUID = 1L;
private static final int NBROWS = 10;
@Override
public long countService() {
return NBROWS;
}
private String[] getRow(String rowId) {
return new String[] { rowId, "Code " + rowId };
}
@Override
public List<String[]> searchService(boolean pagine) {
List<String[]> rows = new ArrayList<>();
for (int i = 1; i <= NBROWS; i++)
rows.add(getRow(String.valueOf(i)));
return rows;
}
@Override
public boolean selectService(String rowId, boolean copy) {
setValues(getRow(rowId));
return true;
}
@Override
public void initAction(Action action) {
AppLog.info("Action " + action.getName() + " invoked for row ID " + getRowId() + " (" + getFieldValue("appApsCode") + ")", getGrant());
}
@BusinessObjectAction
public String testAction(Action action) {
return Message.formatSimpleInfo("Action result for row ID " + getRowId() + " (" + getFieldValue("appApsCode") + ")");
}
}
A l’exécution ça fait ce qu’il faut