SOLIDWORKS PDM 中實現日期加序列號命名 —序列號每日更新初始

日期:2022-05-18 15:37:25 發布者: 智誠科技ICT 瀏覽次數:

SOLIDWORKS PDM 中提供了非常實用的工具——序列號,使得文件在順序編碼時非常的便捷。序列號使用的範圍也可以非常廣:使用序列號可以為文件和文件夾自動指派名稱或者為卡控件添加唯一的運行值。可以在每個庫中設定任意數量的序列號。

SOLIDWORKS PDM 中提供了非常實用的工具——序列號,使得文件在順序編碼時非常的便捷。序列號使用的範圍也可以非常廣:使用序列號可以為文件和文件夾自動指派名稱或者為卡控件添加唯一的運行值。可以在每個庫中設定任意數量的序列號。
注:序列號由靜態文本與自動分派的運行值組合而成,運行值可以預定字符串位數,並且序列號不受該值的位數的限制。如果您使用四位數值,計數器的值達到 9999 後,下一個值將是 10000。默認情況下,序列號是順序增加的。
在此案例中,碰見了一個特殊情況,客戶需要創建變更單,變更單的名稱命名結構為:變更單-年月日-三位序列號;例如:變更單-BG20181225-08、變更單-BG20181226-01。最特殊的情況是,當日期變化之後,末尾的序號需要重新從01開始。基於這個要求,以模板的形式為客戶提供變更單的創建一個符合要求的功能。
提前准備:
① 管理中創建一個PDM模板
② 准備變更單模板,並存放在庫中
 1) 接下來,從創建序列號開始,完成這個設定

    a) 打開管理,在管理中找到序列號並右鍵新建序列號

    b) 填寫名稱
    c) 格式字符串中填寫需要的信息
    d) 需要的信息可以在格式字符串末尾的“>”按鈕中找到
    e) 點擊確定,創建完成

2) 創建模板
    a) 管理中找到模板並右鍵新建模板
    b) 填寫模板名稱——將顯示在右鍵菜單中的名稱
    c) 設置執行為用戶——設置執行模板時的用戶權限
    d) 編輯模板卡
    i. 模板卡在新建時會顯示出來,變更單編號的變量“No”設置默認值為序列號,並選定變更單序列號
    ii. 組織模板變量頁面中,添加“t_No”,並在模板卡頁簽中,在“為所選卡復制變量”中將數據卡中變量“No”的值傳遞給“t_No”(模板變量“t_No”設置為格式字符串)
 
    e)  文件和文件夾—為變更單設置生成位置和添加相關文件(指定模板位置)
    i. 文件夾——添加創建變更單的位置
    ii. 在‘當前文件夾’文件夾中的文件
    1. 雙擊文件設置文件屬性
    2. 文件名稱引用模板變量“t_No”(將模板卡中產生的序列號傳遞到文件名)
 
    iii. 設置圖標和可執行此模板的用戶和組即可完成模板創建

3) 完成模板創建之後,即可在文件庫中測試,右鍵—新建—新建變更單,此時模板卡中會顯示當前文件的編碼,並會在文件產生的時候作為文件名的一部分
4) 在序列號中通過 “下一個計數器值”記錄了下一個產生的序列號值,為了保證每一天序列號的起始值都將會從01開始,我們需要系統在每天開始的時候將這個值充值為1
  

5) 首先我們需要查詢這個值在那裡記錄
    a) 在開始菜單中尋找SQL Management Studio 201X
    b) 連接好數據庫之後執行以下操作
    i. 新建查詢
    ii. 選擇需要查詢的庫(目標PDM庫的數據庫)
    iii. 在查詢頁面輸入如下語句,紅框中的為數據庫名
 
    c) 寫好查詢語句之後,我們得到記錄序列號值的結果,總計三列:Name(名稱)、LastGenerated(最後生成值)、Counter(計數=下一個計數器值)

6) 根據查詢結果推斷,當需要重置序列號值為1時,同樣需要在SQL中執行更新的查詢語句
USE [數據庫名稱]
GO

UPDATE [dbo].[SerialNumbers]
   SET [LastGenerated] = 0
,[counter] = 1
 WHERE [Name]='變更單編號'
GO

7) 已經確定好可以通過語句執行,那麼需要將這個動作設為定期任務,由服務器自動執行即可,因此要在SQL中寫如自動任務執行更新的任務:
    a) 打開SQL Management Studio 201X
    b) 在Management?Maintenance?右鍵?選擇New Maintenance Plan…
 
    c) 填寫任務名稱
  
    d) 計劃任務面板中會自動生成一個子計劃,如圖,設置子計劃的執行排期,完成後點擊OK,並保存任務(左上角點擊保存圖標)
 
    e) 在SQL Server Agent?Jobs 中找到剛剛創建的計劃,並雙擊打開
    i. 選擇Step 頁簽,雙擊打開修改存在的子計劃的操作步驟
 
    ii. 在子計劃步驟窗口中,更改步驟名稱?更改類型為:T-SQL?選擇要執行的數據庫?在Command中輸入要執行的語句?點擊??保存
 
    f) 全部確定保存之後,自動更新數據的任務即創建完成;當指定執行任務的時間SQL正常開啟中,則此任務會自動執行。

8) 特殊情況下:設定自動執行的時間節點,SQL未正常開啟,則此變更單序列號的值不能初始化,為了確保系統正常運行,需要建立一個備用機制,手動重置此數值:結合PDM提供的Dispatch 和SQL 的查詢語句來完成。
    a) 准備資料:
    i. 將查詢語句保存為文件:更改序列號的初始值.sql,並將此文件保存到PDM 庫中
    ii. 創建一個bat文件,內容如下(紅色文字為注釋,需要替換為對應信息),保證.bat和更改序列號的初始值.sql文件放在同一個文件夾,檢入兩個文件備用
@ECHO OFF?
SET dbhost=電腦主機名
SET dbuser=SQL用戶名
SET dbpasswd=密碼
set dbName=數據庫名稱
SET sqlpath=%~dp0
set sqlfile=執行的查詢語句文件名(更改序列號的初始值.sql)
::執行SQL腳本
osql -S %dbhost% -U %dbuser% -P %dbpasswd% -d %dbName% -i %sqlpath%%sqlfile%
ECHO 完成!
@ECHO Done!?
    b) Dispatch 中增加一個操作調用 已經存檔的.bat文件
    i. Dispatch中添加外殼執行,並選擇動作為open,文件名索引至庫中的路徑即可
9) 至此,創建一個每日自動更新的文件編碼暨完成。
注:在文章中提到將變量更新到文件名,同樣這些信息也可以更新到Office的文檔中去,具體做法可以參考另外一篇文章:PDM 在Microsoft Excel和Word文檔中創建信息映射

  • 點贊
  • 收藏