從 Oracle 10g 開始, 就開始提供有 recyclebin 的功能 (資源回收筒) ,
所以一旦不小心 drop table 刪錯了, 而且已經 commit ,
由於在 Oracle 10g 裡面的運作, 只是把原本的 Table 名稱換成 BIN$1234567890==$0 ,
沒關係, 只要把 recyclebin 裡面的物件還原就好啦~~
總是會有不小心的時候嘛~~
也由於沒有釋放 Tablespace 的空間, 也因此查詢 tablespace 佔用大小時就會越來越慢 ,
所以建議還是固定時間去清理一下 ,
以下就是整個還原會用到的相關指令 :
1. 查看目前有那些 Table
select * from tab
2. 查看資源回收有那些物件
select * from recyclebin;
或
select * from dba_recyclebin
或 SQLPLUS 的
SQL> show recyclebin
3. 再來就是還原指令
FLASHBACK TABLE [被刪除的 Table Name] TO BEFORE DROP;
如果是刪除 Table 不要放到 recyclebin 呢?
drop table recycletest purge;
當然囉, 也可以指定那些物件確定要清除 recyclebin
purge table recycletest;
要清空資源回收筒:
purge recyclebin;
或
purge dba_recyclebin;
要注意喔~ 建議用 BIN$1234567890==$0 當作 Table 名稱的方式來還原,
因為有可能建立重複的 Table 名稱, 到時候還原的方式是以後刪除的先還原,
BIN$1234567890==$0 數字越大表示越晚刪除的物件.
遇到重複 Table 的情況時, 可以還原的時候變更 Table 的名稱,
flashback table [刪除的 Table 名稱] to before drop rename to [要還原的 Table 名稱];
當然也可以打開或關閉資源回收筒的功能:
alter session set recyclebin = off;
alter system set recyclebin = off;
因 TIPTOP 執行批次作業或是報表的時候,都會產生暫存 Table 的,
像是 TT 開頭+一串數字+_文字 的 Table 就是暫存時產生的資料,以後也不會再用到了。
有時候也不會 DROP 掉一直存留著,或是就算 DROP 也會一直留在回收筒,
只要在 Oracle 建立排程,定時把這些垃圾都清一清吧~
declare
str varchar2(1000);
num number;
begin
--刪除 TEMP TABLE
for i in(select table_name from user_tables ,user_objects where table_name like 'TT%' and created <= sysdate - 3 and table_name = object_name and object_type = 'TABLE' and tablespace_name = 'TEMPTABS')
loop
str:='drop table '||i.table_name||' purge ';
execute immediate str ;
commit;
end loop;
--清空回收筒
for i in(select object_name,droptime from user_recyclebin where droptime < to_char(sysdate-3,'YYYY-MM-DD hh:mm:ss') and type= 'TABLE' order by droptime)
loop
str:='purge table "'||i.object_name||'" ';
execute immediate str ;
commit;
end loop;
end;
2011年3月23日
2011年3月16日
TIPTOP 和其他系統整合的架構
說到系統整合, 大家應該是惟恐不及吧~~
變成盡量讓其他的系統廠商去思考如何和 ERP 系統來整合,
但越來越多系統的話, 不就有越來越多的整合方式, 在管理上或問題釐清就變的複雜了.
在整合外部多種系統後發現, 比較容易和確實的就屬中介 Table 是最好的方式,
可以避免外部的系統直接寫入 ERP 的資料庫, 可以建立存取權限.
也讓系統整合能夠有足夠資料去稽核正確性.
再來就是系統整合的架構囉~
建立外部系統的 Oracle user account , 並在此 DB 帳號建立要讀取 ERP 的 readonly view ,
之後要取得 ERP 系統的資料, 就可以直接連到資料庫去 Select .
如果是要存入或異動資料到 ERP Database, 需要透過中介 Table 方式進行,
外部系統先寫入到中介 DB 的 Table (需先跟廠商溝通好整合的資料 Schema) ,
然後再由 ERP 用 cron job 或是手動的方式執行程式去建立或異動資料,
確認資料異動正確或錯誤, 回寫狀態碼給中介 DB 的 Table,
外部程式再去 Check 整合資料是否完整和正確.
整合系統讓權責能夠區分清楚, 避免以後維護和責任確認可以比較清楚和容易.
以 APS 的範例如下:
1. 和 APS 系統整合, 所以建立在 Oracle 建立 aps 的帳號名稱.
使用 sys 帳號和 sysdba 方式登入
conn sys/sys_dsc as sysdba;
--create user
CREATE USER aps
IDENTIFIED BY aps
DEFAULT TABLESPACE DBS1
TEMPORARY TABLESPACE TEMP
PROFILE TIPTOPGP
ACCOUNT UNLOCK;
-- 2 Roles for aps
GRANT RESOURCE TO aps;
GRANT TIPTOPGP TO aps;
ALTER USER aps DEFAULT ROLE ALL;
-- 5 System Privileges for aps
GRANT UNLIMITED TABLESPACE TO aps;
GRANT CREATE VIEW TO aps;
GRANT CREATE TABLE TO aps;
GRANT CREATE SYNONYM TO aps;
GRANT CREATE SESSION TO aps;
-- 1 Object Privilege for aps
GRANT SELECT ON SYS.V_$SESSION TO aps;
2. 建立 aps 所要讀取 ERP 的 Table 資料 readonly view .
我假設是全部 DS 裡面的 table 都可以讀取.
select 'CREATE OR replace view aps.' || table_name || ' as
select * from ds.' || table_name || ' with read only;'
from dba_tables
where owner = 'DS'
order by 1
再把 SQL 執行後的資料, 全部複製再執行.
或一個一個 table 加上去
CREATE OR replace view aps.XXX_FILE as select * from ds.XXX_FILE with read only;
3. 在 aps Database 中建立中介 Table 的 Schema .
APS 會回寫工單和請購單, 所以我就叫 aps_sfb_file 和 aps_pml_file .
4. 使用者完成外部 APS 系統後, 回寫工單和請購單的資料到 ERP 系統,
新增 APS 接口的程式, 去讀取中介 Table 和產生 ERP 的單號 .
完成後回寫狀態到中介 Table .
變成盡量讓其他的系統廠商去思考如何和 ERP 系統來整合,
但越來越多系統的話, 不就有越來越多的整合方式, 在管理上或問題釐清就變的複雜了.
在整合外部多種系統後發現, 比較容易和確實的就屬中介 Table 是最好的方式,
可以避免外部的系統直接寫入 ERP 的資料庫, 可以建立存取權限.
也讓系統整合能夠有足夠資料去稽核正確性.
再來就是系統整合的架構囉~
之後要取得 ERP 系統的資料, 就可以直接連到資料庫去 Select .
如果是要存入或異動資料到 ERP Database, 需要透過中介 Table 方式進行,
外部系統先寫入到中介 DB 的 Table (需先跟廠商溝通好整合的資料 Schema) ,
然後再由 ERP 用 cron job 或是手動的方式執行程式去建立或異動資料,
確認資料異動正確或錯誤, 回寫狀態碼給中介 DB 的 Table,
外部程式再去 Check 整合資料是否完整和正確.
整合系統讓權責能夠區分清楚, 避免以後維護和責任確認可以比較清楚和容易.
以 APS 的範例如下:
1. 和 APS 系統整合, 所以建立在 Oracle 建立 aps 的帳號名稱.
使用 sys 帳號和 sysdba 方式登入
conn sys/sys_dsc as sysdba;
--create user
CREATE USER aps
IDENTIFIED BY aps
DEFAULT TABLESPACE DBS1
TEMPORARY TABLESPACE TEMP
PROFILE TIPTOPGP
ACCOUNT UNLOCK;
-- 2 Roles for aps
GRANT RESOURCE TO aps;
GRANT TIPTOPGP TO aps;
ALTER USER aps DEFAULT ROLE ALL;
-- 5 System Privileges for aps
GRANT UNLIMITED TABLESPACE TO aps;
GRANT CREATE VIEW TO aps;
GRANT CREATE TABLE TO aps;
GRANT CREATE SYNONYM TO aps;
GRANT CREATE SESSION TO aps;
-- 1 Object Privilege for aps
GRANT SELECT ON SYS.V_$SESSION TO aps;
2. 建立 aps 所要讀取 ERP 的 Table 資料 readonly view .
我假設是全部 DS 裡面的 table 都可以讀取.
select 'CREATE OR replace view aps.' || table_name || ' as
select * from ds.' || table_name || ' with read only;'
from dba_tables
where owner = 'DS'
order by 1
再把 SQL 執行後的資料, 全部複製再執行.
或一個一個 table 加上去
CREATE OR replace view aps.XXX_FILE as select * from ds.XXX_FILE with read only;
3. 在 aps Database 中建立中介 Table 的 Schema .
APS 會回寫工單和請購單, 所以我就叫 aps_sfb_file 和 aps_pml_file .
4. 使用者完成外部 APS 系統後, 回寫工單和請購單的資料到 ERP 系統,
新增 APS 接口的程式, 去讀取中介 Table 和產生 ERP 的單號 .
完成後回寫狀態到中介 Table .
2011年3月9日
TIPTOP Genero 呼叫本機的程式來執行
TIPTOP 導入之後, 再來就是一連串的外部程式整合囉~~
能夠提供公司全資訊化的服務, 才是 IT 價值所在.
最近想辦法整合條碼的設計軟體,
讓 TIPTOP 能夠抓取資料, 呼叫外部條碼軟體並丟參數值, 由條碼軟體列印出來.
這樣可以讓設計條碼的人就不是 IT 囉~~(這才是我的目的~~)
也簡化了作業的流程, 和日後的維護工作.
不過要如何做呢??
可以參考 cl_client_app.4gl 的程式,
就可以發現 GDC 是可以呼叫 Genero 稱之為"前端"的程式段, ( ui.Interface.frontCall )
只要在要呼叫外部軟體的程式上,加上 cl_open_prog("Shell的程式名稱","參數") ,
如果是多參數的話用 | (pipe) 來分隔.
以範例來說, 我是呼叫"記事本" (notepad) ,
然後檔案的位置在本機的 C:\TIPTOP\xxxxx.TXT ,
加上:
LET status = cl_open_prog("notepad","C:\\TIPTOP\\xxxxx.TXT")
這樣就完成啦~~~試試看吧~~~
能夠提供公司全資訊化的服務, 才是 IT 價值所在.
最近想辦法整合條碼的設計軟體,
讓 TIPTOP 能夠抓取資料, 呼叫外部條碼軟體並丟參數值, 由條碼軟體列印出來.
這樣可以讓設計條碼的人就不是 IT 囉~~(這才是我的目的~~)
也簡化了作業的流程, 和日後的維護工作.
不過要如何做呢??
可以參考 cl_client_app.4gl 的程式,
就可以發現 GDC 是可以呼叫 Genero 稱之為"前端"的程式段, ( ui.Interface.frontCall )
只要在要呼叫外部軟體的程式上,加上 cl_open_prog("Shell的程式名稱","參數") ,
如果是多參數的話用 | (pipe) 來分隔.
以範例來說, 我是呼叫"記事本" (notepad) ,
然後檔案的位置在本機的 C:\TIPTOP\xxxxx.TXT ,
加上:
LET status = cl_open_prog("notepad","C:\\TIPTOP\\xxxxx.TXT")
這樣就完成啦~~~試試看吧~~~
2011年2月28日
多角貿易拋轉多倉儲批出貨收貨入庫單的問題
應該都知道出貨單可以多倉儲批出貨吧~
但收貨和入庫單是否可以多倉儲批呢?
當然是不行啦~ 只有出貨才能多筆倉儲批的數量合併成出貨單的同一項次.
所以拋轉到收貨單時變成了倉儲批的欄位是空白的. (那多角貿易就不能確保批號一致了)
問題來了, 這樣多角貿易不就不能用多倉儲批出貨了嗎?
難道要在出貨單一筆一筆 key 要出貨的資訊 ?
如果是鼎新的標準程式, 這是必然的, 必須出貨單產生多項才能避免此問題發生.
因為出貨單的項次和拋轉後的收貨入庫單項次是鎖死的. 必須要一致.
唉~
不過我們可以做以下的修改, 修改 saxmp900.4gl 的程式,
多抓 ogc_file ,並項次能夠是依 ogc_file 排序來自動編號, 這樣不就好了嗎?
1. 首先需要增加抓取 ogc_file 的資訊, 並只在中斷點的時候才做拆多倉儲批控管.
3. 試拋看看吧. 看似很難其實很簡單吧.
要注意喔~ 修改確認段時, 就要注意取消確認段, 當然拋轉的程式也要注意拋轉還原囉~
所以記得也要改拋轉還原的程式啦~ 不然標準程式可是會拋轉還原失敗的.
但收貨和入庫單是否可以多倉儲批呢?
當然是不行啦~ 只有出貨才能多筆倉儲批的數量合併成出貨單的同一項次.
所以拋轉到收貨單時變成了倉儲批的欄位是空白的. (那多角貿易就不能確保批號一致了)
問題來了, 這樣多角貿易不就不能用多倉儲批出貨了嗎?
難道要在出貨單一筆一筆 key 要出貨的資訊 ?
如果是鼎新的標準程式, 這是必然的, 必須出貨單產生多項才能避免此問題發生.
因為出貨單的項次和拋轉後的收貨入庫單項次是鎖死的. 必須要一致.
唉~
不過我們可以做以下的修改, 修改 saxmp900.4gl 的程式,
多抓 ogc_file ,並項次能夠是依 ogc_file 排序來自動編號, 這樣不就好了嗎?
1. 首先需要增加抓取 ogc_file 的資訊, 並只在中斷點的時候才做拆多倉儲批控管.
2. 再來就是自動編號和產生多倉儲批的資訊囉~
3. 試拋看看吧. 看似很難其實很簡單吧.
要注意喔~ 修改確認段時, 就要注意取消確認段, 當然拋轉的程式也要注意拋轉還原囉~
所以記得也要改拋轉還原的程式啦~ 不然標準程式可是會拋轉還原失敗的.
2011年2月22日
請採購部門費用預算管控機制
相信每一家公司都是以營利為目的是吧?
不止要開源-增加訂單和出貨量,節流-控制部門的花費也是必要的管理手段.
如何讓 TIPTOP 實現公司部門費用的預算管理機制呢?
其實只是把功能打開就可以用囉~~
不過最重要的還是: 請購人員需要知道購買何種商品或是服務,
需要入到那一個費用的"會計科目",
入錯費用或是隨意輸入的話,當然就沒有管控的意義啦~
再來就是預算是以"年"為單位,
所以跨年度的預算的請購單, 當然最好是重 key 囉~ (有寫入年度的欄位就不能再續用了.)
如何開啟預算的呢?
1. 先匯入部門預算的資料. (相信應該原本就有在維護了吧~)
2. 會計科目開啟部門預算的控管.
3. 再來就是針對單別來做預算的功能開啟.
4. 之後就是各單位請購單, 記得在單身要維護部門的預算資料囉~~
PS : 部門費用預算的管制, 流程上會有一些程序上的問題,
盡量能夠保有管控的機制才有意義.
不止要開源-增加訂單和出貨量,節流-控制部門的花費也是必要的管理手段.
如何讓 TIPTOP 實現公司部門費用的預算管理機制呢?
其實只是把功能打開就可以用囉~~
不過最重要的還是: 請購人員需要知道購買何種商品或是服務,
需要入到那一個費用的"會計科目",
入錯費用或是隨意輸入的話,當然就沒有管控的意義啦~
再來就是預算是以"年"為單位,
所以跨年度的預算的請購單, 當然最好是重 key 囉~ (有寫入年度的欄位就不能再續用了.)
如何開啟預算的呢?
1. 先匯入部門預算的資料. (相信應該原本就有在維護了吧~)
2. 會計科目開啟部門預算的控管.
3. 再來就是針對單別來做預算的功能開啟.
4. 之後就是各單位請購單, 記得在單身要維護部門的預算資料囉~~
PS : 部門費用預算的管制, 流程上會有一些程序上的問題,
盡量能夠保有管控的機制才有意義.
2011年2月21日
如何查詢 TIPTOP 系統的所有欄位的內容和定義
我們在維護 TIPTOP 程式的時候, 會發現 SQL 指令要查詢那一個欄位.
用 p_zta 實在是不方便, 工作效率也不佳.
TIPTOP 在資料庫有紀錄欄位定義的 Table ,
以後只要查詢這一個 Table 就好啦~ 就可以快速查到你要的欄位定義和內容了.
範例參考 :
select * from ds.gaq_file
where gaq02 = '0' --語言別
and gaq01 like '%ima%' --Table 的代號
order by 1
是不是就方便許多了呢?
用 p_zta 實在是不方便, 工作效率也不佳.
TIPTOP 在資料庫有紀錄欄位定義的 Table ,
以後只要查詢這一個 Table 就好啦~ 就可以快速查到你要的欄位定義和內容了.
範例參考 :
select * from ds.gaq_file
where gaq02 = '0' --語言別
and gaq01 like '%ima%' --Table 的代號
order by 1
是不是就方便許多了呢?
依不同國家的使用者設定不同時區
因 TIPTOP 系統是屬於 Clinet-Server 的架構, 如圖所示 :
也就是說, 所有的使用者端都是連線到伺服端裡面來執行程式,
伺服端執行完成後, 再把執行的結果的畫面傳回到使用者端,
所以 TIPTOP 登入的時間也就不是使用者本機的設定了,
而是 TIPTOP 主機 User profile 的設定.
要如何針對使用者讓顯示的時間是正確的呢?
很簡單, 只要針對 user 在 .profile 檔裡,
加入一行 export TZ=GST+8 就可以了 (以美國西岸為例) ,
再看時區為何來調整要加減多少.
但要注意喔~ .profile 檔不能是 link 的 file , 不然就所有使用者全部跟著改啦~
所以 .profile 檔要先移除 ln 再重新建立.
伺服端執行完成後, 再把執行的結果的畫面傳回到使用者端,
所以 TIPTOP 登入的時間也就不是使用者本機的設定了,
而是 TIPTOP 主機 User profile 的設定.
要如何針對使用者讓顯示的時間是正確的呢?
很簡單, 只要針對 user 在 .profile 檔裡,
加入一行 export TZ=GST+8 就可以了 (以美國西岸為例) ,
再看時區為何來調整要加減多少.
但要注意喔~ .profile 檔不能是 link 的 file , 不然就所有使用者全部跟著改啦~
所以 .profile 檔要先移除 ln 再重新建立.
2011年2月17日
TIPTOP 主機定期備份 Oracle 資料 & TIPTOP 程式, 備份篇
相信 TIPTOP 主機的備份, 大多還是都存在 /u1/backup 目錄裡面,
而且只放一週的資料而已吧~~備份資料還有包含在正式區的測試資料庫...等。
再加上 TIPTOP GP 5.x 開始, 報表轉為 Crysal Report ,
需另外新增一台 IIS Web Service 的 CR 報表伺服器,
備份資料變的分散無法集中,再加上 Linux 沒有開啟 Samba 的服務, (也比較安全一點)
備份上更是難以管理和紀錄.
好加在還有 FTP 的功能,提供資料上傳和下載的工具將資料移轉到另一台主機.
方便的做法當然是利用 CR 主機的 IIS 服務, 另外再加掛 ftp server 的功能囉~~
這樣備份就變的輕鬆而完整啦~~
TIPTOPGP 主機 --------經由 ftp--------> CR 主機 ----------> 磁帶或遠端儲存媒體.
(tar 程式 + exp Oracle DB) (cr 報表檔) (可以利用 rar 進行壓縮)
隨著時代不斷的進步,硬碟容量也比以前大很多囉,所以備份到硬碟也是可行的方法之一.
以下就是我的備份方式.皆用排程的方式來自動執行.省時又省力.
1. 上傳 ftp 的指令
2. 自動備份 Oracle 的匯出指令,首先要載入環境變數,讓排程會自動執行
3. 備份資料,可以排除一些 patch 和比較沒有用的資料檔, 節省備份時間和空間
4. 再來就是設定工作排程囉~~用 root 帳號登入後, 執行 crontab -e 來設定排程作業,
範例說明是設定為早上 7 點自動執行.
5. 再補充一個 rar 的指令,讓資料能夠壓縮起來,資料庫的檔案大小可是差異很大的喔~~~
可以壓縮大概 80% 的容量...100 MB 壓縮起來剩 20 MB 的磁碟空間大小.
而且只放一週的資料而已吧~~備份資料還有包含在正式區的測試資料庫...等。
再加上 TIPTOP GP 5.x 開始, 報表轉為 Crysal Report ,
需另外新增一台 IIS Web Service 的 CR 報表伺服器,
備份資料變的分散無法集中,再加上 Linux 沒有開啟 Samba 的服務, (也比較安全一點)
備份上更是難以管理和紀錄.
好加在還有 FTP 的功能,提供資料上傳和下載的工具將資料移轉到另一台主機.
方便的做法當然是利用 CR 主機的 IIS 服務, 另外再加掛 ftp server 的功能囉~~
這樣備份就變的輕鬆而完整啦~~
TIPTOPGP 主機 --------經由 ftp--------> CR 主機 ----------> 磁帶或遠端儲存媒體.
(tar 程式 + exp Oracle DB) (cr 報表檔) (可以利用 rar 進行壓縮)
隨著時代不斷的進步,硬碟容量也比以前大很多囉,所以備份到硬碟也是可行的方法之一.
以下就是我的備份方式.皆用排程的方式來自動執行.省時又省力.
1. 上傳 ftp 的指令
4. 再來就是設定工作排程囉~~用 root 帳號登入後, 執行 crontab -e 來設定排程作業,
範例說明是設定為早上 7 點自動執行.
5. 再補充一個 rar 的指令,讓資料能夠壓縮起來,資料庫的檔案大小可是差異很大的喔~~~
可以壓縮大概 80% 的容量...100 MB 壓縮起來剩 20 MB 的磁碟空間大小.
當然囉~~市面上也有很多備份工具可以提供完整的 solution, 不過經濟又實惠的作法也是值得參考的.
2011年2月1日
如何用一個 SQL 來查 BOM -- 遞迴查詢
常常在設計連結資料庫程式的時候, 階層式架構的 Table 大致上都是母子在同一行的樣式來設計,
資料庫 Table 是容易設計,不過呢? 要把所有的階層展開時,程式就不容易寫,且執行效能也低落,
其實 SQL 是可以做遞迴查詢的,不但不用寫程式一直 WHILE 跑迴圈 , 而且執行效率更快.
以下是 TIPTOP 5.x 的多階 BOM 的 Oracle 範例:
select level,bmb02,bmb01,bmb03,bmb04,bmb05 from bmb_file,bma_file,ima_file
where (bmb05 > sysdate or bmb05 is null)
and (bmb04 < sysdate or bmb04 is null)
and bma01 = bmb01 and bmaacti = 'Y'
and bma01 = ima01
connect by bmb01 = prior bmb03 and (bmb05 > sysdate or bmb05 is null) and (bmb04 < sysdate or bmb04 is null) and bmaacti = 'Y'
start with ima01 = '料件編號' and (bmb05 > sysdate or bmb05 is null) and (bmb04 < sysdate or bmb04 is null) and bmaacti = 'Y'
抓取最新的 BOM , 有生失效日的判斷 , 重點是還有階層數喔~~
可以試試看.
再提供一些相關的指令:
LEVEL:階數
SYS_CONNECT_BY_PATH(欄位,符號):可以列出整個路徑出來,符號用 -> 會比較清楚
CONNECT_BY_ISLEAF:可以判斷是不是最底層
CONNECT_BY_ROOT(欄位):顯示最上層的資料欄位
CONNECT_BY_ISCYCLE:判斷是否有迴圈
NOCYCLE:加在 CONNECT BY 後面有迴圈的就不繼續往下,可配合 CONNECT_BY_ISCYCLE 使用
資料庫 Table 是容易設計,不過呢? 要把所有的階層展開時,程式就不容易寫,且執行效能也低落,
其實 SQL 是可以做遞迴查詢的,不但不用寫程式一直 WHILE 跑迴圈 , 而且執行效率更快.
以下是 TIPTOP 5.x 的多階 BOM 的 Oracle 範例:
select level,bmb02,bmb01,bmb03,bmb04,bmb05 from bmb_file,bma_file,ima_file
where (bmb05 > sysdate or bmb05 is null)
and (bmb04 < sysdate or bmb04 is null)
and bma01 = bmb01 and bmaacti = 'Y'
and bma01 = ima01
connect by bmb01 = prior bmb03 and (bmb05 > sysdate or bmb05 is null) and (bmb04 < sysdate or bmb04 is null) and bmaacti = 'Y'
start with ima01 = '料件編號' and (bmb05 > sysdate or bmb05 is null) and (bmb04 < sysdate or bmb04 is null) and bmaacti = 'Y'
抓取最新的 BOM , 有生失效日的判斷 , 重點是還有階層數喔~~
可以試試看.
再提供一些相關的指令:
LEVEL:階數
SYS_CONNECT_BY_PATH(欄位,符號):可以列出整個路徑出來,符號用 -> 會比較清楚
CONNECT_BY_ISLEAF:可以判斷是不是最底層
CONNECT_BY_ROOT(欄位):顯示最上層的資料欄位
CONNECT_BY_ISCYCLE:判斷是否有迴圈
NOCYCLE:加在 CONNECT BY 後面有迴圈的就不繼續往下,可配合 CONNECT_BY_ISCYCLE 使用
2011年1月18日
同步不同 DB 的 Table -- 設定/取消 Oracle 的 Synonym 連結
公司有時需要每一個資料庫的 Table 都參考到 ds 或是母公司的資料庫,
像是權限管理預設就是 zx_file、zy_file、zw_file 都參考 ds 的資料庫,
因此要如何設定 Synonym 呢??
1. 先把原本的 table 刪除
drop table xxx_file;
2. 再建立 synonym
CREATE OR replace synonym DBUSER.xxx_file for ds.xxx_file;
那如果是要取消 synonym 呢??
1. 先把原本的 synonym 取消
drop synonym DBUSER.xxx_file;
2. 再把 table 建立回來,再加上設定為 PUBILC 可以讓其他 user 存取
(使用 DB table 複製的功能會比較快)
create table DBUSER.xxx_file as select * from ds.xxx_file where rownum = 1;
delete DBUSER.xxx_file;
grant all on sfa_file to public;
像是權限管理預設就是 zx_file、zy_file、zw_file 都參考 ds 的資料庫,
因此要如何設定 Synonym 呢??
1. 先把原本的 table 刪除
drop table xxx_file;
2. 再建立 synonym
CREATE OR replace synonym DBUSER.xxx_file for ds.xxx_file;
那如果是要取消 synonym 呢??
1. 先把原本的 synonym 取消
drop synonym DBUSER.xxx_file;
2. 再把 table 建立回來,再加上設定為 PUBILC 可以讓其他 user 存取
(使用 DB table 複製的功能會比較快)
create table DBUSER.xxx_file as select * from ds.xxx_file where rownum = 1;
delete DBUSER.xxx_file;
grant all on sfa_file to public;
2011年1月1日
Crystal Report 在 IE 8 跳頁會錯亂
當多個 CR 報表產出顯示在 IE 8 時, 任一報表按下一頁,
結果會發現怎麼 A 報表下一頁會接到 B 報表 ??
原來是因為 IE 8 的核心預設是會共同 Frame 的關係.
共同 Frame 好處,記憶體的耗用會比較低 (還記得之前的 KKMAN,類似的作法),
不過現在電腦都 1G , 2G 以上的 RAM 了, 對 IE 差不多只需 30~40 MB 的記憶體,已經相當足夠了,因此可以把 Frame 區分開來.
加入 Register 到電腦後,重新開機即可生效.
把下面文字的部份,儲存成 xxx.reg ,再執行.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"FrameMerging"="0"
結果會發現怎麼 A 報表下一頁會接到 B 報表 ??
原來是因為 IE 8 的核心預設是會共同 Frame 的關係.
共同 Frame 好處,記憶體的耗用會比較低 (還記得之前的 KKMAN,類似的作法),
不過現在電腦都 1G , 2G 以上的 RAM 了, 對 IE 差不多只需 30~40 MB 的記憶體,已經相當足夠了,因此可以把 Frame 區分開來.
加入 Register 到電腦後,重新開機即可生效.
把下面文字的部份,儲存成 xxx.reg ,再執行.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"FrameMerging"="0"
2010年12月15日
查出所有 TIPTOP 使用者的所有程式權限清單
公司可能有規定需要定期去檢視 TIPTOP 系統權限是否設定正確.
因此提供 SQL 指令把所有人員的 TIPTOP 系統權限清單列示出來,
就方便各主管去檢視囉~~
參考以下指令 :
select zx01,zx02,zx03,zx04,'','',zxw04,gaz03,zxw05 from zx_file,zxw_file,gaz_file
where zx01 = zxw01
and zxw03 = 2
and zxw04 = gaz01(+)
and (gaz02 = 0 or gaz02 is null)
union
select zx01,zx02,zx03,zx04,zy01,zw02,zy02,gaz03,zy03 from zx_file,zxw_file,zw_file,zy_file,gaz_file
where zx01 = zxw01
and zxw03 = 1
and zxw04 = zy01
and zxw04 = zw01
and zy02 = gaz01(+)
and (gaz02 = 0 or gaz02 is null)
order by 1,5
因此提供 SQL 指令把所有人員的 TIPTOP 系統權限清單列示出來,
就方便各主管去檢視囉~~
參考以下指令 :
select zx01,zx02,zx03,zx04,'','',zxw04,gaz03,zxw05 from zx_file,zxw_file,gaz_file
where zx01 = zxw01
and zxw03 = 2
and zxw04 = gaz01(+)
and (gaz02 = 0 or gaz02 is null)
union
select zx01,zx02,zx03,zx04,zy01,zw02,zy02,gaz03,zy03 from zx_file,zxw_file,zw_file,zy_file,gaz_file
where zx01 = zxw01
and zxw03 = 1
and zxw04 = zy01
and zxw04 = zw01
and zy02 = gaz01(+)
and (gaz02 = 0 or gaz02 is null)
order by 1,5
2010年12月1日
職委會在 TIPTOP 如何建置 ?? 多帳別設定.
相信每一間公司都有職委會慰勞大家在辛苦的工作能放鬆一下心情,
不過職委會是現金流入流出制的會計原則,
一般只會在總帳切傳票做流水帳記錄,
新增一個資料庫區分 BU 反而顯的殺雞用牛刀的感覺,
可以試試看 TIPTOP 5.x 版以上的多帳別的功能,
輕輕鬆鬆就可以達成囉~~沒事跟會計人員泡茶聊天吧~~
步驟:
1. agli101 帳別資料維護, 新增福委會帳別.
2.agli102 科目資料明細維護,加入職委會所需的會計科目.
3.重點來了,如何讓會計人員可以輸入傳票呢??
在 p_zz 加入新程式, 記得要帶參數,以範例職委會帳別是 02
4.之後就有專屬於職委會的傳票作業囉~~~所有報表也可以輸入帳別 02 即可以執行.
簡單吧~~
不過職委會是現金流入流出制的會計原則,
一般只會在總帳切傳票做流水帳記錄,
新增一個資料庫區分 BU 反而顯的殺雞用牛刀的感覺,
可以試試看 TIPTOP 5.x 版以上的多帳別的功能,
輕輕鬆鬆就可以達成囉~~沒事跟會計人員泡茶聊天吧~~
步驟:
1. agli101 帳別資料維護, 新增福委會帳別.
2.agli102 科目資料明細維護,加入職委會所需的會計科目.
3.重點來了,如何讓會計人員可以輸入傳票呢??
在 p_zz 加入新程式, 記得要帶參數,以範例職委會帳別是 02
4.之後就有專屬於職委會的傳票作業囉~~~所有報表也可以輸入帳別 02 即可以執行.
簡單吧~~
2010年11月25日
新進 IT 人員的 TIPTOP 系統帳號設定
公司應該很少 TIPTOP 系統從頭到尾都交由一個人負責吧~~
ERP 系統算起來也是一套大型的系統.
因此當新增 IT 幫手的時候, 權限要如何設定才比較好呢?
又可以避免非 IT 人員隨意的存取 TIPTOP 檔案或是資料.
記得要先把 TiptopGP 主機的 ftp 登入帳號設限喔~~只能允許 IT 人員 FTP 登入而已.
修改 /etc/vsftpd/vsftpd.conf 加上兩行設定
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
新增文字檔, 並將 IT 人員帳號加入 /etc/vsftpd/user_list 檔案中.
加入 IT 人員的 TIPTOP 維護帳號步驟如下 :
1. 新增 Linux 帳號和 Tiptop 帳號 (p_zx).
2. 加入 FTP 登入的權限
編輯 /etc/vsftpd/user_list
3. 加入 oracle group 的權限
usermod -G dba USER_NAME
4. 置換 .profile 檔
不是用 cp /u1/usr/tiptop/.profile . 的指令來蓋掉喔~~
如果有設 link .profile 檔案的話..就出包啦~~
所以要先執行 rm .profile , 把 .proifle 的 ln 刪掉.
再來就是 cp /u1/usr/tiptop/.profile . 才會有專屬於 IT 人員此帳號的 .profile
5. 最後就是 vsftpd 重啟囉~~
/etc/init.d/vsftpd restart
ERP 系統算起來也是一套大型的系統.
因此當新增 IT 幫手的時候, 權限要如何設定才比較好呢?
又可以避免非 IT 人員隨意的存取 TIPTOP 檔案或是資料.
記得要先把 TiptopGP 主機的 ftp 登入帳號設限喔~~只能允許 IT 人員 FTP 登入而已.
修改 /etc/vsftpd/vsftpd.conf 加上兩行設定
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
新增文字檔, 並將 IT 人員帳號加入 /etc/vsftpd/user_list 檔案中.
加入 IT 人員的 TIPTOP 維護帳號步驟如下 :
1. 新增 Linux 帳號和 Tiptop 帳號 (p_zx).
2. 加入 FTP 登入的權限
編輯 /etc/vsftpd/user_list
3. 加入 oracle group 的權限
usermod -G dba USER_NAME
4. 置換 .profile 檔
不是用 cp /u1/usr/tiptop/.profile . 的指令來蓋掉喔~~
如果有設 link .profile 檔案的話..就出包啦~~
所以要先執行 rm .profile , 把 .proifle 的 ln 刪掉.
再來就是 cp /u1/usr/tiptop/.profile . 才會有專屬於 IT 人員此帳號的 .profile
5. 最後就是 vsftpd 重啟囉~~
/etc/init.d/vsftpd restart
2010年11月20日
將 TIPTOP CR 主機虛擬化, 安裝篇
自從 TIPTOP GP 5.x 版開始, 報表顯示改由 CR 主機 IIS Web Service 來提供,
並由 Client 端 IE 來呈現.
但是當 CR 主機故障重置, 或是想要充份利用 CR 主機的資源, 虛擬化當然是最好的囉~~~
因為 IIS Application Pool 預設 .Net Framework 是提供實際記憶體的 60% 為最大值,
所以就算你的記憶體裝的再怎麼大,實際利用的還是有限啦~~ (可以手動改為比例)
以下就是 CR 主機的安裝步驟 :
1. 安裝 Windows Server 2008 R2 (只要有 IIS 的 OS 即可)
2. 安裝 IIS 和 .Net Framework (加上 ASP .Net的功能)
原理 : TIPTOP GP 在網址上加密 (編譯) , 然後由 ASP .Net 解密 (組譯) ,
再傳給 CR ActiveX 告訴 CR 是那一個模版、那一個 temp table (權限管控).
3. 安裝 Oracle Client, 並設定 Net Manager . (需要是 32 位元的)
4. 安裝 Crystal Report . (鼎新有附光碟片)
這裡要小心喔,要自訂安裝, 記得要安裝 資料存取\ADO.Net 的功能,
不然可是會顯示 .Net Framework 找不到 CR ActiveX 的元件的錯誤訊息.
5. 設定 IIS (鼎新有做一個批次檔,執行就可以了)
5.1 複製 topprod 目錄.
5.2 複製 crystalpreortviewers115 目錄.
5.3 建立虛擬目錄 topprod 到指定磁碟位置.
5.4 設定 topprod 為應用程式集區.
5.5 設定 topprod 為 Framework 2.0
5.6 設定應用程式集區 crap1,crap2…
5.7 將 topprod 資料夾權限設定為 IUSER可讀取,背景作業才可寄附件。
6.設定印表機的所有需要用到的紙張格式、大小。
並由 Client 端 IE 來呈現.
但是當 CR 主機故障重置, 或是想要充份利用 CR 主機的資源, 虛擬化當然是最好的囉~~~
因為 IIS Application Pool 預設 .Net Framework 是提供實際記憶體的 60% 為最大值,
所以就算你的記憶體裝的再怎麼大,實際利用的還是有限啦~~ (可以手動改為比例)
以下就是 CR 主機的安裝步驟 :
1. 安裝 Windows Server 2008 R2 (只要有 IIS 的 OS 即可)
2. 安裝 IIS 和 .Net Framework (加上 ASP .Net的功能)
原理 : TIPTOP GP 在網址上加密 (編譯) , 然後由 ASP .Net 解密 (組譯) ,
再傳給 CR ActiveX 告訴 CR 是那一個模版、那一個 temp table (權限管控).
這裡要小心喔,要自訂安裝, 記得要安裝 資料存取\ADO.Net 的功能,
不然可是會顯示 .Net Framework 找不到 CR ActiveX 的元件的錯誤訊息.
5. 設定 IIS (鼎新有做一個批次檔,執行就可以了)
5.1 複製 topprod 目錄.
5.2 複製 crystalpreortviewers115 目錄.
5.3 建立虛擬目錄 topprod 到指定磁碟位置.
5.4 設定 topprod 為應用程式集區.
5.5 設定 topprod 為 Framework 2.0
5.6 設定應用程式集區 crap1,crap2…
5.7 將 topprod 資料夾權限設定為 IUSER可讀取,背景作業才可寄附件。
6.設定印表機的所有需要用到的紙張格式、大小。
很簡單吧~~也可以玩玩 Windows Server 的 NLB 的功能, 分散 CR 報表伺服器的負載囉~~
2010年11月1日
如何新增測試資料庫 , Oracle 備份還原篇.
TIPTOP 隨著功能不斷的增加,客製越來越頻繁時, 相對的問題就越來越多囉~~
有時也會遇到 "嘟丟ㄍㄨ一" 莫名奇妙的情況發生,
因此偶而把之前的 Oracle 備份資料還原到新的測試資料庫去查,
把問題徹底的找出來,才是解決問題的根本之道.
相信每天都有在備份資料庫的資料吧~~預設是用 exp 指令來匯出資料備份.
這樣想要還原到那一天的備份檔都可以囉~~執行效率也比較高.
1. 先建立新的測試資料庫 user 和 db name .
createdb testdb 1
或是比較習慣用 create user 的方式,用 sys 帳號 sysdba 方式登入
conn sys/sys_dsc as sysdba;
--create user
CREATE USER testdb
IDENTIFIED BY testdb
DEFAULT TABLESPACE DBS1
TEMPORARY TABLESPACE TEMP
PROFILE TIPTOPGP
ACCOUNT UNLOCK;
-- 2 Roles for testdb
GRANT RESOURCE TO testdb;
GRANT TIPTOPGP TO testdb;
ALTER USER testdb DEFAULT ROLE ALL;
-- 5 System Privileges for testdb
GRANT UNLIMITED TABLESPACE TO testdb;
GRANT CREATE VIEW TO testdb;
GRANT CREATE TABLE TO testdb;
GRANT CREATE SYNONYM TO testdb;
GRANT CREATE SESSION TO testdb;
-- 1 Object Privilege for testdb
GRANT SELECT ON SYS.V_$SESSION TO testdb;
2. 再來就是把資料匯入囉.
imp system/manager file=xxx.dmp fromuser=yyy touser=testdb ignore=y
3. 最後就是在 TIPTOP 建立營運中心囉~~完成!!
aooi931、p_zo、p_zxy
4. 記得要把參數都 update 喔~~不然程式可是會拋到正式資料庫造成錯亂的
update TESTDB.apz_file set apz02p = 'TESTDB',apz04p = 'TESTDB';
update TESTDB.ooz_file set ooz02p = 'TESTDB';
update TESTDB.sma_file set sma87 = 'TESTDB';
update TESTDB.oaz_file set oaz02p = 'TESTDB';
update TESTDB.och_file set och03 = 'TESTDB';
update TESTDB.nmz_file set nmz02p = 'TESTDB';
update TESTDB.faa_file set faa02p = 'TESTDB';
update TESTDB.faf_file set faf03 = 'TESTDB';
update TESTDB.ccz_file set ccz11 = 'TESTDB';
5. 如果是建立空白資料庫再匯入備份檔的話,要再多修改 FGLPROFILE 檔.
不然會顯示 Fail in Reading System Parameter 的錯誤訊息.
vi $FGLPROFILE
或
vi /u1/genero.run/etc/fglprofile.prod
補充:
imp 可以加上 tables=(a_file,b_file) 就可以單獨還原 a_file、b_file 的 Table,
記得要把原本的 Table 的資料刪掉,不然匯入的時候會一堆錯誤訊息。
有時也會遇到 "嘟丟ㄍㄨ一" 莫名奇妙的情況發生,
因此偶而把之前的 Oracle 備份資料還原到新的測試資料庫去查,
把問題徹底的找出來,才是解決問題的根本之道.
相信每天都有在備份資料庫的資料吧~~預設是用 exp 指令來匯出資料備份.
這樣想要還原到那一天的備份檔都可以囉~~執行效率也比較高.
1. 先建立新的測試資料庫 user 和 db name .
createdb testdb 1
或是比較習慣用 create user 的方式,用 sys 帳號 sysdba 方式登入
conn sys/sys_dsc as sysdba;
--create user
CREATE USER testdb
IDENTIFIED BY testdb
DEFAULT TABLESPACE DBS1
TEMPORARY TABLESPACE TEMP
PROFILE TIPTOPGP
ACCOUNT UNLOCK;
-- 2 Roles for testdb
GRANT RESOURCE TO testdb;
GRANT TIPTOPGP TO testdb;
ALTER USER testdb DEFAULT ROLE ALL;
-- 5 System Privileges for testdb
GRANT UNLIMITED TABLESPACE TO testdb;
GRANT CREATE VIEW TO testdb;
GRANT CREATE TABLE TO testdb;
GRANT CREATE SYNONYM TO testdb;
GRANT CREATE SESSION TO testdb;
-- 1 Object Privilege for testdb
GRANT SELECT ON SYS.V_$SESSION TO testdb;
2. 再來就是把資料匯入囉.
imp system/manager file=xxx.dmp fromuser=yyy touser=testdb ignore=y
3. 最後就是在 TIPTOP 建立營運中心囉~~完成!!
aooi931、p_zo、p_zxy
4. 記得要把參數都 update 喔~~不然程式可是會拋到正式資料庫造成錯亂的
update TESTDB.apz_file set apz02p = 'TESTDB',apz04p = 'TESTDB';
update TESTDB.ooz_file set ooz02p = 'TESTDB';
update TESTDB.sma_file set sma87 = 'TESTDB';
update TESTDB.oaz_file set oaz02p = 'TESTDB';
update TESTDB.och_file set och03 = 'TESTDB';
update TESTDB.nmz_file set nmz02p = 'TESTDB';
update TESTDB.faa_file set faa02p = 'TESTDB';
update TESTDB.faf_file set faf03 = 'TESTDB';
update TESTDB.ccz_file set ccz11 = 'TESTDB';
5. 如果是建立空白資料庫再匯入備份檔的話,要再多修改 FGLPROFILE 檔.
不然會顯示 Fail in Reading System Parameter 的錯誤訊息.
vi $FGLPROFILE
或
vi /u1/genero.run/etc/fglprofile.prod
補充:
imp 可以加上 tables=(a_file,b_file) 就可以單獨還原 a_file、b_file 的 Table,
記得要把原本的 Table 的資料刪掉,不然匯入的時候會一堆錯誤訊息。
2010年10月10日
常用的系統維護指令-維護篇
隨著公司不斷的成長和擴張, 子公司的加入, 廠線、員工、交易等資料量的增加,
系統和資料庫管理也顯得越來越重要,
因此把常用到的管理指令列入日常工作的一部份,
以避免系統異常的情況發生,造成不可預期的後果.
1. 查詢 Linux 系統效能 (可以查出是否有程式佔 CPU 100% )
指令 : top
2. 查詢 Oracle 資料庫佔 tablespace 的容量
指令 : oraq q_tbsFREE , 再輸入 system 密碼.
3. 搜尋特定字串 (可以查出 4gl 程式裡面特字文字)
指令 : find . -name '*.4gl' -exec grep -nil 'XXXX' {} \; > xxx.txt
4. 批次修改檔案權限為可以修改 (避免 IT 人員上傳檔案鎖 owner )
指令 : chmod 775 *.4fd /u1/topprod -R
5. 設定 Oracle Table 為 public (建立新的 table 時,會造成其他 db user 不能讀取)
指令 : grant all on xxx_file to public ( 5.25 版原本是 public 改為 TIPTOPGP 群組)
6. 重整資料庫的資料 (類似檔案重組的功能,把資料做重組)
指令 : analyze2 DB-name
7. 刪除不要用的資料庫
指令 : drop user database_name cascade
8. 建立新的資料庫
指令 : createdb database_name [1,2,3,4] , 請參考 createdb 指令說明.
9. 查詢目前 Geoero 線上使用人數
指令 : fglWrt -a info users (小心不要把 Geoero License 給砍了)
10. 匯出和匯入 Oralce 的資料 (備份還原資料)
匯出指令 : exp system/manager owner=DBUSER file=xxx.dmp
或是
exp DBUSER/PASSWORD file=xxx.dmp
匯入指令 : imp system/manager fromuser=AAA touser=BBB file=xxx.dmp ignore=y
加上 tables=(A,B) 就可以單獨匯出/匯入指定的 Table
11. 新增 tablespace file 到 dbs1 (tablespace 空間不足會造成資料 insert 失敗的危險)
指令 : alter tablespace dbs1 add datafile '/u2/oradb/oradata/topprod/dbs1-XX.dbf'
size 2000M ;
12. 修改全部 4GL 的檔案權限.
指令 : chmod 775 *.4fd /u1/topprod -R
13. 修改檔案 owner
指令:chown tiptop *.4gl /u1/topprod -R
14. 修改檔案 group
指令:chgrp tiptop *.4gl /u1/topprod -R
15. 找出佔用磁碟空間很大的檔案,查 1G 以上的檔案
指令:find / -type f -size +1G -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
16. 重新啟動 apache web service
指令:apachectl restart 或 service httpd restart
Web Service 要切換到 tiptop 帳號,執行 startws 來開啟
系統和資料庫管理也顯得越來越重要,
因此把常用到的管理指令列入日常工作的一部份,
以避免系統異常的情況發生,造成不可預期的後果.
1. 查詢 Linux 系統效能 (可以查出是否有程式佔 CPU 100% )
指令 : top
2. 查詢 Oracle 資料庫佔 tablespace 的容量
指令 : oraq q_tbsFREE , 再輸入 system 密碼.
3. 搜尋特定字串 (可以查出 4gl 程式裡面特字文字)
指令 : find . -name '*.4gl' -exec grep -nil 'XXXX' {} \; > xxx.txt
4. 批次修改檔案權限為可以修改 (避免 IT 人員上傳檔案鎖 owner )
指令 : chmod 775 *.4fd /u1/topprod -R
5. 設定 Oracle Table 為 public (建立新的 table 時,會造成其他 db user 不能讀取)
指令 : grant all on xxx_file to public ( 5.25 版原本是 public 改為 TIPTOPGP 群組)
6. 重整資料庫的資料 (類似檔案重組的功能,把資料做重組)
指令 : analyze2 DB-name
7. 刪除不要用的資料庫
指令 : drop user database_name cascade
8. 建立新的資料庫
指令 : createdb database_name [1,2,3,4] , 請參考 createdb 指令說明.
9. 查詢目前 Geoero 線上使用人數
指令 : fglWrt -a info users (小心不要把 Geoero License 給砍了)
10. 匯出和匯入 Oralce 的資料 (備份還原資料)
匯出指令 : exp system/manager owner=DBUSER file=xxx.dmp
或是
exp DBUSER/PASSWORD file=xxx.dmp
匯入指令 : imp system/manager fromuser=AAA touser=BBB file=xxx.dmp ignore=y
加上 tables=(A,B) 就可以單獨匯出/匯入指定的 Table
11. 新增 tablespace file 到 dbs1 (tablespace 空間不足會造成資料 insert 失敗的危險)
指令 : alter tablespace dbs1 add datafile '/u2/oradb/oradata/topprod/dbs1-XX.dbf'
size 2000M ;
12. 修改全部 4GL 的檔案權限.
指令 : chmod 775 *.4fd /u1/topprod -R
13. 修改檔案 owner
指令:chown tiptop *.4gl /u1/topprod -R
14. 修改檔案 group
指令:chgrp tiptop *.4gl /u1/topprod -R
15. 找出佔用磁碟空間很大的檔案,查 1G 以上的檔案
指令:find / -type f -size +1G -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
16. 重新啟動 apache web service
指令:apachectl restart 或 service httpd restart
Web Service 要切換到 tiptop 帳號,執行 startws 來開啟
2010年10月2日
終於可以把 Excel 資料匯入 TIPTOP 了
TIPTOP GP 系統, 採用的是 4js Geoero 的環境,
最大的問題之一, 就是在 Excel 做好的資料, 還要一筆一筆 key 入系統裡 ,
不然就是把資料丟給資訊單位進行匯入,Orz...
不過在新版的 GDC (Geoero Desktop Client) 提供了 Excel 複製 ,
在TIPTOP GP 的單身貼上, 就可以快速又整整齊齊的匯入囉~~
(注意 : 只是把輸入的方式原本是鍵盤改為系統剪貼布而已,所以只需要匯入要 key 入的欄位)
如果常常在 Excel 計算或是整理的資料的使用者, 想要用 Excel 匯入的功能,
記得要先更新 GDC 到 2.20.10 版以後喔~~~
(會造成 GDC 自訂畫面清除, 核、確、無等圖示有可能會縮小 (只要改 4fd 檔為 fix 即可) ,
還有開啟多欄位的程式(訂單變更,採購變更,個人班別...等)會速度變慢很多(約1分鐘))
還不知道怎麼用?? 把 TIPTOP 資料匯出 Excel 後,再刪除部份不需輸入的欄位,再匯入試試吧~~
也算是勉勉強強可以用吧~~至少可以提高一點效率.
最大的問題之一, 就是在 Excel 做好的資料, 還要一筆一筆 key 入系統裡 ,
不然就是把資料丟給資訊單位進行匯入,Orz...
不過在新版的 GDC (Geoero Desktop Client) 提供了 Excel 複製 ,
在TIPTOP GP 的單身貼上, 就可以快速又整整齊齊的匯入囉~~
(注意 : 只是把輸入的方式原本是鍵盤改為系統剪貼布而已,所以只需要匯入要 key 入的欄位)
如果常常在 Excel 計算或是整理的資料的使用者, 想要用 Excel 匯入的功能,
記得要先更新 GDC 到 2.20.10 版以後喔~~~
(會造成 GDC 自訂畫面清除, 核、確、無等圖示有可能會縮小 (只要改 4fd 檔為 fix 即可) ,
還有開啟多欄位的程式(訂單變更,採購變更,個人班別...等)會速度變慢很多(約1分鐘))
還不知道怎麼用?? 把 TIPTOP 資料匯出 Excel 後,再刪除部份不需輸入的欄位,再匯入試試吧~~
也算是勉勉強強可以用吧~~至少可以提高一點效率.
訂閱:
文章 (Atom)