UNPKG

@abaplint/runtime

Version:
38 lines 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.modifyDatabase = modifyDatabase; const types_1 = require("../types"); const insert_database_1 = require("./insert_database"); const update_database_1 = require("./update_database"); async function modifyDatabase(table, options, context) { if (options.table instanceof types_1.FieldSymbol) { options.table = options.table.getPointer(); } if (options.values instanceof types_1.FieldSymbol) { options.values = options.values.getPointer(); } if (options.table) { let subrc = 0; let dbcnt = 0; for (const row of options.table.array()) { const insertSubrc = await (0, insert_database_1.insertDatabase)(table, { values: row }, context); if (insertSubrc !== 0) { await (0, update_database_1.updateDatabase)(table, { from: row }, context); } subrc = Math.max(subrc, abap.builtin.sy.get().subrc.get()); dbcnt += abap.builtin.sy.get().dbcnt.get(); } abap.builtin.sy.get().subrc.set(subrc); abap.builtin.sy.get().dbcnt.set(dbcnt); } else if (options.values) { const subrc = await (0, insert_database_1.insertDatabase)(table, { values: options.values }, context); if (subrc !== 0) { await (0, update_database_1.updateDatabase)(table, { from: options.values }, context); } } else { throw new Error("modifyDatabase todo"); } } //# sourceMappingURL=modify_database.js.map