Im Kontext von DL/I stellt die Anweisung 'replace' einen geänderten Datensatz in eine hierarchische Datenbank.
Die Anweisung 'replace' generiert eine DL/I-Anweisung REPL für Ersetzungen. In DL/I muss ein Segment abgerufen und temporär gesperrt werden, bevor es überschrieben werden kann. Die EGL-Schlüsselwörter 'get...forUpdate', 'get next...forUpdate' und 'get next inParent...forUpdate' führen alle eine temporäre Sperre für das zum Ersetzen angeforderte Segment aus.

// Definition von DLISegment-Datensätzen mithilfe der Eigenschaft 'hostVarQualifier'
Record CustomerRecordPart type DLISegment
{ segmentName="STSCCST", keyItem="customerNo", hostVarQualifier="myCustomer" }
...
end
Record LocationRecordPart type DLISegment
{ segmentName="STSCLOC", keyItem="locationNo", hostVarQualifier="myLocation" }
...
end
Record OrderRecordPart type DLISegment
{ segmentName="STPCORD", keyItem="orderDateNo", hostVarQualifier="myOrder" }
...
end
//Erstellung von Variablen für die Datensätze
myCustomer CustomerRecordPart;
myLocation LocationRecordPart;
myOrder OrderRecordPart;
//Erstellung eines Segmentsucharguments
myCustomer.customerNo = "5001";
myLocation.locationNo = "22";
myOrder.orderDateNo = "20050730A003";
//Angefordertes Bestellsegment temporär sperren
try
get myOrder forUpdate;
onException(dex DLIException)
myErrorHandler(dex);
end
//Aktualisierung der Informationen
changeOrder(myOrder);
//Neuerstellung der Bestellung
try
replace myOrder;
onException(dex DLIException)
myErrorHandler(dex);
end
Die Anweisung 'get...forUpdate' generiert qualifizierte SSAs für Kunden (Customer),
Standort (Location) und Bestellung (Order):GHU STSCCST (STQCCNO = :myCustomer.customerNo)
STSCLOC (STQCLNO = :myLocation.locationNo)
STPCORD (STQCODN = :myOrder.orderDateNo)
Anschließend generiert die Anweisung 'replace' einfach
Folgendes:REPL STPCORD