@celigo/api-specs 0.2.127 → 0.2.128
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 +76 -7
- package/dist/tool.yml +76 -7
- package/package.json +1 -1
- package/schemas.json +1 -1
package/dist/import.yml
CHANGED
|
@@ -4248,6 +4248,22 @@ components:
|
|
|
4248
4248
|
existing record: on an `add`-only operation every record fails with
|
|
4249
4249
|
`The mapping condition:"record_updated" not supported for the
|
|
4250
4250
|
operation`. It works on `addupdate` and `update`.
|
|
4251
|
+
- |-
|
|
4252
|
+
The condition is one of the fixed `when` values — there is no
|
|
4253
|
+
predicate over a source field ("when `customer.id` is not empty",
|
|
4254
|
+
"when `channel.name` is Point of Sale" cannot be written here).
|
|
4255
|
+
`extract_not_empty` is the only source-driven gate: on a lookup row
|
|
4256
|
+
it reads the row's `extract`, and when that is empty the row is
|
|
4257
|
+
skipped and the field is left unset — nothing substitutes a value.
|
|
4258
|
+
Value-dependent behaviour (a fallback record when the key is
|
|
4259
|
+
missing) belongs inside the lookup's `expression` (see
|
|
4260
|
+
`lookups[].expression`).
|
|
4261
|
+
- |-
|
|
4262
|
+
Two rows with the same `generate` are not a fallback pair: the
|
|
4263
|
+
last row for a destination decides it alone — when its condition
|
|
4264
|
+
skips it the field stays empty even if an earlier row produced a
|
|
4265
|
+
value, and when it applies it overwrites the earlier row's value
|
|
4266
|
+
(`ignore_if_set` reads the target record, not an earlier row).
|
|
4251
4267
|
properties:
|
|
4252
4268
|
lookupName:
|
|
4253
4269
|
type: string
|
|
@@ -4503,6 +4519,18 @@ components:
|
|
|
4503
4519
|
rows in live verification. Do not rely on that tolerance — use
|
|
4504
4520
|
`when: record_updated` only on operations that can update
|
|
4505
4521
|
records (`addupdate` / `update`).
|
|
4522
|
+
- |-
|
|
4523
|
+
The condition is one of the fixed `when` values — the same
|
|
4524
|
+
closed set as body rows, with no predicate over a source
|
|
4525
|
+
field; `extract_not_empty` skips the row on the lines whose
|
|
4526
|
+
extract is empty and leaves that line's field unset. Two
|
|
4527
|
+
sublist rows with the same `generate` are not a fallback
|
|
4528
|
+
pair either, and the order rule is not the body rows': among
|
|
4529
|
+
extract rows the last row decides each line alone (a skipped
|
|
4530
|
+
last row leaves the line's field unset even when an earlier
|
|
4531
|
+
row produced a value), while a hard-coded row's value lands
|
|
4532
|
+
on every line whatever its position — a later conditional
|
|
4533
|
+
extract row does not override it.
|
|
4506
4534
|
properties:
|
|
4507
4535
|
lookupName:
|
|
4508
4536
|
type: string
|
|
@@ -4629,6 +4657,32 @@ components:
|
|
|
4629
4657
|
shows what the expression produced for that line. With
|
|
4630
4658
|
`allowFailures: true` the `default` value is used instead
|
|
4631
4659
|
and no error is raised. Give every branch an output.
|
|
4660
|
+
- |-
|
|
4661
|
+
## An empty substitution searches `isempty`
|
|
4662
|
+
|
|
4663
|
+
When the source path a criterion reads is null or absent
|
|
4664
|
+
(`["custentity_celigo_etail_cust_id","is","{{{customer.id}}}"]`
|
|
4665
|
+
on an order with no customer), the engine does not fail on
|
|
4666
|
+
the missing input: it searches the field with an `isempty`
|
|
4667
|
+
criterion, so the lookup now matches every target record
|
|
4668
|
+
whose field is BLANK. Two or more such records fail the
|
|
4669
|
+
record with `VALUE_LOOKUP_FAILED` — `More than one match
|
|
4670
|
+
for "[<field>,"isempty"]" for the record type "<recordType>"`
|
|
4671
|
+
(the message quotes the search field, never the empty
|
|
4672
|
+
source path); none fail it as `Could not find a match`;
|
|
4673
|
+
exactly one silently resolves to that record. Keep an empty
|
|
4674
|
+
key out of the search inside the expression — branch on
|
|
4675
|
+
the key: `{{#if customer.id}}[["custentity_celigo_etail_cust_id",
|
|
4676
|
+
"is","{{{customer.id}}}"]]{{else}}[["internalid","anyof",
|
|
4677
|
+
"<fallback internal id>"]]{{/if}}` routes records without a
|
|
4678
|
+
key to a fallback record while records with a key keep
|
|
4679
|
+
fail-on-miss; or render a value that can never match in the
|
|
4680
|
+
else branch and set `allowFailures: true` with `default`.
|
|
4681
|
+
A `searchField` / `operator` lookup (no `expression`) never
|
|
4682
|
+
reaches this state: an empty extract fails the record with
|
|
4683
|
+
`STATIC_MAPPING_ERROR` — `Exported value is empty/undefined
|
|
4684
|
+
for the field: $.<path>` — and resolves to `default` when
|
|
4685
|
+
`allowFailures` is true.
|
|
4632
4686
|
- |-
|
|
4633
4687
|
## The mapping preview cannot evaluate `[*]` inside a block-helper argument
|
|
4634
4688
|
|
|
@@ -4662,19 +4716,34 @@ components:
|
|
|
4662
4716
|
useDefaultOnMultipleMatches:
|
|
4663
4717
|
type: boolean
|
|
4664
4718
|
description: |-
|
|
4665
|
-
|
|
4666
|
-
record
|
|
4667
|
-
of
|
|
4668
|
-
|
|
4719
|
+
When true and `allowFailures` is also true, a search that
|
|
4720
|
+
matches more than one record resolves to `default` instead
|
|
4721
|
+
of failing the record. Has no effect while `allowFailures`
|
|
4722
|
+
is false — an ambiguous match then fails the record whatever
|
|
4723
|
+
this flag says.
|
|
4724
|
+
x-celigo-ai-guidance:
|
|
4725
|
+
- |-
|
|
4726
|
+
Set it together with `allowFailures: true` whenever the
|
|
4727
|
+
search value can be empty or duplicated: with
|
|
4728
|
+
`allowFailures: true` alone an ambiguous match resolves to
|
|
4729
|
+
ONE of the matching records with no error, and with this
|
|
4730
|
+
flag alone the record still fails `More than one match`.
|
|
4731
|
+
Every ambiguous match then becomes `default`, a genuinely
|
|
4732
|
+
duplicated key included — when that must still fail, keep
|
|
4733
|
+
`allowFailures` false and handle the empty key in the
|
|
4734
|
+
`expression` instead (see `expression`).
|
|
4669
4735
|
allowFailures:
|
|
4670
4736
|
type:
|
|
4671
4737
|
- boolean
|
|
4672
4738
|
- 'null'
|
|
4673
4739
|
description: |-
|
|
4674
4740
|
When true, a lookup miss (no matching record and no
|
|
4675
|
-
`default`) resolves to `null` and the import continues
|
|
4676
|
-
|
|
4677
|
-
|
|
4741
|
+
`default`) resolves to `null` and the import continues, and
|
|
4742
|
+
a search matching more than one record resolves to one of
|
|
4743
|
+
them unless `useDefaultOnMultipleMatches` routes it to
|
|
4744
|
+
`default`. When false (default), a miss and an ambiguous
|
|
4745
|
+
match both halt the record. May be stored as null (treated
|
|
4746
|
+
as unset).
|
|
4678
4747
|
map:
|
|
4679
4748
|
type:
|
|
4680
4749
|
- object
|
package/dist/tool.yml
CHANGED
|
@@ -15829,6 +15829,22 @@ components:
|
|
|
15829
15829
|
existing record: on an `add`-only operation every record fails with
|
|
15830
15830
|
`The mapping condition:"record_updated" not supported for the
|
|
15831
15831
|
operation`. It works on `addupdate` and `update`.
|
|
15832
|
+
- |-
|
|
15833
|
+
The condition is one of the fixed `when` values — there is no
|
|
15834
|
+
predicate over a source field ("when `customer.id` is not empty",
|
|
15835
|
+
"when `channel.name` is Point of Sale" cannot be written here).
|
|
15836
|
+
`extract_not_empty` is the only source-driven gate: on a lookup row
|
|
15837
|
+
it reads the row's `extract`, and when that is empty the row is
|
|
15838
|
+
skipped and the field is left unset — nothing substitutes a value.
|
|
15839
|
+
Value-dependent behaviour (a fallback record when the key is
|
|
15840
|
+
missing) belongs inside the lookup's `expression` (see
|
|
15841
|
+
`lookups[].expression`).
|
|
15842
|
+
- |-
|
|
15843
|
+
Two rows with the same `generate` are not a fallback pair: the
|
|
15844
|
+
last row for a destination decides it alone — when its condition
|
|
15845
|
+
skips it the field stays empty even if an earlier row produced a
|
|
15846
|
+
value, and when it applies it overwrites the earlier row's value
|
|
15847
|
+
(`ignore_if_set` reads the target record, not an earlier row).
|
|
15832
15848
|
properties:
|
|
15833
15849
|
lookupName:
|
|
15834
15850
|
type: string
|
|
@@ -16084,6 +16100,18 @@ components:
|
|
|
16084
16100
|
rows in live verification. Do not rely on that tolerance — use
|
|
16085
16101
|
`when: record_updated` only on operations that can update
|
|
16086
16102
|
records (`addupdate` / `update`).
|
|
16103
|
+
- |-
|
|
16104
|
+
The condition is one of the fixed `when` values — the same
|
|
16105
|
+
closed set as body rows, with no predicate over a source
|
|
16106
|
+
field; `extract_not_empty` skips the row on the lines whose
|
|
16107
|
+
extract is empty and leaves that line's field unset. Two
|
|
16108
|
+
sublist rows with the same `generate` are not a fallback
|
|
16109
|
+
pair either, and the order rule is not the body rows': among
|
|
16110
|
+
extract rows the last row decides each line alone (a skipped
|
|
16111
|
+
last row leaves the line's field unset even when an earlier
|
|
16112
|
+
row produced a value), while a hard-coded row's value lands
|
|
16113
|
+
on every line whatever its position — a later conditional
|
|
16114
|
+
extract row does not override it.
|
|
16087
16115
|
properties:
|
|
16088
16116
|
lookupName:
|
|
16089
16117
|
type: string
|
|
@@ -16210,6 +16238,32 @@ components:
|
|
|
16210
16238
|
shows what the expression produced for that line. With
|
|
16211
16239
|
`allowFailures: true` the `default` value is used instead
|
|
16212
16240
|
and no error is raised. Give every branch an output.
|
|
16241
|
+
- |-
|
|
16242
|
+
## An empty substitution searches `isempty`
|
|
16243
|
+
|
|
16244
|
+
When the source path a criterion reads is null or absent
|
|
16245
|
+
(`["custentity_celigo_etail_cust_id","is","{{{customer.id}}}"]`
|
|
16246
|
+
on an order with no customer), the engine does not fail on
|
|
16247
|
+
the missing input: it searches the field with an `isempty`
|
|
16248
|
+
criterion, so the lookup now matches every target record
|
|
16249
|
+
whose field is BLANK. Two or more such records fail the
|
|
16250
|
+
record with `VALUE_LOOKUP_FAILED` — `More than one match
|
|
16251
|
+
for "[<field>,"isempty"]" for the record type "<recordType>"`
|
|
16252
|
+
(the message quotes the search field, never the empty
|
|
16253
|
+
source path); none fail it as `Could not find a match`;
|
|
16254
|
+
exactly one silently resolves to that record. Keep an empty
|
|
16255
|
+
key out of the search inside the expression — branch on
|
|
16256
|
+
the key: `{{#if customer.id}}[["custentity_celigo_etail_cust_id",
|
|
16257
|
+
"is","{{{customer.id}}}"]]{{else}}[["internalid","anyof",
|
|
16258
|
+
"<fallback internal id>"]]{{/if}}` routes records without a
|
|
16259
|
+
key to a fallback record while records with a key keep
|
|
16260
|
+
fail-on-miss; or render a value that can never match in the
|
|
16261
|
+
else branch and set `allowFailures: true` with `default`.
|
|
16262
|
+
A `searchField` / `operator` lookup (no `expression`) never
|
|
16263
|
+
reaches this state: an empty extract fails the record with
|
|
16264
|
+
`STATIC_MAPPING_ERROR` — `Exported value is empty/undefined
|
|
16265
|
+
for the field: $.<path>` — and resolves to `default` when
|
|
16266
|
+
`allowFailures` is true.
|
|
16213
16267
|
- |-
|
|
16214
16268
|
## The mapping preview cannot evaluate `[*]` inside a block-helper argument
|
|
16215
16269
|
|
|
@@ -16243,19 +16297,34 @@ components:
|
|
|
16243
16297
|
useDefaultOnMultipleMatches:
|
|
16244
16298
|
type: boolean
|
|
16245
16299
|
description: |-
|
|
16246
|
-
|
|
16247
|
-
record
|
|
16248
|
-
of
|
|
16249
|
-
|
|
16300
|
+
When true and `allowFailures` is also true, a search that
|
|
16301
|
+
matches more than one record resolves to `default` instead
|
|
16302
|
+
of failing the record. Has no effect while `allowFailures`
|
|
16303
|
+
is false — an ambiguous match then fails the record whatever
|
|
16304
|
+
this flag says.
|
|
16305
|
+
x-celigo-ai-guidance:
|
|
16306
|
+
- |-
|
|
16307
|
+
Set it together with `allowFailures: true` whenever the
|
|
16308
|
+
search value can be empty or duplicated: with
|
|
16309
|
+
`allowFailures: true` alone an ambiguous match resolves to
|
|
16310
|
+
ONE of the matching records with no error, and with this
|
|
16311
|
+
flag alone the record still fails `More than one match`.
|
|
16312
|
+
Every ambiguous match then becomes `default`, a genuinely
|
|
16313
|
+
duplicated key included — when that must still fail, keep
|
|
16314
|
+
`allowFailures` false and handle the empty key in the
|
|
16315
|
+
`expression` instead (see `expression`).
|
|
16250
16316
|
allowFailures:
|
|
16251
16317
|
type:
|
|
16252
16318
|
- boolean
|
|
16253
16319
|
- 'null'
|
|
16254
16320
|
description: |-
|
|
16255
16321
|
When true, a lookup miss (no matching record and no
|
|
16256
|
-
`default`) resolves to `null` and the import continues
|
|
16257
|
-
|
|
16258
|
-
|
|
16322
|
+
`default`) resolves to `null` and the import continues, and
|
|
16323
|
+
a search matching more than one record resolves to one of
|
|
16324
|
+
them unless `useDefaultOnMultipleMatches` routes it to
|
|
16325
|
+
`default`. When false (default), a miss and an ambiguous
|
|
16326
|
+
match both halt the record. May be stored as null (treated
|
|
16327
|
+
as unset).
|
|
16259
16328
|
map:
|
|
16260
16329
|
type:
|
|
16261
16330
|
- object
|
package/package.json
CHANGED