Member Junction
    Preparing search index...
    Index

    Constructors

    Methods

    • Generates Action entities for newly discovered custom objects by feeding them through the same ActionMetadataGenerator used for standard objects, then persisting the result via BaseEntity.Save().

      This ensures custom object actions are structurally identical to standard ones — same verbs, same param shapes, same result codes.

      Parameters

      • opts: {
            ContextUser: UserInfo;
            CustomObjects: IntegrationObjectInfo[];
            IconClass?: string;
            IntegrationName: string;
            Provider?: IMetadataProvider;
            SupportsListing: boolean;
            SupportsSearch: boolean;
        }

      Returns Promise<{ ActionsCreated: number }>

    • Upserts IntegrationObject and IntegrationObjectField records from dynamically discovered schema.

      • Objects matched by (IntegrationID, Name)
      • Fields matched by (IntegrationObjectID, Name)
      • Records are never deleted here — stale ones stick around

      Merge strategy — describe wins for technical fields. When a discovered field matches an existing record, we refresh Type, AllowsNull, IsRequired, and IsPrimaryKey from the live describe output. These are the attributes that drive DDL generation and sync-time coercion; curated values can (and do) drift from what the external system actually exposes and cause overflow / null-violation errors.

      Curated metadata still wins for semantic fields — DisplayName, Description (only filled when empty), Sequence, Category — because those are human-authored and the describe output usually doesn't improve them.

      Parameters

      Returns Promise<PersistSchemaResult>