spitfirepm 23.9700.2 → 23.9700.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -25,6 +25,7 @@ apiResult.then( (a) => {
25
25
  ### Change Log
26
26
 
27
27
  ```
28
+ 23.9700.4 - Lookup Editor Endpoints
28
29
  23.9700.2 - ProcessDocumentType DataModel enriched
29
30
  23.9700.1 - GatherDependsOnValues() improved
30
31
  23.9600.18 - Project Program
@@ -1244,6 +1244,78 @@ export declare class ConfigClient extends APIClientBase {
1244
1244
  private getToolsMenuWithCallbacks;
1245
1245
  private processGetToolsMenuWithCallbacks;
1246
1246
  protected processGetToolsMenu(xhr: any): MenuAction[] | null | null;
1247
+ /**
1248
+ * Returns the Lookup Results (DVs)
1249
+ */
1250
+ getLookupResults(): Promise<LookupResult[] | null>;
1251
+ private getLookupResultsWithCallbacks;
1252
+ private processGetLookupResultsWithCallbacks;
1253
+ protected processGetLookupResults(xhr: any): LookupResult[] | null | null;
1254
+ /**
1255
+ * Updates one Lookup Result
1256
+ * @param data Lookup Result row to update
1257
+ */
1258
+ patchLookupResult(data: LookupResult): Promise<LookupResult | null>;
1259
+ private patchLookupResultWithCallbacks;
1260
+ private processPatchLookupResultWithCallbacks;
1261
+ protected processPatchLookupResult(xhr: any): LookupResult | null | null;
1262
+ /**
1263
+ * Returns the parameter slots of one Lookup Result
1264
+ * @param lookupResultKey Lookup Result key
1265
+ */
1266
+ getLookupResultParameters(lookupResultKey: string): Promise<LookupResultQP[] | null>;
1267
+ private getLookupResultParametersWithCallbacks;
1268
+ private processGetLookupResultParametersWithCallbacks;
1269
+ protected processGetLookupResultParameters(xhr: any): LookupResultQP[] | null | null;
1270
+ /**
1271
+ * Replaces the parameter slots of one Lookup Result
1272
+ * @param lookupResultKey Lookup Result key
1273
+ * @param data Parameter slots, in call order
1274
+ */
1275
+ putLookupResultParameters(lookupResultKey: string, data: LookupResultQP[]): Promise<LookupResultQP[] | null>;
1276
+ private putLookupResultParametersWithCallbacks;
1277
+ private processPutLookupResultParametersWithCallbacks;
1278
+ protected processPutLookupResultParameters(xhr: any): LookupResultQP[] | null | null;
1279
+ /**
1280
+ * Resolves a Lookup Result against supplied values, returning the answer AND the SQL
1281
+ * @param valueFor Value to describe, plus its depends-on values
1282
+ */
1283
+ testLookupResult(valueFor: DVRequest): Promise<LookupTestResult | null>;
1284
+ private testLookupResultWithCallbacks;
1285
+ private processTestLookupResultWithCallbacks;
1286
+ protected processTestLookupResult(xhr: any): LookupTestResult | null | null;
1287
+ /**
1288
+ * Returns the Lookups (pickers)
1289
+ */
1290
+ getLookups(): Promise<Lookup[] | null>;
1291
+ private getLookupsWithCallbacks;
1292
+ private processGetLookupsWithCallbacks;
1293
+ protected processGetLookups(xhr: any): Lookup[] | null | null;
1294
+ /**
1295
+ * Updates one Lookup
1296
+ * @param data Lookup row to update
1297
+ */
1298
+ patchLookup(data: Lookup): Promise<Lookup | null>;
1299
+ private patchLookupWithCallbacks;
1300
+ private processPatchLookupWithCallbacks;
1301
+ protected processPatchLookup(xhr: any): Lookup | null | null;
1302
+ /**
1303
+ * Returns the fields of one Lookup
1304
+ * @param lookupKey Lookup key
1305
+ */
1306
+ getLookupFields(lookupKey: string): Promise<LookupField[] | null>;
1307
+ private getLookupFieldsWithCallbacks;
1308
+ private processGetLookupFieldsWithCallbacks;
1309
+ protected processGetLookupFields(xhr: any): LookupField[] | null | null;
1310
+ /**
1311
+ * Replaces the fields of one Lookup
1312
+ * @param lookupKey Lookup key
1313
+ * @param data Field rows, in FieldSequence order
1314
+ */
1315
+ putLookupFields(lookupKey: string, data: LookupField[]): Promise<LookupField[] | null>;
1316
+ private putLookupFieldsWithCallbacks;
1317
+ private processPutLookupFieldsWithCallbacks;
1318
+ protected processPutLookupFields(xhr: any): LookupField[] | null | null;
1247
1319
  /**
1248
1320
  * Returns the Manage dashboard tool menu
1249
1321
  */
@@ -4163,8 +4235,6 @@ export interface CodeSet {
4163
4235
  AllowNextSet?: boolean;
4164
4236
  /** Maximum length of code values in this set */
4165
4237
  CodeSize?: number;
4166
- /** Row version */
4167
- UpdateTS?: string | undefined;
4168
4238
  /** Collection of commands for this row */
4169
4239
  MenuCommands?: MenuAction[] | undefined;
4170
4240
  /** eTag */
@@ -4196,8 +4266,6 @@ export interface CodeSetValue {
4196
4266
  Active?: boolean;
4197
4267
  /** Flag */
4198
4268
  OnAdd?: boolean;
4199
- /** Row version */
4200
- UpdateTS?: string | undefined;
4201
4269
  /** Collection of commands for this row */
4202
4270
  MenuCommands?: MenuAction[] | undefined;
4203
4271
  /** eTag */
@@ -6447,6 +6515,217 @@ export interface KeyValuePairOfStringAndIEnumerableOfString {
6447
6515
  Key?: string | undefined;
6448
6516
  Value?: string[] | undefined;
6449
6517
  }
6518
+ /** Defines a lookup - the grid/picker half of the Validation and Lookup Engine. Where a LookupResult validates or describes one value, a Lookup presents a filterable list from which the user picks one. */
6519
+ export interface Lookup {
6520
+ /** Primary key */
6521
+ LookupKey?: string;
6522
+ /** Name of the lookup, unique within Product */
6523
+ LookupName: string;
6524
+ /** Allows multiple sets of definitions; SPM for sfPMS */
6525
+ Product: string;
6526
+ /** Passed to the data layer during data events so it knows which connection runs the query */
6527
+ TargetDS: string;
6528
+ /** Deprecated */
6529
+ LookupResultField?: string | undefined;
6530
+ /** The primary result (output) of this lookup. Lookups sharing a LookupResultKey are
6531
+ offered ahead of others when the user asks for an alternate picker */
6532
+ LookupResultKey?: string | undefined;
6533
+ /** Orders lookups that share a LookupResultKey */
6534
+ OfferSequence?: number;
6535
+ /** Title shown on the lookup window */
6536
+ Caption: string;
6537
+ /** Root of the query for the data source. First line should be SELECT TOP nnn, with one
6538
+ field per line including its AS alias. The WHERE clause may reference @pv,
6539
+ @pD1 through @pD4, @pUID for the requesting user, and @pProject for the current project */
6540
+ DataQuery: string;
6541
+ /** Caller-facing description of what this lookup is for. Carries more weight than the
6542
+ name when choosing between candidates */
6543
+ Purpose?: string | undefined;
6544
+ /** Agent when safe to expose to an external or AI caller; Internal otherwise. Null is
6545
+ unclassified and is treated as Internal, so an unreviewed entry is never exposed */
6546
+ Audience?: string | undefined;
6547
+ /** Whether this lookup is eligible to drive type-ahead through a generated pacq_ procedure,
6548
+ rather than only the modal picker. Defaults true: most lookups qualify, and a
6549
+ hand-written pacq_ proc is the exception - pu_AutoCompleteQueryGenerator will not
6550
+ overwrite one. False where no column is filterable, so no WHERE clause can be built */
6551
+ AutoComplete?: boolean;
6552
+ /** True to open the lookup already showing data, false to open it showing filters first */
6553
+ PreLoad?: boolean;
6554
+ /** Flag */
6555
+ Active?: boolean;
6556
+ /** Column definitions for this lookup, in FieldSequence order. Populated when the caller
6557
+ asks for the full definition rather than the list */
6558
+ Fields?: LookupField[] | undefined;
6559
+ /** Collection of commands for this row */
6560
+ MenuCommands?: MenuAction[] | undefined;
6561
+ /** eTag */
6562
+ ETag?: string | undefined;
6563
+ }
6564
+ /** Defines one column of a Lookup grid: how it is labelled and formatted, and how (or whether) it participates in the WHERE clause as a filter. */
6565
+ export interface LookupField {
6566
+ /** Primary key */
6567
+ LookupFieldKey?: string;
6568
+ /** The parent lookup */
6569
+ LookupKey?: string;
6570
+ /** Which Lookup Result this field is associated with. The direction depends on whether the
6571
+ row is a column or an input, which PredicateMode already declares:
6572
+ on a display row it means picking this column yields that result; on a context-parameter
6573
+ row (PredicateMode 'I') it means that result PRODUCES a valid value for the parameter,
6574
+ so a caller can chain to it rather than guess. Null for most fields */
6575
+ LookupResultKey?: string | undefined;
6576
+ /** Orders the fields within the lookup */
6577
+ FieldSequence?: number;
6578
+ /** SQL referencing this field. Not currently used - the query lives on the parent Lookup */
6579
+ FieldQuery: string;
6580
+ /** Name of the field as returned by SQL (its AS clause); binds the grid column. A field
6581
+ that will be filtered must have an alias even when the filter uses PredicateMode R or
6582
+ WOperatorType P, because the alias is how a lookup or dropdown filter is found -
6583
+ without one the filter falls back to a plain text box */
6584
+ FieldAlias: string;
6585
+ /** Column heading in the grid */
6586
+ Label: string;
6587
+ /** Where the field appears: P in the primary (initial) set, S in the secondary set behind
6588
+ the More/Less control, or H hidden - present for filtering but never displayed */
6589
+ ShowField: string;
6590
+ /** Column type: Bound or empty for a standard bound column, DBCheckMark, or DBLabel */
6591
+ GridColumnClass: string;
6592
+ /** Format for the column, for example M/d/yyyy to drop the time from a DateTime,
6593
+ :@C_ProjectMask to apply the project mask, or F0, C0, P1 */
6594
+ DisplayFormat: string;
6595
+ /** Display width of the column */
6596
+ DisplayWidth?: number;
6597
+ /** SQL parameter name for the WHERE clause: @pv for the primary output filter,
6598
+ @pD1 through @pD4 for values passed in via the depends-on list. Certain names imply a
6599
+ type - @pDateRangeN makes a date range, with WDefault giving the days back */
6600
+ WParamName: string;
6601
+ /** Label for the filter input area */
6602
+ WParamLabel?: string | undefined;
6603
+ /** TSQL building the left side of this item's WHERE clause */
6604
+ WPredicate?: string | undefined;
6605
+ /** How the predicate is compared: L for LIKE with a trailing %, K for LIKE with leading
6606
+ and trailing % as needed, = for equals, B for BETWEEN, > for >=, P to use the
6607
+ predicate as-is with no operator added, or x to exclude the filter parameter entirely
6608
+ (pair x with PredicateMode N) */
6609
+ WOperatorType: string;
6610
+ /** Default value for the parameter */
6611
+ WDefault: string;
6612
+ /** How this field participates in the WHERE clause: P a primary dynamic filter, shown as
6613
+ soon as the lookup opens; D dynamic, the most common; I static input, usually a @pDn
6614
+ carrying a value the query depends on such as project id; R required, where the
6615
+ parameter is always defined but adds nothing to the WHERE clause and a change forces a
6616
+ refresh; N not a filter at all.
6617
+ 'I' with ShowField 'H' is how a lookup's CONTEXT parameters - the subset of
6618
+ @pD1..@pD4 that make up its call signature - are recorded. Those rows are excluded from
6619
+ autocomplete: pu_AutoCompleteQueryGenerator selects PredicateMode NOT IN ('N','I'). */
6620
+ PredicateMode: string;
6621
+ /** Whether the column joins the initial sort or is merely available for sorting, and in
6622
+ which direction; N makes it unsortable. The grid can always be re-sorted by the user */
6623
+ OrderByMode: string;
6624
+ /** Input-only field. May be redundant with ShowField = H. Note the existing
6625
+ convention: context-parameter rows leave this false and rely on PredicateMode 'I', which
6626
+ is already enough to exclude them from autocomplete */
6627
+ IsInputOnly?: boolean;
6628
+ /** Flag */
6629
+ Active?: boolean;
6630
+ /** Collection of commands for this row */
6631
+ MenuCommands?: MenuAction[] | undefined;
6632
+ /** eTag */
6633
+ ETag?: string | undefined;
6634
+ }
6635
+ /** Describes a validatable data entity - the "result" half of the Validation and Lookup Engine. A Lookup Result (also called a DV, or Displayable Value) resolves a primary value plus up to four dependent values into a single cacheable answer, usually a human-readable description. */
6636
+ export interface LookupResult {
6637
+ /** Primary key */
6638
+ LookupResultKey?: string;
6639
+ /** Allows multiple sets of definitions; SPM for sfPMS */
6640
+ Product: string;
6641
+ /** Name of the data entity, unique within Product. Need not match a column name */
6642
+ LookupResultName: string;
6643
+ /** Passed to the data layer during data events so it knows which connection runs the query */
6644
+ TargetDS: string;
6645
+ /** SELECT statement that tests a candidate value. Returns a single row and column -
6646
+ ideally a string description. Must reference @pv, and @pD1 through @pD4 when the
6647
+ answer depends on other values */
6648
+ TestQuery: string;
6649
+ /** Caller-facing description of what this Lookup answers. Carries more weight than the
6650
+ name when choosing between candidates */
6651
+ Purpose?: string | undefined;
6652
+ /** Semantic type of the primary value (@pv), for example GUID or STRING */
6653
+ PVType?: string | undefined;
6654
+ /** What kind of operation this performs: Describe (key to text), Resolve (text to key),
6655
+ Check (1 or 0), Compute, or Internal */
6656
+ LookupClass?: string | undefined;
6657
+ /** Agent when safe to expose to an external or AI caller; Internal otherwise. Null is
6658
+ unclassified and is treated as Internal, so an unreviewed entry is never exposed */
6659
+ Audience?: string | undefined;
6660
+ /** Shape of the single answer: Scalar, Flag, Html, JSON, or Packed when several fields
6661
+ are delimited into the one answer */
6662
+ ResultFormat?: string | undefined;
6663
+ /** Packed only: the ordered field names, delimited the same way the answer is, so a caller
6664
+ can convert the answer into a JSON object */
6665
+ PackedToJSON?: string | undefined;
6666
+ /** Flag */
6667
+ Active?: boolean;
6668
+ /** Number of dependent values (@pD1..@pD4) this result expects. Derived, not stored */
6669
+ DependsCount?: number | undefined;
6670
+ /** Parameter slots for this result, in call order. Populated when the caller asks for
6671
+ the catalog rather than the bare definition */
6672
+ Parameters?: LookupResultQP[] | undefined;
6673
+ /** Collection of commands for this row */
6674
+ MenuCommands?: MenuAction[] | undefined;
6675
+ /** eTag */
6676
+ ETag?: string | undefined;
6677
+ }
6678
+ /** Describes one parameter slot of a Lookup Result (DV): Slot 0 is the primary value @pv, Slots 1 through 4 are the dependent values @pD1 through @pD4, in call order. */
6679
+ export interface LookupResultQP {
6680
+ /** Primary key */
6681
+ LookupResultQPKey?: string;
6682
+ /** The Lookup Result these parameters belong to */
6683
+ LookupResultKey?: string;
6684
+ /** Parameter position: 0 is @pv, 1 through 4 are @pD1 through @pD4 */
6685
+ Slot?: number;
6686
+ /** What this slot means to a caller, for example Project ID or Account Category */
6687
+ Label: string;
6688
+ /** Semantic type of this slot's value; same vocabulary as LookupResult.PVType */
6689
+ PVType?: string | undefined;
6690
+ /** False where the Lookup tolerates a blank here. Note the API convention: the literal
6691
+ string "empty" forces a blank dependent value */
6692
+ IsRequired?: boolean;
6693
+ /** A concrete sample value; grounds a caller better than the type name alone */
6694
+ ExampleValue?: string | undefined;
6695
+ /** Name of the Lookup that produces a valid value for this slot, letting a caller chain
6696
+ lookups to fill it rather than guess. A soft reference by name, so it may not resolve */
6697
+ SourceLookup?: string | undefined;
6698
+ /** Free-text caveats about this parameter */
6699
+ Notes?: string | undefined;
6700
+ /** Flag */
6701
+ Active?: boolean;
6702
+ /** Collection of commands for this row */
6703
+ MenuCommands?: MenuAction[] | undefined;
6704
+ /** eTag */
6705
+ ETag?: string | undefined;
6706
+ }
6707
+ /** The outcome of testing a Lookup Result (DV) or a Lookup from the maintenance tool. */
6708
+ export interface LookupTestResult {
6709
+ /** The resolved value, or null when nothing matched */
6710
+ Value?: string | undefined;
6711
+ /** The SQL actually executed, with the supplied parameter values shown */
6712
+ GeneratedSql?: string | undefined;
6713
+ /** False when the query raised. Note that true does NOT mean the answer is correct -
6714
+ a DV can succeed and still return the wrong value */
6715
+ Succeeded?: boolean;
6716
+ /** Error text when the query raised, or a diagnostic note such as an empty result */
6717
+ Message?: string | undefined;
6718
+ /** True when the answer came from the engine's cache rather than the database. Cached
6719
+ answers can lag an edit, which is worth showing while someone is iterating */
6720
+ FromCache?: boolean;
6721
+ /** Round-trip time in milliseconds */
6722
+ ElapsedMs?: number;
6723
+ /** Rows returned. A Lookup Result should yield exactly one; anything else is a defect
6724
+ worth surfacing rather than silently taking the first row */
6725
+ RowCount?: number;
6726
+ /** eTag */
6727
+ ETag?: string | undefined;
6728
+ }
6450
6729
  export interface MarshalByRefObject {
6451
6730
  }
6452
6731
  export interface MediaTypeHeaderValue {
@@ -8081,8 +8360,6 @@ export interface ScopedCodeSetValue {
8081
8360
  CodeFlag?: boolean;
8082
8361
  /** Flag, true if code still relevant. False does not prevent use. */
8083
8362
  Active?: boolean;
8084
- /** Row version */
8085
- UpdateTS?: string | undefined;
8086
8363
  /** Collection of commands for this row */
8087
8364
  MenuCommands?: MenuAction[] | undefined;
8088
8365
  /** eTag */