iT邦幫忙

0

鼎新 work flow 百年蟲蠢動危機

有誰可以分享使用鼎新WorkFlow ERP因應百年蟲蠢動危機呢??
因為公司從以前就採用民國年份(二位數), 現在即將進入民國100年, 這樣採用二位數者不就變成00年, 如果過了99年12月31日, 把民國年份(二位數)調整為三位數或是四位數西元年話....,
那之前在民國年份(二位數)產生資料數據是否會有所影響, 或是需要做何種方式修改資料數據... ??

2 個回答

8
dogolas
iT邦新手 5 級 ‧ 2010-07-13 14:32:30
最佳解答

我門公司就是使用鼎新的WorkFlow ERP,關於百年序(鼎新內部如此稱呼)的問題,有詢問過鼎新的客服,甚至參加教育訓練也有問過講師,經客服的回答,發現會是一個大工程,如果 貴公司已經上線或是使用多年,因為所有單據都要用新名稱,也就是舊單據都無法使用3字元的百年序,因為舊單據的百年序無法修改。因此我門公司勢必要開會討論如何處理。

jslin0724 iT邦新手 4 級 ‧ 2010-07-13 14:43:47 檢舉

不知是自己想得比較單純些, 單據號碼ERP系統內是可以更改為YYYMM999999, 這樣話對100年產生新單據應該沒有問題, 那針對原舊單據, 把那些欄位資料找出來透過SQL語法更改在其前面加個 0 話, 這樣也不行, 不知會有怎麼樣問題...?? 苦惱 !! 謝謝

dogolas iT邦新手 5 級 ‧ 2010-07-15 11:53:08 檢舉

共用參數的地方可以調整年碼格式為3位數 YYYMMDD999,但是單據號碼不會受影響一起改變,必須在單據性質設定的地方修改設定,才會調整過來,至於透過SQL語法的方式修改,目前還未測試過,所以不知會不會有問題。

6
dscwferp
iT邦好手 1 級 ‧ 2010-07-14 09:30:02

請參考
http://dscwferp.blog.ithome.com.tw/post/3156/63261
我已寫好程式
針對原舊單據, 把那些欄位資料找出來透過SQL語法更改在其前面加個 0 !
這樣是行得通了!
此程式已應用在10家客戶上了
所以沒問題的!
程式困難點在"把那些欄位資料找出來"!
除了每個單據的單號外 還有"前置單據" "參考單據" 等 關連的
都要找出來
這就是困難點!
加油喔!

看更多先前的回應...收起先前的回應...
dogolas iT邦新手 5 級 ‧ 2010-07-15 12:00:47 檢舉

請問您是鼎新顧問公司的內部人員嗎??還是外面的軟體公司!!提供的服務是免費還是收費??

dscwferp iT邦好手 1 級 ‧ 2010-07-16 09:08:10 檢舉

是外面的軟體公司!
提供的服務 是 簽約客戶免費!
沒簽約另外報價!
有興趣msn聯繫!

dogolas iT邦新手 5 級 ‧ 2010-07-19 15:27:40 檢舉

所謂的簽約,是指和你們公司簽約??還是和鼎新簽約??
另外可以順便給一下MSN嗎? ^-^

jslin0724 iT邦新手 4 級 ‧ 2010-07-22 10:42:49 檢舉

謝謝~~ dscwferp
有在dcmsclub 看到同您名稱的dscwferp 所提供UPDATE 單據前頭加個"0" 的SQL語法,
問題是單據欄位長度是char(11), 要UPDATE成在原單據加個"0", 這樣子不就是變成12碼,
超出單據欄位長度定義的char(11).... ?
這樣要如何判斷與截掉單據單號中間部份那個 "0"... ??

Looking Ahead on Request
「Wish you all the best」 Thanks a lot !!

jslin0724 iT邦新手 4 級 ‧ 2010-07-22 10:46:32 檢舉

就是蠻認同 dscwferp 所言...
如果選 民國100/1/1 開新單別 改成年碼的話, 那之後 就不能 補之前單據!!
比如 民國99年的帳要結, 開新的應付單 就無法用 2碼年碼來開單了!
困擾比較多!所以建議 追朔既往 將以前單據都改掉比較好!

也就所以希望能一併把原二碼產生單據,改成099 or 098...等

Looking Ahead on Request
「Wish you all the best」 Thanks a lot !!

dscwferp iT邦好手 1 級 ‧ 2010-07-26 13:45:17 檢舉

超出 char(11) 就要討論如何判斷與截掉單據單號中間部份那個 "0"
單號是有編碼原則
編碼原則 改成符合未來就好啊!
討論出來就可以做到!

jslin0724 iT邦新手 4 級 ‧ 2010-07-26 14:49:57 檢舉

自己依公司數據資料實際使用狀況, 找出第五位數為 "0", 去掉該位數產生Update語法

UPDATE TEST..ACPTA
SET TA002 = '0' + LEFT(TA002,4) + SUBSTRING(TA002,6,LEN(TA002)-5)
WHERE((LEFT(TA002, 1) = '9') or (LEFT(TA002, 1) = '8'))

測試 ok 原為 99070000011 更新後顯示 09907000011

dscwferp iT邦好手 1 級 ‧ 2010-07-27 10:31:00 檢舉

恭喜!
改很簡單
但找出要改哪些欄位 就很麻煩了!
加油喔!

dogolas iT邦新手 5 級 ‧ 2010-11-19 11:31:23 檢舉

雖然你已經解決,但是我有相同的問題(單據號碼)再請教你
UPDATE TEST..ACPTA
SET TA002 = '0' + LEFT(TA002,4) + SUBSTRING(TA002,6,LEN(TA002)-5)
WHERE((LEFT(TA002, 1) = '9') or (LEFT(TA002, 1) = '8'))

你上面的語法是你門公司的情況,但是我門公司的狀況不一樣,以下是我們公司的單據(領料單與退料單)由於分二家公司,單號設定不同,可以請教與法該如何寫!!

Y540-00990801001 L540-990801001 領料單

Y560-990801001 L560-990801001 退料單
由於Y540已經15碼該如何去頭,另外可以個別針對單別做加0的動作嗎!請不吝指教>-<

Albert iT邦高手 1 級 ‧ 2010-11-20 01:05:08 檢舉

dogolas提到:

<...(恕不刪)

AsIf::L540-990801001 領料單(年月日+序號) 9碼

ToBe::L540-09908010001 領料單(年月日+序號) 11碼

UPDATE TEST..ACPTA
SET TA002 = '0' + LEFT(TA002,6) + '0' + SUBSTRING(TA002,7,LEN(TA002)-6)
WHERE((LEFT(TA002, 1) = '9') or (LEFT(TA002, 1) = '8')) AND (TA01='L540' OR TA01='Y560' OR TA01='L560')

AsIf::L540-990801001 領料單(年月日+序號) 9碼

ToBe::L540-09908010001 領料單(年月日+序號) 10碼

UPDATE TEST..ACPTA
SET TA002 = '0' + TA002
WHERE((LEFT(TA002, 1) = '9') or (LEFT(TA002, 1) = '8')) AND (TA01='L540' OR TA01='Y560' OR TA01='L560')

超出 char(11) 就要討論如何判斷與截掉單據單號中間部份那個 "0"
單號是有編碼原則
編碼原則 改成符合未來就好啊!
討論出來就可以做到!

AsIf::Y540-00990801001 領料單(00+年月日+序號) 11碼

ToBe::Y540-0990801001 領料單(00+年月日+序號) 11碼
(不用改)

我要發表回答

立即登入回答