7.13.2 COMMITの使用例

LANSA

7.13.2 COMMITの使用例


ユーザーに注文の明細を入力するよう要求し、コミット操作を発行する前に、その注文の頭書きと関連するすべての行をデータベースに書き込みます。

GROUP_BY   NAME(#ORDERHEAD) FIELDS(#ORDNUM #CUSTNUM #DATEDUE)
DEF_LIST   NAME(#ORDERLINE) FIELDS(#ORDLIN #PRODUCT #QUANTITY #PRICE)
 
SET_MODE   TO(*ADD)
INZ_LIST   NAMED(#ORDERLINE) NUM_ENTRYS(20)
REQUEST    FIELDS(#ORDERHEAD) BROWSELIST(#ORDERLINE)
 
INSERT     FIELDS(#ORDERHEAD) TO_FILE(ORDHDR)
SELECTLIST NAMED(#ORDERLINE) GET_ENTRYS(*NOTNULL)
INSERT     FIELDS(#ORDERLINE) TO_FILE(ORDLIN)
ENDSELECT
 
COMMIT
 

(例えば) 4行目の明細行の書き込み中にファンクションが失敗した場合は、自動ロールバックが発行されます。これにより、注文の頭書きと作成済みのすべての明細行がファイルでロールバックされます。