阅读和查看 Automation Anywhere 文档

Automation Anywhere Automation 360

关闭内容

内容

打开内容

使用软件包 SDK 配置共享会话属性

  • 已更新:2021/05/12

    使用软件包 SDK 配置共享会话属性

    创建新的软件包 SDK 文件并修改现有文件以配置变量,命令和属性类型,以便在之间共享详细信息 TaskBots

    将会话类型添加到包模板

    打开 位于 <latest package SDK zip file>\src\main\resources 的软件包模板文件 ,然后添加 sessionType标签 和可选 说明

    {
      "name": "A2019DemoPackage",
      "label": "[[label]]",
      "description": "[[description]]",
      "sessionType" : {
        	"label" : "testdemo",
        	"description" : "sharedSessionDemo"
        },
      "group": "",
      "artifactName": "",
      "packageVersion": "",
      "codeVersion": "",
      "author": "",
      "commands": []
    }

    创建新的自定义变量

    创建新 的 DemoForSession 文件,并将其放在以下位置:最新的软件包 SDK zip 文件 >/src/main/java/com/automationave/botcommand/samples/commands/basic

    使用该文件创建自定义变量 (DTO 类) ,以便在 TaskBots 和实现 CloseableSessionObject 变量之间共享详细信息。

    package com.automationanywhere.botcommand.samples.commands.basic;
    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 {
        }
    }

    创建新命令

    使用 DemoForSession 文件,开发一个命令,用于从 公共 sessionMap 检索 SharedSessionDemoUpperCaseParent 并将其分配给 sessionMap 对象。

    package com.automationanywhere.botcommand.samples.commands.basic;
    import com.automationanywhere.botcommand.data.Value;
    import com.automationanywhere.botcommand.data.impl.SessionValue;
    import com.automationanywhere.botcommand.data.impl.StringValue;
    import com.automationanywhere.commandsdk.annotations.*;
    import com.automationanywhere.commandsdk.annotations.rules.NotEmpty;
    
    import java.util.Map;
    
    import static com.automationanywhere.commandsdk.model.AttributeType.TEXT;
    import static com.automationanywhere.commandsdk.model.DataType.SESSION;
    import static com.automationanywhere.commandsdk.model.DataType.STRING;
    
    @BotCommand
    @CommandPkg(return_label = "SharedSessionDemoUpperCaseParent", node_label = "SharedSessionDemoUpperCaseParent", label = "SharedSessionDemoUpperCaseParent", description = "SharedSessionDemoUpperCaseParent", name = "SharedSessionDemoUpperCaseParent", return_type = SESSION, return_required = true)
    public class SharedSessionDemoUpperCaseParent {
    
        public void setSessionMap(Map<String, Object> sessionMap) {
            this.sessionMap = sessionMap;
        }
        @Sessions
        private Map<String, Object> sessionMap;
    
        @Execute
        public Value<?> execute(@Idx(index = "1", type = TEXT)
                                @Pkg(label = "SetSession", description = "SetSession", default_value = "Default", default_value_type = STRING)
                                @NotEmpty
                                        String session) {
            Object sessionObject = sessionMap.get(session);
    
            System.out.println("sessionObject: "+sessionObject);
            SessionValue sessionValue=new SessionValue((DemoForSession) sessionObject);
            sessionValue.set(session);
            return sessionValue;
        }
    }

    配置 AttributeType。课程

    SharedSessionDemoUpperCaseChild 文件中,为 sharedSession 参数配置 AttributeType.Session。

    @Idx(index = "3", type = AttributeType.SESSION)
    
    @Pkg(label = "sharedSession", description = "sharedSession", 
    
          default_value = "Default", default_value_type = DataType.SESSION)
    
          SharedSessionDemoUpperCaseChild session
    
    发送反馈