我正在使用Nintex工作流程。我添加了Web Service并配置为从GetUserProfile.asmx检索数据。添加网络服务nintex后,让你看看肥皂是怎么样的。这是肥皂。
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetUserPropertyByAccountName xmlns="http://microsoft.com/webservices/SharePointPortalServer/UserProfileService">
<accountName>{WorkflowVariable:tmpApprover}</accountName>
<propertyName>PreferredName</propertyName>
</GetUserPropertyByAccountName>
</soap:Body>
</soap:Envelope>
Nintex还让您了解结果在xml中的表现:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetUserPropertyByAccountNameResponse xmlns="http://microsoft.com/webservices/SharePointPortalServer/UserProfileService">
<GetUserPropertyByAccountNameResult>
<IsPrivacyChanged>false</IsPrivacyChanged>
<IsValueChanged>false</IsValueChanged>
<Name>PreferredName</Name>
<Privacy>Public</Privacy>
<Values>
<ValueData>
<Value xsi:type="xsd:string">Holmberg, Nancy</Value>
</ValueData>
</Values>
</GetUserPropertyByAccountNameResult>
</GetUserPropertyByAccountNameResponse>
</soap:Body>
</soap:Envelope>
我添加了一个“查询XML”,并尝试从用户个人资料数据库中将xpath的一些变体发送到PreferredName,它给了我“falsefalsePreferredNamePublicHolmberg,Nancy”。
以下是我尝试的一些代码
/soap:Envelope/soap:Body/defaultNS:GetUserPropertyByAccountNameResponse/defaultNS:GetUserPropertyByAccountNameResult/defaultNS:Values/defaultNS:ValueData/defaultNS:Value/@xsi:type
或
//defaultNS:xml/defaultNS:Values/defaultNS:ValueData/defaultNS:Value
或
//defaultNS:xml/defaultNS:Name
或
//@PreferredName
但他们都给我falsefalsePreferredNamePublicHolmberg,Nancy。我应该给我Holmberg,Nancy。
请建议。
答案 0 :(得分:0)
我遵循了这一点,它解决了这个问题。
如果包含xml的变量名为textXML,则在查询XML操作中,您可以插入对工作流变量的引用,它看起来像这样:
<xml xmlns="http://microsoft.com/webservices/SharePointPortalServer/UserProfileService">
{WorkflowVariable:textXML}
</xml>