Lesen und beachten Sie die Automation Anywhere-Dokumentation

Automation Anywhere Automation 360

Inhalt schließen

Inhalte

Inhalt öffnen

Verarbeiten von Sitzungen in einem benutzerdefinierten Paket

  • Aktualisiert: 4/09/2021
    • Automation 360 v.x
    • Erstellen
    • RPA Workspace

Verarbeiten von Sitzungen in einem benutzerdefinierten Paket

Sie können eine Sitzung mit einem Sitzungsnamen aus der SessionMapextrahieren. Im gleichen Paket können Sie Sitzungen verwenden, um Informationen zwischen Aktionen zu übergeben, aber nicht an andere Pakete.

Konfigurieren Sie die folgenden Attribute

  • Wenden Sie eine Anmerkung auf das Klassenfeld an und fügen Sie einen entsprechenden öffentlichen Setter hinzu.
  • Rufen Sie die SessionMap mithilfe des Attributs Sessions ab.
  • Legen Sie den Variablentyp als Zuordnung<String, Objekt>fest.
  • AttributeType festlegen : TEXT oder SITZUNG. Wenn type = TEXT, handelt es sich um eine reguläre Sitzung; wenn type = SESSION, handelt es sich um eine sharedSession.

Eine neue Sitzung starten

@BotCommand
@CommandPkg(label = "Start session", name = "startSession", description = "Start new session", 
icon = "pkg.svg", node_label = "start session {{sessionName}}|") public class Start {
 
    @Sessions
    private Map<String, Object> sessions;
     
    @Execute
    public void start(@Idx(index = "1", type = TEXT) @Pkg(label = "Session name", 
    default_value_type = STRING, default_value = "Default") @NotEmpty String sessionName) {
 
        // Check for existing session
        if (sessions.containsKey(sessionName))
            throw new BotCommandException(MESSAGES.getString("xml.SessionNameInUse", sessionName));
 
        // Do some operation
 
        // Create new session
        sessions.put(sessionName, new Session(operation));
    }
    public void setSessions(Map<String, Object> sessions) {
        this.sessions = sessions;
    }
}

Beenden Sie eine Sitzung

@BotCommand
@CommandPkg(label = "End session", name = "endSession", description = "End session", icon = 
"pkg.svg", node_label = "End session {{sessionName}}|")
public class EndSession {
    @Sessions
    private Map<String, Object> sessions;
    @Execute
    public void end(
            @Idx(index = "1", type = TEXT) @Pkg(label = "Session name", default_value_type = STRING, 
            default_value = "Default") @NotEmpty String sessionName) {
                 
        sessions.remove(sessionName);   
    }  
    public void setSessions(Map<String, Object> sessions) {
        this.sessions = sessions;
    }
}

Fügen Sie eine Sitzung hinzu

Im folgenden Beispiel werden String-Objekte verwendet (obwohl Sie in realen Aktionen komplexe Objekte verwenden können).

@BotCommand
@CommandPkg(label = "[[SessionDemo.label]]", description = "[[SessionDemo.description]]", icon = "sample.svg", name = "sessionDemo")
public class SessionDemo {

	// Sessions are provided as a Map. Actions can add or remove entries in this
	// Map.
	// The choice to reuse/overwrite/delete/add any Object in this Map belongs to
	// the actions, and the framework makes no assumption regarding it.
	@Sessions
	private Map<String, Object> sessionMap;

	@Execute
	public void execute(@Idx(index = "1", type = TEXT)
	@Pkg(label = "[[SessionDemo.name.label]]")
	@NotEmpty
	String name) {
		if (!sessionMap.containsKey(name))
			sessionMap.put(name, "Some Value");
	}

	// Ensure that a public setter exists.
	public void setSessionMap(Map<String, Object> sessionMap) {
		this.sessionMap = sessionMap;
	}
}

Legen Sie eine Sitzungsvariable fest

Das folgende Beispiel zeigt, wie eine Aktion entwickelt wird (z. B. Set Session Variable). In der Aktion werden die Sitzungsdetails abgerufen und als Sitzungsvariable gespeichert, sodass die Informationen innerhalb eines bestimmten Pakets verwendet werden können.

@BotCommand
@CommandPkg(label = "[[SessionDemo2.label]]", description = "[[SessionDemo2.description]]", icon = "sample.svg", name = "SessionDemo2",
return_type = DataType.STRING)
public class SessionDemo2 {

	// Sessions are provided as a Map. Actions can add or remove entries in this
	// Map.
	// The choice to reuse/overwrite/delete/add any Object in this Map belongs to
	// the actions, and the framework makes no assumption regarding it.
	@Sessions
	private Map<String, Object> sessionMap;

	@Execute
	public Value<?> execute(@Idx(index = "1", type = TEXT)
	@Pkg(label = "[[SessionDemo2.name.label]]")
	@NotEmpty
	String name) {
		if (sessionMap.containsKey(name)) {
			return new StringValue(sessionMap.get(name));
		}	
		return new StringValue("session does not exist");
	}
	// Ensure that a public setter exists.
	public void setSessionMap(Map<String, Object> sessionMap) {
		this.sessionMap = sessionMap;
	}
}
Feedback senden