@salesforce/plugin-data 4.0.14 → 4.0.16

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.
package/README.md CHANGED
@@ -145,7 +145,7 @@ EXAMPLES
145
145
  $ sf data bulk results --job-id 7507i000fake341G --target-org my-scratch
146
146
  ```
147
147
 
148
- _See code: [src/commands/data/bulk/results.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/bulk/results.ts)_
148
+ _See code: [src/commands/data/bulk/results.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/bulk/results.ts)_
149
149
 
150
150
  ## `sf data create file`
151
151
 
@@ -194,7 +194,7 @@ EXAMPLES
194
194
  $ sf data create file --file path/to/astro.png --parent-id a03fakeLoJWPIA3
195
195
  ```
196
196
 
197
- _See code: [src/commands/data/create/file.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/create/file.ts)_
197
+ _See code: [src/commands/data/create/file.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/create/file.ts)_
198
198
 
199
199
  ## `sf data create record`
200
200
 
@@ -250,7 +250,7 @@ EXAMPLES
250
250
  TracedEntityId=01p17000000R6bLAAS"
251
251
  ```
252
252
 
253
- _See code: [src/commands/data/create/record.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/create/record.ts)_
253
+ _See code: [src/commands/data/create/record.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/create/record.ts)_
254
254
 
255
255
  ## `sf data delete bulk`
256
256
 
@@ -311,7 +311,7 @@ FLAG DESCRIPTIONS
311
311
  and can be enabled only by a system administrator.
312
312
  ```
313
313
 
314
- _See code: [src/commands/data/delete/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/delete/bulk.ts)_
314
+ _See code: [src/commands/data/delete/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/delete/bulk.ts)_
315
315
 
316
316
  ## `sf data delete record`
317
317
 
@@ -372,7 +372,7 @@ EXAMPLES
372
372
  $ sf data delete record --use-tooling-api --sobject TraceFlag --record-id 7tf8c
373
373
  ```
374
374
 
375
- _See code: [src/commands/data/delete/record.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/delete/record.ts)_
375
+ _See code: [src/commands/data/delete/record.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/delete/record.ts)_
376
376
 
377
377
  ## `sf data delete resume`
378
378
 
@@ -411,7 +411,7 @@ EXAMPLES
411
411
  $ sf data delete resume --use-most-recent --target-org my-scratch
412
412
  ```
413
413
 
414
- _See code: [src/commands/data/delete/resume.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/delete/resume.ts)_
414
+ _See code: [src/commands/data/delete/resume.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/delete/resume.ts)_
415
415
 
416
416
  ## `sf data export bulk`
417
417
 
@@ -485,7 +485,7 @@ EXAMPLES
485
485
  --result-format json --async
486
486
  ```
487
487
 
488
- _See code: [src/commands/data/export/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/export/bulk.ts)_
488
+ _See code: [src/commands/data/export/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/export/bulk.ts)_
489
489
 
490
490
  ## `sf data export resume`
491
491
 
@@ -521,7 +521,7 @@ EXAMPLES
521
521
  $ sf data export resume --use-most-recent --target-org my-scratch
522
522
  ```
523
523
 
524
- _See code: [src/commands/data/export/resume.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/export/resume.ts)_
524
+ _See code: [src/commands/data/export/resume.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/export/resume.ts)_
525
525
 
526
526
  ## `sf data export tree`
527
527
 
@@ -581,7 +581,7 @@ EXAMPLES
581
581
  my-scratch
582
582
  ```
583
583
 
584
- _See code: [src/commands/data/export/tree.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/export/tree.ts)_
584
+ _See code: [src/commands/data/export/tree.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/export/tree.ts)_
585
585
 
586
586
  ## `sf data get record`
587
587
 
@@ -645,7 +645,7 @@ EXAMPLES
645
645
  $ sf data get record --use-tooling-api --sobject TraceFlag --record-id 7tf8c
646
646
  ```
647
647
 
648
- _See code: [src/commands/data/get/record.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/get/record.ts)_
648
+ _See code: [src/commands/data/get/record.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/get/record.ts)_
649
649
 
650
650
  ## `sf data import bulk`
651
651
 
@@ -703,7 +703,7 @@ EXAMPLES
703
703
  $ sf data import bulk --file accounts.csv --sobject Account --async
704
704
  ```
705
705
 
706
- _See code: [src/commands/data/import/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/import/bulk.ts)_
706
+ _See code: [src/commands/data/import/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/import/bulk.ts)_
707
707
 
708
708
  ## `sf data import resume`
709
709
 
@@ -739,7 +739,7 @@ EXAMPLES
739
739
  $ sf data import resume --use-most-recent --target-org my-scratch
740
740
  ```
741
741
 
742
- _See code: [src/commands/data/import/resume.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/import/resume.ts)_
742
+ _See code: [src/commands/data/import/resume.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/import/resume.ts)_
743
743
 
744
744
  ## `sf data import tree`
745
745
 
@@ -803,7 +803,7 @@ FLAG DESCRIPTIONS
803
803
  - files(array) - Files: An array of files paths to load
804
804
  ```
805
805
 
806
- _See code: [src/commands/data/import/tree.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/import/tree.ts)_
806
+ _See code: [src/commands/data/import/tree.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/import/tree.ts)_
807
807
 
808
808
  ## `sf data query`
809
809
 
@@ -869,7 +869,7 @@ EXAMPLES
869
869
  $ sf data query --query "SELECT Id FROM Contact" --bulk --wait 0
870
870
  ```
871
871
 
872
- _See code: [src/commands/data/query.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/query.ts)_
872
+ _See code: [src/commands/data/query.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/query.ts)_
873
873
 
874
874
  ## `sf data query resume`
875
875
 
@@ -906,7 +906,7 @@ EXAMPLES
906
906
  $ sf data query resume --bulk-query-id 7500x000005BdFzXXX
907
907
  ```
908
908
 
909
- _See code: [src/commands/data/query/resume.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/query/resume.ts)_
909
+ _See code: [src/commands/data/query/resume.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/query/resume.ts)_
910
910
 
911
911
  ## `sf data resume`
912
912
 
@@ -943,7 +943,7 @@ EXAMPLES
943
943
  $ sf data resume --job-id 750xx000000005sAAA --batch-id 751xx000000005nAAA
944
944
  ```
945
945
 
946
- _See code: [src/commands/data/resume.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/resume.ts)_
946
+ _See code: [src/commands/data/resume.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/resume.ts)_
947
947
 
948
948
  ## `sf data search`
949
949
 
@@ -993,7 +993,7 @@ EXAMPLES
993
993
  $ sf data search --file query.txt --target-org my-scratch --result-format csv
994
994
  ```
995
995
 
996
- _See code: [src/commands/data/search.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/search.ts)_
996
+ _See code: [src/commands/data/search.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/search.ts)_
997
997
 
998
998
  ## `sf data update bulk`
999
999
 
@@ -1054,7 +1054,7 @@ EXAMPLES
1054
1054
  $ sf data update bulk --file accounts.csv --sobject Account --async
1055
1055
  ```
1056
1056
 
1057
- _See code: [src/commands/data/update/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/update/bulk.ts)_
1057
+ _See code: [src/commands/data/update/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/update/bulk.ts)_
1058
1058
 
1059
1059
  ## `sf data update record`
1060
1060
 
@@ -1116,7 +1116,7 @@ EXAMPLES
1116
1116
  "ExpirationDate=2017-12-01T00:58:04.000+0000"
1117
1117
  ```
1118
1118
 
1119
- _See code: [src/commands/data/update/record.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/update/record.ts)_
1119
+ _See code: [src/commands/data/update/record.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/update/record.ts)_
1120
1120
 
1121
1121
  ## `sf data update resume`
1122
1122
 
@@ -1152,7 +1152,7 @@ EXAMPLES
1152
1152
  $ sf data update resume --use-most-recent --target-org my-scratch
1153
1153
  ```
1154
1154
 
1155
- _See code: [src/commands/data/update/resume.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/update/resume.ts)_
1155
+ _See code: [src/commands/data/update/resume.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/update/resume.ts)_
1156
1156
 
1157
1157
  ## `sf data upsert bulk`
1158
1158
 
@@ -1211,7 +1211,7 @@ EXAMPLES
1211
1211
  my-scratch
1212
1212
  ```
1213
1213
 
1214
- _See code: [src/commands/data/upsert/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/upsert/bulk.ts)_
1214
+ _See code: [src/commands/data/upsert/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/upsert/bulk.ts)_
1215
1215
 
1216
1216
  ## `sf data upsert resume`
1217
1217
 
@@ -1250,7 +1250,7 @@ EXAMPLES
1250
1250
  $ sf data upsert resume --use-most-recent --target-org my-scratch
1251
1251
  ```
1252
1252
 
1253
- _See code: [src/commands/data/upsert/resume.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/data/upsert/resume.ts)_
1253
+ _See code: [src/commands/data/upsert/resume.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/data/upsert/resume.ts)_
1254
1254
 
1255
1255
  ## `sf force data bulk delete`
1256
1256
 
@@ -1297,7 +1297,7 @@ EXAMPLES
1297
1297
  $ sf force data bulk delete --sobject MyObject__c --file files/delete.csv --wait 5 --target-org my-scratch
1298
1298
  ```
1299
1299
 
1300
- _See code: [src/commands/force/data/bulk/delete.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/force/data/bulk/delete.ts)_
1300
+ _See code: [src/commands/force/data/bulk/delete.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/force/data/bulk/delete.ts)_
1301
1301
 
1302
1302
  ## `sf force data bulk status`
1303
1303
 
@@ -1334,7 +1334,7 @@ EXAMPLES
1334
1334
  $ sf force data bulk status --job-id 750xx000000005sAAA --batch-id 751xx000000005nAAA --target-org my-scratch
1335
1335
  ```
1336
1336
 
1337
- _See code: [src/commands/force/data/bulk/status.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/force/data/bulk/status.ts)_
1337
+ _See code: [src/commands/force/data/bulk/status.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/force/data/bulk/status.ts)_
1338
1338
 
1339
1339
  ## `sf force data bulk upsert`
1340
1340
 
@@ -1392,6 +1392,6 @@ EXAMPLES
1392
1392
  --target-org my-scratch
1393
1393
  ```
1394
1394
 
1395
- _See code: [src/commands/force/data/bulk/upsert.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.14/src/commands/force/data/bulk/upsert.ts)_
1395
+ _See code: [src/commands/force/data/bulk/upsert.ts](https://github.com/salesforcecli/plugin-data/blob/4.0.16/src/commands/force/data/bulk/upsert.ts)_
1396
1396
 
1397
1397
  <!-- commandsstop -->
@@ -4,8 +4,9 @@
4
4
  * Licensed under the BSD 3-Clause license.
5
5
  * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
6
  */
7
- import { Messages } from '@salesforce/core';
7
+ import { Messages, SfError } from '@salesforce/core';
8
8
  import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
9
+ import { ensureString, isObject } from '@salesforce/ts-types';
9
10
  import { importFromPlan } from '../../../api/data/tree/importPlan.js';
10
11
  import { importFromFiles } from '../../../api/data/tree/importFiles.js';
11
12
  import { orgFlags } from '../../../flags.js';
@@ -42,19 +43,67 @@ export default class Import extends SfCommand {
42
43
  async run() {
43
44
  const { flags } = await this.parse(Import);
44
45
  const conn = flags['target-org'].getConnection(flags['api-version']);
45
- const results = flags.plan
46
- ? await importFromPlan(conn, flags.plan)
47
- : await importFromFiles(conn, flags.files ?? []);
48
- this.table({
49
- data: results,
50
- columns: [
51
- { key: 'refId', name: 'Reference ID' },
52
- { key: 'type', name: 'Type' },
53
- { key: 'id', name: 'ID' },
54
- ],
55
- title: 'Import Results',
56
- });
57
- return results;
46
+ try {
47
+ const results = flags.plan
48
+ ? await importFromPlan(conn, flags.plan)
49
+ : await importFromFiles(conn, flags.files ?? []);
50
+ this.table({
51
+ data: results,
52
+ columns: [
53
+ { key: 'refId', name: 'Reference ID' },
54
+ { key: 'type', name: 'Type' },
55
+ { key: 'id', name: 'ID' },
56
+ ],
57
+ title: 'Import Results',
58
+ });
59
+ return results;
60
+ }
61
+ catch (err) {
62
+ const error = err;
63
+ if (error.cause &&
64
+ error.cause instanceof Error &&
65
+ 'data' in error.cause &&
66
+ isObject(error.cause.data) &&
67
+ 'message' in error.cause.data) {
68
+ const getTreeResponse = (payload) => {
69
+ try {
70
+ return JSON.parse(payload);
71
+ }
72
+ catch (parseErr) {
73
+ // throw original error on invalid JSON payload
74
+ if (parseErr instanceof Error && parseErr.name === 'SyntaxError') {
75
+ throw error;
76
+ }
77
+ throw parseErr;
78
+ }
79
+ };
80
+ const errorData = getTreeResponse(ensureString(error.cause.data.message));
81
+ if (errorData.hasErrors) {
82
+ const errorResults = errorData.results
83
+ .map((result) => result.errors.map((errors) => ({
84
+ referenceId: result.referenceId,
85
+ StatusCode: errors.statusCode,
86
+ Message: errors.message,
87
+ fields: errors.fields.join(', ') || 'N/A',
88
+ })))
89
+ .flat();
90
+ this.table({
91
+ data: errorResults,
92
+ columns: [
93
+ { key: 'referenceId', name: 'Reference ID' },
94
+ { key: 'StatusCode', name: 'Status Code' },
95
+ { key: 'Message', name: 'Error Message' },
96
+ { key: 'fields', name: 'Fields' },
97
+ ],
98
+ title: 'Tree import errors',
99
+ });
100
+ const errors = new SfError('Data Import failed');
101
+ errors.setData(errorResults);
102
+ throw errors;
103
+ }
104
+ }
105
+ throw error;
106
+ }
58
107
  }
59
108
  }
60
109
  //# sourceMappingURL=tree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../../src/commands/data/import/tree.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,yBAAyB,EAAE,aAAa,CAAC,CAAC;AAEjF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,SAAyB;IACpD,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;IAC5D,MAAM,CAAU,OAAO,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACrD,MAAM,CAAU,gBAAgB,GAAG,IAAI,CAAC;IAExC,MAAM,CAAU,KAAK,GAAG;QAC7B,GAAG,QAAQ;QACX,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC;YACnD,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;YAC7B,OAAO,EAAE,CAAC,kBAAkB,CAAC;YAC7B,gBAAgB,EAAE,IAAI;YACtB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,GAAG;SACf,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAClD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;YAC1D,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;YAC7B,MAAM,EAAE,IAAI;SACb,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3C,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI;YACxB,CAAC,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;YACxC,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAEnD,IAAI,CAAC,KAAK,CAAC;YACT,IAAI,EAAE,OAAO;YACb,OAAO,EAAE;gBACP,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE;gBACtC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC7B,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;aAC1B;YACD,KAAK,EAAE,gBAAgB;SACxB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC"}
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../../src/commands/data/import/tree.ts"],"names":[],"mappings":"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"}
@@ -2412,13 +2412,13 @@
2412
2412
  "resume:query:data"
2413
2413
  ]
2414
2414
  },
2415
- "data:upsert:bulk": {
2415
+ "data:update:bulk": {
2416
2416
  "aliases": [],
2417
2417
  "args": {},
2418
- "description": "An upsert refers to inserting a record into a Salesforce object if the record doesn't already exist, or updating it if it does exist.\n\nWhen you execute this command, it starts a job, displays the ID, and then immediately returns control of the terminal to you by default. If you prefer to wait, set the --wait flag to the number of minutes; if it times out, the command outputs the IDs. Use the job and batch IDs to check the status of the job with the \"<%= config.bin %> data upsert resume\" command.\n\nSee \"Prepare CSV Files\" in the Bulk API Developer Guide for details on formatting your CSV file. (https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/datafiles_prepare_csv.htm)",
2418
+ "description": "You can use this command to update millions of Salesforce object records based on a file in comma-separated values (CSV) format.\n\nAll the records in the CSV file must be for the same Salesforce object. Specify the object with the `--sobject` flag. The first column of every line in the CSV file must be an ID of the record you want to update. The CSV file can contain only existing records; if a record in the file doesn't currently exist in the Salesforce object, the command fails. Consider using \"sf data upsert bulk\" if you also want to insert new records.\n\nBulk updates 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 update resume\" and pass the job ID to the --job-id flag.\n\nFor 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).",
2419
2419
  "examples": [
2420
- "Bulk upsert records to the Contact object in your default org:\n<%= config.bin %> <%= command.id %> --sobject Contact --file files/contacts.csv --external-id Id",
2421
- "Bulk upsert records to a custom object in an org with alias my-scratch and wait 5 minutes for the command to complete:\n<%= config.bin %> <%= command.id %> --sobject MyObject__c --file files/file.csv --external-id MyField__c --wait 5 --target-org my-scratch"
2420
+ "Update Account records from a CSV-formatted file into an org with alias \"my-scratch\"; if the update doesn't complete in 10 minutes, the command ends and displays a job ID:\n<%= config.bin %> <%= command.id %> --file accounts.csv --sobject Account --wait 10 --target-org my-scratch",
2421
+ "Update asynchronously and use the default org; the command immediately returns a job ID that you then pass to the \"sf data update resume\" command:\n<%= config.bin %> <%= command.id %> --file accounts.csv --sobject Account --async"
2422
2422
  ],
2423
2423
  "flags": {
2424
2424
  "json": {
@@ -2436,98 +2436,55 @@
2436
2436
  "multiple": false,
2437
2437
  "type": "option"
2438
2438
  },
2439
- "target-org": {
2440
- "aliases": [
2441
- "targetusername",
2442
- "u"
2443
- ],
2444
- "char": "o",
2445
- "deprecateAliases": true,
2446
- "name": "target-org",
2447
- "noCacheDefault": true,
2448
- "required": true,
2449
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
2450
- "hasDynamicHelp": true,
2451
- "multiple": false,
2452
- "type": "option"
2453
- },
2454
- "api-version": {
2455
- "aliases": [
2456
- "apiversion"
2457
- ],
2458
- "deprecateAliases": true,
2459
- "description": "Override the api version used for api requests made by this command",
2460
- "name": "api-version",
2461
- "hasDynamicHelp": false,
2462
- "multiple": false,
2463
- "type": "option"
2439
+ "async": {
2440
+ "char": "a",
2441
+ "name": "async",
2442
+ "summary": "Don't wait for the command to complete.",
2443
+ "allowNo": false,
2444
+ "type": "boolean"
2464
2445
  },
2465
- "loglevel": {
2466
- "deprecated": {
2467
- "message": "The loglevel flag is no longer in use on this command. You may use it without error, but it will be ignored.\nSet the log level using the `SFDX_LOG_LEVEL` environment variable."
2468
- },
2469
- "hidden": true,
2470
- "name": "loglevel",
2471
- "hasDynamicHelp": false,
2446
+ "wait": {
2447
+ "char": "w",
2448
+ "name": "wait",
2449
+ "summary": "Time to wait for the command to finish, in minutes.",
2450
+ "hasDynamicHelp": true,
2472
2451
  "multiple": false,
2473
2452
  "type": "option"
2474
2453
  },
2475
2454
  "file": {
2476
- "aliases": [
2477
- "csvfile"
2478
- ],
2479
2455
  "char": "f",
2480
- "deprecateAliases": true,
2481
2456
  "name": "file",
2482
2457
  "required": true,
2483
- "summary": "CSV file that contains the IDs of the records to update or delete.",
2458
+ "summary": "CSV file that contains the Salesforce object records you want to update.",
2484
2459
  "hasDynamicHelp": false,
2485
2460
  "multiple": false,
2486
2461
  "type": "option"
2487
2462
  },
2488
2463
  "sobject": {
2489
- "aliases": [
2490
- "sobjecttype"
2491
- ],
2492
2464
  "char": "s",
2493
- "deprecateAliases": true,
2494
2465
  "name": "sobject",
2495
2466
  "required": true,
2496
- "summary": "API name of the Salesforce object, either standard or custom, that you want to update or delete records from.",
2467
+ "summary": "API name of the Salesforce object, either standard or custom, which you are updating.",
2497
2468
  "hasDynamicHelp": false,
2498
2469
  "multiple": false,
2499
2470
  "type": "option"
2500
2471
  },
2501
- "wait": {
2502
- "char": "w",
2503
- "exclusive": [
2504
- "async"
2505
- ],
2506
- "name": "wait",
2507
- "summary": "Number of minutes to wait for the command to complete before displaying the results.",
2508
- "default": "0 minutes",
2509
- "hasDynamicHelp": true,
2472
+ "api-version": {
2473
+ "description": "Override the api version used for api requests made by this command",
2474
+ "name": "api-version",
2475
+ "hasDynamicHelp": false,
2510
2476
  "multiple": false,
2511
2477
  "type": "option"
2512
2478
  },
2513
- "async": {
2514
- "char": "a",
2515
- "exclusive": [
2516
- "wait"
2517
- ],
2518
- "name": "async",
2519
- "summary": "Run the command asynchronously.",
2520
- "allowNo": false,
2521
- "type": "boolean"
2522
- },
2523
- "verbose": {
2524
- "deprecated": {
2525
- "message": "The --verbose flag is deprecated and will be removed after March 2025, use \"sf data bulk results\" to get job results instead."
2526
- },
2527
- "name": "verbose",
2528
- "summary": "Print verbose output of failed records if result is available.",
2529
- "allowNo": false,
2530
- "type": "boolean"
2479
+ "target-org": {
2480
+ "char": "o",
2481
+ "name": "target-org",
2482
+ "noCacheDefault": true,
2483
+ "required": true,
2484
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
2485
+ "hasDynamicHelp": true,
2486
+ "multiple": false,
2487
+ "type": "option"
2531
2488
  },
2532
2489
  "line-ending": {
2533
2490
  "dependsOn": [
@@ -2557,55 +2514,47 @@
2557
2514
  "TAB"
2558
2515
  ],
2559
2516
  "type": "option"
2560
- },
2561
- "external-id": {
2562
- "aliases": [
2563
- "externalid"
2564
- ],
2565
- "char": "i",
2566
- "deprecateAliases": true,
2567
- "name": "external-id",
2568
- "required": true,
2569
- "summary": "Name of the external ID field, or the Id field.",
2570
- "hasDynamicHelp": false,
2571
- "multiple": false,
2572
- "type": "option"
2573
2517
  }
2574
2518
  },
2575
2519
  "hasDynamicHelp": true,
2576
2520
  "hiddenAliases": [],
2577
- "id": "data:upsert:bulk",
2521
+ "id": "data:update:bulk",
2578
2522
  "pluginAlias": "@salesforce/plugin-data",
2579
2523
  "pluginName": "@salesforce/plugin-data",
2580
2524
  "pluginType": "core",
2581
2525
  "strict": true,
2582
- "summary": "Bulk upsert records to an org from a CSV file. Uses Bulk API 2.0.",
2526
+ "summary": "Bulk update records to an org from a CSV file. Uses Bulk API 2.0.",
2583
2527
  "enableJsonFlag": true,
2584
2528
  "isESM": true,
2585
2529
  "relativePath": [
2586
2530
  "lib",
2587
2531
  "commands",
2588
2532
  "data",
2589
- "upsert",
2533
+ "update",
2590
2534
  "bulk.js"
2591
2535
  ],
2592
2536
  "aliasPermutations": [],
2593
2537
  "permutations": [
2594
- "data:upsert:bulk",
2595
- "upsert:data:bulk",
2596
- "upsert:bulk:data",
2597
- "data:bulk:upsert",
2598
- "bulk:data:upsert",
2599
- "bulk:upsert:data"
2538
+ "data:update:bulk",
2539
+ "update:data:bulk",
2540
+ "update:bulk:data",
2541
+ "data:bulk:update",
2542
+ "bulk:data:update",
2543
+ "bulk:update:data"
2600
2544
  ]
2601
2545
  },
2602
- "data:upsert:resume": {
2603
- "aliases": [],
2546
+ "data:update:record": {
2547
+ "aliases": [
2548
+ "force:data:record:update"
2549
+ ],
2604
2550
  "args": {},
2605
- "description": "The command uses the job ID returned from the \"<%= config.bin %> data upsert bulk\" command or the most recently-run bulk upsert job.",
2551
+ "deprecateAliases": true,
2552
+ "description": "Specify the record you want to update with either its ID or with a list of field-value pairs that identify the record. If your list of fields identifies more than one record, the update fails; the error displays how many records were found.\n\nWhen using field-value pairs for both identifying the record and specifiyng the new field values, use the format <fieldName>=<value>. Enclose all field-value pairs in one set of double quotation marks, delimited by spaces. Enclose values that contain spaces in single quotes.\n\nThis command updates a record in Salesforce objects by default. Use the --use-tooling-api flag to update a Tooling API object.",
2606
2553
  "examples": [
2607
- "Resume a bulk upsert job from your default org using an ID:\n<%= config.bin %> <%= command.id %> --job-id 750xx000000005sAAA",
2608
- "Resume the most recently run bulk upsert job for an org with alias my-scratch:\n<%= config.bin %> <%= command.id %> --use-most-recent --target-org my-scratch"
2554
+ "Update the Name field of an Account record with the specified (truncated) ID:\n<%= config.bin %> <%= command.id %> --sobject Account --record-id 001D0 --values \"Name=NewAcme\"",
2555
+ "Update the Name field of an Account record whose current name is 'Old Acme':\n<%= config.bin %> <%= command.id %> --sobject Account --where \"Name='Old Acme'\" --values \"Name='New Acme'\"",
2556
+ "Update the Name and Website fields of an Account record with the specified (truncated) ID:\n<%= config.bin %> <%= command.id %> --sobject Account --record-id 001D0 --values \"Name='Acme III' Website=www.example.com\"",
2557
+ "Update the ExpirationDate field of a record of the Tooling API object TraceFlag using the specified (truncated) ID:\n<%= config.bin %> <%= command.id %> -t --sobject TraceFlag --record-id 7tf170000009cUBAAY --values \"ExpirationDate=2017-12-01T00:58:04.000+0000\""
2609
2558
  ],
2610
2559
  "flags": {
2611
2560
  "json": {
@@ -2632,92 +2581,156 @@
2632
2581
  "deprecateAliases": true,
2633
2582
  "name": "target-org",
2634
2583
  "noCacheDefault": true,
2635
- "summary": "Username or alias of the target org. Not required if the \"target-org\" configuration variable is already set.",
2584
+ "required": true,
2585
+ "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
2636
2586
  "hasDynamicHelp": true,
2637
2587
  "multiple": false,
2638
2588
  "type": "option"
2639
2589
  },
2640
- "job-id": {
2590
+ "api-version": {
2641
2591
  "aliases": [
2642
- "jobid"
2592
+ "apiversion"
2643
2593
  ],
2644
- "char": "i",
2645
2594
  "deprecateAliases": true,
2646
- "name": "job-id",
2647
- "summary": "ID of the job you want to resume.",
2595
+ "description": "Override the api version used for api requests made by this command",
2596
+ "name": "api-version",
2648
2597
  "hasDynamicHelp": false,
2649
2598
  "multiple": false,
2650
2599
  "type": "option"
2651
2600
  },
2652
- "use-most-recent": {
2653
- "exclusive": [
2654
- "job-id"
2601
+ "loglevel": {
2602
+ "deprecated": {
2603
+ "message": "The loglevel flag is no longer in use on this command. You may use it without error, but it will be ignored.\nSet the log level using the `SFDX_LOG_LEVEL` environment variable."
2604
+ },
2605
+ "hidden": true,
2606
+ "name": "loglevel",
2607
+ "hasDynamicHelp": false,
2608
+ "multiple": false,
2609
+ "type": "option"
2610
+ },
2611
+ "sobject": {
2612
+ "aliases": [
2613
+ "sobjecttype"
2655
2614
  ],
2656
- "name": "use-most-recent",
2657
- "summary": "Use the ID of the most recently-run bulk job.",
2658
- "allowNo": false,
2659
- "type": "boolean"
2615
+ "char": "s",
2616
+ "deprecateAliases": true,
2617
+ "name": "sobject",
2618
+ "required": true,
2619
+ "summary": "API name of the Salesforce or Tooling API object that contains the record you're updating.",
2620
+ "hasDynamicHelp": false,
2621
+ "multiple": false,
2622
+ "type": "option"
2660
2623
  },
2661
- "wait": {
2662
- "name": "wait",
2663
- "summary": "Number of minutes to wait for the command to complete before displaying the results.",
2664
- "default": "5 minutes",
2665
- "hasDynamicHelp": true,
2624
+ "record-id": {
2625
+ "aliases": [
2626
+ "sobjectid"
2627
+ ],
2628
+ "char": "i",
2629
+ "deprecateAliases": true,
2630
+ "name": "record-id",
2631
+ "summary": "ID of the record you’re updating.",
2632
+ "hasDynamicHelp": false,
2666
2633
  "multiple": false,
2667
2634
  "type": "option"
2668
2635
  },
2669
- "api-version": {
2670
- "description": "Override the api version used for api requests made by this command",
2671
- "name": "api-version",
2636
+ "where": {
2637
+ "char": "w",
2638
+ "name": "where",
2639
+ "summary": "List of <fieldName>=<value> pairs that identify the record you want to update.",
2672
2640
  "hasDynamicHelp": false,
2673
2641
  "multiple": false,
2674
2642
  "type": "option"
2675
2643
  },
2676
- "loglevel": {
2677
- "deprecated": {
2678
- "message": "The loglevel flag is no longer in use on this command. You may use it without error, but it will be ignored.\nSet the log level using the `SFDX_LOG_LEVEL` environment variable."
2679
- },
2680
- "hidden": true,
2681
- "name": "loglevel",
2644
+ "values": {
2645
+ "char": "v",
2646
+ "name": "values",
2647
+ "required": true,
2648
+ "summary": "Fields that you're updating, in the format of <fieldName>=<value> pairs.",
2682
2649
  "hasDynamicHelp": false,
2683
2650
  "multiple": false,
2684
2651
  "type": "option"
2652
+ },
2653
+ "use-tooling-api": {
2654
+ "aliases": [
2655
+ "usetoolingapi"
2656
+ ],
2657
+ "char": "t",
2658
+ "deprecateAliases": true,
2659
+ "name": "use-tooling-api",
2660
+ "summary": "Use Tooling API so you can update a record in a Tooling API object.",
2661
+ "allowNo": false,
2662
+ "type": "boolean"
2663
+ },
2664
+ "perflog": {
2665
+ "deprecated": {
2666
+ "version": "57"
2667
+ },
2668
+ "hidden": true,
2669
+ "name": "perflog",
2670
+ "summary": "Get API performance data.",
2671
+ "allowNo": false,
2672
+ "type": "boolean"
2685
2673
  }
2686
2674
  },
2687
2675
  "hasDynamicHelp": true,
2688
2676
  "hiddenAliases": [],
2689
- "id": "data:upsert:resume",
2677
+ "id": "data:update:record",
2690
2678
  "pluginAlias": "@salesforce/plugin-data",
2691
2679
  "pluginName": "@salesforce/plugin-data",
2692
2680
  "pluginType": "core",
2693
2681
  "strict": true,
2694
- "summary": "Resume a bulk upsert job that you previously started. Uses Bulk API 2.0.",
2682
+ "summary": "Updates a single record of a Salesforce or Tooling API object.",
2695
2683
  "enableJsonFlag": true,
2696
2684
  "isESM": true,
2697
2685
  "relativePath": [
2698
2686
  "lib",
2699
2687
  "commands",
2700
2688
  "data",
2701
- "upsert",
2702
- "resume.js"
2689
+ "update",
2690
+ "record.js"
2703
2691
  ],
2704
- "aliasPermutations": [],
2705
- "permutations": [
2706
- "data:upsert:resume",
2707
- "upsert:data:resume",
2708
- "upsert:resume:data",
2709
- "data:resume:upsert",
2710
- "resume:data:upsert",
2711
- "resume:upsert:data"
2692
+ "aliasPermutations": [
2693
+ "force:data:record:update",
2694
+ "data:force:record:update",
2695
+ "data:record:force:update",
2696
+ "data:record:update:force",
2697
+ "force:record:data:update",
2698
+ "record:force:data:update",
2699
+ "record:data:force:update",
2700
+ "record:data:update:force",
2701
+ "force:record:update:data",
2702
+ "record:force:update:data",
2703
+ "record:update:force:data",
2704
+ "record:update:data:force",
2705
+ "force:data:update:record",
2706
+ "data:force:update:record",
2707
+ "data:update:force:record",
2708
+ "data:update:record:force",
2709
+ "force:update:data:record",
2710
+ "update:force:data:record",
2711
+ "update:data:force:record",
2712
+ "update:data:record:force",
2713
+ "force:update:record:data",
2714
+ "update:force:record:data",
2715
+ "update:record:force:data",
2716
+ "update:record:data:force"
2717
+ ],
2718
+ "permutations": [
2719
+ "data:update:record",
2720
+ "update:data:record",
2721
+ "update:record:data",
2722
+ "data:record:update",
2723
+ "record:data:update",
2724
+ "record:update:data"
2712
2725
  ]
2713
2726
  },
2714
- "data:update:bulk": {
2727
+ "data:update:resume": {
2715
2728
  "aliases": [],
2716
2729
  "args": {},
2717
- "description": "You can use this command to update millions of Salesforce object records based on a file in comma-separated values (CSV) format.\n\nAll the records in the CSV file must be for the same Salesforce object. Specify the object with the `--sobject` flag. The first column of every line in the CSV file must be an ID of the record you want to update. The CSV file can contain only existing records; if a record in the file doesn't currently exist in the Salesforce object, the command fails. Consider using \"sf data upsert bulk\" if you also want to insert new records.\n\nBulk updates 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 update resume\" and pass the job ID to the --job-id flag.\n\nFor 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).",
2730
+ "description": "When the original \"sf data update 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 update, run this command by either passing it the job ID or using the --use-most-recent flag to specify the most recent bulk update job.",
2718
2731
  "examples": [
2719
- "Update Account records from a CSV-formatted file into an org with alias \"my-scratch\"; if the update doesn't complete in 10 minutes, the command ends and displays a job ID:\n<%= config.bin %> <%= command.id %> --file accounts.csv --sobject Account --wait 10 --target-org my-scratch",
2720
- "Update asynchronously and use the default org; the command immediately returns a job ID that you then pass to the \"sf data update resume\" command:\n<%= config.bin %> <%= command.id %> --file accounts.csv --sobject Account --async"
2732
+ "Resume a bulk update job of your default org using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 750xx000000005sAAA",
2733
+ "Resume the most recently run bulk update job for an org with alias \"my-scratch\":\n<%= config.bin %> <%= command.id %> --use-most-recent --target-org my-scratch"
2721
2734
  ],
2722
2735
  "flags": {
2723
2736
  "json": {
@@ -2735,94 +2748,38 @@
2735
2748
  "multiple": false,
2736
2749
  "type": "option"
2737
2750
  },
2738
- "async": {
2739
- "char": "a",
2740
- "name": "async",
2741
- "summary": "Don't wait for the command to complete.",
2751
+ "use-most-recent": {
2752
+ "name": "use-most-recent",
2753
+ "summary": "Use the job ID of the bulk update job that was most recently run.",
2742
2754
  "allowNo": false,
2743
2755
  "type": "boolean"
2744
2756
  },
2745
- "wait": {
2746
- "char": "w",
2747
- "name": "wait",
2748
- "summary": "Time to wait for the command to finish, in minutes.",
2749
- "hasDynamicHelp": true,
2750
- "multiple": false,
2751
- "type": "option"
2752
- },
2753
- "file": {
2754
- "char": "f",
2755
- "name": "file",
2756
- "required": true,
2757
- "summary": "CSV file that contains the Salesforce object records you want to update.",
2758
- "hasDynamicHelp": false,
2759
- "multiple": false,
2760
- "type": "option"
2761
- },
2762
- "sobject": {
2763
- "char": "s",
2764
- "name": "sobject",
2765
- "required": true,
2766
- "summary": "API name of the Salesforce object, either standard or custom, which you are updating.",
2767
- "hasDynamicHelp": false,
2768
- "multiple": false,
2769
- "type": "option"
2770
- },
2771
- "api-version": {
2772
- "description": "Override the api version used for api requests made by this command",
2773
- "name": "api-version",
2757
+ "job-id": {
2758
+ "char": "i",
2759
+ "name": "job-id",
2760
+ "summary": "Job ID of the bulk update.",
2774
2761
  "hasDynamicHelp": false,
2775
2762
  "multiple": false,
2776
2763
  "type": "option"
2777
2764
  },
2778
- "target-org": {
2779
- "char": "o",
2780
- "name": "target-org",
2781
- "noCacheDefault": true,
2782
- "required": true,
2783
- "summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
2765
+ "wait": {
2766
+ "char": "w",
2767
+ "name": "wait",
2768
+ "summary": "Time to wait for the command to finish, in minutes.",
2769
+ "default": "5 minutes",
2784
2770
  "hasDynamicHelp": true,
2785
2771
  "multiple": false,
2786
2772
  "type": "option"
2787
- },
2788
- "line-ending": {
2789
- "dependsOn": [
2790
- "file"
2791
- ],
2792
- "name": "line-ending",
2793
- "summary": "Line ending used in the CSV file. Default value on Windows is `CRLF`; on macOS and Linux it's `LF`.",
2794
- "hasDynamicHelp": false,
2795
- "multiple": false,
2796
- "options": [
2797
- "CRLF",
2798
- "LF"
2799
- ],
2800
- "type": "option"
2801
- },
2802
- "column-delimiter": {
2803
- "name": "column-delimiter",
2804
- "summary": "Column delimiter used in the CSV file.",
2805
- "hasDynamicHelp": false,
2806
- "multiple": false,
2807
- "options": [
2808
- "BACKQUOTE",
2809
- "CARET",
2810
- "COMMA",
2811
- "PIPE",
2812
- "SEMICOLON",
2813
- "TAB"
2814
- ],
2815
- "type": "option"
2816
2773
  }
2817
2774
  },
2818
2775
  "hasDynamicHelp": true,
2819
2776
  "hiddenAliases": [],
2820
- "id": "data:update:bulk",
2777
+ "id": "data:update:resume",
2821
2778
  "pluginAlias": "@salesforce/plugin-data",
2822
2779
  "pluginName": "@salesforce/plugin-data",
2823
2780
  "pluginType": "core",
2824
2781
  "strict": true,
2825
- "summary": "Bulk update records to an org from a CSV file. Uses Bulk API 2.0.",
2782
+ "summary": "Resume a bulk update job that you previously started. Uses Bulk API 2.0.",
2826
2783
  "enableJsonFlag": true,
2827
2784
  "isESM": true,
2828
2785
  "relativePath": [
@@ -2830,30 +2787,25 @@
2830
2787
  "commands",
2831
2788
  "data",
2832
2789
  "update",
2833
- "bulk.js"
2790
+ "resume.js"
2834
2791
  ],
2835
2792
  "aliasPermutations": [],
2836
2793
  "permutations": [
2837
- "data:update:bulk",
2838
- "update:data:bulk",
2839
- "update:bulk:data",
2840
- "data:bulk:update",
2841
- "bulk:data:update",
2842
- "bulk:update:data"
2794
+ "data:update:resume",
2795
+ "update:data:resume",
2796
+ "update:resume:data",
2797
+ "data:resume:update",
2798
+ "resume:data:update",
2799
+ "resume:update:data"
2843
2800
  ]
2844
2801
  },
2845
- "data:update:record": {
2846
- "aliases": [
2847
- "force:data:record:update"
2848
- ],
2802
+ "data:upsert:bulk": {
2803
+ "aliases": [],
2849
2804
  "args": {},
2850
- "deprecateAliases": true,
2851
- "description": "Specify the record you want to update with either its ID or with a list of field-value pairs that identify the record. If your list of fields identifies more than one record, the update fails; the error displays how many records were found.\n\nWhen using field-value pairs for both identifying the record and specifiyng the new field values, use the format <fieldName>=<value>. Enclose all field-value pairs in one set of double quotation marks, delimited by spaces. Enclose values that contain spaces in single quotes.\n\nThis command updates a record in Salesforce objects by default. Use the --use-tooling-api flag to update a Tooling API object.",
2805
+ "description": "An upsert refers to inserting a record into a Salesforce object if the record doesn't already exist, or updating it if it does exist.\n\nWhen you execute this command, it starts a job, displays the ID, and then immediately returns control of the terminal to you by default. If you prefer to wait, set the --wait flag to the number of minutes; if it times out, the command outputs the IDs. Use the job and batch IDs to check the status of the job with the \"<%= config.bin %> data upsert resume\" command.\n\nSee \"Prepare CSV Files\" in the Bulk API Developer Guide for details on formatting your CSV file. (https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/datafiles_prepare_csv.htm)",
2852
2806
  "examples": [
2853
- "Update the Name field of an Account record with the specified (truncated) ID:\n<%= config.bin %> <%= command.id %> --sobject Account --record-id 001D0 --values \"Name=NewAcme\"",
2854
- "Update the Name field of an Account record whose current name is 'Old Acme':\n<%= config.bin %> <%= command.id %> --sobject Account --where \"Name='Old Acme'\" --values \"Name='New Acme'\"",
2855
- "Update the Name and Website fields of an Account record with the specified (truncated) ID:\n<%= config.bin %> <%= command.id %> --sobject Account --record-id 001D0 --values \"Name='Acme III' Website=www.example.com\"",
2856
- "Update the ExpirationDate field of a record of the Tooling API object TraceFlag using the specified (truncated) ID:\n<%= config.bin %> <%= command.id %> -t --sobject TraceFlag --record-id 7tf170000009cUBAAY --values \"ExpirationDate=2017-12-01T00:58:04.000+0000\""
2807
+ "Bulk upsert records to the Contact object in your default org:\n<%= config.bin %> <%= command.id %> --sobject Contact --file files/contacts.csv --external-id Id",
2808
+ "Bulk upsert records to a custom object in an org with alias my-scratch and wait 5 minutes for the command to complete:\n<%= config.bin %> <%= command.id %> --sobject MyObject__c --file files/file.csv --external-id MyField__c --wait 5 --target-org my-scratch"
2857
2809
  ],
2858
2810
  "flags": {
2859
2811
  "json": {
@@ -2907,129 +2859,140 @@
2907
2859
  "multiple": false,
2908
2860
  "type": "option"
2909
2861
  },
2910
- "sobject": {
2862
+ "file": {
2911
2863
  "aliases": [
2912
- "sobjecttype"
2864
+ "csvfile"
2913
2865
  ],
2914
- "char": "s",
2866
+ "char": "f",
2915
2867
  "deprecateAliases": true,
2916
- "name": "sobject",
2868
+ "name": "file",
2917
2869
  "required": true,
2918
- "summary": "API name of the Salesforce or Tooling API object that contains the record you're updating.",
2870
+ "summary": "CSV file that contains the IDs of the records to update or delete.",
2919
2871
  "hasDynamicHelp": false,
2920
2872
  "multiple": false,
2921
2873
  "type": "option"
2922
2874
  },
2923
- "record-id": {
2875
+ "sobject": {
2924
2876
  "aliases": [
2925
- "sobjectid"
2877
+ "sobjecttype"
2926
2878
  ],
2927
- "char": "i",
2879
+ "char": "s",
2928
2880
  "deprecateAliases": true,
2929
- "name": "record-id",
2930
- "summary": "ID of the record you’re updating.",
2881
+ "name": "sobject",
2882
+ "required": true,
2883
+ "summary": "API name of the Salesforce object, either standard or custom, that you want to update or delete records from.",
2931
2884
  "hasDynamicHelp": false,
2932
2885
  "multiple": false,
2933
2886
  "type": "option"
2934
2887
  },
2935
- "where": {
2888
+ "wait": {
2936
2889
  "char": "w",
2937
- "name": "where",
2938
- "summary": "List of <fieldName>=<value> pairs that identify the record you want to update.",
2939
- "hasDynamicHelp": false,
2940
- "multiple": false,
2941
- "type": "option"
2942
- },
2943
- "values": {
2944
- "char": "v",
2945
- "name": "values",
2946
- "required": true,
2947
- "summary": "Fields that you're updating, in the format of <fieldName>=<value> pairs.",
2948
- "hasDynamicHelp": false,
2890
+ "exclusive": [
2891
+ "async"
2892
+ ],
2893
+ "name": "wait",
2894
+ "summary": "Number of minutes to wait for the command to complete before displaying the results.",
2895
+ "default": "0 minutes",
2896
+ "hasDynamicHelp": true,
2949
2897
  "multiple": false,
2950
2898
  "type": "option"
2951
2899
  },
2952
- "use-tooling-api": {
2953
- "aliases": [
2954
- "usetoolingapi"
2900
+ "async": {
2901
+ "char": "a",
2902
+ "exclusive": [
2903
+ "wait"
2955
2904
  ],
2956
- "char": "t",
2957
- "deprecateAliases": true,
2958
- "name": "use-tooling-api",
2959
- "summary": "Use Tooling API so you can update a record in a Tooling API object.",
2905
+ "name": "async",
2906
+ "summary": "Run the command asynchronously.",
2960
2907
  "allowNo": false,
2961
2908
  "type": "boolean"
2962
2909
  },
2963
- "perflog": {
2910
+ "verbose": {
2964
2911
  "deprecated": {
2965
- "version": "57"
2912
+ "message": "The --verbose flag is deprecated and will be removed after March 2025, use \"sf data bulk results\" to get job results instead."
2966
2913
  },
2967
- "hidden": true,
2968
- "name": "perflog",
2969
- "summary": "Get API performance data.",
2914
+ "name": "verbose",
2915
+ "summary": "Print verbose output of failed records if result is available.",
2970
2916
  "allowNo": false,
2971
2917
  "type": "boolean"
2918
+ },
2919
+ "line-ending": {
2920
+ "dependsOn": [
2921
+ "file"
2922
+ ],
2923
+ "name": "line-ending",
2924
+ "summary": "Line ending used in the CSV file. Default value on Windows is `CRLF`; on macOS and Linux it's `LF`.",
2925
+ "hasDynamicHelp": false,
2926
+ "multiple": false,
2927
+ "options": [
2928
+ "CRLF",
2929
+ "LF"
2930
+ ],
2931
+ "type": "option"
2932
+ },
2933
+ "column-delimiter": {
2934
+ "name": "column-delimiter",
2935
+ "summary": "Column delimiter used in the CSV file.",
2936
+ "hasDynamicHelp": false,
2937
+ "multiple": false,
2938
+ "options": [
2939
+ "BACKQUOTE",
2940
+ "CARET",
2941
+ "COMMA",
2942
+ "PIPE",
2943
+ "SEMICOLON",
2944
+ "TAB"
2945
+ ],
2946
+ "type": "option"
2947
+ },
2948
+ "external-id": {
2949
+ "aliases": [
2950
+ "externalid"
2951
+ ],
2952
+ "char": "i",
2953
+ "deprecateAliases": true,
2954
+ "name": "external-id",
2955
+ "required": true,
2956
+ "summary": "Name of the external ID field, or the Id field.",
2957
+ "hasDynamicHelp": false,
2958
+ "multiple": false,
2959
+ "type": "option"
2972
2960
  }
2973
2961
  },
2974
2962
  "hasDynamicHelp": true,
2975
2963
  "hiddenAliases": [],
2976
- "id": "data:update:record",
2964
+ "id": "data:upsert:bulk",
2977
2965
  "pluginAlias": "@salesforce/plugin-data",
2978
2966
  "pluginName": "@salesforce/plugin-data",
2979
2967
  "pluginType": "core",
2980
2968
  "strict": true,
2981
- "summary": "Updates a single record of a Salesforce or Tooling API object.",
2969
+ "summary": "Bulk upsert records to an org from a CSV file. Uses Bulk API 2.0.",
2982
2970
  "enableJsonFlag": true,
2983
2971
  "isESM": true,
2984
2972
  "relativePath": [
2985
2973
  "lib",
2986
2974
  "commands",
2987
2975
  "data",
2988
- "update",
2989
- "record.js"
2990
- ],
2991
- "aliasPermutations": [
2992
- "force:data:record:update",
2993
- "data:force:record:update",
2994
- "data:record:force:update",
2995
- "data:record:update:force",
2996
- "force:record:data:update",
2997
- "record:force:data:update",
2998
- "record:data:force:update",
2999
- "record:data:update:force",
3000
- "force:record:update:data",
3001
- "record:force:update:data",
3002
- "record:update:force:data",
3003
- "record:update:data:force",
3004
- "force:data:update:record",
3005
- "data:force:update:record",
3006
- "data:update:force:record",
3007
- "data:update:record:force",
3008
- "force:update:data:record",
3009
- "update:force:data:record",
3010
- "update:data:force:record",
3011
- "update:data:record:force",
3012
- "force:update:record:data",
3013
- "update:force:record:data",
3014
- "update:record:force:data",
3015
- "update:record:data:force"
2976
+ "upsert",
2977
+ "bulk.js"
3016
2978
  ],
2979
+ "aliasPermutations": [],
3017
2980
  "permutations": [
3018
- "data:update:record",
3019
- "update:data:record",
3020
- "update:record:data",
3021
- "data:record:update",
3022
- "record:data:update",
3023
- "record:update:data"
2981
+ "data:upsert:bulk",
2982
+ "upsert:data:bulk",
2983
+ "upsert:bulk:data",
2984
+ "data:bulk:upsert",
2985
+ "bulk:data:upsert",
2986
+ "bulk:upsert:data"
3024
2987
  ]
3025
2988
  },
3026
- "data:update:resume": {
2989
+ "data:upsert:resume": {
3027
2990
  "aliases": [],
3028
2991
  "args": {},
3029
- "description": "When the original \"sf data update 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 update, run this command by either passing it the job ID or using the --use-most-recent flag to specify the most recent bulk update job.",
2992
+ "description": "The command uses the job ID returned from the \"<%= config.bin %> data upsert bulk\" command or the most recently-run bulk upsert job.",
3030
2993
  "examples": [
3031
- "Resume a bulk update job of your default org using a job ID:\n<%= config.bin %> <%= command.id %> --job-id 750xx000000005sAAA",
3032
- "Resume the most recently run bulk update job for an org with alias \"my-scratch\":\n<%= config.bin %> <%= command.id %> --use-most-recent --target-org my-scratch"
2994
+ "Resume a bulk upsert job from your default org using an ID:\n<%= config.bin %> <%= command.id %> --job-id 750xx000000005sAAA",
2995
+ "Resume the most recently run bulk upsert job for an org with alias my-scratch:\n<%= config.bin %> <%= command.id %> --use-most-recent --target-org my-scratch"
3033
2996
  ],
3034
2997
  "flags": {
3035
2998
  "json": {
@@ -3047,55 +3010,92 @@
3047
3010
  "multiple": false,
3048
3011
  "type": "option"
3049
3012
  },
3050
- "use-most-recent": {
3051
- "name": "use-most-recent",
3052
- "summary": "Use the job ID of the bulk update job that was most recently run.",
3053
- "allowNo": false,
3054
- "type": "boolean"
3013
+ "target-org": {
3014
+ "aliases": [
3015
+ "targetusername",
3016
+ "u"
3017
+ ],
3018
+ "char": "o",
3019
+ "deprecateAliases": true,
3020
+ "name": "target-org",
3021
+ "noCacheDefault": true,
3022
+ "summary": "Username or alias of the target org. Not required if the \"target-org\" configuration variable is already set.",
3023
+ "hasDynamicHelp": true,
3024
+ "multiple": false,
3025
+ "type": "option"
3055
3026
  },
3056
3027
  "job-id": {
3028
+ "aliases": [
3029
+ "jobid"
3030
+ ],
3057
3031
  "char": "i",
3032
+ "deprecateAliases": true,
3058
3033
  "name": "job-id",
3059
- "summary": "Job ID of the bulk update.",
3034
+ "summary": "ID of the job you want to resume.",
3060
3035
  "hasDynamicHelp": false,
3061
3036
  "multiple": false,
3062
3037
  "type": "option"
3063
3038
  },
3039
+ "use-most-recent": {
3040
+ "exclusive": [
3041
+ "job-id"
3042
+ ],
3043
+ "name": "use-most-recent",
3044
+ "summary": "Use the ID of the most recently-run bulk job.",
3045
+ "allowNo": false,
3046
+ "type": "boolean"
3047
+ },
3064
3048
  "wait": {
3065
- "char": "w",
3066
3049
  "name": "wait",
3067
- "summary": "Time to wait for the command to finish, in minutes.",
3050
+ "summary": "Number of minutes to wait for the command to complete before displaying the results.",
3068
3051
  "default": "5 minutes",
3069
3052
  "hasDynamicHelp": true,
3070
3053
  "multiple": false,
3071
3054
  "type": "option"
3055
+ },
3056
+ "api-version": {
3057
+ "description": "Override the api version used for api requests made by this command",
3058
+ "name": "api-version",
3059
+ "hasDynamicHelp": false,
3060
+ "multiple": false,
3061
+ "type": "option"
3062
+ },
3063
+ "loglevel": {
3064
+ "deprecated": {
3065
+ "message": "The loglevel flag is no longer in use on this command. You may use it without error, but it will be ignored.\nSet the log level using the `SFDX_LOG_LEVEL` environment variable."
3066
+ },
3067
+ "hidden": true,
3068
+ "name": "loglevel",
3069
+ "hasDynamicHelp": false,
3070
+ "multiple": false,
3071
+ "type": "option"
3072
3072
  }
3073
3073
  },
3074
3074
  "hasDynamicHelp": true,
3075
3075
  "hiddenAliases": [],
3076
- "id": "data:update:resume",
3076
+ "id": "data:upsert:resume",
3077
3077
  "pluginAlias": "@salesforce/plugin-data",
3078
3078
  "pluginName": "@salesforce/plugin-data",
3079
3079
  "pluginType": "core",
3080
3080
  "strict": true,
3081
- "summary": "Resume a bulk update job that you previously started. Uses Bulk API 2.0.",
3081
+ "summary": "Resume a bulk upsert job that you previously started. Uses Bulk API 2.0.",
3082
3082
  "enableJsonFlag": true,
3083
3083
  "isESM": true,
3084
3084
  "relativePath": [
3085
3085
  "lib",
3086
3086
  "commands",
3087
3087
  "data",
3088
- "update",
3088
+ "upsert",
3089
3089
  "resume.js"
3090
3090
  ],
3091
3091
  "aliasPermutations": [],
3092
3092
  "permutations": [
3093
- "data:update:resume",
3094
- "update:data:resume",
3095
- "update:resume:data",
3096
- "data:resume:update",
3097
- "resume:data:update",
3098
- "resume:update:data"
3093
+ "data:upsert:resume",
3094
+ "upsert:data:resume",
3095
+ "upsert:resume:data",
3096
+ "data:resume:upsert",
3097
+ "resume:data:upsert",
3098
+ "resume:upsert:data"
3099
3099
  ]
3100
3100
  },
3101
3101
  "force:data:bulk:delete": {
@@ -3535,5 +3535,5 @@
3535
3535
  ]
3536
3536
  }
3537
3537
  },
3538
- "version": "4.0.14"
3538
+ "version": "4.0.16"
3539
3539
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/plugin-data",
3
- "version": "4.0.14",
3
+ "version": "4.0.16",
4
4
  "description": "Plugin for salesforce data commands",
5
5
  "author": "Salesforce",
6
6
  "homepage": "https://github.com/salesforcecli/plugin-data",
@@ -119,7 +119,7 @@
119
119
  "version": "oclif readme"
120
120
  },
121
121
  "dependencies": {
122
- "@jsforce/jsforce-node": "^3.6.4",
122
+ "@jsforce/jsforce-node": "^3.6.5",
123
123
  "@oclif/multi-stage-output": "^0.8.7",
124
124
  "@salesforce/core": "^8.8.2",
125
125
  "@salesforce/kit": "^3.2.2",
@@ -134,8 +134,8 @@
134
134
  },
135
135
  "devDependencies": {
136
136
  "@oclif/core": "^4.2.6",
137
- "@oclif/plugin-command-snapshot": "^5.2.34",
138
- "@oclif/test": "^4.1.9",
137
+ "@oclif/plugin-command-snapshot": "^5.2.35",
138
+ "@oclif/test": "^4.1.11",
139
139
  "@salesforce/cli-plugins-testkit": "^5.3.39",
140
140
  "@salesforce/dev-scripts": "^10.2.11",
141
141
  "@salesforce/plugin-command-reference": "^3.1.38",
@@ -266,7 +266,7 @@
266
266
  "exports": "./lib/index.js",
267
267
  "type": "module",
268
268
  "sfdx": {
269
- "publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-data/4.0.14.crt",
270
- "signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-data/4.0.14.sig"
269
+ "publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-data/4.0.16.crt",
270
+ "signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-data/4.0.16.sig"
271
271
  }
272
272
  }