1

我编写了一个自定义工作流操作,它接受多个值,主要使用 SingleLineInput 控件。

当我分配文字值时,我没有问题,但是当我尝试分配工作流变量时,我没有得到变量的实际值,我得到文字文本 - 类似于 {WorkflowVariable:XmlValue} - 假设我的变量是名称 XmlValue。

我不确定我可能做错了什么。有任何想法吗?

这是代码片段:

用于从 SingleLineInput 检索值的 javascript

function TPAWriteConfig() {
    configXml.selectSingleNode("/NWActionConfig/Parameters/Parameter[@Name='FieldValue']/PrimitiveValue/@Value").text = getRTEValue('<%=fieldValue.ClientID%>');
    SaveErrorHandlingSection();
    return true;

}

服务器控制:

<Nintex:ConfigurationProperty ID="ConfigurationProperty3" runat="server" FieldTitle="Field Value" RequiredField="True">
    <TemplateControlArea>
        <Nintex:SingleLineInput runat="server" id="fieldValue"></Nintex:SingleLineInput>
    </TemplateControlArea>
</Nintex:ConfigurationProperty>

从我的适配器类:

private const string FieldValueProperty = "FieldValue";


NWActionConfig config = new NWActionConfig(this);
config.Parameters[2] = new ActivityParameter();
config.Parameters[2].Name = FieldValueProperty;
config.Parameters[2].PrimitiveValue = new PrimitiveValue();
config.Parameters[2].PrimitiveValue.Value = string.Empty;
config.Parameters[2].PrimitiveValue.ValueType = SPFieldType.Text.ToString(); 

从活动类:

public static DependencyProperty FieldValueProperty = DependencyProperty.Register("FieldValue", typeof (string),
                                                                                              typeof (
                                                                                                  WriteOnePdfFieldActivity));



public string FieldValue
{
    get { return (string) GetValue(FieldValueProperty); }
    set { SetValue(FieldValueProperty, value); }
}
4

1 回答 1

1

我觉得回答我自己的问题有点傻,但为了其他人有同样的问题。以下是它的工作原理:

  • 如果您在字段中输入文字值,只需使用该值
  • 如果您使用任何其他类型的分配,请根据该值进行查找。

下面的代码演示:

var fieldValue = FieldValue.StartsWith("{") ? ctx.AddContextDataToString(FieldValue, true) : FieldValue; 

这将从工作流上下文中提取值。希望这可以帮助。

于 2012-05-04T23:41:44.830 回答