首頁 | 關於知識網 | 會員規範 | 知識地圖| 本站連結 | JACKSOFT | 加入會員 |
電腦稽核 >> 電腦稽核軟體討論區 >>[分享]ACL 的 DEFINITION 命令 [ 2/3 ]
[分享]ACL 的 DEFINITION 命令 [ 2/3 ]

在上一篇中我們已經介紹過DEFINE COLUMN、DEFINE FIELD兩種DEFINE

本篇要介紹接下來的三種DEFINE,分別是

DEFINE REPORT DEFINE TABLE DB DEFINE VIEW

DEFINE REPORT

我們使用DEFINE REPORT來:

建立一個新報告 修正已存在的報告

語法

  DEFINE REPORT view_name

view_name 允許你存取一個已經存在的view,或創造一個有特定名稱的新view。
如果你的view名稱有兩個單字,那你要在這兩個單字之間插入一個底線( _ )

DEFINE TABLE DB

我們使用DEFINE TABLE DB來存取放在伺服器中的表單。你可能會因為平台的不同而使用不同方式做存取。

如果平台是Windows,那麼你可以無限存取表單,不過我們建議最好不要超過五個。存取時間會隨你存取表單數目的增加而增加。
如果平台是z/OS,那麼你只能存取五個以上的表單。

語法

  DEFINE TABLE DB SERVER "z/OS_server_profile"|SOURCE database_profile SCHEMA "database_schema"|subsystem DBTABLE "database_table_name" FIELDS "field_names"|"ALL"

SERVER "server_profile" 定義ACL使用何種伺服器的描述,以存取放置在z/OS系統中的資料。伺服器的描述會包含使用者資訊、連結資訊,像是IP與Port。記得要把伺服器描述用 " " 符號包起來。

SOURCE database_profile 定義ACL使用何種資料庫描述,以存取放置在大部分電腦中的資料。資料庫描述包含伺服器描述、資料庫型態、使用者資訊、連結資訊,像是IP與Port。

PASSWORD n 當伺服器或資料庫描述中不包含密碼時,我們就要用PASSWORD n來設定我們的密碼。我們把第一個密碼放在關鍵字SERVER後面,第二個放在SOURCE後面。你用第一個密碼登入伺服器,第二個則讓你登入資料庫。

如果你不希望script在你輸入密碼之前停下來,那你可以自己設定密碼。不過如果自己設定密碼,那該密碼會出現在你的script中。

FORMAT format_name 定義table layout之後的ACL表單名稱,我們會使用該表單作為格式。

SCHEMA "database_schema"|subsystem 定義由你的資料庫管理者所提供之schema或子系統。我們要把schema的名稱用 " " 包起來,子系統名稱則可包可不包。

DBTABLE "database_table_name" 定義你想要存取的資料庫表單。我們要把它用 " " 包起來,像是DBTABLE "DSN1310"這樣。為了使用來自於一個以上表單的欄位,我們要按照欄位的來源順序替表單命名。舉例來說,DBTABLE "DSN1310" FIELDS "Field_A Field_B Field_C" "DSN2516" FIELDS "Field_L Field_M Field_N"。

定義你想要從特定表單中包含進來的欄位。我們可以輸入特定表單的名稱來包含特定欄位,也可以輸入ALL以包含所有欄位。我們按照表單的名稱來排列欄位名稱,並把這一系列的欄位用 " " 包起來,例如"Field_1 Field_2 Field_3"這樣。

TITLED "ACL_table_name" 定義新表單的名稱,我們要把它用 " " 包起來,像是"Claims_paid"這樣。如果你沒替表單命名,ACL就會使用資料庫的表單名稱。當你一次存取一個以上的表單時,ACL就會使用使用第一個表單的名稱。

定義此表單是否為主表(primary table)或次表(secondary),ACL的預設值是PRIMARY

ORDER "field_names" 定義column中的時間排列方式是遞增或遞減。不過排序會增加作業時間,所以建議只有在順序很重要時在使用ORDER這個參數。另外要把它用 " " 包起來。

限制資料要符合這個條件。它使用SQL的語法。當你將join超過一個表單時,ACL會在WHERE子句中呈現join的條件。例如 "Table_1.First_name = Table_2.First_name"。另外要把WHERE子句用 " " 包起來。

語法範例

To access DB2 data from a z/OS server

  DEFINE TABLE DB SERVER "zOS_7000" PASSWORD 10 FORMAT "Month_end" SCHEMA DSN1 DBTABLE "DSN8610.DEPT" FIELDS "Administrator Department_name Department_number Location" DBTABLE "DSN8320.SALARY" FIELDS "Employee Department_name Department_number Amount" TITLED "Department_summary" WHERE "DEPT.Department_number = SALARY.Department_number"

To access Oracle data from an AIX server

  DEFINE TABLE DB SOURCE Oracle3 PASSWORD 3 PASSWORD 2 FORMAT Credit_cards SCHEMA "Term" DBTABLE "AP_March" FIELDS "Code Vendor" DBTABLE "CC_codes" FIELDS "Vendor Number Location Invoice_date" TITLED "AP_codes_March_2004" ORDER "CC_codes.Vendor" WHERE "AP_March.Vendor = CC_codes.Vendor"

DEFINE VIEW

我們使用DEFINE VIEW來建立一個view。你可以在命令欄(command line)或腳本(script)裡執行DEFINE VIEW。當你建立有條件的運算欄位時,因為它需要許多行語法,所以這時候你只能使用script。

如果我們的view跟別的view取到相同名稱,而且你還在命令欄中執行命令,那麼ACL就會問你是不是想要覆蓋現存的view。不過你可以在script中使用DEFINE VIEW …OK來避免ACL的警告。

語法

  DEFINE VIEW view_name OK

view_name 是我們所要創造或是覆蓋的view的名稱。

HEADER "header_text" 表示報告的標題。

FOOTER "footer_text" 表示報告的標尾。

定義的標題與標尾是置中,如果你想要將它們放到左邊,可以在header text開始時使用這個符號:<

ALL 是用來確定所有已開表單中的欄位都自動地加入view中。

SUPPRESS 會讓空白的部分被呈現。報告會自動地將資料上移,然後將空白取代掉。當你的報告是multiline view的時候,就可以選擇要不要使用這個功能。

SUMMARIZED 設定報告的view是全部(totals)或部分(subtotals)。Subtotals是依據view中定義的break fields所產生的。如果這個功能未被選擇使用,ACL就會產生包含所有的細節列。預設值為:包含所有明細列(Include detail lines)

TO "report_file_name" HTML 允許使用者替從view中產生的報告訂定檔案名稱與型態。HTML定義一個HTML檔案作為output。如果你沒有特別指定,那預設的output會是ASCII文字檔。

IF test and WHILE test 是用來作條件判斷的範圍參數。

RLINES n 替view和report中的明細紀錄列訂定空間。預設中,列的空間是單一的(line spacing is single)。

範例

我們要設計一個新的view,名稱是 Test_View,它沒有包含任何新欄位,然後它是從AR表單中來的,承接AR表單裡所有的欄位:

  OPEN AR

  DEFINE VIEW Test_View HEADER "AR Report" ALL OK


2
 
 

   
相關標籤
   
回文 #1
回覆會員暱稱:
點數:
等級:初學者

榮譽勳章:初學者
發文篇數:500
回文時間:2009-09-09 20:50:37

不知有沒有試用軟體可供下載自學
   
回文 #2
回覆會員暱稱:玉米
點數:7050
等級:知識長

榮譽勳章:知識長
發文篇數:344
回文時間:2009-09-09 20:44:54

挖~~介紹的好詳細
網站建議與問題回報 | 隱私權政策 | 網站管理規範 | 條款與政策