2017-03-28 1 views
0

ビジネスプロセスを開始する前に、添付ファイルを選択します。私は何度もそれをやることができ、添付ファイルを削除して、再度選択することができます。ワークフローを開始する前に添付ファイルの詳細を取得する方法はありますか?

添付ファイルに関する情報を含む動的テーブルを表示したいとします。

... 
workspace://SpacesStore/c5a27463-c2aa-4c70-aca7-1f999d3ac76a 
workspace://SpacesStore/29e9f035-403c-47b6-8421-624d584ff7eb 
workspace://SpacesStore/712aaca2-9c90-4733-a690-bbf9bacb26e6 
workspace://SpacesStore/68893fde-ee7c-4ecb-a2df-d4953dc69439 
... 

は、その後、私はへのAJAX要求を行うことができます

... 
var divWithAnchors = YAHOO.util.Selector.query("#page_x002e_data-form_x002e_task-details_x0023_default_assoc_packageItems-cntrl")[0]; 
var anchors = divWithAnchors.getElementsByTagName('a'); 

var attachments = new Array(); 
for(var i = 0; i < anchors.length; i++) { 
    attachments[i] = anchors[i].href.split('=')[1]; 
} 
... 

それは、例えば、ノードに私の参照を与える:

例えば、私はそのようなコードを使用し、すべての添付ファイルの詳細情報を取得しますRESTバックエンド(WebScripts)を使用して応答を取得します。

... 
for(var i = 0; i < attachments.length; i++) { 
    Alfresco.util.Ajax.jsonGet(
    ... 
    // parse JSON and fill the table 

これは正しい方法ですか?私はIDについてはよく分からない:

page_x002e_data-form_x002e_task-details_x0023_default_assoc_packageItems-cntrl 

これは一定である。これ識別子を変更することができます。..

私は情報のために非常に感謝されます?。ありがとうございます。

+0

ノードのページにどのような情報を表示する必要がありますか? –

+0

ご意見ありがとうございました!..私は応答の遅れに対して謝ります。私はコンテンツモデルにいくつかの側面を追加しました。これらの新しいプロパティ(コスト、作成日、請負業者など)を表示したいと思います。私は解決策(上に示した)を持っていますが、私は識別子について混乱しています、もしそれが変わったら、解決策は動作しません。 –

+2

今のところ、それはうまくいくでしょう...しかし、すぐにアルフレコがこのページをアイカウスタイルに動かしている可能性があり、コードが破損する可能性があります。 –

答えて

1

は(object-finder.jsを参照)実際には、これらすべてのNodeRefsは、オブジェクトselectedItems = {}で利用可能であり、方法getAddedItems()で得ることができます。

... 

/** 
* Selected items. Keeps a list of selected items for correct Add button state. 
* 
* @property selectedItems 
* @type object 
*/ 
selectedItems: null, 

... 

/** 
* Returns items that have been added to the current value 
* 
* @method getAddedItems 
* @return {array} 
*/ 
getAddedItems: function ObjectFinder_getAddedItems() { 
    var addedItems = [], 
    currentItems = Alfresco.util.arrayToObject(this.options.currentValue.split(",")); 

    for (var item in this.selectedItems) { 
     if (this.selectedItems.hasOwnProperty(item)) { 
      if (!(item in currentItems)) { 
       addedItems.push(item); 
      } 
     } 
    } 

    return addedItems; 
}, 

... 

次に、WebScriptにこれらNodeRefsを送信し、すべてを取得するために必要とされますNodeServiceサービスを使用して必要なプロパティ。

関連する問題