@celigo/api-specs 0.2.111 → 0.2.113
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/dist/import.yml +105 -19
- package/dist/tool.yml +105 -19
- package/package.json +1 -1
- package/schemas.json +2 -2
package/dist/import.yml
CHANGED
|
@@ -3802,23 +3802,25 @@ components:
|
|
|
3802
3802
|
- |-
|
|
3803
3803
|
Two ways to specify the lookup, picked per import:
|
|
3804
3804
|
|
|
3805
|
+
- **Expression form** — the default choice: set `expression` to a
|
|
3806
|
+
NetSuite search-expression literal (the canonical patterns are on
|
|
3807
|
+
the `expression` field — `["internalid","is","{{{id}}}"]` for a
|
|
3808
|
+
record that carries the internal id, `externalid` and `cust*_*`
|
|
3809
|
+
variants, `anyof` for multi-match, AND/OR compounds). When
|
|
3810
|
+
`expression` is set, `searchField` / `operator` / `extract` are
|
|
3811
|
+
ignored.
|
|
3805
3812
|
- **Simple form** — set `searchField` + `operator` (+ optional
|
|
3806
|
-
`extract`)
|
|
3807
|
-
NetSuite field
|
|
3808
|
-
expression
|
|
3809
|
-
|
|
3810
|
-
expression
|
|
3811
|
-
record-field lookups (`custbody_*` / `custrecord_*` /
|
|
3812
|
-
`custentity_*`), and the `anyof` operator that the simple form
|
|
3813
|
-
doesn't cover. When `expression` is set, `searchField` /
|
|
3814
|
-
`operator` / `extract` are ignored. The expression form is the
|
|
3815
|
-
common pattern in practice.
|
|
3813
|
+
`extract`) for a single-criterion lookup against a built-in
|
|
3814
|
+
NetSuite field; the platform builds the equivalent search
|
|
3815
|
+
expression at runtime. For the internal id itself the expression
|
|
3816
|
+
form above is the preferred path, and `anyof` is available only
|
|
3817
|
+
through `expression`.
|
|
3816
3818
|
- |-
|
|
3817
3819
|
The lookup result is what identifies the target record; on `update` a source
|
|
3818
3820
|
field mapped to `internalid` is overridden by it. When the incoming record
|
|
3819
|
-
already carries the NetSuite internal ID, point the lookup at that field
|
|
3820
|
-
|
|
3821
|
-
|
|
3821
|
+
already carries the NetSuite internal ID, point the lookup at that field with
|
|
3822
|
+
the expression form — `["internalid","is","{{{id}}}"]` — rather than removing
|
|
3823
|
+
the lookup.
|
|
3822
3824
|
properties:
|
|
3823
3825
|
extract:
|
|
3824
3826
|
type: string
|
|
@@ -3827,7 +3829,7 @@ components:
|
|
|
3827
3829
|
- |-
|
|
3828
3830
|
Path on the incoming source record (NOT the post-mapped record) whose value drives the lookup.
|
|
3829
3831
|
Used with the simple form (`searchField` + `operator`).
|
|
3830
|
-
Common values: `"
|
|
3832
|
+
Common values: `"externalId"`, `"id"`.
|
|
3831
3833
|
Ignored when `expression` is set.
|
|
3832
3834
|
examples:
|
|
3833
3835
|
- externalId
|
|
@@ -3837,8 +3839,9 @@ components:
|
|
|
3837
3839
|
x-celigo-ai-guidance:
|
|
3838
3840
|
- |-
|
|
3839
3841
|
NetSuite field the simple-form lookup queries against.
|
|
3840
|
-
Common values: `"externalId"`, `"
|
|
3841
|
-
|
|
3842
|
+
Common values: `"externalId"`, `"email"`, `"tranId"`, `"name"`.
|
|
3843
|
+
Matching on the record's internal id is the expression form —
|
|
3844
|
+
`["internalid","is","{{{id}}}"]` — not a `searchField`.
|
|
3842
3845
|
Ignored when `expression` is set.
|
|
3843
3846
|
examples:
|
|
3844
3847
|
- externalId
|
|
@@ -3848,9 +3851,9 @@ components:
|
|
|
3848
3851
|
x-celigo-ai-guidance:
|
|
3849
3852
|
- |-
|
|
3850
3853
|
Comparison operator for the simple-form lookup.
|
|
3851
|
-
Common values: `"is"` (exact match),
|
|
3852
|
-
`"
|
|
3853
|
-
`
|
|
3854
|
+
Common values: `"is"` (exact match), `"contains"`, `"startswith"`,
|
|
3855
|
+
`"equalto"`. Multi-match (`anyof`) is available only through
|
|
3856
|
+
`expression` (`["internalid","anyof","{{{id}}}"]`).
|
|
3854
3857
|
Ignored when `expression` is set.
|
|
3855
3858
|
expression:
|
|
3856
3859
|
type: string
|
|
@@ -3943,6 +3946,15 @@ components:
|
|
|
3943
3946
|
- DO NOT use `jsonSerialize` here — search expressions take
|
|
3944
3947
|
scalar literals, not serialized JSON. Use `{{{id}}}` or
|
|
3945
3948
|
`{{{[Field Name]}}}` directly.
|
|
3949
|
+
- |-
|
|
3950
|
+
## Body-level only
|
|
3951
|
+
|
|
3952
|
+
This lookup identifies the record being imported, so bare
|
|
3953
|
+
body fields are the right paths here. A per-field lookup
|
|
3954
|
+
attached to a sublist row (`lookups[]` referenced from
|
|
3955
|
+
`mapping.lists[].fields[].lookupName`) is different: its
|
|
3956
|
+
expression addresses the current line with
|
|
3957
|
+
`<array>[*].<field>` — see `lookups[].expression`.
|
|
3946
3958
|
hooks:
|
|
3947
3959
|
type: object
|
|
3948
3960
|
description: |
|
|
@@ -4288,6 +4300,13 @@ components:
|
|
|
4288
4300
|
scalar extracts tag along.
|
|
4289
4301
|
If no child uses `[*]` and none set `extract` at all (every child is a `hardCodedValue`),
|
|
4290
4302
|
the sublist renders a single static line.
|
|
4303
|
+
- |-
|
|
4304
|
+
A row that resolves its value through `lookupName`
|
|
4305
|
+
(typically `extract: ""`) is driven by the sibling
|
|
4306
|
+
rows' `[*]` extracts, and the lookup's `expression`
|
|
4307
|
+
addresses the current line with the same
|
|
4308
|
+
`<array>[*].<field>` path — see
|
|
4309
|
+
`netsuite_da.lookups[].expression`.
|
|
4291
4310
|
generate:
|
|
4292
4311
|
type: string
|
|
4293
4312
|
description: NetSuite sublist field ID to write to.
|
|
@@ -4524,10 +4543,69 @@ components:
|
|
|
4524
4543
|
- internalid
|
|
4525
4544
|
expression:
|
|
4526
4545
|
type: string
|
|
4546
|
+
x-celigo-agent:
|
|
4547
|
+
- handlebars
|
|
4527
4548
|
description: |-
|
|
4528
4549
|
Optional advanced-search expression (NetSuite saved-search
|
|
4529
4550
|
DSL) for multi-criterion lookups. When present, supersedes
|
|
4530
4551
|
`searchField` / `operator` — those fields are ignored.
|
|
4552
|
+
Handlebars inside the expression is rendered against the
|
|
4553
|
+
whole source record before the search runs; a lookup on a
|
|
4554
|
+
sublist row reaches the current line through
|
|
4555
|
+
`<array>[*].<field>` (for example `line_items[*].sku`).
|
|
4556
|
+
x-celigo-ai-guidance:
|
|
4557
|
+
- |-
|
|
4558
|
+
## Evaluation context — the whole source record, no `record.` prefix
|
|
4559
|
+
|
|
4560
|
+
The expression's Handlebars renders against the incoming
|
|
4561
|
+
source record as the context root (the record is NOT
|
|
4562
|
+
wrapped under `record`), then the rendered JSON array is
|
|
4563
|
+
sent to NetSuite as the search criteria. Body-level fields
|
|
4564
|
+
are addressed bare: `{{{id}}}`, `{{{email}}}`.
|
|
4565
|
+
- |-
|
|
4566
|
+
## Sublist-row lookups address the line with `<array>[*].<field>`
|
|
4567
|
+
|
|
4568
|
+
A lookup referenced from a sublist mapping row
|
|
4569
|
+
(`mapping.lists[].fields[].lookupName`) still receives the
|
|
4570
|
+
whole record; the current line's fields are reached with the
|
|
4571
|
+
same bracket-star path the sublist extracts use —
|
|
4572
|
+
`{{{line_items[*].sku}}}` resolves the line's item (one line
|
|
4573
|
+
per sublist row). A bare line field (`{{sku}}`,
|
|
4574
|
+
`{{#contains sku "_"}}`) is undefined at the record root: a
|
|
4575
|
+
helper that receives it fails every record with
|
|
4576
|
+
`INVALID_HANDLE_BAR_EXPRESSION` — `Could not compile handle
|
|
4577
|
+
bar "<expression>" because "Cannot call method "indexOf" of
|
|
4578
|
+
undefined"` — before anything reaches NetSuite. When an
|
|
4579
|
+
audit diff shows `<array>[*].` removed from the expression
|
|
4580
|
+
right before such errors began, that edit is the cause; do
|
|
4581
|
+
not look for a line missing the field.
|
|
4582
|
+
- |-
|
|
4583
|
+
## Rendered unmatched
|
|
4584
|
+
|
|
4585
|
+
A rendered value NetSuite does not match fails the record
|
|
4586
|
+
with `VALUE_LOOKUP_FAILED` — `Could not find a match for
|
|
4587
|
+
"<rendered criteria>" for the record type "<recordType>"`
|
|
4588
|
+
— quoting the criteria exactly as rendered, so the message
|
|
4589
|
+
shows what the expression produced for that line. With
|
|
4590
|
+
`allowFailures: true` the `default` value is used instead
|
|
4591
|
+
and no error is raised. Give every branch an output.
|
|
4592
|
+
- |-
|
|
4593
|
+
## The mapping preview cannot evaluate `[*]` inside a block-helper argument
|
|
4594
|
+
|
|
4595
|
+
`PUT /v1/netsuiteDA/previewImportMappingFields` (the mapping
|
|
4596
|
+
editor's Preview) evaluates lookups for real — resolved
|
|
4597
|
+
internal ids appear in `nlobjSublistIds`, misses and
|
|
4598
|
+
compile errors in `data.mappingErrors[]` — and handles
|
|
4599
|
+
`[*]` in plain substitutions and inside a branch's output.
|
|
4600
|
+
It does NOT apply the per-line evaluation to `[*]` used as a
|
|
4601
|
+
block-helper ARGUMENT (`{{#if line_items[*].x}}`,
|
|
4602
|
+
`{{#contains line_items[*].sku "_"}}`): the sublist comes
|
|
4603
|
+
back EMPTY with no error, whatever the expression would do
|
|
4604
|
+
in a run. An empty preview is therefore no evidence about
|
|
4605
|
+
such an expression — never report it as "renders nothing"
|
|
4606
|
+
or as invalid on that basis; validate it with a run.
|
|
4607
|
+
`<array>.@index.<field>` is likewise not evaluable in the
|
|
4608
|
+
preview (the record is dropped with no error).
|
|
4531
4609
|
operator:
|
|
4532
4610
|
type: string
|
|
4533
4611
|
description: |-
|
|
@@ -4585,6 +4663,14 @@ components:
|
|
|
4585
4663
|
TWO locations: `netsuite_da.lookups` and top-level `lookups`.
|
|
4586
4664
|
Both arrays must hold byte-for-byte identical content — the
|
|
4587
4665
|
MappingsAgent writes both on every save.
|
|
4666
|
+
- |-
|
|
4667
|
+
## One context for body and sublist lookups
|
|
4668
|
+
Every lookup's `expression` renders against the whole source
|
|
4669
|
+
record. A lookup referenced from a sublist row
|
|
4670
|
+
(`mapping.lists[].fields[].lookupName`) is evaluated once per
|
|
4671
|
+
line and addresses the current line with `<array>[*].<field>`
|
|
4672
|
+
— never a bare line field. See `expression` for the failure
|
|
4673
|
+
modes and the preview caveat.
|
|
4588
4674
|
x-celigo-agent:
|
|
4589
4675
|
- lookup
|
|
4590
4676
|
rawOverride:
|
package/dist/tool.yml
CHANGED
|
@@ -15381,23 +15381,25 @@ components:
|
|
|
15381
15381
|
- |-
|
|
15382
15382
|
Two ways to specify the lookup, picked per import:
|
|
15383
15383
|
|
|
15384
|
+
- **Expression form** — the default choice: set `expression` to a
|
|
15385
|
+
NetSuite search-expression literal (the canonical patterns are on
|
|
15386
|
+
the `expression` field — `["internalid","is","{{{id}}}"]` for a
|
|
15387
|
+
record that carries the internal id, `externalid` and `cust*_*`
|
|
15388
|
+
variants, `anyof` for multi-match, AND/OR compounds). When
|
|
15389
|
+
`expression` is set, `searchField` / `operator` / `extract` are
|
|
15390
|
+
ignored.
|
|
15384
15391
|
- **Simple form** — set `searchField` + `operator` (+ optional
|
|
15385
|
-
`extract`)
|
|
15386
|
-
NetSuite field
|
|
15387
|
-
expression
|
|
15388
|
-
|
|
15389
|
-
expression
|
|
15390
|
-
record-field lookups (`custbody_*` / `custrecord_*` /
|
|
15391
|
-
`custentity_*`), and the `anyof` operator that the simple form
|
|
15392
|
-
doesn't cover. When `expression` is set, `searchField` /
|
|
15393
|
-
`operator` / `extract` are ignored. The expression form is the
|
|
15394
|
-
common pattern in practice.
|
|
15392
|
+
`extract`) for a single-criterion lookup against a built-in
|
|
15393
|
+
NetSuite field; the platform builds the equivalent search
|
|
15394
|
+
expression at runtime. For the internal id itself the expression
|
|
15395
|
+
form above is the preferred path, and `anyof` is available only
|
|
15396
|
+
through `expression`.
|
|
15395
15397
|
- |-
|
|
15396
15398
|
The lookup result is what identifies the target record; on `update` a source
|
|
15397
15399
|
field mapped to `internalid` is overridden by it. When the incoming record
|
|
15398
|
-
already carries the NetSuite internal ID, point the lookup at that field
|
|
15399
|
-
|
|
15400
|
-
|
|
15400
|
+
already carries the NetSuite internal ID, point the lookup at that field with
|
|
15401
|
+
the expression form — `["internalid","is","{{{id}}}"]` — rather than removing
|
|
15402
|
+
the lookup.
|
|
15401
15403
|
properties:
|
|
15402
15404
|
extract:
|
|
15403
15405
|
type: string
|
|
@@ -15406,7 +15408,7 @@ components:
|
|
|
15406
15408
|
- |-
|
|
15407
15409
|
Path on the incoming source record (NOT the post-mapped record) whose value drives the lookup.
|
|
15408
15410
|
Used with the simple form (`searchField` + `operator`).
|
|
15409
|
-
Common values: `"
|
|
15411
|
+
Common values: `"externalId"`, `"id"`.
|
|
15410
15412
|
Ignored when `expression` is set.
|
|
15411
15413
|
examples:
|
|
15412
15414
|
- externalId
|
|
@@ -15416,8 +15418,9 @@ components:
|
|
|
15416
15418
|
x-celigo-ai-guidance:
|
|
15417
15419
|
- |-
|
|
15418
15420
|
NetSuite field the simple-form lookup queries against.
|
|
15419
|
-
Common values: `"externalId"`, `"
|
|
15420
|
-
|
|
15421
|
+
Common values: `"externalId"`, `"email"`, `"tranId"`, `"name"`.
|
|
15422
|
+
Matching on the record's internal id is the expression form —
|
|
15423
|
+
`["internalid","is","{{{id}}}"]` — not a `searchField`.
|
|
15421
15424
|
Ignored when `expression` is set.
|
|
15422
15425
|
examples:
|
|
15423
15426
|
- externalId
|
|
@@ -15427,9 +15430,9 @@ components:
|
|
|
15427
15430
|
x-celigo-ai-guidance:
|
|
15428
15431
|
- |-
|
|
15429
15432
|
Comparison operator for the simple-form lookup.
|
|
15430
|
-
Common values: `"is"` (exact match),
|
|
15431
|
-
`"
|
|
15432
|
-
`
|
|
15433
|
+
Common values: `"is"` (exact match), `"contains"`, `"startswith"`,
|
|
15434
|
+
`"equalto"`. Multi-match (`anyof`) is available only through
|
|
15435
|
+
`expression` (`["internalid","anyof","{{{id}}}"]`).
|
|
15433
15436
|
Ignored when `expression` is set.
|
|
15434
15437
|
expression:
|
|
15435
15438
|
type: string
|
|
@@ -15522,6 +15525,15 @@ components:
|
|
|
15522
15525
|
- DO NOT use `jsonSerialize` here — search expressions take
|
|
15523
15526
|
scalar literals, not serialized JSON. Use `{{{id}}}` or
|
|
15524
15527
|
`{{{[Field Name]}}}` directly.
|
|
15528
|
+
- |-
|
|
15529
|
+
## Body-level only
|
|
15530
|
+
|
|
15531
|
+
This lookup identifies the record being imported, so bare
|
|
15532
|
+
body fields are the right paths here. A per-field lookup
|
|
15533
|
+
attached to a sublist row (`lookups[]` referenced from
|
|
15534
|
+
`mapping.lists[].fields[].lookupName`) is different: its
|
|
15535
|
+
expression addresses the current line with
|
|
15536
|
+
`<array>[*].<field>` — see `lookups[].expression`.
|
|
15525
15537
|
hooks:
|
|
15526
15538
|
type: object
|
|
15527
15539
|
description: |
|
|
@@ -15867,6 +15879,13 @@ components:
|
|
|
15867
15879
|
scalar extracts tag along.
|
|
15868
15880
|
If no child uses `[*]` and none set `extract` at all (every child is a `hardCodedValue`),
|
|
15869
15881
|
the sublist renders a single static line.
|
|
15882
|
+
- |-
|
|
15883
|
+
A row that resolves its value through `lookupName`
|
|
15884
|
+
(typically `extract: ""`) is driven by the sibling
|
|
15885
|
+
rows' `[*]` extracts, and the lookup's `expression`
|
|
15886
|
+
addresses the current line with the same
|
|
15887
|
+
`<array>[*].<field>` path — see
|
|
15888
|
+
`netsuite_da.lookups[].expression`.
|
|
15870
15889
|
generate:
|
|
15871
15890
|
type: string
|
|
15872
15891
|
description: NetSuite sublist field ID to write to.
|
|
@@ -16103,10 +16122,69 @@ components:
|
|
|
16103
16122
|
- internalid
|
|
16104
16123
|
expression:
|
|
16105
16124
|
type: string
|
|
16125
|
+
x-celigo-agent:
|
|
16126
|
+
- handlebars
|
|
16106
16127
|
description: |-
|
|
16107
16128
|
Optional advanced-search expression (NetSuite saved-search
|
|
16108
16129
|
DSL) for multi-criterion lookups. When present, supersedes
|
|
16109
16130
|
`searchField` / `operator` — those fields are ignored.
|
|
16131
|
+
Handlebars inside the expression is rendered against the
|
|
16132
|
+
whole source record before the search runs; a lookup on a
|
|
16133
|
+
sublist row reaches the current line through
|
|
16134
|
+
`<array>[*].<field>` (for example `line_items[*].sku`).
|
|
16135
|
+
x-celigo-ai-guidance:
|
|
16136
|
+
- |-
|
|
16137
|
+
## Evaluation context — the whole source record, no `record.` prefix
|
|
16138
|
+
|
|
16139
|
+
The expression's Handlebars renders against the incoming
|
|
16140
|
+
source record as the context root (the record is NOT
|
|
16141
|
+
wrapped under `record`), then the rendered JSON array is
|
|
16142
|
+
sent to NetSuite as the search criteria. Body-level fields
|
|
16143
|
+
are addressed bare: `{{{id}}}`, `{{{email}}}`.
|
|
16144
|
+
- |-
|
|
16145
|
+
## Sublist-row lookups address the line with `<array>[*].<field>`
|
|
16146
|
+
|
|
16147
|
+
A lookup referenced from a sublist mapping row
|
|
16148
|
+
(`mapping.lists[].fields[].lookupName`) still receives the
|
|
16149
|
+
whole record; the current line's fields are reached with the
|
|
16150
|
+
same bracket-star path the sublist extracts use —
|
|
16151
|
+
`{{{line_items[*].sku}}}` resolves the line's item (one line
|
|
16152
|
+
per sublist row). A bare line field (`{{sku}}`,
|
|
16153
|
+
`{{#contains sku "_"}}`) is undefined at the record root: a
|
|
16154
|
+
helper that receives it fails every record with
|
|
16155
|
+
`INVALID_HANDLE_BAR_EXPRESSION` — `Could not compile handle
|
|
16156
|
+
bar "<expression>" because "Cannot call method "indexOf" of
|
|
16157
|
+
undefined"` — before anything reaches NetSuite. When an
|
|
16158
|
+
audit diff shows `<array>[*].` removed from the expression
|
|
16159
|
+
right before such errors began, that edit is the cause; do
|
|
16160
|
+
not look for a line missing the field.
|
|
16161
|
+
- |-
|
|
16162
|
+
## Rendered unmatched
|
|
16163
|
+
|
|
16164
|
+
A rendered value NetSuite does not match fails the record
|
|
16165
|
+
with `VALUE_LOOKUP_FAILED` — `Could not find a match for
|
|
16166
|
+
"<rendered criteria>" for the record type "<recordType>"`
|
|
16167
|
+
— quoting the criteria exactly as rendered, so the message
|
|
16168
|
+
shows what the expression produced for that line. With
|
|
16169
|
+
`allowFailures: true` the `default` value is used instead
|
|
16170
|
+
and no error is raised. Give every branch an output.
|
|
16171
|
+
- |-
|
|
16172
|
+
## The mapping preview cannot evaluate `[*]` inside a block-helper argument
|
|
16173
|
+
|
|
16174
|
+
`PUT /v1/netsuiteDA/previewImportMappingFields` (the mapping
|
|
16175
|
+
editor's Preview) evaluates lookups for real — resolved
|
|
16176
|
+
internal ids appear in `nlobjSublistIds`, misses and
|
|
16177
|
+
compile errors in `data.mappingErrors[]` — and handles
|
|
16178
|
+
`[*]` in plain substitutions and inside a branch's output.
|
|
16179
|
+
It does NOT apply the per-line evaluation to `[*]` used as a
|
|
16180
|
+
block-helper ARGUMENT (`{{#if line_items[*].x}}`,
|
|
16181
|
+
`{{#contains line_items[*].sku "_"}}`): the sublist comes
|
|
16182
|
+
back EMPTY with no error, whatever the expression would do
|
|
16183
|
+
in a run. An empty preview is therefore no evidence about
|
|
16184
|
+
such an expression — never report it as "renders nothing"
|
|
16185
|
+
or as invalid on that basis; validate it with a run.
|
|
16186
|
+
`<array>.@index.<field>` is likewise not evaluable in the
|
|
16187
|
+
preview (the record is dropped with no error).
|
|
16110
16188
|
operator:
|
|
16111
16189
|
type: string
|
|
16112
16190
|
description: |-
|
|
@@ -16164,6 +16242,14 @@ components:
|
|
|
16164
16242
|
TWO locations: `netsuite_da.lookups` and top-level `lookups`.
|
|
16165
16243
|
Both arrays must hold byte-for-byte identical content — the
|
|
16166
16244
|
MappingsAgent writes both on every save.
|
|
16245
|
+
- |-
|
|
16246
|
+
## One context for body and sublist lookups
|
|
16247
|
+
Every lookup's `expression` renders against the whole source
|
|
16248
|
+
record. A lookup referenced from a sublist row
|
|
16249
|
+
(`mapping.lists[].fields[].lookupName`) is evaluated once per
|
|
16250
|
+
line and addresses the current line with `<array>[*].<field>`
|
|
16251
|
+
— never a bare line field. See `expression` for the failure
|
|
16252
|
+
modes and the preview caveat.
|
|
16167
16253
|
x-celigo-agent:
|
|
16168
16254
|
- lookup
|
|
16169
16255
|
rawOverride:
|
package/package.json
CHANGED