Konfigurieren einer freigegebenen Sitzung mit dem Paket-SDK
- Zuletzt aktualisiert2023/04/05
Konfigurieren einer freigegebenen Sitzung mit dem Paket-SDK
Freigeben einer Sitzung zwischen über- und untergeordneten Bots
-
Erstellen Sie die POJO-Klasse DemoForSession, die CloseableSessionObject implementiert.
package com.automationanywhere.botcommand.samples.commands.basic.GlobalSessionSampleProject; import com.automationanywhere.toolchain.runtime.session.CloseableSessionObject; import java.io.IOException; public class DemoForSession implements CloseableSessionObject { public void setClose(boolean close) { this.close = close; } boolean close=false; public String getDemo() { return demo; } public void setDemo(String demo) { this.demo = demo; } public DemoForSession(String demo){ this.demo=demo; } String demo; @Override public boolean isClosed() { return close; } @Override public void close() throws IOException { } }
- Fügen Sie die Anmerkung
@BotCommand
hinzu, um eine Klasse als Aktion im Control Room zu erstellen. Weitere Informationen zu Anmerkungen finden Sie unter Anmerkungen.@BotCommand
- Fügen Sie die Anmerkung
@CommandPkg
hinzu, um alle UI-bezogenen Komponenten zu definieren: labels, description, icon, return_type und name. Die Elemente return_label, return_settings, return_type und return_required, die zum@CommandPkg
gehören, gewährleisten, dass die SITZUNG vom übergeordneten Bot zurückgegeben wird.@CommandPkg( //Unique name inside a package and label to display. name = "GlobalSession", label = "Global session uppercase parent", node_label = "Shared session parent node label", description = "Shared session parent description", icon = "pkg.svg", //Return type information. return_type ensures only the right kind of variable is provided on the UI. return_label = "Return the parent session", return_settings = {ReturnSettingsType.SESSION_TARGET}, return_type = SESSION, return_required = true)
-
Erstellen Sie das Objekt GlobalSessionDemoUpperCaseParent. GlobalSessionDemoUpperCaseParent ruft eine klein geschriebene Zeichenfolge aus der Eingabe der Aktion ab, wandelt sie in eine groß geschriebene Zeichenfolge um und speichert das Ergebnis im SessionValue.
-
Versehen Sie die Methode mit der Anmerkung
@Execute
, um die Methode während der Kompilierung auszuführen.package com.automationanywhere.botcommand.samples.commands.basic.GlobalSessionSampleProject; import com.automationanywhere.botcommand.data.impl.SessionValue; import com.automationanywhere.commandsdk.annotations.*; import com.automationanywhere.commandsdk.annotations.rules.NotEmpty; import com.automationanywhere.commandsdk.model.ReturnSettingsType; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.util.Map; import static com.automationanywhere.commandsdk.model.AttributeType.TEXT; import static com.automationanywhere.commandsdk.model.DataType.SESSION; //BotCommand makes a class eligible for being considered as an action. @BotCommand //CommandPks adds required information to be dispalable on GUI. @CommandPkg( //Unique name inside a package and label to display. name = "GlobalSession", label = "Global session uppercase parent", node_label = "Shared session parent node label", description = "Shared session parent description", icon = "pkg.svg", //Return type information. return_type ensures only the right kind of variable is provided on the UI. return_label = "Return the parent session", return_settings = {ReturnSettingsType.SESSION_TARGET}, return_type = SESSION, return_required = true) public class GlobalSessionDemoForStringUpperCaseParent { private static Logger logger = LogManager.getLogger(GlobalSessionDemoForStringUpperCaseParent.class); //Identify the entry point for the action. Returns a SessionValue because the return_type is SESSION. @Execute public SessionValue action( //Idx 1 would be displayed first, with a text box for entering the value. @Idx(index = "1", type = TEXT) //UI labels. @Pkg(label = "Enter string in lower case") //Ensure that a validation error is thrown when the value is null. @NotEmpty String firstString) { String result = firstString.toUpperCase(); DemoForSession demoForSession= new DemoForSession(result); return SessionValue .builder() .withSessionObject(demoForSession) .build(); } }
-
-
Erstellen Sie das Objekt GlobalSessionDemoUpperCaseChild. GlobalSessionDemoUpperCaseChild ruft eine Zeichenfolge in Kleinbuchstaben aus der Eingabe der Aktion ab, wandelt sie in Großbuchstaben um und verkettet sie mit dem SessionValue, der vom übergeordneten Bot empfangen wurde.
package com.automationanywhere.botcommand.samples.commands.basic.GlobalSessionSampleProject; import com.automationanywhere.botcommand.data.Value; import com.automationanywhere.botcommand.data.impl.StringValue; import com.automationanywhere.botcommand.samples.commands.basic.Uppercase; import com.automationanywhere.commandsdk.annotations.*; import com.automationanywhere.commandsdk.annotations.rules.NotEmpty; import com.automationanywhere.commandsdk.annotations.rules.SessionObject; import com.automationanywhere.commandsdk.model.AttributeType; import com.automationanywhere.commandsdk.model.DataType; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import static com.automationanywhere.commandsdk.model.AttributeType.TEXT; import static com.automationanywhere.commandsdk.model.DataType.STRING; //BotCommand makes a class eligible for being considered as an action. @BotCommand //CommandPks adds required information to be dispalable on GUI. @CommandPkg( //Unique name inside a package and label to display. name = "GlobalSessionChild", label = "Global session upper case child", node_label = "Global session child node label", description = "Global session child description", icon = "pkg.svg", //Return type information. return_type ensures only the right kind of variable is provided on the UI. return_label = "Return the concatenated string to", return_type = STRING, return_required = true) public class GlobalSessionDemoUpperCaseChild { private static Logger logger = LogManager.getLogger(Uppercase.class); @Execute public Value<String> action( //Idx 1 would be displayed first, with a text box for entering the value. @Idx(index = "1", type = TEXT) //UI labels. @Pkg(label = "Enter a sting in lower case to concatenate") //Ensure that a validation error is thrown when the value is null. @NotEmpty String sourceString, @Idx(index = "2", type = AttributeType.SESSION) @Pkg(label = "sharedSession", description = "sharedSession", default_value = "Default", default_value_type = DataType.SESSION) //Using the sessionObject annotation here as its a consumer class @SessionObject DemoForSession session) { //Business logic String result = sourceString.toUpperCase(); logger.info("session: {}",session); return new StringValue(result+session.getDemo().toUpperCase()); } }
- Erstellen Sie das benutzerdefinierte Paket und laden Sie es in den Control Room hoch. Weitere Informationen zum Hochladen des Pakets finden Sie unter Verwendung des Paket-SDK.
- Erstellen Sie einen Bot mit der Aktion Globale Sitzung, Großbuchstaben, übergeordnetes Element .
- Geben Sie eine klein geschriebene Zeichenfolge ein (z. B. parentbot string)
- Geben Sie einen Namen für die Sitzung ein. Der übergeordnete Bot gibt den Wert an die globale Sitzung zurück (z. B. Global).
- Erstellen Sie TaskBots mit der Aktion Globale Sitzung, Großbuchstaben, untergeordnetes Element. Sie können eine Zeichenfolge in Kleinbuchstaben eingeben und die Zeichenfolge auch aus der freigegebenen übergeordneten Sitzung abrufen. Verketten Sie die über- und untergeordneten Zeichenfolgen.
- Verwenden Sie ein Nachrichtenfeld, um die Ausgabe anzuzeigen.
- Rufen Sie nun die Aktion Globale Sitzung, Großbuchstaben, untergeordnetes Element in das übergeordnete Element auf.
- Führen Sie den übergeordneten Bot aus. Sie werden sehen, dass das Nachrichtenfeld den Wert des untergeordneten Bots anzeigt, den es von der freigegebenen globalen Sitzung abgeleitet hat.