@salesforce/plugin-data 3.7.1 → 3.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,96 @@
1
+ /*
2
+ * Copyright (c) 2024, salesforce.com, inc.
3
+ * All rights reserved.
4
+ * Licensed under the BSD 3-Clause license.
5
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
8
+ import { Messages } from '@salesforce/core';
9
+ import { ensureString } from '@salesforce/ts-types';
10
+ import { BulkImportRequestCache } from '../../../bulkDataRequestCache.js';
11
+ import { BulkImportStages } from '../../../ux/bulkImportStages.js';
12
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
13
+ const messages = Messages.loadMessages('@salesforce/plugin-data', 'data.import.resume');
14
+ export default class DataImportResume extends SfCommand {
15
+ static summary = messages.getMessage('summary');
16
+ static description = messages.getMessage('description');
17
+ static examples = messages.getMessages('examples');
18
+ static flags = {
19
+ 'use-most-recent': Flags.boolean({
20
+ summary: messages.getMessage('flags.use-most-recent.summary'),
21
+ exactlyOne: ['job-id'],
22
+ }),
23
+ 'job-id': Flags.salesforceId({
24
+ summary: messages.getMessage('flags.job-id.summary'),
25
+ char: 'i',
26
+ length: 18,
27
+ startsWith: '750',
28
+ exactlyOne: ['use-most-recent'],
29
+ }),
30
+ wait: Flags.duration({
31
+ char: 'w',
32
+ unit: 'minutes',
33
+ summary: messages.getMessage('flags.wait.summary'),
34
+ defaultValue: 5,
35
+ }),
36
+ };
37
+ async run() {
38
+ const { flags } = await this.parse(DataImportResume);
39
+ const cache = await BulkImportRequestCache.create();
40
+ const resumeOpts = await cache.resolveResumeOptionsFromCache(flags['job-id'] ?? flags['use-most-recent']);
41
+ const conn = resumeOpts.options.connection;
42
+ const stages = new BulkImportStages({
43
+ resume: true,
44
+ title: 'Importing data',
45
+ baseUrl: ensureString(conn.getAuthInfoFields().instanceUrl),
46
+ jsonEnabled: this.jsonEnabled(),
47
+ });
48
+ stages.start();
49
+ const job = conn.bulk2.job('ingest', {
50
+ id: resumeOpts.jobInfo.id,
51
+ });
52
+ stages.setupJobListeners(job);
53
+ try {
54
+ await job.poll(5000, flags.wait.milliseconds);
55
+ const jobInfo = await job.check();
56
+ // send last data update so job status/num. of records processed/failed represent the last update
57
+ stages.update(jobInfo);
58
+ if (jobInfo.numberRecordsFailed) {
59
+ stages.error();
60
+ // TODO: replace this msg to point to `sf data bulk results` when it's added (W-12408034)
61
+ throw messages.createError('error.failedRecordDetails', [
62
+ jobInfo.numberRecordsFailed,
63
+ conn.getUsername(),
64
+ job.id,
65
+ ]);
66
+ }
67
+ stages.stop();
68
+ return {
69
+ jobId: jobInfo.id,
70
+ processedRecords: jobInfo.numberRecordsProcessed,
71
+ successfulRecords: jobInfo.numberRecordsProcessed - (jobInfo.numberRecordsFailed ?? 0),
72
+ failedRecords: jobInfo.numberRecordsFailed,
73
+ };
74
+ }
75
+ catch (err) {
76
+ const jobInfo = await job.check();
77
+ // send last data update so job status/num. of records processed/failed represent the last update
78
+ stages.update(jobInfo);
79
+ if (err instanceof Error && err.name === 'JobPollingTimeout') {
80
+ stages.error();
81
+ throw messages.createError('error.timeout', [flags.wait.minutes, job.id]);
82
+ }
83
+ if (jobInfo.state === 'Failed') {
84
+ stages.error();
85
+ throw messages.createError('error.jobFailed', [jobInfo.errorMessage, conn.getUsername(), job.id], [], err);
86
+ }
87
+ if (jobInfo.state === 'Aborted') {
88
+ stages.error();
89
+ // TODO: replace this msg to point to `sf data bulk results` when it's added (W-12408034)
90
+ throw messages.createError('error.jobAborted', [conn.getUsername(), job.id], [], err);
91
+ }
92
+ throw err;
93
+ }
94
+ }
95
+ }
96
+ //# sourceMappingURL=resume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../../src/commands/data/import/resume.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAAC;AASxF,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,SAAiC;IACtE,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5D,MAAM,CAAU,KAAK,GAAG;QAC7B,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,+BAA+B,CAAC;YAC7D,UAAU,EAAE,CAAC,QAAQ,CAAC;SACvB,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;YAC3B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,sBAAsB,CAAC;YACpD,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,CAAC,iBAAiB,CAAC;SAChC,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAClD,YAAY,EAAE,CAAC;SAChB,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAErD,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,CAAC;QAEpD,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,6BAA6B,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAE1G,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC;QAE3C,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;YAClC,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,gBAAgB;YACvB,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,WAAW,CAAC;YAC3D,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;SAChC,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,EAAE,CAAC;QAEf,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;YACnC,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE;SAC1B,CAAC,CAAC;QAEH,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE9C,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAElC,iGAAiG;YACjG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAEvB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;gBAChC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,yFAAyF;gBACzF,MAAM,QAAQ,CAAC,WAAW,CAAC,2BAA2B,EAAE;oBACtD,OAAO,CAAC,mBAAmB;oBAC3B,IAAI,CAAC,WAAW,EAAE;oBAClB,GAAG,CAAC,EAAE;iBACP,CAAC,CAAC;YACL,CAAC;YAED,MAAM,CAAC,IAAI,EAAE,CAAC;YAEd,OAAO;gBACL,KAAK,EAAE,OAAO,CAAC,EAAE;gBACjB,gBAAgB,EAAE,OAAO,CAAC,sBAAsB;gBAChD,iBAAiB,EAAE,OAAO,CAAC,sBAAsB,GAAG,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC;gBACtF,aAAa,EAAE,OAAO,CAAC,mBAAmB;aAC3C,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAElC,iGAAiG;YACjG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAEvB,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBAC7D,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,QAAQ,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5E,CAAC;YAED,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,QAAQ,CAAC,WAAW,CACxB,iBAAiB,EACjB,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAClD,EAAE,EACF,GAAY,CACb,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,yFAAyF;gBACzF,MAAM,QAAQ,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAY,CAAC,CAAC;YACjG,CAAC;YAED,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC"}
package/lib/export.js CHANGED
@@ -6,33 +6,42 @@
6
6
  */
7
7
  import path from 'node:path';
8
8
  import fs from 'node:fs';
9
- import { Logger, Messages, SfError, Lifecycle } from '@salesforce/core';
9
+ import { Lifecycle, Logger, Messages, SfError } from '@salesforce/core';
10
10
  import { ensure } from '@salesforce/ts-types';
11
- import { hasNonEmptyNestedRecords, hasNestedRecordsFilter, hasNestedRecords, } from './types.js';
11
+ import { hasNestedRecords, hasNestedRecordsFilter, hasNonEmptyNestedRecords, } from './types.js';
12
12
  import { hasUnresolvedRefs } from './api/data/tree/functions.js';
13
13
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
14
14
  const messages = Messages.loadMessages('@salesforce/plugin-data', 'exportApi');
15
15
  const DATA_PLAN_FILENAME_PART = 'plan.json';
16
16
  export const runExport = async (configInput) => {
17
- const { outputDir, plan, query, conn, prefix, ux } = validate(configInput);
18
- const logger = Logger.childFromRoot('runExport');
19
- const { records: recordsFromQuery } = await queryRecords(conn)(query);
20
- const describe = await cacheAllMetadata(conn)(recordsFromQuery);
17
+ const { outputDir, plan, queries, conn, prefix, ux } = validate(configInput);
21
18
  const refFromIdByType = new Map();
22
- const flatRecords = recordsFromQuery.flatMap(flattenNestedRecords);
23
- flatRecords.map(buildRefMap(refFromIdByType)); // get a complete map of ID<->Ref
24
- logger.debug(messages.getMessage('dataExportRecordCount', [flatRecords.length, query]));
19
+ const logger = Logger.childFromRoot('runExport');
20
+ const objectRecordMap = new Map();
25
21
  if (outputDir) {
26
22
  await fs.promises.mkdir(outputDir, { recursive: true });
27
23
  }
24
+ await Promise.all(queries.map(async (query) => {
25
+ const { records: recordsFromQuery } = await queryRecords(conn)(query);
26
+ await cacheAllMetadata(conn)(recordsFromQuery);
27
+ objectRecordMap.set(recordsFromQuery.at(0)?.attributes.type ??
28
+ // try to match the object being queried
29
+ new RegExp(/from (\w+)/gim).exec(query)?.at(1) ??
30
+ '', recordsFromQuery);
31
+ // get a complete map of ID<->Ref
32
+ const flatRecords = recordsFromQuery.flatMap(flattenNestedRecords).map(buildRefMap(refFromIdByType));
33
+ logger.debug(messages.getMessage('dataExportRecordCount', [flatRecords.length, query]));
34
+ }));
35
+ const allQueryValues = Array.from(objectRecordMap.values()).flat();
36
+ const describe = await cacheAllMetadata(conn)(allQueryValues);
28
37
  if (plan) {
29
- const planMap = reduceByType(recordsFromQuery
38
+ const planMap = reduceByType(allQueryValues
30
39
  .flatMap(flattenWithChildRelationships(describe)())
31
40
  .map(addReferenceIdToAttributes(refFromIdByType))
32
41
  .map(removeChildren)
33
42
  .map(replaceParentReferences(describe)(refFromIdByType))
34
43
  .map(removeNonPlanProperties));
35
- const planFiles = [...planMap.entries()].map(([sobject, records]) => ({
44
+ const contentFiles = [...planMap.entries()].map(([sobject, records]) => ({
36
45
  sobject,
37
46
  contents: { records },
38
47
  saveRefs: shouldSaveRefs(records, [...planMap.values()].flat()),
@@ -40,24 +49,41 @@ export const runExport = async (configInput) => {
40
49
  file: `${getPrefixedFileName(sobject, prefix)}.json`,
41
50
  dir: outputDir ?? '',
42
51
  }));
43
- const output = planFiles.map(planFileToDataPartPlan);
44
- const planName = getPrefixedFileName([...describe.keys(), DATA_PLAN_FILENAME_PART].join('-'), prefix);
52
+ const planContent = contentFiles.map(planFileToDataPartPlan);
53
+ const planName = queries.length > 1
54
+ ? DATA_PLAN_FILENAME_PART
55
+ : getPrefixedFileName([...describe.keys(), DATA_PLAN_FILENAME_PART].join('-'), prefix);
45
56
  await Promise.all([
46
- ...planFiles.map(writePlanDataFile(ux)),
47
- fs.promises.writeFile(path.join(outputDir ?? '', planName), JSON.stringify(output, null, 4)),
57
+ ...contentFiles.map(writePlanDataFile(ux)),
58
+ fs.promises.writeFile(path.join(outputDir ?? '', planName), JSON.stringify(planContent, null, 4)),
48
59
  ]);
49
- return output;
60
+ return planContent;
50
61
  }
51
62
  else {
52
- if (flatRecords.length > 200) {
53
- // use lifecycle so warnings show up in stdout and in the json
54
- await Lifecycle.getInstance().emitWarning(messages.getMessage('dataExportRecordCountWarning', [flatRecords.length, query]));
55
- }
56
- const contents = { records: processRecordsForNonPlan(describe)(refFromIdByType)(recordsFromQuery) };
57
- const filename = path.join(outputDir ?? '', getPrefixedFileName(`${[...describe.keys()].join('-')}.json`, prefix));
58
- ux.log(`wrote ${flatRecords.length} records to ${filename}`);
59
- fs.writeFileSync(filename, JSON.stringify(contents, null, 4));
60
- return contents;
63
+ const records = [];
64
+ objectRecordMap.forEach((basicRecords, query) => {
65
+ if (basicRecords.length > 200) {
66
+ // use lifecycle so warnings show up in stdout and in the json
67
+ void Lifecycle.getInstance().emitWarning(messages.getMessage('dataExportRecordCountWarning', [basicRecords.length, query]));
68
+ }
69
+ if (!basicRecords.length) {
70
+ // use lifecycle so warnings show up in stdout and in the json
71
+ void Lifecycle.getInstance().emitWarning(messages.getMessage('noRecordsReturned', [query]));
72
+ }
73
+ else {
74
+ const contents = { records: processRecordsForNonPlan(describe)(refFromIdByType)(basicRecords) };
75
+ // if we have multiple queries, we'll accumulate all the processed records
76
+ records.push(...contents.records);
77
+ const filename = path.join(outputDir ?? '',
78
+ // if we have multiple queries, name each file according to the object being queried, otherwise, join them together for previous behavior
79
+ getPrefixedFileName(`${queries.length > 1 ? query : [...describe.keys()].join('-')}.json`, prefix));
80
+ ux.log(`wrote ${basicRecords.length} records to ${filename}`);
81
+ fs.writeFileSync(filename, JSON.stringify(contents, null, 4));
82
+ }
83
+ });
84
+ return {
85
+ records,
86
+ };
61
87
  }
62
88
  };
63
89
  // TODO: remove the saveRefs/resolveRefs from the types and all associated code. It's not used by the updated `import` command
@@ -75,7 +101,7 @@ const planFileToDataPartPlan = (p) => ({
75
101
  });
76
102
  const writePlanDataFile = (ux) => async (p) => {
77
103
  await fs.promises.writeFile(path.join(p.dir, p.file), JSON.stringify(p.contents, null, 4));
78
- ux.log(`wrote ${p.contents.records.length} records to ${p.file}`);
104
+ ux.log(`wrote ${p.contents.records.length} records to ${path.join(p.dir, p.file)}`);
79
105
  };
80
106
  // future: use Map.groupBy() when it's available
81
107
  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/groupBy
@@ -127,7 +153,8 @@ export const maybeConvertIdToRef = (refFromIdByType) => ([id, type]) => {
127
153
  export const replaceParentReferences = (describe) => (refFromIdByType) => (record) => {
128
154
  const typeDescribe = ensure(describe.get(record.attributes.type), `Missing describe for ${record.attributes.type}`);
129
155
  const replacedReferences = Object.fromEntries(Object.entries(record)
130
- .filter(isRelationshipFieldFilter(typeDescribe)) // only look at the fields that are references
156
+ .filter(isRelationshipFieldFilter(typeDescribe))
157
+ // only look at the fields that are references
131
158
  // We can check describe to see what the type could be.
132
159
  // If it narrows to only 1 type, pass that to refFromId.
133
160
  // If it's polymorphic, don't pass a type because refFromId will need to check all the types.
@@ -166,20 +193,27 @@ const addReferenceIdToAttributes = (refFromIdByType) => (obj) => ({
166
193
  * @param config - The export configuration.
167
194
  */
168
195
  const validate = (config) => {
169
- if (!config.query) {
196
+ if (!config.queries) {
170
197
  throw new SfError(messages.getMessage('queryNotProvided'), 'queryNotProvided');
171
198
  }
172
- const filepath = path.resolve(process.cwd(), config.query);
173
- if (fs.existsSync(filepath)) {
174
- config.query = fs.readFileSync(filepath, 'utf8');
175
- if (!config.query) {
176
- throw messages.createError('queryNotProvided');
199
+ const queries = [];
200
+ config.queries.map((q) => {
201
+ const filepath = path.resolve(process.cwd(), q);
202
+ if (fs.existsSync(filepath)) {
203
+ const query = fs.readFileSync(filepath, 'utf8');
204
+ if (!config.queries) {
205
+ throw messages.createError('queryNotProvided');
206
+ }
207
+ // we've validate that the passed file is a valid soql statement, continue the iteration based on the assumption
208
+ // that q is a soql string, rather than a file name - this combines logic for --query contact.txt and --query "SELECT..."
209
+ q = query;
177
210
  }
178
- }
179
- config.query = config.query.trim();
180
- if (!config.query.toLowerCase().startsWith('select')) {
181
- throw messages.createError('soqlInvalid', [config.query]);
182
- }
211
+ if (!q.toLowerCase().startsWith('select')) {
212
+ throw messages.createError('soqlInvalid', [q]);
213
+ }
214
+ queries.push(q);
215
+ });
216
+ config.queries = queries;
183
217
  return config;
184
218
  };
185
219
  const isRelationshipWithMetadata = (metadata) => (fieldName) => metadata.fields.some((f) => f.name.toLowerCase() === fieldName.toLowerCase() && f.type.toLowerCase() === 'reference');
package/lib/export.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ /*
2
+ * Copyright (c) 2024, salesforce.com, inc.
3
+ * All rights reserved.
4
+ * Licensed under the BSD 3-Clause license.
5
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ import { MultiStageOutput } from '@oclif/multi-stage-output';
8
+ import terminalLink from 'terminal-link';
9
+ export class BulkImportStages {
10
+ mso;
11
+ resume;
12
+ constructor({ resume, title, baseUrl, jsonEnabled }) {
13
+ this.resume = resume;
14
+ this.mso = new MultiStageOutput({
15
+ title,
16
+ jsonEnabled,
17
+ stages: ['Creating ingest job', 'Processing the job'],
18
+ stageSpecificBlock: [
19
+ {
20
+ stage: 'Processing the job',
21
+ label: 'Processed records',
22
+ type: 'dynamic-key-value',
23
+ get: (data) => {
24
+ if (data?.numberRecordsProcessed) {
25
+ return data.numberRecordsProcessed.toString();
26
+ }
27
+ },
28
+ },
29
+ {
30
+ stage: 'Processing the job',
31
+ label: 'Successful records',
32
+ type: 'dynamic-key-value',
33
+ get: (data) => {
34
+ const numberRecordsFailed = data?.numberRecordsFailed ?? 0;
35
+ if (data?.numberRecordsProcessed) {
36
+ return (data.numberRecordsProcessed - numberRecordsFailed).toString();
37
+ }
38
+ },
39
+ },
40
+ {
41
+ stage: 'Processing the job',
42
+ label: 'Failed records',
43
+ type: 'dynamic-key-value',
44
+ get: (data) => {
45
+ const numberRecordsFailed = data?.numberRecordsFailed ?? 0;
46
+ if (data?.numberRecordsProcessed) {
47
+ return numberRecordsFailed.toString();
48
+ }
49
+ },
50
+ },
51
+ ],
52
+ postStagesBlock: [
53
+ {
54
+ label: 'Status',
55
+ type: 'dynamic-key-value',
56
+ bold: true,
57
+ get: (data) => data?.state,
58
+ },
59
+ {
60
+ label: 'Job Id',
61
+ type: 'dynamic-key-value',
62
+ bold: true,
63
+ get: (data) => data?.id &&
64
+ terminalLink(data.id, `${baseUrl}/lightning/setup/AsyncApiJobStatus/page?address=${encodeURIComponent(`/${data.id}`)}`, {
65
+ fallback: (text, url) => `${text} (${url})`,
66
+ }),
67
+ },
68
+ ],
69
+ });
70
+ }
71
+ start() {
72
+ if (this.resume) {
73
+ this.mso.skipTo('Processing the job');
74
+ }
75
+ else {
76
+ this.mso.goto('Creating ingest job');
77
+ }
78
+ }
79
+ processingJob() {
80
+ this.mso.goto('Processing the job');
81
+ }
82
+ setupJobListeners(job) {
83
+ job.on('inProgress', (res) => {
84
+ this.mso.updateData(res);
85
+ });
86
+ }
87
+ update(data) {
88
+ this.mso.updateData(data);
89
+ }
90
+ stop() {
91
+ this.mso.stop();
92
+ }
93
+ error() {
94
+ this.mso.error();
95
+ }
96
+ }
97
+ //# sourceMappingURL=bulkImportStages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulkImportStages.js","sourceRoot":"","sources":["../../src/ux/bulkImportStages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ # summary
2
+
3
+ Bulk import records into a Salesforce object from a CSV file. Uses Bulk API 2.0.
4
+
5
+ # description
6
+
7
+ You can use this command to import millions of records into the object from a file in comma-separated values (CSV) format.
8
+
9
+ All the records in the CSV file must be for the same Salesforce object. Specify the object with the `--sobject` flag.
10
+
11
+ Bulk imports can take a while, depending on how many records are in the CSV file. If the command times out, or you specified the --async flag, the command displays the job ID. To see the status and get the results of the job, run "sf data import resume" and pass the job ID to the --job-id flag.
12
+
13
+ For information and examples about how to prepare your CSV files, see "Prepare Data to Ingest" in the "Bulk API 2.0 and Bulk API Developer Guide" (https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/datafiles_prepare_data.htm).
14
+
15
+ # examples
16
+
17
+ - Import Account records from a CSV-formatted file into an org with alias "my-scratch"; if the import doesn't complete in 10 minutes, the command ends and displays a job ID:
18
+
19
+ <%= config.bin %> <%= command.id %> --file accounts.csv --sobject Account --wait 10 --target-org my-scratch
20
+
21
+ - Import asynchronously and use the default org; the command immediately returns a job ID that you then pass to the "sf data import resume" command:
22
+
23
+ <%= config.bin %> <%= command.id %> --file accounts.csv --sobject Account --async
24
+
25
+ # flags.async.summary
26
+
27
+ Don't wait for the command to complete.
28
+
29
+ # flags.file.summary
30
+
31
+ CSV file that contains the Salesforce object records you want to import.
32
+
33
+ # flags.sobject.summary
34
+
35
+ API name of the Salesforce object, either standard or custom, into which you're importing records.
36
+
37
+ # flags.wait.summary
38
+
39
+ Time to wait for the command to finish, in minutes.
40
+
41
+ # flags.line-ending.summary
42
+
43
+ Line ending used in the CSV file. Default value on Windows is `CRLF`; on macOS and Linux it's `LR`.
44
+
45
+ # export.resume
46
+
47
+ Run "sf data import resume --job-id %s" to resume the operation.
48
+
49
+ # error.timeout
50
+
51
+ The operation timed out after %s minutes.
52
+
53
+ Run "sf data import resume --job-id %s" to resume it.
54
+
55
+ # error.failedRecordDetails
56
+
57
+ Job finished being processed but failed to import %s records.
58
+
59
+ To review the details of this job, run this command:
60
+
61
+ sf org open --target-org %s --path "/lightning/setup/AsyncApiJobStatus/page?address=%2F%s"
62
+
63
+ # error.jobFailed
64
+
65
+ Job failed to be processed due to:
66
+
67
+ %s
68
+
69
+ To review the details of this job, run this command:
70
+
71
+ sf org open --target-org %s --path "/lightning/setup/AsyncApiJobStatus/page?address=%2F%s"
72
+
73
+ # error.jobAborted
74
+
75
+ Job has been aborted.
76
+
77
+ To review the details of this job, run this command:
78
+
79
+ sf org open --target-org %s --path "/lightning/setup/AsyncApiJobStatus/page?address=%2F%s"
@@ -0,0 +1,61 @@
1
+ # summary
2
+
3
+ Resume a bulk import job that you previously started. Uses Bulk API 2.0.
4
+
5
+ # description
6
+
7
+ When the original "sf data import bulk" command either times out or is run with the --async flag, it displays a job ID. To see the status and get the results of the bulk import, run this command by either passing it the job ID or using the --use-most-recent flag to specify the most recent bulk import job.
8
+
9
+ # examples
10
+
11
+ - Resume a bulk import job to your default org using an ID:
12
+
13
+ <%= config.bin %> <%= command.id %> --job-id 750xx000000005sAAA
14
+
15
+ - Resume the most recently run bulk import job for an org with alias my-scratch:
16
+
17
+ <%= config.bin %> <%= command.id %> --use-most-recent --target-org my-scratch
18
+
19
+ # flags.use-most-recent.summary
20
+
21
+ Use the job ID of the bulk import job that was most recently run.
22
+
23
+ # flags.job-id.summary
24
+
25
+ Job ID of the bulk import.
26
+
27
+ # flags.wait.summary
28
+
29
+ Time to wait for the command to finish, in minutes.
30
+
31
+ # error.failedRecordDetails
32
+
33
+ Job finished being processed but failed to import %s records.
34
+
35
+ To review the details of this job, run this command:
36
+
37
+ sf org open --target-org %s --path "/lightning/setup/AsyncApiJobStatus/page?address=%2F%s"
38
+
39
+ # error.timeout
40
+
41
+ The operation timed out after %s minutes.
42
+
43
+ Try re-running "sf data import resume --job-id %s" with a bigger wait time.
44
+
45
+ # error.jobFailed
46
+
47
+ Job failed to be processed due to:
48
+
49
+ %s
50
+
51
+ To review the details of this job, run this command:
52
+
53
+ sf org open --target-org %s --path "/lightning/setup/AsyncApiJobStatus/page?address=%2F%s"
54
+
55
+ # error.jobAborted
56
+
57
+ Job has been aborted.
58
+
59
+ To review the details of this job, run this command:
60
+
61
+ sf org open --target-org %s --path "/lightning/setup/AsyncApiJobStatus/page?address=%2F%s"
@@ -23,3 +23,7 @@ Processed %s records from query: %s
23
23
  Query returned more than 200 records. Run the command using the --plan flag instead.
24
24
  Record Count: %s
25
25
  Query: %s
26
+
27
+ # noRecordsReturned
28
+
29
+ The query for %s returned 0 records.
@@ -54,7 +54,7 @@ The bulk request id must be supplied when not looking for most recent cache entr
54
54
 
55
55
  # error.bulkRequestIdNotFound
56
56
 
57
- Could not find a cache entry for job ID %s
57
+ Could not find a cache entry for job ID %s.
58
58
 
59
59
  # error.missingCacheEntryError
60
60