@salesforce/plugin-data 3.7.1 → 3.8.0
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 +114 -20
- package/lib/bulkDataRequestCache.js +63 -0
- package/lib/bulkDataRequestCache.js.map +1 -1
- package/lib/commands/data/import/bulk.js +141 -0
- package/lib/commands/data/import/bulk.js.map +1 -0
- package/lib/commands/data/import/resume.js +96 -0
- package/lib/commands/data/import/resume.js.map +1 -0
- package/lib/ux/bulkImportStages.js +97 -0
- package/lib/ux/bulkImportStages.js.map +1 -0
- package/messages/data.import.bulk.md +79 -0
- package/messages/data.import.resume.md +61 -0
- package/messages/messages.md +1 -1
- package/oclif.manifest.json +466 -269
- package/package.json +6 -5
package/README.md
CHANGED
|
@@ -85,6 +85,8 @@ sf plugins
|
|
|
85
85
|
- [`sf data export resume`](#sf-data-export-resume)
|
|
86
86
|
- [`sf data export tree`](#sf-data-export-tree)
|
|
87
87
|
- [`sf data get record`](#sf-data-get-record)
|
|
88
|
+
- [`sf data import bulk`](#sf-data-import-bulk)
|
|
89
|
+
- [`sf data import resume`](#sf-data-import-resume)
|
|
88
90
|
- [`sf data import tree`](#sf-data-import-tree)
|
|
89
91
|
- [`sf data query`](#sf-data-query)
|
|
90
92
|
- [`sf data query resume`](#sf-data-query-resume)
|
|
@@ -144,7 +146,7 @@ EXAMPLES
|
|
|
144
146
|
$ sf data create file --file path/to/astro.png --parent-id a03fakeLoJWPIA3
|
|
145
147
|
```
|
|
146
148
|
|
|
147
|
-
_See code: [src/commands/data/create/file.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
149
|
+
_See code: [src/commands/data/create/file.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/create/file.ts)_
|
|
148
150
|
|
|
149
151
|
## `sf data create record`
|
|
150
152
|
|
|
@@ -200,7 +202,7 @@ EXAMPLES
|
|
|
200
202
|
TracedEntityId=01p17000000R6bLAAS"
|
|
201
203
|
```
|
|
202
204
|
|
|
203
|
-
_See code: [src/commands/data/create/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
205
|
+
_See code: [src/commands/data/create/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/create/record.ts)_
|
|
204
206
|
|
|
205
207
|
## `sf data delete bulk`
|
|
206
208
|
|
|
@@ -258,7 +260,7 @@ FLAG DESCRIPTIONS
|
|
|
258
260
|
and can be enabled only by a system administrator.
|
|
259
261
|
```
|
|
260
262
|
|
|
261
|
-
_See code: [src/commands/data/delete/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
263
|
+
_See code: [src/commands/data/delete/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/delete/bulk.ts)_
|
|
262
264
|
|
|
263
265
|
## `sf data delete record`
|
|
264
266
|
|
|
@@ -319,7 +321,7 @@ EXAMPLES
|
|
|
319
321
|
$ sf data delete record --use-tooling-api --sobject TraceFlag --record-id 7tf8c
|
|
320
322
|
```
|
|
321
323
|
|
|
322
|
-
_See code: [src/commands/data/delete/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
324
|
+
_See code: [src/commands/data/delete/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/delete/record.ts)_
|
|
323
325
|
|
|
324
326
|
## `sf data delete resume`
|
|
325
327
|
|
|
@@ -358,7 +360,7 @@ EXAMPLES
|
|
|
358
360
|
$ sf data delete resume --use-most-recent --target-org my-scratch
|
|
359
361
|
```
|
|
360
362
|
|
|
361
|
-
_See code: [src/commands/data/delete/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
363
|
+
_See code: [src/commands/data/delete/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/delete/resume.ts)_
|
|
362
364
|
|
|
363
365
|
## `sf data export bulk`
|
|
364
366
|
|
|
@@ -432,7 +434,7 @@ EXAMPLES
|
|
|
432
434
|
--result-format json --async
|
|
433
435
|
```
|
|
434
436
|
|
|
435
|
-
_See code: [src/commands/data/export/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
437
|
+
_See code: [src/commands/data/export/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/export/bulk.ts)_
|
|
436
438
|
|
|
437
439
|
## `sf data export resume`
|
|
438
440
|
|
|
@@ -468,7 +470,7 @@ EXAMPLES
|
|
|
468
470
|
$ sf data export resume --use-most-recent --target-org my-scratch
|
|
469
471
|
```
|
|
470
472
|
|
|
471
|
-
_See code: [src/commands/data/export/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
473
|
+
_See code: [src/commands/data/export/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/export/resume.ts)_
|
|
472
474
|
|
|
473
475
|
## `sf data export tree`
|
|
474
476
|
|
|
@@ -529,7 +531,7 @@ EXAMPLES
|
|
|
529
531
|
my-scratch
|
|
530
532
|
```
|
|
531
533
|
|
|
532
|
-
_See code: [src/commands/data/export/tree.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
534
|
+
_See code: [src/commands/data/export/tree.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/export/tree.ts)_
|
|
533
535
|
|
|
534
536
|
## `sf data get record`
|
|
535
537
|
|
|
@@ -593,7 +595,99 @@ EXAMPLES
|
|
|
593
595
|
$ sf data get record --use-tooling-api --sobject TraceFlag --record-id 7tf8c
|
|
594
596
|
```
|
|
595
597
|
|
|
596
|
-
_See code: [src/commands/data/get/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
598
|
+
_See code: [src/commands/data/get/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/get/record.ts)_
|
|
599
|
+
|
|
600
|
+
## `sf data import bulk`
|
|
601
|
+
|
|
602
|
+
Bulk import records into a Salesforce object from a CSV file. Uses Bulk API 2.0.
|
|
603
|
+
|
|
604
|
+
```
|
|
605
|
+
USAGE
|
|
606
|
+
$ sf data import bulk -s <value> -o <value> [--json] [--flags-dir <value>] [-a | -w <value>] [--api-version <value>]
|
|
607
|
+
(--line-ending CRLF|LF -f <value>)
|
|
608
|
+
|
|
609
|
+
FLAGS
|
|
610
|
+
-a, --async Don't wait for the command to complete.
|
|
611
|
+
-f, --file=<value> (required) CSV file that contains the Salesforce object records you want to import.
|
|
612
|
+
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
|
|
613
|
+
configuration variable is already set.
|
|
614
|
+
-s, --sobject=<value> (required) API name of the Salesforce object, either standard or custom, into which you're
|
|
615
|
+
importing records.
|
|
616
|
+
-w, --wait=<value> Time to wait for the command to finish, in minutes.
|
|
617
|
+
--api-version=<value> Override the api version used for api requests made by this command
|
|
618
|
+
--line-ending=<option> Line ending used in the CSV file. Default value on Windows is `CRLF`; on macOS and Linux
|
|
619
|
+
it's `LR`.
|
|
620
|
+
<options: CRLF|LF>
|
|
621
|
+
|
|
622
|
+
GLOBAL FLAGS
|
|
623
|
+
--flags-dir=<value> Import flag values from a directory.
|
|
624
|
+
--json Format output as json.
|
|
625
|
+
|
|
626
|
+
DESCRIPTION
|
|
627
|
+
Bulk import records into a Salesforce object from a CSV file. Uses Bulk API 2.0.
|
|
628
|
+
|
|
629
|
+
You can use this command to import millions of records into the object from a file in comma-separated values (CSV)
|
|
630
|
+
format.
|
|
631
|
+
|
|
632
|
+
All the records in the CSV file must be for the same Salesforce object. Specify the object with the `--sobject` flag.
|
|
633
|
+
|
|
634
|
+
Bulk imports can take a while, depending on how many records are in the CSV file. If the command times out, or you
|
|
635
|
+
specified the --async flag, the command displays the job ID. To see the status and get the results of the job, run "sf
|
|
636
|
+
data import resume" and pass the job ID to the --job-id flag.
|
|
637
|
+
|
|
638
|
+
For information and examples about how to prepare your CSV files, see "Prepare Data to Ingest" in the "Bulk API 2.0
|
|
639
|
+
and Bulk API Developer Guide"
|
|
640
|
+
(https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/datafiles_prepare_data.htm).
|
|
641
|
+
|
|
642
|
+
EXAMPLES
|
|
643
|
+
Import Account records from a CSV-formatted file into an org with alias "my-scratch"; if the import doesn't complete
|
|
644
|
+
in 10 minutes, the command ends and displays a job ID:
|
|
645
|
+
|
|
646
|
+
$ sf data import bulk --file accounts.csv --sobject Account --wait 10 --target-org my-scratch
|
|
647
|
+
|
|
648
|
+
Import asynchronously and use the default org; the command immediately returns a job ID that you then pass to the
|
|
649
|
+
"sf data import resume" command:
|
|
650
|
+
|
|
651
|
+
$ sf data import bulk --file accounts.csv --sobject Account --async
|
|
652
|
+
```
|
|
653
|
+
|
|
654
|
+
_See code: [src/commands/data/import/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/import/bulk.ts)_
|
|
655
|
+
|
|
656
|
+
## `sf data import resume`
|
|
657
|
+
|
|
658
|
+
Resume a bulk import job that you previously started. Uses Bulk API 2.0.
|
|
659
|
+
|
|
660
|
+
```
|
|
661
|
+
USAGE
|
|
662
|
+
$ sf data import resume [--json] [--flags-dir <value>] [--use-most-recent] [-i <value>] [-w <value>]
|
|
663
|
+
|
|
664
|
+
FLAGS
|
|
665
|
+
-i, --job-id=<value> Job ID of the bulk import.
|
|
666
|
+
-w, --wait=<value> [default: 5 minutes] Time to wait for the command to finish, in minutes.
|
|
667
|
+
--use-most-recent Use the job ID of the bulk import job that was most recently run.
|
|
668
|
+
|
|
669
|
+
GLOBAL FLAGS
|
|
670
|
+
--flags-dir=<value> Import flag values from a directory.
|
|
671
|
+
--json Format output as json.
|
|
672
|
+
|
|
673
|
+
DESCRIPTION
|
|
674
|
+
Resume a bulk import job that you previously started. Uses Bulk API 2.0.
|
|
675
|
+
|
|
676
|
+
When the original "sf data import bulk" command either times out or is run with the --async flag, it displays a job
|
|
677
|
+
ID. To see the status and get the results of the bulk import, run this command by either passing it the job ID or
|
|
678
|
+
using the --use-most-recent flag to specify the most recent bulk import job.
|
|
679
|
+
|
|
680
|
+
EXAMPLES
|
|
681
|
+
Resume a bulk import job to your default org using an ID:
|
|
682
|
+
|
|
683
|
+
$ sf data import resume --job-id 750xx000000005sAAA
|
|
684
|
+
|
|
685
|
+
Resume the most recently run bulk import job for an org with alias my-scratch:
|
|
686
|
+
|
|
687
|
+
$ sf data import resume --use-most-recent --target-org my-scratch
|
|
688
|
+
```
|
|
689
|
+
|
|
690
|
+
_See code: [src/commands/data/import/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/import/resume.ts)_
|
|
597
691
|
|
|
598
692
|
## `sf data import tree`
|
|
599
693
|
|
|
@@ -658,7 +752,7 @@ FLAG DESCRIPTIONS
|
|
|
658
752
|
- files(array) - Files: An array of files paths to load
|
|
659
753
|
```
|
|
660
754
|
|
|
661
|
-
_See code: [src/commands/data/import/tree.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
755
|
+
_See code: [src/commands/data/import/tree.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/import/tree.ts)_
|
|
662
756
|
|
|
663
757
|
## `sf data query`
|
|
664
758
|
|
|
@@ -722,7 +816,7 @@ EXAMPLES
|
|
|
722
816
|
$ sf data query --query "SELECT Id FROM Contact" --bulk --wait 0
|
|
723
817
|
```
|
|
724
818
|
|
|
725
|
-
_See code: [src/commands/data/query.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
819
|
+
_See code: [src/commands/data/query.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/query.ts)_
|
|
726
820
|
|
|
727
821
|
## `sf data query resume`
|
|
728
822
|
|
|
@@ -760,7 +854,7 @@ EXAMPLES
|
|
|
760
854
|
$ sf data query resume --bulk-query-id 7500x000005BdFzXXX
|
|
761
855
|
```
|
|
762
856
|
|
|
763
|
-
_See code: [src/commands/data/query/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
857
|
+
_See code: [src/commands/data/query/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/query/resume.ts)_
|
|
764
858
|
|
|
765
859
|
## `sf data resume`
|
|
766
860
|
|
|
@@ -797,7 +891,7 @@ EXAMPLES
|
|
|
797
891
|
$ sf data resume --job-id 750xx000000005sAAA --batch-id 751xx000000005nAAA
|
|
798
892
|
```
|
|
799
893
|
|
|
800
|
-
_See code: [src/commands/data/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
894
|
+
_See code: [src/commands/data/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/resume.ts)_
|
|
801
895
|
|
|
802
896
|
## `sf data search`
|
|
803
897
|
|
|
@@ -847,7 +941,7 @@ EXAMPLES
|
|
|
847
941
|
$ sf data search --file query.txt --target-org my-scratch --result-format csv
|
|
848
942
|
```
|
|
849
943
|
|
|
850
|
-
_See code: [src/commands/data/search.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
944
|
+
_See code: [src/commands/data/search.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/search.ts)_
|
|
851
945
|
|
|
852
946
|
## `sf data update record`
|
|
853
947
|
|
|
@@ -909,7 +1003,7 @@ EXAMPLES
|
|
|
909
1003
|
"ExpirationDate=2017-12-01T00:58:04.000+0000"
|
|
910
1004
|
```
|
|
911
1005
|
|
|
912
|
-
_See code: [src/commands/data/update/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
1006
|
+
_See code: [src/commands/data/update/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/update/record.ts)_
|
|
913
1007
|
|
|
914
1008
|
## `sf data upsert bulk`
|
|
915
1009
|
|
|
@@ -962,7 +1056,7 @@ EXAMPLES
|
|
|
962
1056
|
my-scratch
|
|
963
1057
|
```
|
|
964
1058
|
|
|
965
|
-
_See code: [src/commands/data/upsert/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
1059
|
+
_See code: [src/commands/data/upsert/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/upsert/bulk.ts)_
|
|
966
1060
|
|
|
967
1061
|
## `sf data upsert resume`
|
|
968
1062
|
|
|
@@ -1001,7 +1095,7 @@ EXAMPLES
|
|
|
1001
1095
|
$ sf data upsert resume --use-most-recent --target-org my-scratch
|
|
1002
1096
|
```
|
|
1003
1097
|
|
|
1004
|
-
_See code: [src/commands/data/upsert/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
1098
|
+
_See code: [src/commands/data/upsert/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/data/upsert/resume.ts)_
|
|
1005
1099
|
|
|
1006
1100
|
## `sf force data bulk delete`
|
|
1007
1101
|
|
|
@@ -1048,7 +1142,7 @@ EXAMPLES
|
|
|
1048
1142
|
$ sf force data bulk delete --sobject MyObject__c --file files/delete.csv --wait 5 --target-org my-scratch
|
|
1049
1143
|
```
|
|
1050
1144
|
|
|
1051
|
-
_See code: [src/commands/force/data/bulk/delete.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
1145
|
+
_See code: [src/commands/force/data/bulk/delete.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/force/data/bulk/delete.ts)_
|
|
1052
1146
|
|
|
1053
1147
|
## `sf force data bulk status`
|
|
1054
1148
|
|
|
@@ -1085,7 +1179,7 @@ EXAMPLES
|
|
|
1085
1179
|
$ sf force data bulk status --job-id 750xx000000005sAAA --batch-id 751xx000000005nAAA --target-org my-scratch
|
|
1086
1180
|
```
|
|
1087
1181
|
|
|
1088
|
-
_See code: [src/commands/force/data/bulk/status.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
1182
|
+
_See code: [src/commands/force/data/bulk/status.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/force/data/bulk/status.ts)_
|
|
1089
1183
|
|
|
1090
1184
|
## `sf force data bulk upsert`
|
|
1091
1185
|
|
|
@@ -1143,6 +1237,6 @@ EXAMPLES
|
|
|
1143
1237
|
--target-org my-scratch
|
|
1144
1238
|
```
|
|
1145
1239
|
|
|
1146
|
-
_See code: [src/commands/force/data/bulk/upsert.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
1240
|
+
_See code: [src/commands/force/data/bulk/upsert.ts](https://github.com/salesforcecli/plugin-data/blob/3.8.0/src/commands/force/data/bulk/upsert.ts)_
|
|
1147
1241
|
|
|
1148
1242
|
<!-- commandsstop -->
|
|
@@ -148,6 +148,69 @@ export class BulkUpsertRequestCache extends BulkDataRequestCache {
|
|
|
148
148
|
await cache.write();
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
|
+
export class BulkImportRequestCache extends TTLConfig {
|
|
152
|
+
static getDefaultOptions() {
|
|
153
|
+
return {
|
|
154
|
+
isGlobal: true,
|
|
155
|
+
isState: true,
|
|
156
|
+
filename: BulkImportRequestCache.getFileName(),
|
|
157
|
+
stateFolder: Global.SF_STATE_FOLDER,
|
|
158
|
+
ttl: Duration.days(7),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
static getFileName() {
|
|
162
|
+
return 'bulk-data-import-cache.json';
|
|
163
|
+
}
|
|
164
|
+
static async unset(key) {
|
|
165
|
+
const cache = await BulkImportRequestCache.create();
|
|
166
|
+
cache.unset(key);
|
|
167
|
+
await cache.write();
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Creates a new bulk data import cache entry for the given bulk request id.
|
|
171
|
+
*
|
|
172
|
+
* @param bulkRequestId
|
|
173
|
+
* @param username
|
|
174
|
+
* @param apiVersion
|
|
175
|
+
*/
|
|
176
|
+
async createCacheEntryForRequest(bulkRequestId, username, apiVersion) {
|
|
177
|
+
this.set(bulkRequestId, {
|
|
178
|
+
jobId: bulkRequestId,
|
|
179
|
+
username,
|
|
180
|
+
apiVersion,
|
|
181
|
+
});
|
|
182
|
+
await this.write();
|
|
183
|
+
Logger.childFromRoot('BulkImportCache').debug(`bulk cache saved for ${bulkRequestId}`);
|
|
184
|
+
}
|
|
185
|
+
async resolveResumeOptionsFromCache(jobIdOrMostRecent) {
|
|
186
|
+
if (typeof jobIdOrMostRecent === 'boolean') {
|
|
187
|
+
const key = this.getLatestKey();
|
|
188
|
+
if (!key) {
|
|
189
|
+
throw messages.createError('error.missingCacheEntryError');
|
|
190
|
+
}
|
|
191
|
+
// key definitely exists because it came from the cache
|
|
192
|
+
const entry = this.get(key);
|
|
193
|
+
return {
|
|
194
|
+
jobInfo: { id: entry.jobId },
|
|
195
|
+
options: {
|
|
196
|
+
connection: (await Org.create({ aliasOrUsername: entry.username })).getConnection(),
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
const entry = this.get(jobIdOrMostRecent);
|
|
202
|
+
if (!entry) {
|
|
203
|
+
throw messages.createError('error.bulkRequestIdNotFound', [jobIdOrMostRecent]);
|
|
204
|
+
}
|
|
205
|
+
return {
|
|
206
|
+
jobInfo: { id: entry.jobId },
|
|
207
|
+
options: {
|
|
208
|
+
connection: (await Org.create({ aliasOrUsername: entry.username })).getConnection(),
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
151
214
|
export class BulkExportRequestCache extends TTLConfig {
|
|
152
215
|
static getDefaultOptions() {
|
|
153
216
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulkDataRequestCache.js","sourceRoot":"","sources":["../src/bulkDataRequestCache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bulkDataRequestCache.js","sourceRoot":"","sources":["../src/bulkDataRequestCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
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 * as fs from 'node:fs';
|
|
8
|
+
import { platform } from 'node:os';
|
|
9
|
+
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
|
|
10
|
+
import { Messages, Org } from '@salesforce/core';
|
|
11
|
+
import { Duration } from '@salesforce/kit';
|
|
12
|
+
import { ensureString } from '@salesforce/ts-types';
|
|
13
|
+
import { BulkImportRequestCache } from '../../../bulkDataRequestCache.js';
|
|
14
|
+
import { BulkImportStages } from '../../../ux/bulkImportStages.js';
|
|
15
|
+
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
16
|
+
const messages = Messages.loadMessages('@salesforce/plugin-data', 'data.import.bulk');
|
|
17
|
+
export default class DataImportBulk extends SfCommand {
|
|
18
|
+
static summary = messages.getMessage('summary');
|
|
19
|
+
static description = messages.getMessage('description');
|
|
20
|
+
static examples = messages.getMessages('examples');
|
|
21
|
+
static flags = {
|
|
22
|
+
async: Flags.boolean({
|
|
23
|
+
summary: messages.getMessage('flags.async.summary'),
|
|
24
|
+
char: 'a',
|
|
25
|
+
exclusive: ['wait'],
|
|
26
|
+
}),
|
|
27
|
+
file: Flags.file({
|
|
28
|
+
summary: messages.getMessage('flags.file.summary'),
|
|
29
|
+
char: 'f',
|
|
30
|
+
required: true,
|
|
31
|
+
exists: true,
|
|
32
|
+
}),
|
|
33
|
+
sobject: Flags.string({
|
|
34
|
+
summary: messages.getMessage('flags.sobject.summary'),
|
|
35
|
+
char: 's',
|
|
36
|
+
required: true,
|
|
37
|
+
}),
|
|
38
|
+
'api-version': Flags.orgApiVersion(),
|
|
39
|
+
wait: Flags.duration({
|
|
40
|
+
summary: messages.getMessage('flags.wait.summary'),
|
|
41
|
+
char: 'w',
|
|
42
|
+
unit: 'minutes',
|
|
43
|
+
exclusive: ['async'],
|
|
44
|
+
}),
|
|
45
|
+
'target-org': Flags.requiredOrg(),
|
|
46
|
+
'line-ending': Flags.option({
|
|
47
|
+
summary: messages.getMessage('flags.line-ending.summary'),
|
|
48
|
+
dependsOn: ['file'],
|
|
49
|
+
options: ['CRLF', 'LF'],
|
|
50
|
+
})(),
|
|
51
|
+
};
|
|
52
|
+
async run() {
|
|
53
|
+
const { flags } = await this.parse(DataImportBulk);
|
|
54
|
+
const conn = flags['target-org'].getConnection(flags['api-version']);
|
|
55
|
+
const timeout = flags.async ? Duration.minutes(0) : flags.wait ?? Duration.minutes(0);
|
|
56
|
+
const async = timeout.milliseconds === 0;
|
|
57
|
+
const baseUrl = flags['target-org'].getField(Org.Fields.INSTANCE_URL).toString();
|
|
58
|
+
const stages = new BulkImportStages({
|
|
59
|
+
resume: false,
|
|
60
|
+
title: async ? 'Importing data (async)' : 'Importing data',
|
|
61
|
+
baseUrl,
|
|
62
|
+
jsonEnabled: this.jsonEnabled(),
|
|
63
|
+
});
|
|
64
|
+
stages.start();
|
|
65
|
+
if (async) {
|
|
66
|
+
const job = await createIngestJob(conn, flags.file, flags.sobject, flags['line-ending']);
|
|
67
|
+
stages.update(job.getInfo());
|
|
68
|
+
stages.stop();
|
|
69
|
+
const cache = await BulkImportRequestCache.create();
|
|
70
|
+
await cache.createCacheEntryForRequest(job.id, ensureString(conn.getUsername()), conn.getApiVersion());
|
|
71
|
+
this.log(messages.getMessage('export.resume', [job.id]));
|
|
72
|
+
return {
|
|
73
|
+
jobId: job.id,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
// synchronous flow
|
|
77
|
+
const job = await createIngestJob(conn, flags.file, flags.sobject, flags['line-ending']);
|
|
78
|
+
stages.setupJobListeners(job);
|
|
79
|
+
stages.processingJob();
|
|
80
|
+
try {
|
|
81
|
+
await job.poll(5000, timeout.milliseconds);
|
|
82
|
+
const jobInfo = job.getInfo();
|
|
83
|
+
// send last data update so job status/num. of records processed/failed represent the last update
|
|
84
|
+
stages.update(jobInfo);
|
|
85
|
+
if (jobInfo.numberRecordsFailed) {
|
|
86
|
+
stages.error();
|
|
87
|
+
// TODO: replace this msg to point to `sf data bulk results` when it's added (W-12408034)
|
|
88
|
+
throw messages.createError('error.failedRecordDetails', [
|
|
89
|
+
jobInfo.numberRecordsFailed,
|
|
90
|
+
conn.getUsername(),
|
|
91
|
+
job.id,
|
|
92
|
+
]);
|
|
93
|
+
}
|
|
94
|
+
stages.stop();
|
|
95
|
+
return {
|
|
96
|
+
jobId: jobInfo.id,
|
|
97
|
+
processedRecords: jobInfo.numberRecordsProcessed,
|
|
98
|
+
successfulRecords: jobInfo.numberRecordsProcessed - (jobInfo.numberRecordsFailed ?? 0),
|
|
99
|
+
failedRecords: jobInfo.numberRecordsFailed,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
const jobInfo = await job.check();
|
|
104
|
+
// send last data update so job status/num. of records processed/failed represent the last update
|
|
105
|
+
stages.update(jobInfo);
|
|
106
|
+
if (err instanceof Error && err.name === 'JobPollingTimeout') {
|
|
107
|
+
stages.stop();
|
|
108
|
+
throw messages.createError('error.timeout', [timeout.minutes, job.id]);
|
|
109
|
+
}
|
|
110
|
+
if (jobInfo.state === 'Failed') {
|
|
111
|
+
stages.error();
|
|
112
|
+
throw messages.createError('error.jobFailed', [jobInfo.errorMessage, conn.getUsername(), job.id], [], err);
|
|
113
|
+
}
|
|
114
|
+
if (jobInfo.state === 'Aborted') {
|
|
115
|
+
stages.error();
|
|
116
|
+
// TODO: replace this msg to point to `sf data bulk results` when it's added (W-12408034)
|
|
117
|
+
throw messages.createError('error.jobAborted', [conn.getUsername(), job.id], [], err);
|
|
118
|
+
}
|
|
119
|
+
throw err;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Create an ingest job, upload data and mark it as ready for processing
|
|
125
|
+
*
|
|
126
|
+
* */
|
|
127
|
+
async function createIngestJob(conn, csvFile, object, lineEnding) {
|
|
128
|
+
const job = conn.bulk2.createJob({
|
|
129
|
+
operation: 'insert',
|
|
130
|
+
lineEnding: lineEnding ?? platform() === 'win32' ? 'CRLF' : 'LF',
|
|
131
|
+
object,
|
|
132
|
+
});
|
|
133
|
+
// create the job in the org
|
|
134
|
+
await job.open();
|
|
135
|
+
// upload data
|
|
136
|
+
await job.uploadData(fs.createReadStream(csvFile));
|
|
137
|
+
// mark the job to be ready to be processed
|
|
138
|
+
await job.close();
|
|
139
|
+
return job;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=bulk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulk.js","sourceRoot":"","sources":["../../../../src/commands/data/import/bulk.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"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"}
|