Konfigurieren einer freigegebenen Sitzung mit dem Paket-SDK

Das Paket-SDK bietet SDK-Nutzern eine Konfiguration zum Erstellen und Verwenden freigegebener Sitzungen. Sitzungen werden nahtlos zwischen verschiedenen Bots freigegeben, um Ressourcen gemeinsam zu nutzen. Wenn eine Sitzung erstellt wurde, können also die anderen TaskBots die Sitzung lesen und aktualisieren und umgekehrt.

Freigeben einer Sitzung zwischen über- und untergeordneten Bots

Im folgenden Abschnitt wird die Erstellung einer freigegebenen Sitzung beschrieben. Der übergeordnete Bot GlobalSessionDemoUpperCaseParent gibt einen Sitzungswert an die globale Sitzung zurück und wird vom untergeordneten Bot GlobalSessionDemoUpperCaseChild verwendet.
Anmerkung: Legen Sie die drei unten stehenden Klassen an folgendem Ort ab: <PackageSDK>\src\main\java\com\automationanywhere\botcommand\samples\commands\basic
  1. 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 {
    
        }
    }
    
  2. 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
  3. 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)
  4. 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();
      	}
      }
  5. 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());
    	}
    }
  6. 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.
  7. Erstellen Sie einen Bot mit der Aktion Globale Sitzung, Großbuchstaben, übergeordnetes Element .
    1. Geben Sie eine klein geschriebene Zeichenfolge ein (z. B. parentbot string)
    2. Geben Sie einen Namen für die Sitzung ein. Der übergeordnete Bot gibt den Wert an die globale Sitzung zurück (z. B. Global).
  8. 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.
  9. Verwenden Sie ein Nachrichtenfeld, um die Ausgabe anzuzeigen.

    Das Bild zeigt die Variable „SDK Demo“.

  10. Rufen Sie nun die Aktion Globale Sitzung, Großbuchstaben, untergeordnetes Element in das übergeordnete Element auf. Das Bild zeigt die Variable „SDK Demo“.
  11. 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.