Я использую Alfresco Community Edition-5.1.x, мы создали расширенный рабочий процесс. В рабочем процессе мы пытаемся заполнить значения результатов веб-сервиса в раскрывающемся списке. Не могли бы вы посоветовать нам, как заполнять значения в раскрывающемся списке?Alfresco workflow activiti: Как я могу заполнить результат webservice при выпадающем списке
ответ
В этом примере кода я загружаю членов группы в выпадающий список, вызывая веб-страницу Alfresco Repo.
Зарегистрируйте управление здесь (в 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
<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
}
});
}
Запустите запрос службы REST здесь
${grpName}_loadData();
</script>
Вот образец для вас, и у меня есть следующие открытые веб-службы JSON - RSET , чтобы получить данные.
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>
Большое спасибо, я могу использовать веб-сервис и реализовываться на открытом воздухе – JohnPaul
Если REST API вебсервис, Как мы можем вам заселение выпадающий список – JohnPaul
Это также встроенный REST API Alfresco только (Alfresco.constants.PROXY_URI + "апи/группы/$ {grpName }/children? sortBy = displayName & maxItems = 100 & skipCount = 0 ";) –
Но мои внешние веб-службы не встроены в встроенные веб-сервисы, как я могу использовать внешние веб-сервисы во всём мире и результаты веб-сервисов, занесенные в раскрывающийся список, пожалуйста, помогите с ответами – JohnPaul