Utilisation des valeurs d'une ligne d'un objet Service dans une action

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

1 Like