+void Procedure::execute(const nlohmann::json &args, std::string &response) noexcept(false) {
+
+ // Build the arguments string and call the previous centralized logic procedure execution:
+ // <initial sequence>|<final sequence>|<test timeout ms (0: no timeout step)>|<digits>|<CCR-I xml file>[|CCR-T xml file]
+ const char *arg_names[6] = { "seqI", "seqF", "msecsTimeout", "digits", "ccrI", "ccrT" };
+ std::string args_string, arg, pipe("|");
+
+ for (int i = 0; i < 6; i++)
+ {
+ auto it = args.find(arg_names[i]);
+ arg = (it != args.end() && it->is_string()) ? *it : "";
+ if (arg != "") args_string += arg + pipe;
+ }
+
+ // Remove last 'pipe':
+ if (args_string != "")
+ args_string = args_string.substr(0, args_string.size()-1);
+
+ execute(args_string, response);
+}
+
+