F 指令碼
您可以使用 F 指令碼,以特定區段類型的第一個出現項目開始搜尋,或插入新區段作為區段鏈中的第一個出現項目。
擷取區段作為第一個出現項目
您可以對 GN 和 GNP 呼叫使用 F 指令碼。 將它與 GU 呼叫搭配使用是多餘 (且不處理) 的,因為 GU 呼叫已可在資料庫中備份。 當您使用 F 時,表示您希望搜尋從第一次出現的區段類型開始,您在其母項下嘗試滿足此呼叫層次時所指出的區段類型。
您可以使用 GN 及 GNP 呼叫的 F 指令碼,在資料庫中進行備份。 您可以備份至具有現行位置之區段類型的第一個出現項目,也可以備份至階層中現行位置之前的區段類型。
GU 或 GHU提供 F 時, IMS 會不處理 F。搜尋必須從您在母項下所指出區段類型的第一次出現開始。 當滿足該層次的搜尋時,會將該層次視為區段的新出現項目已滿足搜尋。 即使滿足 SSA 的區段 (其中 F 指令碼指定為處理呼叫之前 DL/I 所在的相同區段出現項目) ,也會如此。
當新的區段出現滿足 SSA 時,會重設所有相依區段的位置。 新會搜尋相依區段,然後從該區段類型在其母項下的第一個出現處開始。
插入區段作為第一個出現項目
當您搭配使用 F 與 ISRT 呼叫時,表示您想要 IMS 插入您所提供的區段,作為其區段類型的第一個區段出現項目。 搭配使用 F 與區段,這些區段完全沒有索引鍵或非唯一索引鍵,且在 DBD 中 SEGM 陳述式的 RULES 運算元上已指定 HERE。 如果您在 DBD 中指定 HERE ,則 F 指令碼會置換此項目,且 IMS 會插入新的區段出現項目作為該區段類型的第一個出現項目。
使用 F 指令碼來置換 DBD 上的 RULES 規格,只會套用至您用來存取 ISRT 呼叫區段的路徑 (邏輯或實體)。 例如,如果您使用實體路徑來存取區段,則指令碼會套用至實體路徑,但不會套用至邏輯路徑。 如需搭配使用指令碼與 RULES 規格的說明,請在安裝時詢問資料庫管理者。
例如,假設您在 DBD 中為 TREATMNT 區段指定 RULES=HERE。 您想要滿足此要求:
瑪麗-馬丁今天拜訪了診所,並拜訪了一些不同的醫生。 將 Smith 博士的 TREATMNT 區段新增為最近疾病的第一個 TREATMNT 區段。首先,您在 I/O 區域中建置 TREATMNT 區段:
19930302ESEDRIXbbb0040SMITHbbbbb
然後您發出具有下列 SSA 的 ISRT 呼叫。 這會新增 TREATMNT 區段的新出現項目,作為具有相同索引鍵之 TREATMNT 區段類型的第一次出現項目。ISRT PATIENTb(PATNObbb=b06439)
ILLNESSb*L
TREATMNT*F此範例適用於 HDAM 或 PHDAM 根區段,以及任何資料庫類型的相依區段。