維克系統建置

準備安裝套件

解壓 O10x86.exe BC1609.exe 及安裝的管理系統如 FO1609.exe、HR1609.exe、PI1609.exe …​,在執行後述的工作前先準備好,解壓縮的路徑預設為 D:\VICSYS。

安裝系統的主程式如下

VicConfig.exe 維克系統建置程式 (D:\VICSYS\Config)

依據安裝步驟,一步一步安裝。

VicSystems.exe 維克管理系統安裝程式 (D:\VICSYS\VICInstall)

一鍵安裝,安裝管理系統及安裝資料庫用戶端。
依據「維克系統建置程式」的配置,分發至用戶電腦。

維克系統建置程式

資料服務器設置及安裝系統資料庫,設定管理程式連接資料庫參數。

1.安裝資料庫用戶端

執行「維克系統建置程式」(D:\VICSYS\Config\VicConfig.exe)

維克系統建置程式

維克系統建置需要資料庫用戶端才能運作。安裝資料庫用戶端實際上是執行「維克管理系統安裝程式」。

2.設置資料服務器

Oracle XE 安裝時預設字元集為英文,建置程式將修改資料服務器字元集、調整資料服務器參數及 Tablespace。

設置資料服務器

設定本機資料服務器組態

調整 listener.ora。僅限資料服務器在本機 (電腦) 執行,資料服務器版本為 Oracle Database Express Edition 11g 或 18c,並安裝於 D:\oraclexe 資料夾。

設定本機資料服務器組態

資料服務器監聽器位置(Listener Address)

應採用區域網路位置 (LAN IP),該位置應固定。

監聽器位置未改變的情況下仍需執行。
程式判斷本機監聽器正常運作時才允許執行,若監聽器異常請參閱 ORA-12541
資料服務器初始化

修改資料服務器字元集、調整資料服務器參數及 Tablespace。

資料服務器初始化

這裡為什麼又有「資料庫位置」、「資料庫連接埠」?

因為是「資料庫用戶端」,設定值應跟「本機資料服務器組態」相同。

資料服務器初始化-選取字元集

改變字資料庫元集,僅適用於初始安裝,若已建立資料庫,不應再改變。

3.安裝系統資料庫

安裝系統資料庫

安裝維克系統資料庫,必須先安裝「共用資料庫」(只需安裝一次),再安裝管理系統資料庫。

共用資料庫安裝

建立共用資料庫

設置共用資料庫密碼

設置共用資料庫密碼

設定資料庫密碼為 BC1810 的密碼。(不是資料服務器 SYS 跟 SYSTEM 的密碼)。
維克系統建置程式,可解碼您設置系統資料庫的密碼設定檔 VicConfigUser.ini,若需要可於建置後移動至安全儲存區。

管理系統資料庫安裝

當您在準備安裝元件的章節中,若有安裝各式系統則該系統選項會啟用。

前檯資料庫安裝

管理系統資料庫設置

前檯資料庫設置

建立 FO1810 資料庫,需要共用資料庫 (本例為 BC1810) 及 密碼 (本例為 vicsys)。

管理系統匯入檔案設置

前檯資料庫匯入設定

您已設定好建置資料庫的組態,在按「下一步」前,若需要安裝範例,請勾選「範例資料庫」。

自訂匯入說明

匯入現有的資料庫備份 (.dmp) 檔案,於本步驟中自訂匯入檔。

管理系統自訂匯入設置

前檯資料庫自訂匯入設定

匯入檔案帳戶

如匯出是採用 EXPUSER 帳戶匯出 FO1810 如下範例,那麼「匯入檔案帳戶」設定為 FO1810 。

EXP EXPUSER/USERCANEXPORT@XE FILE=FO1810.DMP OWNER=FO1810

匯入時出現下列訊息而資料已匯入可忽略。

IMP-00034: 警告: 匯出檔中找不到 FromUser "FO1810"
已順利終止匯入作業, 但含有警告.

4.管理程式連接設定

建置好系統資料庫後,設定好程式連接資料庫參數以便程式能連接資料庫。
試用單機版,請勾選 IPC 連接。

設定資料庫連接參數

下一步 後,將產生 VMC.ini 檔案,如下範例。

[DataBase]
UserName=FO1810
Password=資料庫密碼加密字串
DataBaseName=(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))(CONNECT_DATA=(SID=XE)))

5.管理程式同步設定

本設置的目的為設定多人同步環境,當程式有更新時自動分發 (選項功能)。
在多人環境中「網路分享資料夾」為系統程式共用資料夾,其方式是在用戶端電腦在開機時,自動同步系統程式。另外在「開始」的 VIC Systems 功能表中,亦加入「維克系統更新(無等待)」的功能,用戶可隨時自行更新。

本步驟設定完成後,在未完成「系統程式同步設定」之前安裝的電腦,必須再次執行 VicSystems.exe 維克管理系統安裝程式,以便配置「自動同步」的功能。

管理系統程式同步設定

如果按 下一步出錯,表示在 Windows 中的共用使用者或共用資料夾未設定正確。

出錯示例

共用使用者或共用資料夾未設定正確

依據 網路分享資料夾錯誤 來處理。

上述設置完成後,回到「維克系統建置程式」,按 下一步 應該顯示 執行完成。

管理系統程式同步設定完成畫面

6.資料庫互相連接

本設置的目的為設定相同的服務器中多個資料庫互相連接 (選項功能)。
如前檯系統交易資料傳輸至總帳系統,人事系統匯入前檯系統的員工掛帳 …​。

資料庫互相連接

7.問題集

網路分享資料夾錯誤處理
建立 Windows 共用使用者名稱 vicuser,密碼為 vicuser。

在桌面上的 [電腦] 點擊右鍵後,選取 [管理]。

電腦管理

在 電腦管理 樹狀目錄中的 [使用者] 點擊右鍵後,選取 [新使用者]。
註:[使用者] 路徑是 電腦管理  系統工具  本機使用者和群組  使用者

cfg5 1fix2

輸入使用者名稱 vicuser,密碼為 vicuser。

建立 Windows 共用資料夾。

以 Windows 檔案總管在資料夾 D:\VICSYS\VICInstall 點擊右鍵後,選取 [內容]。

VICInstall 內容

在 [內容] 的對話方塊中選取 [共用] 分頁,按一下 進階共用

進階共用圖例

cfg5 1fix4

[進階共用] 的對話方塊中選取 [共用此資料夾] 後,按下 確定

我可以重複執行「建立資料庫」嗎?

可以!重複執行將會刪除資料庫,維克系統建置程式會 [要求輸入資料庫目前(舊有)密碼]。
要求輸入資料庫的目前(舊有)密碼
注意!刪除資料庫的意思是目前資料庫的資料將會消失。

安裝資料庫時「重建資料庫綱要」是什麼?

當採用匯入的方式重建資料庫,匯入資料後執行「重建資料庫綱要」以便讓資料庫元件運作正確。
另外如果您將「共用資料庫」執行「建立資料庫」 (意思是共用資料庫先被刪除),當「共用資料庫」再次建立後, 必須重建「共用資料庫」之外的所有系統資料庫綱要, 否則一啟動管理資訊系統程式時將會引發 ORA-00942 table or view does not exist 的錯誤!

不知怎麼了,出現了「ORA-12541: TNS:沒有監聽器」的錯誤。

設定本機資料服務器組態時,不小心操作錯誤!又好像是改變電腦名稱的問題。
您可以試著手動修復,先停止監聽器 (可忽略錯誤)。
註:Windows 10 執行 Windows PowerShell (系統管理員),習慣用 cmd.exe?那麼需要建立 cmd.exe 捷徑, 並啟用「以系統管理員身份執行」,「以系統管理員身份執行」下列才能正常運作。

D:\oraclexe\app\oracle\product\11.2.0\server\bin\lsnrctl stop

修改下列檔案。(「以系統管理員身份執行」下列)

notepad D:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN\listener.ora

$HOST$ 改為電腦名稱或 IP,$PORT$ 修改為 1521。

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
### ADD
        (ENVS="EXTPROC_DLLS=C:\VICRUN\VICORA32.dll;C:\VICRUN\VICORA64.dll")
### ADD
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
### ADD
    (SID_DESC =
      (SID_NAME = XE)
      (ORACLE_HOME = D:\oraclexe\app\oracle\product\11.2.0\server)
    )
### ADD
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = $HOST$)(PORT = $PORT$)) (1)
    )
  )
1 若電腦區域網路的 IP 為 192.168.1.2,那麼內容為 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))

接著,執行下列命令。

D:\oraclexe\app\oracle\product\11.2.0\server\bin\lsnrctl start

顯示結果如下

...
Default Service           XE
Listener Parameter File   D:\oraclexe\app\oracle\product\11.2.0\server\network\a
dmin\listener.ora
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.2)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XE" has 1 instance(s).
  Instance "XE", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

若無法啟動「監聽器」,請重開機。

維克管理系統安裝程式

使用者電腦第一次安裝時須執行「維克管理系統安裝程式」,安裝管理系統及資料庫用戶端。
依據「維克系統建置程式」的配置,分發至用戶電腦。

維克管理系統安裝程式

多人共用安裝

應在 AP (指儲存「管理資訊程式」的電腦) 的共用資料夾來安裝。

系統主程式參數

啟動設定檔

實際的主程式依據系統不同,如前檯系統為 FOVMC.exe,「啟動設定檔」預設為 (Windows 捷徑內容中的)「開始位置」內的 VMC.ini (可不需要設定)。

FOVMC.exe IniFile=啟動設定檔

可指定「啟動設定檔」為不同的檔案,IniFile 可為「絕對路徑」或「相對路徑」,「相對路徑」則為相對於「開始位置」的路徑。 如 IniFile=..\VMC.ini,則啟動設定檔在「開始位置」的上層。
註:主程式捷徑的「開始位置」一般情況為程式所在資料夾,資料夾內必須要有 VMC.db 檔案,若沒有該檔案將無法啟動。

Connect 參數

FOVMC.exe Connect=[資料庫帳戶][/資料庫密碼][@服務器位置]

連接資料庫的參數可由 Connect 來變更,不需要為了連接不同資料庫而建立不同的「啟動設定檔」,不過有指定「啟動設定檔」並不影響下列邏輯。
上述的 Connect 參數若不指定,則以「啟動設定檔」內的設定值為準,說明如下。

Connect=資料庫帳戶 IniFile=啟動設定檔
資料庫密碼、服務器位置為「啟動設定檔」設定值。

Connect=資料庫帳戶@服務器位置
資料庫密碼為「開始位置」內的 VMC.ini 設定值。

以下類推
Connect=@服務器位置
Connect=/資料庫密碼
Connect=/資料庫密碼@服務器位置

Connect 中的「資料庫密碼」不應在捷徑中直接設定,主程式會讀取「啟動設定檔」的密碼。 當資料庫密碼不同時應正規採用「啟動設定檔」,可使用 設定資料庫連接參數 來產生 VMC.ini 內的 Password=資料庫密碼加密字串

連接資料服務器位置設定

除了由 Net Manager 程式所設定的服務命名之外,亦能採用 Easy Connect 語法。

@host[:port][/service_name]
host 資料庫主機名稱或 IP 位置
port 資料庫監聽埠,預設為 1521。
server_name 資料庫的服務器名稱,「Oracle XE」服務器名稱為 XE。
Easy Connect 範例
FOVMC.exe Connect=@192.168.1.1:1521/XE
註:其中 1521 為預設值,可不需指定。
以 IPC 連接的 TNS Connect String (IPC 只能採用本方法設定)
FOVMC.exe Connect=@(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))(CONNECT_DATA=(SID=XE)))
以 TCP 連接的 TNS Connect String (少用)
FOVMC.exe Connect=@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$HostName)(PORT=$Port))(CONNECT_DATA=(SERVER=dedicated)(SERVICE_NAME=$ServiceName)))
$HostName,資料庫主機名稱或 IP 位置。
$Port,資料庫監聽埠,預設為 1521。
$ServiceName 資料庫的服務器名稱,「Oracle XE」服務器名稱為 XE。
手機服務器設置

本機電腦為「手機服務器」,其「服務埠」支援 IniFile 及 Connect。

ServerPort=port
port 服務埠,預設為 211。

VMC.ini 說明

[VMC] 區段
[VMC]
# 指定使用者設定檔
UserFile=C:\VICRUN\INI\FO_USER.INI

# 指定傳真、信件傳送及 RFID 的設備設定檔,可參考 Profile.ini 內的說明。
Profile=C:\VICRUN\INI\Profile.INI

# 新分頁中的圖檔,若要改變圖檔,可直接取代 StartImage.png 或改變 VMC.ini 檔案。
StartImage=StartImage.png

UserFile 跟 Profile 的資料夾跟主程式資料夾不同的主要原因;在於更新程式時將會同步程式資料夾(C:\VICRUN\MIS)。 UserFile 跟 Profile 可在不同電腦上個別設定,不受程式更新影響。

[DataBase] 區段
[DataBase]
# 下列兩個為資料庫驅動程式的設定,一般情況不需要去改。
DriverName=ORACLE
VendorLib=C:\VICRUN\O10x86\app\BIN\OCI.DLL

# 資料庫名稱 (Oracle User Name)
UserName=FO1810

# 資料庫密碼,由建置程式加密。
Password=資料庫密碼加密字串

# 資料庫位置,由建置程式設定。(本例即為前述的 IPC TNS Connect String)
DataBaseName=(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))(CONNECT_DATA=(SID=XE)))
[Server] 手機服務器區段
[Server]
# 手機服務埠,預設值為 211
Port=211

使用者設定檔

實際檔案由 VMC.ini 檔案內的 [VMC] 區段 UserFile 來決定,如前述中 UserFile=C:\VICRUN\INI\FO_USER.INI。

使用者設定檔
[DataBase]
Character_Set=1 (1)
1 將資料庫字集轉換成本機電腦字集。

上述設定亦可由 VMC.INI 設定。

Character_Set 字集轉換

當資料庫字集跟本機電腦字集不同時,如正體中文作業系統讀取簡體中文資料庫,需設定資料庫轉換成用戶電腦的 (正體中文) 字集,該轉換工作是由資料庫來完成,應設定為「867 ZHT16MSWIN950」(正體中文) 或設定為 1 自動轉換。

Character_Set Description

未設定

不轉換字集

0

不轉換字集

1

自動轉換,作業系統為簡體中文時轉換成 852,正體中文時轉換為 867,其他語言不轉換字集。

852

轉換成 ZHS16GBK 簡體中文

867

轉換成 ZHT16MSWIN950 正體中文

列出資料庫所有字集
COL CHARACTER_SET FORMAT 9999
COL NLS_CHARSET_NAME FORMAT A30
select nls_charset_id(value) CHARACTER_SET, value NLS_CHARSET_NAME
from  v$nls_valid_values
where parameter = 'CHARACTERSET'
order by nls_charset_id(value)
/

資料庫匯出

提供 _ExpDB7z.cmd 檔案,匯出時以手動或採用「工作排程」執行,請修改 D:\VICSYS\Config\DUMP\_ExpDB7z.cmd 以合乎需求。

_ExpDB7z.cmd
REM _ExpDB7z.cmd

REM ------------------------------ Setting
REM Change $HOST$ to your database host name or IP.
REM ex. SET TNSCONN=EXPUSER/USERCANEXPORT@192.168.1.2:1521/XE
SET TNSCONN=EXPUSER/USERCANEXPORT@$HOST$:1521/XE (1)
SET Z7CMD="C:\Program Files\7-Zip\7z.exe" (2)

SET EXPCMD="C:\VICRUN\O10x86\app\BIN\EXP.EXE" %TNSCONN% STATISTICS=NONE GRANTS=N TRIGGERS=N

REM ------------------------------ NLS_LANG
REM Modify the NLS_LANG of the export database

SET NLS_LANG=AMERICAN_AMERICA.ZHT16MSWIN950 (3)
rem SET NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

MD temp

REM ------------------------------ Export database
REM Modify the database you want to export
%EXPCMD% FILE=TEMP\BC1810.DMP OWNER=BC1810
rem %EXPCMD% FILE=TEMP\FO1810.DMP OWNER=FO1810 (4)
rem %EXPCMD% FILE=TEMP\HR1810.DMP OWNER=HR1810
rem %EXPCMD% FILE=TEMP\PI1810.DMP OWNER=PI1810
rem %EXPCMD% FILE=TEMP\AC1810.DMP OWNER=AC1810
rem %EXPCMD% FILE=TEMP\FA1810.DMP OWNER=FA1810

for /f "tokens=2 delims==" %%G in ('wmic path win32_localtime get dayofweek /value') do set _DOW=%%G
DEL DUMP%_DOW%.7z
CD temp
%Z7CMD% a ..\DUMP%_DOW% *.dmp
CD ..
DEL temp\*.dmp
RD temp

REM ------------------------------ Copy .7z to another path
rem COPY DUMP%_DOW%.7z \\SomeServer\SomePath (5)
1 將 $HOST$ 改為資料服務器的電腦名稱或 IP,資料庫監聽埠預設為 1521,「Oracle XE」服務器名稱為 XE。
2 Z7CMD 為 7Z 壓縮程式於 7-Zip 繁體中文版官方網站 下載。
注意!64 位元作業系統若安裝 32 位元 7z,請修改為
SET Z7CMD="C:\Program Files (x86)\7-Zip\7z.exe"
3 正體中文字集為 ZHT16MSWIN950 簡體為 ZHS16GBK
4 按您安裝的系統資料庫匯出。
5 請修改成複製至其他電腦或其他實體硬碟。