Tag: Workflow

  • Aras Innovator – 表單流程簽核架構

    ItemType—>Workflow—>Workflow Process—>Workflow Process Activity—>Activity—>Activity Assignment—>Identity

  • Aras Innovator – Dynamic Add Assignment By Property 以表單欄位做為簽核人員

    在 activity 的 on activate server event 建立對應的 server side method。該 method 的思路是從Activity Id 一路找到 ItemType 中目標簽核人員 (Identity) 的 property,再以此新增 Activity Assignment 到當前的 Activity。

    
    /*
    This method used for activity's on activate event.
    */
    
    // Target itemtype, property
    const string itemName = "Test ItemType";
    const string propertyName = "pm_id";
    
    // Target assignment parameters
    const bool assignRequired = false;
    const bool assignAllMember = true;
    const int assignVoteWeight = 100;
    
    Innovator inn = this.getInnovator();
    string actId = this.getID();
    string aidId = String.Empty;
    
    // Get assign identity
    Item itemType = inn.newItem(itemName, "get");
    Item wflItem = itemType.createRelationship("Workflow", "get");
    Item wpcItem = wflItem.createRelatedItem("Workflow Process", "get");
    Item wpaItem = wpcItem.createRelationship("Workflow Process Activity", "get");
    wpaItem.setProperty("related_id", actId);
    itemType = itemType.apply();
    aidId = itemType.getProperty(propertyName);
    if(aidId == null) {
    return inn.newError("Could not get assignment identity!");
    }
    
    // Create assignment to activity (need Aras PLM permission)
    Aras.Server.Security.Identity plmIdentity = Aras.Server.Security.Identity.GetByName("Aras PLM");
    
    bool permissionWasSet = Aras.Server.Security.Permission.GrantIdentity(plmIdentity);
    try {
    // Make sure assigned identity is not exist in activity
    Item assItem = inn.newItem("Activity Assignment", "get");
    assItem.setProperty("source_id", actId);
    assItem.setProperty("related_id", aidId);
    bool noExistIdentity = assItem.apply().getItemCount() == 0;
    if(noExistIdentity) {
    // Add
    assItem.setAction("add");
    assItem.setProperty("is_required", assignRequired ? "1" : "0");
    assItem.setProperty("for_all_members", assignAllMember? "1" : "0");
    assItem.setProperty("voting_weight", assignVoteWeight.ToString());
    assItem.apply();
    }
    }
    finally {
    if (permissionWasSet) {
    Aras.Server.Security.Permissions.RevokeIdentity(plmIdentity);
    }
    }
    
    return this;
    
    
  • Aras Innovator – 單據架構心智圖

    從建置電子簽核單據的角度,說明Itemtype、Lifecycle 、Workflow…等等項目之間的關係。

    以資訊服務申請單為例,展開ItemType的心智圖
  • Aras Innovator – 調整Workflow History Report 流程簽核記錄畫面(欄位)

    系統原本的流程簽核畫面已經很完善了,但組織仍可依據需要,增加或透過程式有條件的遮蔽欄位。

    1. 從關鍵字「Report」可知道要修改的項目就是Report
    2. 目標項目為Workflow Process History
    3. 如果有額外要顯示的資料可以在Report Query 欄位編輯AML 查詢
    4. 修改<body>內容(如有需要可透過Script 程式有條件遮蔽欄位)
  • Aras Innovator – Parallel Workflow Activity 平行簽核流程

    Aras Innovator可以透過Activity的Wait for All Inputs功能,搭配Auto Activity和Default Path設定來實現多關卡的平行簽核流程。

    Parallel 1Parallel 2Parallel 3