【问题标题】:Alfresco workflow activiti: How can I populate webservice result in dropdownAlfresco 工作流活动:如何在下拉列表中填充 Web 服务结果
【发布时间】:2016-09-23 05:21:00
【问题描述】:

我正在使用 Alfresco Community Edition-5.1.x,我们创建了高级工作流程。在工作流程中,我们尝试在下拉列表中填充 Web 服务结果值。您能指导我们如何在下拉列表中填充值吗?

【问题讨论】:

    标签: java alfresco alfresco-share


    【解决方案1】:

    在此示例代码中,我通过调用 Alfresco Repo webscript 将组成员加载到下拉控件中。

    在此处注册控件(在 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>
    

    【讨论】:

    • 如果是 REST API webservice ,我们如何填充下拉列表
    • 这也是 Alfresco 的仅内置 REST API (Alfresco.constants.PROXY_URI+"api/groups/${grpName}/children?sortBy=displayName&maxItems=100&skipCount=0"; )
    • 但是我的 web 服务外部不是 alfresco 内置的 web 服务,我如何在 alfresco 中使用外部 web 服务并且 web 服务结果填充到下拉列表中,请帮助参考
    【解决方案2】:

    这是给你的示例,我有以下打开的 JSON - RSET Web 服务 获取数据。

    网络服务网址: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>

    【讨论】:

    • 非常感谢我能够使用网络服务并在露天实现
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多