2016-09-23 4 views
2

Я использую Alfresco Community Edition-5.1.x, мы создали расширенный рабочий процесс. В рабочем процессе мы пытаемся заполнить значения результатов веб-сервиса в раскрывающемся списке. Не могли бы вы посоветовать нам, как заполнять значения в раскрывающемся списке?Alfresco workflow activiti: Как я могу заполнить результат webservice при выпадающем списке

ответ

1

В этом примере кода я загружаю членов группы в выпадающий список, вызывая веб-страницу 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> 
+0

Если REST API вебсервис, Как мы можем вам заселение выпадающий список – JohnPaul

+0

Это также встроенный REST API Alfresco только (Alfresco.constants.PROXY_URI + "апи/группы/$ {grpName }/children? sortBy = displayName & maxItems = 100 & skipCount = 0 ";) –

+0

Но мои внешние веб-службы не встроены в встроенные веб-сервисы, как я могу использовать внешние веб-сервисы во всём мире и результаты веб-сервисов, занесенные в раскрывающийся список, пожалуйста, помогите с ответами – JohnPaul

1

Вот образец для вас, и у меня есть следующие открытые веб-службы JSON - RSET , чтобы получить данные.

WebService URL: https://jsonplaceholder.typicode.com/posts

Результат должен быть что-то похожее на приведенное ниже, enter image description here

Пожалуйста, дайте мне знать, если вам нужна дополнительная помощь по этому вопросу.

<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