spitfirepm 23.9700.1 → 23.9700.3

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,8 @@ apiResult.then( (a) => {
25
25
  ### Change Log
26
26
 
27
27
  ```
28
+ 23.9700.3 - Lookup Editor Endpoints
29
+ 23.9700.2 - ProcessDocumentType DataModel enriched
28
30
  23.9700.1 - GatherDependsOnValues() improved
29
31
  23.9600.18 - Project Program
30
32
  23.9600.17 - Improves Analytics opt out
@@ -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
  */
@@ -1510,15 +1582,6 @@ export declare class DocumentToolsClient extends APIClientBase {
1510
1582
  beforeSend: any;
1511
1583
  protected jsonParseReviver: ((key: string, value: any) => any) | undefined;
1512
1584
  constructor(baseUrl?: string);
1513
- /**
1514
- * Updates the header On the specified document
1515
- * @param id Document Key
1516
- * @param updatedData Replacement data
1517
- */
1518
- updateDocHeader(id: string, updatedData: DocMasterDetail): Promise<any>;
1519
- private updateDocHeaderWithCallbacks;
1520
- private processUpdateDocHeaderWithCallbacks;
1521
- protected processUpdateDocHeader(xhr: any): any | null;
1522
1585
  /**
1523
1586
  * Returns the header Of the specified document, including a Document Session Key
1524
1587
  * @param id Document Key
@@ -1535,6 +1598,15 @@ export declare class DocumentToolsClient extends APIClientBase {
1535
1598
  private deleteDocHeaderWithCallbacks;
1536
1599
  private processDeleteDocHeaderWithCallbacks;
1537
1600
  protected processDeleteDocHeader(xhr: any): any | null;
1601
+ /**
1602
+ * Updates the header On the specified document
1603
+ * @param id Document Key
1604
+ * @param updatedData Replacement data
1605
+ */
1606
+ updateDocHeader(id: string, updatedData: DocMasterDetail): Promise<any>;
1607
+ private updateDocHeaderWithCallbacks;
1608
+ private processUpdateDocHeaderWithCallbacks;
1609
+ protected processUpdateDocHeader(xhr: any): any | null;
1538
1610
  /**
1539
1611
  * Updates a Single field On the header Of the specified document
1540
1612
  * @param id Document Key
@@ -2725,7 +2797,7 @@ export declare class ProjectToolsClient extends APIClientBase {
2725
2797
  /**
2726
2798
  * Returns programs in which the specified project is listed
2727
2799
  * @param projectID Full Project ID
2728
- * @param programList list of programs
2800
+ * @param programList list of programs by ProgramKey, PgmPjtMapKey or Program ID
2729
2801
  */
2730
2802
  removeProjectPrograms(projectID: string | null, programList: string[]): Promise<ProjectPrograms[] | null>;
2731
2803
  private removeProjectProgramsWithCallbacks;
@@ -6447,6 +6519,225 @@ export interface KeyValuePairOfStringAndIEnumerableOfString {
6447
6519
  Key?: string | undefined;
6448
6520
  Value?: string[] | undefined;
6449
6521
  }
6522
+ /** 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. */
6523
+ export interface Lookup {
6524
+ /** Primary key */
6525
+ LookupKey?: string;
6526
+ /** Name of the lookup, unique within Product */
6527
+ LookupName: string;
6528
+ /** Allows multiple sets of definitions; SPM for sfPMS */
6529
+ Product: string;
6530
+ /** Passed to the data layer during data events so it knows which connection runs the query */
6531
+ TargetDS: string;
6532
+ /** Deprecated */
6533
+ LookupResultField?: string | undefined;
6534
+ /** The primary result (output) of this lookup. Lookups sharing a LookupResultKey are
6535
+ offered ahead of others when the user asks for an alternate picker */
6536
+ LookupResultKey?: string | undefined;
6537
+ /** Orders lookups that share a LookupResultKey */
6538
+ OfferSequence?: number;
6539
+ /** Title shown on the lookup window */
6540
+ Caption: string;
6541
+ /** Root of the query for the data source. First line should be SELECT TOP nnn, with one
6542
+ field per line including its AS alias. The WHERE clause may reference @pv,
6543
+ @pD1 through @pD4, @pUID for the requesting user, and @pProject for the current project */
6544
+ DataQuery: string;
6545
+ /** Caller-facing description of what this lookup is for. Carries more weight than the
6546
+ name when choosing between candidates */
6547
+ Purpose?: string | undefined;
6548
+ /** Agent when safe to expose to an external or AI caller; Internal otherwise. Null is
6549
+ unclassified and is treated as Internal, so an unreviewed entry is never exposed */
6550
+ Audience?: string | undefined;
6551
+ /** Whether this lookup is eligible to drive type-ahead through a generated pacq_ procedure,
6552
+ rather than only the modal picker. Defaults true: most lookups qualify, and a
6553
+ hand-written pacq_ proc is the exception - pu_AutoCompleteQueryGenerator will not
6554
+ overwrite one. False where no column is filterable, so no WHERE clause can be built */
6555
+ AutoComplete?: boolean;
6556
+ /** True to open the lookup already showing data, false to open it showing filters first */
6557
+ PreLoad?: boolean;
6558
+ /** Flag */
6559
+ Active?: boolean;
6560
+ /** Row version */
6561
+ UpdateTS?: string | undefined;
6562
+ /** Column definitions for this lookup, in FieldSequence order. Populated when the caller
6563
+ asks for the full definition rather than the list */
6564
+ Fields?: LookupField[] | undefined;
6565
+ /** Collection of commands for this row */
6566
+ MenuCommands?: MenuAction[] | undefined;
6567
+ /** eTag */
6568
+ ETag?: string | undefined;
6569
+ }
6570
+ /** 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. */
6571
+ export interface LookupField {
6572
+ /** Primary key */
6573
+ LookupFieldKey?: string;
6574
+ /** The parent lookup */
6575
+ LookupKey?: string;
6576
+ /** Which Lookup Result this field is associated with. The direction depends on whether the
6577
+ row is a column or an input, which PredicateMode already declares:
6578
+ on a display row it means picking this column yields that result; on a context-parameter
6579
+ row (PredicateMode 'I') it means that result PRODUCES a valid value for the parameter,
6580
+ so a caller can chain to it rather than guess. Null for most fields */
6581
+ LookupResultKey?: string | undefined;
6582
+ /** Orders the fields within the lookup */
6583
+ FieldSequence?: number;
6584
+ /** SQL referencing this field. Not currently used - the query lives on the parent Lookup */
6585
+ FieldQuery: string;
6586
+ /** Name of the field as returned by SQL (its AS clause); binds the grid column. A field
6587
+ that will be filtered must have an alias even when the filter uses PredicateMode R or
6588
+ WOperatorType P, because the alias is how a lookup or dropdown filter is found -
6589
+ without one the filter falls back to a plain text box */
6590
+ FieldAlias: string;
6591
+ /** Column heading in the grid */
6592
+ Label: string;
6593
+ /** Where the field appears: P in the primary (initial) set, S in the secondary set behind
6594
+ the More/Less control, or H hidden - present for filtering but never displayed */
6595
+ ShowField: string;
6596
+ /** Column type: Bound or empty for a standard bound column, DBCheckMark, or DBLabel */
6597
+ GridColumnClass: string;
6598
+ /** Format for the column, for example M/d/yyyy to drop the time from a DateTime,
6599
+ :@C_ProjectMask to apply the project mask, or F0, C0, P1 */
6600
+ DisplayFormat: string;
6601
+ /** Display width of the column */
6602
+ DisplayWidth?: number;
6603
+ /** SQL parameter name for the WHERE clause: @pv for the primary output filter,
6604
+ @pD1 through @pD4 for values passed in via the depends-on list. Certain names imply a
6605
+ type - @pDateRangeN makes a date range, with WDefault giving the days back */
6606
+ WParamName: string;
6607
+ /** Label for the filter input area */
6608
+ WParamLabel?: string | undefined;
6609
+ /** TSQL building the left side of this item's WHERE clause */
6610
+ WPredicate?: string | undefined;
6611
+ /** How the predicate is compared: L for LIKE with a trailing %, K for LIKE with leading
6612
+ and trailing % as needed, = for equals, B for BETWEEN, > for >=, P to use the
6613
+ predicate as-is with no operator added, or x to exclude the filter parameter entirely
6614
+ (pair x with PredicateMode N) */
6615
+ WOperatorType: string;
6616
+ /** Default value for the parameter */
6617
+ WDefault: string;
6618
+ /** How this field participates in the WHERE clause: P a primary dynamic filter, shown as
6619
+ soon as the lookup opens; D dynamic, the most common; I static input, usually a @pDn
6620
+ carrying a value the query depends on such as project id; R required, where the
6621
+ parameter is always defined but adds nothing to the WHERE clause and a change forces a
6622
+ refresh; N not a filter at all.
6623
+ 'I' with ShowField 'H' is how a lookup's CONTEXT parameters - the subset of
6624
+ @pD1..@pD4 that make up its call signature - are recorded. Those rows are excluded from
6625
+ autocomplete: pu_AutoCompleteQueryGenerator selects PredicateMode NOT IN ('N','I'). */
6626
+ PredicateMode: string;
6627
+ /** Whether the column joins the initial sort or is merely available for sorting, and in
6628
+ which direction; N makes it unsortable. The grid can always be re-sorted by the user */
6629
+ OrderByMode: string;
6630
+ /** Input-only field. May be redundant with ShowField = H. Note the existing
6631
+ convention: context-parameter rows leave this false and rely on PredicateMode 'I', which
6632
+ is already enough to exclude them from autocomplete */
6633
+ IsInputOnly?: boolean;
6634
+ /** Flag */
6635
+ Active?: boolean;
6636
+ /** Row version */
6637
+ UpdateTS?: string | undefined;
6638
+ /** Collection of commands for this row */
6639
+ MenuCommands?: MenuAction[] | undefined;
6640
+ /** eTag */
6641
+ ETag?: string | undefined;
6642
+ }
6643
+ /** 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. */
6644
+ export interface LookupResult {
6645
+ /** Primary key */
6646
+ LookupResultKey?: string;
6647
+ /** Allows multiple sets of definitions; SPM for sfPMS */
6648
+ Product: string;
6649
+ /** Name of the data entity, unique within Product. Need not match a column name */
6650
+ LookupResultName: string;
6651
+ /** Passed to the data layer during data events so it knows which connection runs the query */
6652
+ TargetDS: string;
6653
+ /** SELECT statement that tests a candidate value. Returns a single row and column -
6654
+ ideally a string description. Must reference @pv, and @pD1 through @pD4 when the
6655
+ answer depends on other values */
6656
+ TestQuery: string;
6657
+ /** Caller-facing description of what this Lookup answers. Carries more weight than the
6658
+ name when choosing between candidates */
6659
+ Purpose?: string | undefined;
6660
+ /** Semantic type of the primary value (@pv), for example GUID or STRING */
6661
+ PVType?: string | undefined;
6662
+ /** What kind of operation this performs: Describe (key to text), Resolve (text to key),
6663
+ Check (1 or 0), Compute, or Internal */
6664
+ LookupClass?: string | undefined;
6665
+ /** Agent when safe to expose to an external or AI caller; Internal otherwise. Null is
6666
+ unclassified and is treated as Internal, so an unreviewed entry is never exposed */
6667
+ Audience?: string | undefined;
6668
+ /** Shape of the single answer: Scalar, Flag, Html, JSON, or Packed when several fields
6669
+ are delimited into the one answer */
6670
+ ResultFormat?: string | undefined;
6671
+ /** Packed only: the ordered field names, delimited the same way the answer is, so a caller
6672
+ can convert the answer into a JSON object */
6673
+ PackedToJSON?: string | undefined;
6674
+ /** Flag */
6675
+ Active?: boolean;
6676
+ /** Row version */
6677
+ UpdateTS?: string | undefined;
6678
+ /** Number of dependent values (@pD1..@pD4) this result expects. Derived, not stored */
6679
+ DependsCount?: number | undefined;
6680
+ /** Parameter slots for this result, in call order. Populated when the caller asks for
6681
+ the catalog rather than the bare definition */
6682
+ Parameters?: LookupResultQP[] | undefined;
6683
+ /** Collection of commands for this row */
6684
+ MenuCommands?: MenuAction[] | undefined;
6685
+ /** eTag */
6686
+ ETag?: string | undefined;
6687
+ }
6688
+ /** 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. */
6689
+ export interface LookupResultQP {
6690
+ /** Primary key */
6691
+ LookupResultQPKey?: string;
6692
+ /** The Lookup Result these parameters belong to */
6693
+ LookupResultKey?: string;
6694
+ /** Parameter position: 0 is @pv, 1 through 4 are @pD1 through @pD4 */
6695
+ Slot?: number;
6696
+ /** What this slot means to a caller, for example Project ID or Account Category */
6697
+ Label: string;
6698
+ /** Semantic type of this slot's value; same vocabulary as LookupResult.PVType */
6699
+ PVType?: string | undefined;
6700
+ /** False where the Lookup tolerates a blank here. Note the API convention: the literal
6701
+ string "empty" forces a blank dependent value */
6702
+ IsRequired?: boolean;
6703
+ /** A concrete sample value; grounds a caller better than the type name alone */
6704
+ ExampleValue?: string | undefined;
6705
+ /** Name of the Lookup that produces a valid value for this slot, letting a caller chain
6706
+ lookups to fill it rather than guess. A soft reference by name, so it may not resolve */
6707
+ SourceLookup?: string | undefined;
6708
+ /** Free-text caveats about this parameter */
6709
+ Notes?: string | undefined;
6710
+ /** Flag */
6711
+ Active?: boolean;
6712
+ /** Row version */
6713
+ UpdateTS?: string | undefined;
6714
+ /** Collection of commands for this row */
6715
+ MenuCommands?: MenuAction[] | undefined;
6716
+ /** eTag */
6717
+ ETag?: string | undefined;
6718
+ }
6719
+ /** The outcome of testing a Lookup Result (DV) or a Lookup from the maintenance tool. */
6720
+ export interface LookupTestResult {
6721
+ /** The resolved value, or null when nothing matched */
6722
+ Value?: string | undefined;
6723
+ /** The SQL actually executed, with the supplied parameter values shown */
6724
+ GeneratedSql?: string | undefined;
6725
+ /** False when the query raised. Note that true does NOT mean the answer is correct -
6726
+ a DV can succeed and still return the wrong value */
6727
+ Succeeded?: boolean;
6728
+ /** Error text when the query raised, or a diagnostic note such as an empty result */
6729
+ Message?: string | undefined;
6730
+ /** True when the answer came from the engine's cache rather than the database. Cached
6731
+ answers can lag an edit, which is worth showing while someone is iterating */
6732
+ FromCache?: boolean;
6733
+ /** Round-trip time in milliseconds */
6734
+ ElapsedMs?: number;
6735
+ /** Rows returned. A Lookup Result should yield exactly one; anything else is a defect
6736
+ worth surfacing rather than silently taking the first row */
6737
+ RowCount?: number;
6738
+ /** eTag */
6739
+ ETag?: string | undefined;
6740
+ }
6450
6741
  export interface MarshalByRefObject {
6451
6742
  }
6452
6743
  export interface MediaTypeHeaderValue {
@@ -6612,10 +6903,19 @@ export interface ProcessDocumentType {
6612
6903
  MobileDashboard?: boolean;
6613
6904
  /** When True, shown on project dashboards */
6614
6905
  ProjectDashboard?: boolean;
6615
- /** When True, can create from project dashboard */
6616
- NewFromDashboard?: boolean;
6906
+ /** When True, tracks compliance */
6907
+ CheckCompliance?: boolean;
6908
+ /** When True, can be sync'd to cloud storage (other rules apply) */
6909
+ CloudSync?: boolean;
6617
6910
  /** When True, is created from a parent document */
6618
6911
  CreateFromParent?: boolean;
6912
+ /** When True, Document Numbers are sequenced across projects (PO,Work Posted, etc)
6913
+ When False, numbers start over on every project (See DocNumbering | StartDocNumber) */
6914
+ CrossProjectNumbering?: boolean;
6915
+ /** When True, can create from project dashboard */
6916
+ NewFromDashboard?: boolean;
6917
+ /** When True, Project is an optional field (Rare) */
6918
+ ProjectIsOptional?: boolean;
6619
6919
  /** When True, uses an item register */
6620
6920
  UseItemRegister?: boolean;
6621
6921
  /** When True, is Site Active */