開啟存取處理程式
「開啟存取權」處理程式負責處理「開啟存取權」檔案的所有作業。
開啟檔案、關閉檔案,以及檔案的任何輸入或輸出作業時,都會呼叫處理程式。
傳遞至處理程式的參數
將單一參數傳遞給處理程式。 檔案 QOAR/QRPGLESRC 中的副本成員 QRNOPENACC 包含資料結構範本 QrnOpenAccess_T ,可與 LIKEDS 關鍵字搭配使用,以在處理程式中定義參數。
處理程式參數包含許多指向其他結構的指標子欄位。 複製檔案包含可用來定義這些其他結構的其他資料結構範本。 例如, prtctl 子欄位可用作關鍵字 LIKEDS (QrnPrtctl_T)所定義結構的基本指標。
複製檔案也包含數個可在處理程式內使用的已命名常數。 例如,有數個名稱以 QrnOperation_開頭的已命名常數,例如 QrnOperation_OPEN,可與處理程式參數的子欄位 rpgOperation 搭配使用。
子欄位提供處理程式執行必要作業所需的所有資訊。 例如,對於輸出作業,它會接收要寫入檔案的資料。
子欄位也容許處理程式在作業之後傳回 RPG 所需的所有資訊。 例如,對於輸入作業,處理程式可以傳回輸入資料,並且可以傳回檔案是否達到檔案結尾的相關資訊。
如果處理程式需要維護處理程式呼叫之間可用的狀態資訊,它可以在處理程式參數中使用 stateInfo 指標子欄位。 在對處理程式的一次呼叫期間,如果處理程式在此子欄位中放置指標值,則對該特定檔案處理程式的所有後續呼叫都可以使用相同的指標值。 通常,處理程式會在處理 OPEN 作業時為狀態資訊配置儲存體,並在處理 CLOSE 作業時取消配置儲存體。
處理程式中的錯誤
如果處理程式因無法處理的異常狀況而失敗,則 RPG 作業會失敗,並傳回與作業相關的狀態碼。 例如,如果作業是 OPEN 或 CLOSE 作業,則錯誤狀態會是 1216 或 1217。 對於其他作業,狀態將為 1299。
- 傳送異常狀況訊息,將導致處理程式以無法處理的異常狀況結束。 此訊息將出現在工作日誌中,後續的 RPG 錯誤訊息將參照此錯誤訊息。
此機制的優點是處理程式會在傳送異常狀況訊息時立即結束,因此處理程式不需要追蹤作業是否失敗。
- 將處理程式參數的 rpgStatus 子欄位設為所需的 RPG 狀態碼。 將診斷訊息傳送至工作日誌也可能很有用。
此機制的優點是處理程式可以選擇確切的狀態碼。 例如,有數個狀態碼與 WORKSTN 作業相關聯。
如需撰寫 Open Access 處理程式的相關資訊,請參閱 Rational® Open Access: RPG Edition 主題。