0

对于我们正在尝试构建的应该能够动态响应的流程,我需要一点帮助。

这个过程有点像这样。用户将针对环境提交处理请求,提交字符串值数组作为运行时值。该过程会将这些作为 bash 中的数组接收,并循环遍历它们,根据预定义的字符串列表检查它们的有效性。一旦发现它们是有效的,就会根据字符串中的值做出不同的反应。

示例:用户提交带有值的流程请求"abc", "bcd", "cde", "def""abc", "bcd", and "def"是有效的。

我们进行了一些操作以使它们可用:

echo ${p:inputArray}
inputArray="${p:inputArray}"
inputArray=${inputArray//]/}
inputArray=${inputArray//[/}
inputArray=${inputArray//,/}
inputArray=( "${inputArray[@],,}" )

然后遍历每个值并做出反应:

for inputValue in $inputArray; do
    if [[ "${validInputArray[@]}" =~ "${inputValue}" ]]; then
         // Check if value is the outlier case "A"
         // Or if the value is normal (but multiple) case "B"
         // If case "B" then we'll build a variable for it
         // It should be something like ${p:environment/$inputValue.action}

例如,理想情况下,这会给我 ${p:environment/abc.action} 的值。但事实并非如此。它给了我一个字符串。我无法评估动态创建的属性请求,因为所有属性都是在初始化时评估的,而不是即时评估的。

我们可以通过“case”方法来处理它——但它有点难看,而且随着我们有效输入数量的增加,它只会变得更难看。

4

1 回答 1

0

您可以配置 UCD 以提示它们输入特定值,而不是向其发送值数组。您可以在申请过程中执行此操作。这样,当用户启动部署时,就不会猜测输入的有效性。

在应用程序的进程页面上,单击应用程序进程属性链接

在此处输入图像描述

从那里,您可以将其配置为需要某种模式(通过正则表达式检查),或来自下拉列表、原始文本、日期时间等的显式值。在这里,我配置了一个带有多选的属性以允许特定的 JVM最大堆值。通过将其限制为特定值,您可以避免拼写错误和部署失败。

配置完成后,当您启动流程时,您会在界面中看到该属性:

在此处输入图像描述

于 2019-01-31T21:18:34.503 回答