Für Syntax siehe hier.
Get First:
EXEC TAA GET FIRST LNLPPM2 WHERE LNLPPM2-X50-PRAE-TYP-K = SNLPPME-X50-PRAE-TYP-K END-EXEC
this.DataLnlppm2.FirstOrDefault(rec => rec.X50PraeTypK == Snlppme.X50PraeTypK)?.CopyLocal(Lnlppm2);;
Get Last:
EXEC TAA GET LAST SNLPPME END-EXEC
this.Data.Snlppme.LastOrDefault()?.CopyLocal(Snlppme);
Get Next:
EXEC TAA GET NEXT SNLPRIS WHERE SNLPRIS-VEL-VELE-ID = SNLPVEL-VEL-VELE-ID END-EXEC
this.Data.Snlpris.NextOrDefault(rec => rec.VelVeleId == Snlpvel.VelVeleId)?.CopyLocal(Snlpris);
Get Datenname:
EXEC TAA GET SNLCTX (INDEX-SNLCTX) END-EXEC
this.Data.Snlctx[IndexSnlctx - 1]?.CopyLocal(Snlctx);
Ein GET
auf ein Record-Objekt ist bei der Umsetzung in C# eine leere Operation. In COBOL ist es möglich durch einen GET auf ein Record-Objekt den Inhalt zum Objekt in der WORKING-STORAGE
mit dem tatsächlichen Inhalt des Objektes zu überschreiben und somit Änderungen, die im COBOL-Code gemacht wurden, zu verwerfen. In C# ist das bei Record-Objekten nicht möglich, da der hierfür generierte Code grundsätzlich direkt auf den Objektdaten operiert, ähnlich wie in COBOL bei der Verwendung von einem CURSOR
auf das Objekt. Im generierten Code wird hierzu ein Hinweis erzeugt, der nach erfolgreicher Prüfung des Falles gelöscht werden kann.
// ORIG: EXEC TAA GET SYSTVAR // MIG_NOTE: GET on an object of class REC is a no-op when working directly on the object data // MIG_NOTE: check if this operation was meant to restore object data that has been changed in // MIG_NOTE: the preceding code