我使用的是Alfresco Community Edition-5.1.x,我们创建了高级工作流程。在工作流程中,我们试图在下拉式菜单中填充Web服务结果值。你能指导我们如何填充下拉值?Alfresco工作流程activiti:我如何在下拉菜单中填充webservice结果
2
A
回答
1
在这个示例代码中,我通过调用Alfresco Repo webscript将组成员加载到下拉控件中。
一旦数据被从REST服务
<script type="text/javascript">
function ${grpName}_loadDropDown(o){
var selectElem = YAHOO.util.Dom.get("${fieldHtmlId}");
selectElem.options.length=0;
for (; i<o.json.data.length; i++){
var user = o.json.data[i];
selectElem.options[j] = new Option(user.displayName, user.shortName, false, false);
j++;
}
}
调用REST服务在这里
function ${grpName}_loadData(){
var url = Alfresco.constants.PROXY_URI+"api/groups/${grpName}/children?sortBy=displayName&maxItems=100&skipCount=0";
<#if field.control.params.sortAsc?exists>
<#assign sort=field.control.params.sortAsc?html>
url+="&sortAsc=${sort}";
</#if>
Alfresco.util.Ajax.request({
url: url,
method: "GET",
requestContentType: "application/json",
successCallback:{
fn: function(o){
${grpName}_loadDropDown(o);
},
scope: this
},
failureCallback:{
fn: function(o){alert("Unable to find group or error ");},
scope: this
}
});
}
在这里获得注册的控制(在FTL文件)
<label for="${fieldHtmlId}">${field.label?html}:<#if field.mandatory><span class="mandatory-indicator">${msg("form.required.fields.marker")}</span></#if></label>
<select name="${field.name}" id="${fieldHtmlId}" value="${field.value?html}" style="width: 250px;"></select>
回调方法在此处启动REST服务请求
${grpName}_loadData();
</script>
1
以下是您的示例,我已打开JSON-RSET Web服务 以获取数据。
WebService的URL:https://jsonplaceholder.typicode.com/posts
请让我知道,如果你需要在此进一步的帮助。
<script type="text/javascript">
function ${groupName}_populateSelectData(o){
var selectElem = YAHOO.util.Dom.get("${fieldHtmlId}");
selectElem.options.length=0;
var i = 0;
var j = i+1;
for (; i<o.json.length; i++){
selectElem.options[j] = new Option(o.json[i].title, o.json[i].title, false, false);
j++;
}
}
function ${groupName}_updateList(){
var url = "https://jsonplaceholder.typicode.com/posts";
Alfresco.util.Ajax.request({
url: url,
method: "GET",
requestContentType: "application/json",
successCallback:{
fn: function(o){
${groupName}_populateSelectData(o);
},
scope: this
},
failureCallback:{
fn: function(o){alert("Error ");},
scope: this
}
});
}
${groupName}_updateList();
</script>
+0
非常感谢我能够使用网络服务并在户外实施 – JohnPaul
如果REST API web服务,我们如何你填充下拉列表 – JohnPaul
这也是露天的内置REST API只(Alfresco.constants.PROXY_URI +“API /组/ $ {grpName提供}/children?sortBy = displayName&maxItems = 100&skipCount = 0“;) –
但我的web服务外部不是户外内置的web服务,我如何在户外使用外部web服务和webservices结果填充到下拉列表中,请帮忙参考 – JohnPaul