dynamicsnode
Version:
Create simple scripts to interact with Dynamics CRM using Node.js
42 lines • 2.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var DataTableSerializer_1 = require("./DataTableSerializer");
var info = require("debug")("dynamicsnode:info");
var ImportExportUtil = (function () {
function ImportExportUtil() {
}
/** Exports all the existing records of a given entity to the specified file */
ImportExportUtil.export = function (client, entityName, fileName) {
info("Exporting " + entityName + " to " + fileName + "...");
// perform some validations
if (!entityName)
throw new Error("Entity name not specified");
entityName = entityName.toLowerCase(); // normalize casing
info("Getting metadata...");
var metadata = client.getEntityMetadata(entityName);
info("Getting data...");
var data = client.retrieveMultiple(entityName, {});
var rowsCount = data ? data.rows ? data.rows.length : 0 : 0;
info("Retrieved " + rowsCount + " records");
info("Saving...");
DataTableSerializer_1.DataTableSerializer.save(data, fileName);
};
/** Loads the specified file in CRM. If the record exists, then it updates. Otherwhise, it creates it. */
ImportExportUtil.import = function (client, fileName) {
info("Importing " + fileName + "...");
info("Loading data table...");
var dt = DataTableSerializer_1.DataTableSerializer.load(fileName);
info(dt.rows.length + " records found");
info("Getting metadata for entity " + dt.name + "...");
var metadata = client.getEntityMetadata(dt.name);
var idField = client.getIdField(dt.name);
info("Importing...");
for (var i = 0; i < dt.rows.length; i++) {
info("record " + (i + 1) + " of " + dt.rows.length + "...");
client.createOrUpdate(dt.name, dt.rows[i], [idField]);
}
};
return ImportExportUtil;
}());
exports.ImportExportUtil = ImportExportUtil;
//# sourceMappingURL=ImportExportUtil.js.map