Category: Tech

IT Technology, 3C, AI

  • 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;
    
    
  • SSRS – 解決「不支援功能: “向外延伸部署”」問題

    Report Services 在 SQL Server 2005 之後的企業版,新增了能串連多個Server的「向外延伸部署」的功能,且該功能會透過ReportServer資料庫內的Keys table來進行管理。

    但在一個多Report Services的環境中,有可能因操作不慎的關係(如電腦名稱更改後有cache殘留),導致不小心在Keys資料表內多新增一筆Server資料,並造成非企業版的Server出現系統在使用不支援功能的錯誤。

    刪除Keys table內多餘的資料即可解決該問題。

  • 汽車保養心得 – 跟車很重要

    自己的車子一直都是回原廠保養,有些心得想寫下來記錄一下。

    1. 項目施做的必要性,除了車友間的請益之外,也可以詢問信賴的內外廠師傅或接待。

    2. 有時間建議保養時跟車,一來可以跟技師請益些養護知識,二來也可以了解實際的保養方式。

    3. 如有機油更換等常規保養以外的項目,建議一定要跟車以便確認是否有確實施做。(結帳時核對工單內容)

    4. 如果有油泥清洗(通常渦輪兩萬、NA四萬)等項目請務必跟車,以確保藥劑在核定時間內作用和洩除,以免有影響器械壽命的疑慮。(具體時間請參考瓶身說明或詢問技師)

    5. 如果車子的額定機油更換量不是常見的整數如4公升整,可以跟車時提醒技師或交車時檢查機油尺。(超量可以用抽油的方式處理)

    6. 原廠出保固不囉嗦、小零件免費更換等貼心服務,請務必不吝給予讚揚👍

  • Free Certificated HTTPS on IIS – Let’s Encrypt

    Free Certificated HTTPS on IIS – Let’s Encrypt

    Let’s Encrypt 組織提供了免費且認證周期短的合法憑證,以推廣 HTTPS 高安全加密的網站服務。官方提供了許多基於 Linux 平台的佈署工具,但缺乏基於 Windows 平台的方案,讓 Windows 平台上的佈署複雜許多。好在網路上有許多達人們將其化繁為簡,開發出連自動更新憑證認證的排程都處理好的Script工具:win-acme

    win-acme02
    請確認 IIS 已經設定好 HTTP 繫結網站域名

    win-acme01
    下載並解壓縮後,使用系統管理者身分執行wasc.exe

    原則上一路照著提示做完就搞定了。但如果最後執行時發生失敗也別緊張,個人的經驗是再跑一次就 OK 了。

    另外,如果 IIS 原本 HTTP 沒有繫結網站域名,而是為了建置 HTTPS 而設定的話,建議完成 HTTPS 設定後移除 HTTP 繫結網站域名的設定。以避免影響既有網站服務的運作。

  • Aras Innovator – 單據架構心智圖

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

    以資訊服務申請單為例,展開ItemType的心智圖
  • 啟用Windows 10家用版的群組原則編輯器

    Windows 10家用版預設沒有群組原則編輯器,但可透過手動安裝的方式處理。

    將下面的指令儲存成.bat批次檔後以系統管理者身分執行,這會需要一些時間進行安裝,之後便可執行gpedit.msc。

    @echo off
    pushd “%~dp0”
    dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt
    dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt
    for /f %%i in (‘findstr /i . List.txt 2^>nul’) do dism /online /norestart /add-package:”%SystemRoot%\servicing\Packages\%%i”
    pause

     

  • 禁止遠端桌面的資料(檔案)傳輸

    為了讓同仁使用家裡電腦透過VPN連回公司電腦作業的同時,避免公司資料外流和惡意程式入侵。除了白名單管理等必要措施外,亦需要透過AD群組原則禁用host電腦Remote Desktop的Redirection功能。

    RDPNoDataTransfer
    電腦設定 –> 系統管理範本 –> Windows元件 –> 遠端桌面服務 –> …