@salesforce/plugin-data 3.9.0 → 3.10.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 +137 -36
- package/lib/bulkDataRequestCache.js +63 -0
- package/lib/bulkDataRequestCache.js.map +1 -1
- package/lib/bulkIngest.js +184 -0
- package/lib/bulkIngest.js.map +1 -0
- package/lib/bulkUtils.js +59 -1
- package/lib/bulkUtils.js.map +1 -1
- package/lib/commands/data/import/bulk.js +18 -89
- package/lib/commands/data/import/bulk.js.map +1 -1
- package/lib/commands/data/import/resume.js +7 -55
- package/lib/commands/data/import/resume.js.map +1 -1
- package/lib/commands/data/update/bulk.js +68 -0
- package/lib/commands/data/update/bulk.js.map +1 -0
- package/lib/commands/data/update/resume.js +48 -0
- package/lib/commands/data/update/resume.js.map +1 -0
- package/lib/ux/{bulkImportStages.js → bulkIngestStages.js} +4 -4
- package/lib/ux/{bulkImportStages.js.map → bulkIngestStages.js.map} +1 -1
- package/messages/bulkIngest.md +39 -0
- package/messages/data.export.resume.md +1 -1
- package/messages/data.import.bulk.md +3 -35
- package/messages/data.import.resume.md +0 -32
- package/messages/data.update.bulk.md +47 -0
- package/messages/data.update.resume.md +29 -0
- package/oclif.manifest.json +504 -283
- package/package.json +16 -8
package/README.md
CHANGED
|
@@ -92,7 +92,9 @@ sf plugins
|
|
|
92
92
|
- [`sf data query resume`](#sf-data-query-resume)
|
|
93
93
|
- [`sf data resume`](#sf-data-resume)
|
|
94
94
|
- [`sf data search`](#sf-data-search)
|
|
95
|
+
- [`sf data update bulk`](#sf-data-update-bulk)
|
|
95
96
|
- [`sf data update record`](#sf-data-update-record)
|
|
97
|
+
- [`sf data update resume`](#sf-data-update-resume)
|
|
96
98
|
- [`sf data upsert bulk`](#sf-data-upsert-bulk)
|
|
97
99
|
- [`sf data upsert resume`](#sf-data-upsert-resume)
|
|
98
100
|
- [`sf force data bulk delete`](#sf-force-data-bulk-delete)
|
|
@@ -146,7 +148,7 @@ EXAMPLES
|
|
|
146
148
|
$ sf data create file --file path/to/astro.png --parent-id a03fakeLoJWPIA3
|
|
147
149
|
```
|
|
148
150
|
|
|
149
|
-
_See code: [src/commands/data/create/file.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
151
|
+
_See code: [src/commands/data/create/file.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/create/file.ts)_
|
|
150
152
|
|
|
151
153
|
## `sf data create record`
|
|
152
154
|
|
|
@@ -202,7 +204,7 @@ EXAMPLES
|
|
|
202
204
|
TracedEntityId=01p17000000R6bLAAS"
|
|
203
205
|
```
|
|
204
206
|
|
|
205
|
-
_See code: [src/commands/data/create/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
207
|
+
_See code: [src/commands/data/create/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/create/record.ts)_
|
|
206
208
|
|
|
207
209
|
## `sf data delete bulk`
|
|
208
210
|
|
|
@@ -260,7 +262,7 @@ FLAG DESCRIPTIONS
|
|
|
260
262
|
and can be enabled only by a system administrator.
|
|
261
263
|
```
|
|
262
264
|
|
|
263
|
-
_See code: [src/commands/data/delete/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
265
|
+
_See code: [src/commands/data/delete/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/delete/bulk.ts)_
|
|
264
266
|
|
|
265
267
|
## `sf data delete record`
|
|
266
268
|
|
|
@@ -321,7 +323,7 @@ EXAMPLES
|
|
|
321
323
|
$ sf data delete record --use-tooling-api --sobject TraceFlag --record-id 7tf8c
|
|
322
324
|
```
|
|
323
325
|
|
|
324
|
-
_See code: [src/commands/data/delete/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
326
|
+
_See code: [src/commands/data/delete/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/delete/record.ts)_
|
|
325
327
|
|
|
326
328
|
## `sf data delete resume`
|
|
327
329
|
|
|
@@ -360,7 +362,7 @@ EXAMPLES
|
|
|
360
362
|
$ sf data delete resume --use-most-recent --target-org my-scratch
|
|
361
363
|
```
|
|
362
364
|
|
|
363
|
-
_See code: [src/commands/data/delete/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
365
|
+
_See code: [src/commands/data/delete/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/delete/resume.ts)_
|
|
364
366
|
|
|
365
367
|
## `sf data export bulk`
|
|
366
368
|
|
|
@@ -434,11 +436,11 @@ EXAMPLES
|
|
|
434
436
|
--result-format json --async
|
|
435
437
|
```
|
|
436
438
|
|
|
437
|
-
_See code: [src/commands/data/export/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
439
|
+
_See code: [src/commands/data/export/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/export/bulk.ts)_
|
|
438
440
|
|
|
439
441
|
## `sf data export resume`
|
|
440
442
|
|
|
441
|
-
Resume a bulk export job that you previously started.
|
|
443
|
+
Resume a bulk export job that you previously started. Uses Bulk API 2.0.
|
|
442
444
|
|
|
443
445
|
```
|
|
444
446
|
USAGE
|
|
@@ -454,7 +456,7 @@ GLOBAL FLAGS
|
|
|
454
456
|
--json Format output as json.
|
|
455
457
|
|
|
456
458
|
DESCRIPTION
|
|
457
|
-
Resume a bulk export job that you previously started.
|
|
459
|
+
Resume a bulk export job that you previously started. Uses Bulk API 2.0.
|
|
458
460
|
|
|
459
461
|
When the original "data export bulk" command either times out or is run with the --async flag, it displays a job ID.
|
|
460
462
|
To see the status and get the results of the bulk export, run this command by either passing it the job ID or using
|
|
@@ -470,7 +472,7 @@ EXAMPLES
|
|
|
470
472
|
$ sf data export resume --use-most-recent --target-org my-scratch
|
|
471
473
|
```
|
|
472
474
|
|
|
473
|
-
_See code: [src/commands/data/export/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
475
|
+
_See code: [src/commands/data/export/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/export/resume.ts)_
|
|
474
476
|
|
|
475
477
|
## `sf data export tree`
|
|
476
478
|
|
|
@@ -531,7 +533,7 @@ EXAMPLES
|
|
|
531
533
|
my-scratch
|
|
532
534
|
```
|
|
533
535
|
|
|
534
|
-
_See code: [src/commands/data/export/tree.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
536
|
+
_See code: [src/commands/data/export/tree.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/export/tree.ts)_
|
|
535
537
|
|
|
536
538
|
## `sf data get record`
|
|
537
539
|
|
|
@@ -595,7 +597,7 @@ EXAMPLES
|
|
|
595
597
|
$ sf data get record --use-tooling-api --sobject TraceFlag --record-id 7tf8c
|
|
596
598
|
```
|
|
597
599
|
|
|
598
|
-
_See code: [src/commands/data/get/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
600
|
+
_See code: [src/commands/data/get/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/get/record.ts)_
|
|
599
601
|
|
|
600
602
|
## `sf data import bulk`
|
|
601
603
|
|
|
@@ -604,20 +606,22 @@ Bulk import records into a Salesforce object from a CSV file. Uses Bulk API 2.0.
|
|
|
604
606
|
```
|
|
605
607
|
USAGE
|
|
606
608
|
$ 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>)
|
|
609
|
+
(--line-ending CRLF|LF -f <value>) [--column-delimiter BACKQUOTE|CARET|COMMA|PIPE|SEMICOLON|TAB]
|
|
608
610
|
|
|
609
611
|
FLAGS
|
|
610
|
-
-a, --async
|
|
611
|
-
-f, --file=<value>
|
|
612
|
-
-o, --target-org=<value>
|
|
613
|
-
|
|
614
|
-
-s, --sobject=<value>
|
|
615
|
-
|
|
616
|
-
-w, --wait=<value>
|
|
617
|
-
--api-version=<value>
|
|
618
|
-
--
|
|
619
|
-
|
|
620
|
-
|
|
612
|
+
-a, --async Don't wait for the command to complete.
|
|
613
|
+
-f, --file=<value> (required) CSV file that contains the Salesforce object records you want to import.
|
|
614
|
+
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
|
|
615
|
+
configuration variable is already set.
|
|
616
|
+
-s, --sobject=<value> (required) API name of the Salesforce object, either standard or custom, into which
|
|
617
|
+
you're importing records.
|
|
618
|
+
-w, --wait=<value> Time to wait for the command to finish, in minutes.
|
|
619
|
+
--api-version=<value> Override the api version used for api requests made by this command
|
|
620
|
+
--column-delimiter=<option> Column delimiter used in the CSV file. Default is COMMA.
|
|
621
|
+
<options: BACKQUOTE|CARET|COMMA|PIPE|SEMICOLON|TAB>
|
|
622
|
+
--line-ending=<option> Line ending used in the CSV file. Default value on Windows is `CRLF`; on macOS and
|
|
623
|
+
Linux it's `LF`.
|
|
624
|
+
<options: CRLF|LF>
|
|
621
625
|
|
|
622
626
|
GLOBAL FLAGS
|
|
623
627
|
--flags-dir=<value> Import flag values from a directory.
|
|
@@ -651,7 +655,7 @@ EXAMPLES
|
|
|
651
655
|
$ sf data import bulk --file accounts.csv --sobject Account --async
|
|
652
656
|
```
|
|
653
657
|
|
|
654
|
-
_See code: [src/commands/data/import/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
658
|
+
_See code: [src/commands/data/import/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/import/bulk.ts)_
|
|
655
659
|
|
|
656
660
|
## `sf data import resume`
|
|
657
661
|
|
|
@@ -687,7 +691,7 @@ EXAMPLES
|
|
|
687
691
|
$ sf data import resume --use-most-recent --target-org my-scratch
|
|
688
692
|
```
|
|
689
693
|
|
|
690
|
-
_See code: [src/commands/data/import/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
694
|
+
_See code: [src/commands/data/import/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/import/resume.ts)_
|
|
691
695
|
|
|
692
696
|
## `sf data import tree`
|
|
693
697
|
|
|
@@ -752,7 +756,7 @@ FLAG DESCRIPTIONS
|
|
|
752
756
|
- files(array) - Files: An array of files paths to load
|
|
753
757
|
```
|
|
754
758
|
|
|
755
|
-
_See code: [src/commands/data/import/tree.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
759
|
+
_See code: [src/commands/data/import/tree.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/import/tree.ts)_
|
|
756
760
|
|
|
757
761
|
## `sf data query`
|
|
758
762
|
|
|
@@ -816,7 +820,7 @@ EXAMPLES
|
|
|
816
820
|
$ sf data query --query "SELECT Id FROM Contact" --bulk --wait 0
|
|
817
821
|
```
|
|
818
822
|
|
|
819
|
-
_See code: [src/commands/data/query.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
823
|
+
_See code: [src/commands/data/query.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/query.ts)_
|
|
820
824
|
|
|
821
825
|
## `sf data query resume`
|
|
822
826
|
|
|
@@ -854,7 +858,7 @@ EXAMPLES
|
|
|
854
858
|
$ sf data query resume --bulk-query-id 7500x000005BdFzXXX
|
|
855
859
|
```
|
|
856
860
|
|
|
857
|
-
_See code: [src/commands/data/query/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
861
|
+
_See code: [src/commands/data/query/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/query/resume.ts)_
|
|
858
862
|
|
|
859
863
|
## `sf data resume`
|
|
860
864
|
|
|
@@ -891,7 +895,7 @@ EXAMPLES
|
|
|
891
895
|
$ sf data resume --job-id 750xx000000005sAAA --batch-id 751xx000000005nAAA
|
|
892
896
|
```
|
|
893
897
|
|
|
894
|
-
_See code: [src/commands/data/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
898
|
+
_See code: [src/commands/data/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/resume.ts)_
|
|
895
899
|
|
|
896
900
|
## `sf data search`
|
|
897
901
|
|
|
@@ -941,7 +945,68 @@ EXAMPLES
|
|
|
941
945
|
$ sf data search --file query.txt --target-org my-scratch --result-format csv
|
|
942
946
|
```
|
|
943
947
|
|
|
944
|
-
_See code: [src/commands/data/search.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
948
|
+
_See code: [src/commands/data/search.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/search.ts)_
|
|
949
|
+
|
|
950
|
+
## `sf data update bulk`
|
|
951
|
+
|
|
952
|
+
Bulk update records to an org from a CSV file. Uses Bulk API 2.0.
|
|
953
|
+
|
|
954
|
+
```
|
|
955
|
+
USAGE
|
|
956
|
+
$ sf data update bulk -s <value> -o <value> [--json] [--flags-dir <value>] [-a] [-w <value>] [--api-version <value>]
|
|
957
|
+
(--line-ending CRLF|LF -f <value>) [--column-delimiter BACKQUOTE|CARET|COMMA|PIPE|SEMICOLON|TAB]
|
|
958
|
+
|
|
959
|
+
FLAGS
|
|
960
|
+
-a, --async Don't wait for the command to complete.
|
|
961
|
+
-f, --file=<value> (required) CSV file that contains the Salesforce object records you want to update.
|
|
962
|
+
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
|
|
963
|
+
configuration variable is already set.
|
|
964
|
+
-s, --sobject=<value> (required) API name of the Salesforce object, either standard or custom, which you
|
|
965
|
+
are updating.
|
|
966
|
+
-w, --wait=<value> Time to wait for the command to finish, in minutes.
|
|
967
|
+
--api-version=<value> Override the api version used for api requests made by this command
|
|
968
|
+
--column-delimiter=<option> Column delimiter used in the CSV file. Default is COMMA.
|
|
969
|
+
<options: BACKQUOTE|CARET|COMMA|PIPE|SEMICOLON|TAB>
|
|
970
|
+
--line-ending=<option> Line ending used in the CSV file. Default value on Windows is `CRLF`; on macOS and
|
|
971
|
+
Linux it's `LF`.
|
|
972
|
+
<options: CRLF|LF>
|
|
973
|
+
|
|
974
|
+
GLOBAL FLAGS
|
|
975
|
+
--flags-dir=<value> Import flag values from a directory.
|
|
976
|
+
--json Format output as json.
|
|
977
|
+
|
|
978
|
+
DESCRIPTION
|
|
979
|
+
Bulk update records to an org from a CSV file. Uses Bulk API 2.0.
|
|
980
|
+
|
|
981
|
+
You can use this command to update millions of Salesforce object records based on a file in comma-separated values
|
|
982
|
+
(CSV) format.
|
|
983
|
+
|
|
984
|
+
All the records in the CSV file must be for the same Salesforce object. Specify the object with the `--sobject` flag.
|
|
985
|
+
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
|
|
986
|
+
contain only existing records; if a record in the file doesn't currently exist in the Salesforce object, the command
|
|
987
|
+
fails. Consider using "sf data upsert bulk" if you also want to insert new records.
|
|
988
|
+
|
|
989
|
+
Bulk updates can take a while, depending on how many records are in the CSV file. If the command times out, or you
|
|
990
|
+
specified the --async flag, the command displays the job ID. To see the status and get the results of the job, run "sf
|
|
991
|
+
data update resume" and pass the job ID to the --job-id flag.
|
|
992
|
+
|
|
993
|
+
For information and examples about how to prepare your CSV files, see "Prepare Data to Ingest" in the "Bulk API 2.0
|
|
994
|
+
and Bulk API Developer Guide"
|
|
995
|
+
(https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/datafiles_prepare_data.htm).
|
|
996
|
+
|
|
997
|
+
EXAMPLES
|
|
998
|
+
Update Account records from a CSV-formatted file into an org with alias "my-scratch"; if the update doesn't complete
|
|
999
|
+
in 10 minutes, the command ends and displays a job ID:
|
|
1000
|
+
|
|
1001
|
+
$ sf data update bulk --file accounts.csv --sobject Account --wait 10 --target-org my-scratch
|
|
1002
|
+
|
|
1003
|
+
Update asynchronously and use the default org; the command immediately returns a job ID that you then pass to the
|
|
1004
|
+
"sf data update resume" command:
|
|
1005
|
+
|
|
1006
|
+
$ sf data update bulk --file accounts.csv --sobject Account --async
|
|
1007
|
+
```
|
|
1008
|
+
|
|
1009
|
+
_See code: [src/commands/data/update/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/update/bulk.ts)_
|
|
945
1010
|
|
|
946
1011
|
## `sf data update record`
|
|
947
1012
|
|
|
@@ -1003,7 +1068,43 @@ EXAMPLES
|
|
|
1003
1068
|
"ExpirationDate=2017-12-01T00:58:04.000+0000"
|
|
1004
1069
|
```
|
|
1005
1070
|
|
|
1006
|
-
_See code: [src/commands/data/update/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
1071
|
+
_See code: [src/commands/data/update/record.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/update/record.ts)_
|
|
1072
|
+
|
|
1073
|
+
## `sf data update resume`
|
|
1074
|
+
|
|
1075
|
+
Resume a bulk update job that you previously started. Uses Bulk API 2.0.
|
|
1076
|
+
|
|
1077
|
+
```
|
|
1078
|
+
USAGE
|
|
1079
|
+
$ sf data update resume [--json] [--flags-dir <value>] [--use-most-recent] [-i <value>] [-w <value>]
|
|
1080
|
+
|
|
1081
|
+
FLAGS
|
|
1082
|
+
-i, --job-id=<value> Job ID of the bulk update.
|
|
1083
|
+
-w, --wait=<value> [default: 5 minutes] Time to wait for the command to finish, in minutes.
|
|
1084
|
+
--use-most-recent Use the job ID of the bulk update job that was most recently run.
|
|
1085
|
+
|
|
1086
|
+
GLOBAL FLAGS
|
|
1087
|
+
--flags-dir=<value> Import flag values from a directory.
|
|
1088
|
+
--json Format output as json.
|
|
1089
|
+
|
|
1090
|
+
DESCRIPTION
|
|
1091
|
+
Resume a bulk update job that you previously started. Uses Bulk API 2.0.
|
|
1092
|
+
|
|
1093
|
+
When the original "sf data update bulk" command either times out or is run with the --async flag, it displays a job
|
|
1094
|
+
ID. To see the status and get the results of the bulk update, run this command by either passing it the job ID or
|
|
1095
|
+
using the --use-most-recent flag to specify the most recent bulk update job.
|
|
1096
|
+
|
|
1097
|
+
EXAMPLES
|
|
1098
|
+
Resume a bulk update job of your default org using a job ID:
|
|
1099
|
+
|
|
1100
|
+
$ sf data update resume --job-id 750xx000000005sAAA
|
|
1101
|
+
|
|
1102
|
+
Resume the most recently run bulk update job for an org with alias "my-scratch":
|
|
1103
|
+
|
|
1104
|
+
$ sf data update resume --use-most-recent --target-org my-scratch
|
|
1105
|
+
```
|
|
1106
|
+
|
|
1107
|
+
_See code: [src/commands/data/update/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/update/resume.ts)_
|
|
1007
1108
|
|
|
1008
1109
|
## `sf data upsert bulk`
|
|
1009
1110
|
|
|
@@ -1056,7 +1157,7 @@ EXAMPLES
|
|
|
1056
1157
|
my-scratch
|
|
1057
1158
|
```
|
|
1058
1159
|
|
|
1059
|
-
_See code: [src/commands/data/upsert/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
1160
|
+
_See code: [src/commands/data/upsert/bulk.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/upsert/bulk.ts)_
|
|
1060
1161
|
|
|
1061
1162
|
## `sf data upsert resume`
|
|
1062
1163
|
|
|
@@ -1095,7 +1196,7 @@ EXAMPLES
|
|
|
1095
1196
|
$ sf data upsert resume --use-most-recent --target-org my-scratch
|
|
1096
1197
|
```
|
|
1097
1198
|
|
|
1098
|
-
_See code: [src/commands/data/upsert/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
1199
|
+
_See code: [src/commands/data/upsert/resume.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/data/upsert/resume.ts)_
|
|
1099
1200
|
|
|
1100
1201
|
## `sf force data bulk delete`
|
|
1101
1202
|
|
|
@@ -1142,7 +1243,7 @@ EXAMPLES
|
|
|
1142
1243
|
$ sf force data bulk delete --sobject MyObject__c --file files/delete.csv --wait 5 --target-org my-scratch
|
|
1143
1244
|
```
|
|
1144
1245
|
|
|
1145
|
-
_See code: [src/commands/force/data/bulk/delete.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
1246
|
+
_See code: [src/commands/force/data/bulk/delete.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/force/data/bulk/delete.ts)_
|
|
1146
1247
|
|
|
1147
1248
|
## `sf force data bulk status`
|
|
1148
1249
|
|
|
@@ -1179,7 +1280,7 @@ EXAMPLES
|
|
|
1179
1280
|
$ sf force data bulk status --job-id 750xx000000005sAAA --batch-id 751xx000000005nAAA --target-org my-scratch
|
|
1180
1281
|
```
|
|
1181
1282
|
|
|
1182
|
-
_See code: [src/commands/force/data/bulk/status.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
1283
|
+
_See code: [src/commands/force/data/bulk/status.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/force/data/bulk/status.ts)_
|
|
1183
1284
|
|
|
1184
1285
|
## `sf force data bulk upsert`
|
|
1185
1286
|
|
|
@@ -1237,6 +1338,6 @@ EXAMPLES
|
|
|
1237
1338
|
--target-org my-scratch
|
|
1238
1339
|
```
|
|
1239
1340
|
|
|
1240
|
-
_See code: [src/commands/force/data/bulk/upsert.ts](https://github.com/salesforcecli/plugin-data/blob/3.
|
|
1341
|
+
_See code: [src/commands/force/data/bulk/upsert.ts](https://github.com/salesforcecli/plugin-data/blob/3.10.0/src/commands/force/data/bulk/upsert.ts)_
|
|
1241
1342
|
|
|
1242
1343
|
<!-- commandsstop -->
|
|
@@ -211,6 +211,69 @@ export class BulkImportRequestCache extends TTLConfig {
|
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
|
+
export class BulkUpdateRequestCache extends TTLConfig {
|
|
215
|
+
static getDefaultOptions() {
|
|
216
|
+
return {
|
|
217
|
+
isGlobal: true,
|
|
218
|
+
isState: true,
|
|
219
|
+
filename: BulkUpdateRequestCache.getFileName(),
|
|
220
|
+
stateFolder: Global.SF_STATE_FOLDER,
|
|
221
|
+
ttl: Duration.days(7),
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
static getFileName() {
|
|
225
|
+
return 'bulk-data-update-cache.json';
|
|
226
|
+
}
|
|
227
|
+
static async unset(key) {
|
|
228
|
+
const cache = await BulkImportRequestCache.create();
|
|
229
|
+
cache.unset(key);
|
|
230
|
+
await cache.write();
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Creates a new bulk data import cache entry for the given bulk request id.
|
|
234
|
+
*
|
|
235
|
+
* @param bulkRequestId
|
|
236
|
+
* @param username
|
|
237
|
+
* @param apiVersion
|
|
238
|
+
*/
|
|
239
|
+
async createCacheEntryForRequest(bulkRequestId, username, apiVersion) {
|
|
240
|
+
this.set(bulkRequestId, {
|
|
241
|
+
jobId: bulkRequestId,
|
|
242
|
+
username,
|
|
243
|
+
apiVersion,
|
|
244
|
+
});
|
|
245
|
+
await this.write();
|
|
246
|
+
Logger.childFromRoot('BulkUpdateCache').debug(`bulk cache saved for ${bulkRequestId}`);
|
|
247
|
+
}
|
|
248
|
+
async resolveResumeOptionsFromCache(jobIdOrMostRecent) {
|
|
249
|
+
if (typeof jobIdOrMostRecent === 'boolean') {
|
|
250
|
+
const key = this.getLatestKey();
|
|
251
|
+
if (!key) {
|
|
252
|
+
throw messages.createError('error.missingCacheEntryError');
|
|
253
|
+
}
|
|
254
|
+
// key definitely exists because it came from the cache
|
|
255
|
+
const entry = this.get(key);
|
|
256
|
+
return {
|
|
257
|
+
jobInfo: { id: entry.jobId },
|
|
258
|
+
options: {
|
|
259
|
+
connection: (await Org.create({ aliasOrUsername: entry.username })).getConnection(),
|
|
260
|
+
},
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
const entry = this.get(jobIdOrMostRecent);
|
|
265
|
+
if (!entry) {
|
|
266
|
+
throw messages.createError('error.bulkRequestIdNotFound', [jobIdOrMostRecent]);
|
|
267
|
+
}
|
|
268
|
+
return {
|
|
269
|
+
jobInfo: { id: entry.jobId },
|
|
270
|
+
options: {
|
|
271
|
+
connection: (await Org.create({ aliasOrUsername: entry.username })).getConnection(),
|
|
272
|
+
},
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
214
277
|
export class BulkExportRequestCache extends TTLConfig {
|
|
215
278
|
static getDefaultOptions() {
|
|
216
279
|
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,184 @@
|
|
|
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 { Flags } from '@salesforce/sf-plugins-core';
|
|
10
|
+
import { Messages } from '@salesforce/core';
|
|
11
|
+
import { Duration } from '@salesforce/kit';
|
|
12
|
+
import { ensureString } from '@salesforce/ts-types';
|
|
13
|
+
import { BulkIngestStages } from './ux/bulkIngestStages.js';
|
|
14
|
+
import { detectDelimiter } from './bulkUtils.js';
|
|
15
|
+
const messages = Messages.loadMessages('@salesforce/plugin-data', 'bulkIngest');
|
|
16
|
+
/**
|
|
17
|
+
* Bulk API 2.0 ingest handler for `sf` bulk commands
|
|
18
|
+
*
|
|
19
|
+
* This function should be used exclusively by `sf data bulk` commands that:
|
|
20
|
+
* - do a bulk ingest operation
|
|
21
|
+
* - have a `resume` command
|
|
22
|
+
*
|
|
23
|
+
* It will create the specified bulk ingest job, set up the oclif/MSO stages and return the job info.
|
|
24
|
+
* */
|
|
25
|
+
export async function bulkIngest(opts) {
|
|
26
|
+
const { conn, operation, object, lineEnding = platform() === 'win32' ? 'CRLF' : 'LF', columnDelimiter, file, logFn, } = opts;
|
|
27
|
+
const timeout = opts.async ? Duration.minutes(0) : opts.wait ?? Duration.minutes(0);
|
|
28
|
+
const async = timeout.milliseconds === 0;
|
|
29
|
+
const baseUrl = ensureString(opts.conn.getAuthInfoFields().instanceUrl);
|
|
30
|
+
const stages = new BulkIngestStages({
|
|
31
|
+
resume: false,
|
|
32
|
+
title: async ? `${opts.stageTitle} (async)` : opts.stageTitle,
|
|
33
|
+
baseUrl,
|
|
34
|
+
jsonEnabled: opts.jsonEnabled,
|
|
35
|
+
});
|
|
36
|
+
stages.start();
|
|
37
|
+
if (async) {
|
|
38
|
+
const job = await createIngestJob(conn, file, {
|
|
39
|
+
object,
|
|
40
|
+
operation,
|
|
41
|
+
lineEnding,
|
|
42
|
+
columnDelimiter: columnDelimiter ?? (await detectDelimiter(file)),
|
|
43
|
+
});
|
|
44
|
+
stages.update(job.getInfo());
|
|
45
|
+
stages.stop();
|
|
46
|
+
await opts.cache.createCacheEntryForRequest(job.id, ensureString(conn.getUsername()), conn.getApiVersion());
|
|
47
|
+
logFn(messages.getMessage('export.resume', [opts.resumeCmdId, job.id]));
|
|
48
|
+
return {
|
|
49
|
+
jobId: job.id,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
// synchronous flow
|
|
53
|
+
const job = await createIngestJob(conn, file, {
|
|
54
|
+
object,
|
|
55
|
+
operation,
|
|
56
|
+
lineEnding,
|
|
57
|
+
columnDelimiter: columnDelimiter ?? (await detectDelimiter(file)),
|
|
58
|
+
});
|
|
59
|
+
stages.setupJobListeners(job);
|
|
60
|
+
stages.processingJob();
|
|
61
|
+
try {
|
|
62
|
+
await job.poll(5000, timeout.milliseconds);
|
|
63
|
+
const jobInfo = job.getInfo();
|
|
64
|
+
// send last data update so job status/num. of records processed/failed represent the last update
|
|
65
|
+
stages.update(jobInfo);
|
|
66
|
+
if (jobInfo.numberRecordsFailed) {
|
|
67
|
+
stages.error();
|
|
68
|
+
// TODO: replace this msg to point to `sf data bulk results` when it's added (W-12408034)
|
|
69
|
+
throw messages.createError('error.failedRecordDetails', [
|
|
70
|
+
jobInfo.numberRecordsFailed,
|
|
71
|
+
conn.getUsername(),
|
|
72
|
+
job.id,
|
|
73
|
+
]);
|
|
74
|
+
}
|
|
75
|
+
stages.stop();
|
|
76
|
+
return {
|
|
77
|
+
jobId: jobInfo.id,
|
|
78
|
+
processedRecords: jobInfo.numberRecordsProcessed,
|
|
79
|
+
successfulRecords: jobInfo.numberRecordsProcessed - (jobInfo.numberRecordsFailed ?? 0),
|
|
80
|
+
failedRecords: jobInfo.numberRecordsFailed,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
const jobInfo = await job.check();
|
|
85
|
+
// send last data update so job status/num. of records processed/failed represent the last update
|
|
86
|
+
stages.update(jobInfo);
|
|
87
|
+
if (err instanceof Error && err.name === 'JobPollingTimeout') {
|
|
88
|
+
stages.stop();
|
|
89
|
+
throw messages.createError('error.timeout', [timeout.minutes, opts.resumeCmdId, job.id]);
|
|
90
|
+
}
|
|
91
|
+
if (jobInfo.state === 'Failed') {
|
|
92
|
+
stages.error();
|
|
93
|
+
throw messages.createError('error.jobFailed', [jobInfo.errorMessage, conn.getUsername(), job.id], [], err);
|
|
94
|
+
}
|
|
95
|
+
if (jobInfo.state === 'Aborted') {
|
|
96
|
+
stages.stop('aborted');
|
|
97
|
+
// TODO: replace this msg to point to `sf data bulk results` when it's added (W-12408034)
|
|
98
|
+
throw messages.createError('error.jobAborted', [conn.getUsername(), job.id], [], err);
|
|
99
|
+
}
|
|
100
|
+
throw err;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Bulk API 2.0 ingest resume handler for `sf` bulk commands
|
|
105
|
+
*
|
|
106
|
+
* This function should be used exclusively by `sf data bulk` commands that can resume a bulk ingest operation.
|
|
107
|
+
*
|
|
108
|
+
* It will set up the oclif/MSO stages, poll for the job status and return the job info.
|
|
109
|
+
* */
|
|
110
|
+
export async function bulkIngestResume(opts) {
|
|
111
|
+
const resumeOpts = await opts.cache.resolveResumeOptionsFromCache(opts.jobIdOrMostRecent);
|
|
112
|
+
const conn = resumeOpts.options.connection;
|
|
113
|
+
const stages = new BulkIngestStages({
|
|
114
|
+
resume: true,
|
|
115
|
+
title: opts.stageTitle,
|
|
116
|
+
baseUrl: ensureString(conn.getAuthInfoFields().instanceUrl),
|
|
117
|
+
jsonEnabled: opts.jsonEnabled,
|
|
118
|
+
});
|
|
119
|
+
stages.start();
|
|
120
|
+
const job = conn.bulk2.job('ingest', {
|
|
121
|
+
id: resumeOpts.jobInfo.id,
|
|
122
|
+
});
|
|
123
|
+
stages.setupJobListeners(job);
|
|
124
|
+
try {
|
|
125
|
+
await job.poll(5000, opts.wait.milliseconds);
|
|
126
|
+
const jobInfo = await job.check();
|
|
127
|
+
// send last data update so job status/num. of records processed/failed represent the last update
|
|
128
|
+
stages.update(jobInfo);
|
|
129
|
+
if (jobInfo.numberRecordsFailed) {
|
|
130
|
+
stages.error();
|
|
131
|
+
// TODO: replace this msg to point to `sf data bulk results` when it's added (W-12408034)
|
|
132
|
+
throw messages.createError('error.failedRecordDetails', [
|
|
133
|
+
jobInfo.numberRecordsFailed,
|
|
134
|
+
conn.getUsername(),
|
|
135
|
+
job.id,
|
|
136
|
+
]);
|
|
137
|
+
}
|
|
138
|
+
stages.stop();
|
|
139
|
+
return {
|
|
140
|
+
jobId: jobInfo.id,
|
|
141
|
+
processedRecords: jobInfo.numberRecordsProcessed,
|
|
142
|
+
successfulRecords: jobInfo.numberRecordsProcessed - (jobInfo.numberRecordsFailed ?? 0),
|
|
143
|
+
failedRecords: jobInfo.numberRecordsFailed,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
const jobInfo = await job.check();
|
|
148
|
+
// send last data update so job status/num. of records processed/failed represent the last update
|
|
149
|
+
stages.update(jobInfo);
|
|
150
|
+
if (err instanceof Error && err.name === 'JobPollingTimeout') {
|
|
151
|
+
stages.error();
|
|
152
|
+
throw messages.createError('error.timeout', [opts.wait.minutes, opts.cmdId, job.id]);
|
|
153
|
+
}
|
|
154
|
+
if (jobInfo.state === 'Failed') {
|
|
155
|
+
stages.error();
|
|
156
|
+
throw messages.createError('error.jobFailed', [jobInfo.errorMessage, conn.getUsername(), job.id], [], err);
|
|
157
|
+
}
|
|
158
|
+
if (jobInfo.state === 'Aborted') {
|
|
159
|
+
stages.stop('aborted');
|
|
160
|
+
// TODO: replace this msg to point to `sf data bulk results` when it's added (W-12408034)
|
|
161
|
+
throw messages.createError('error.jobAborted', [conn.getUsername(), job.id], [], err);
|
|
162
|
+
}
|
|
163
|
+
throw err;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Create an ingest job, upload data and mark it as ready for processing
|
|
168
|
+
*
|
|
169
|
+
* */
|
|
170
|
+
export async function createIngestJob(conn, csvFile, jobOpts) {
|
|
171
|
+
const job = conn.bulk2.createJob(jobOpts);
|
|
172
|
+
// create the job in the org
|
|
173
|
+
await job.open();
|
|
174
|
+
// upload data
|
|
175
|
+
await job.uploadData(fs.createReadStream(csvFile));
|
|
176
|
+
// mark the job to be ready to be processed
|
|
177
|
+
await job.close();
|
|
178
|
+
return job;
|
|
179
|
+
}
|
|
180
|
+
export const columnDelimiterFlag = Flags.option({
|
|
181
|
+
summary: messages.getMessage('flags.column-delimiter.summary'),
|
|
182
|
+
options: ['BACKQUOTE', 'CARET', 'COMMA', 'PIPE', 'SEMICOLON', 'TAB'],
|
|
183
|
+
})();
|
|
184
|
+
//# sourceMappingURL=bulkIngest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulkIngest.js","sourceRoot":"","sources":["../src/bulkIngest.ts"],"names":[],"mappings":"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"}
|