UNPKG

dynamicsnode

Version:

Create simple scripts to interact with Dynamics CRM using Node.js

42 lines 2.05 kB
"use strict"; 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