Member Junction
    Preparing search index...

    Generic action for deleting entity records from the database. This action provides a flexible way to delete records for any entity type by accepting the entity name and primary key values as parameters.

    // Delete a single record by ID
    await runAction({
    ActionName: 'Delete Record',
    Params: [
    {
    Name: 'EntityName',
    Value: 'Customers'
    },
    {
    Name: 'PrimaryKey',
    Value: { ID: '123e4567-e89b-12d3-a456-426614174000' }
    }
    ]
    });

    // Delete a record with composite primary key
    await runAction({
    ActionName: 'Delete Record',
    Params: [
    {
    Name: 'EntityName',
    Value: 'UserRoles'
    },
    {
    Name: 'PrimaryKey',
    Value: {
    UserID: '123e4567-e89b-12d3-a456-426614174000',
    RoleID: '987f6543-e21b-12d3-a456-426614174000'
    }
    }
    ]
    });

    Hierarchy

    • BaseRecordMutationAction
      • DeleteRecordAction
    Index

    Constructors

    Properties

    AuthorizesCaller: boolean

    True when the action authorizes its caller itself, so a public entry point such as the RunAction mutation may run it for an authenticated user without an MJ: Action Authorizations link. Set it only on an action that either checks an authorization the caller must hold, or reads and writes only with the caller's own permissions. Leave it false for an action that acts with more authority than its caller, or that reaches data or sends messages the caller chooses but could not otherwise reach.

    The engine reads the marker only from the class that runs, never from its parent classes. A subclass that overrides a marked action must declare the marker again.

    Accessors

    • get SupportsAudience(): boolean

      Whether this action can bound what it returns to an audience (RunActionParams.Audience): everyone besides the caller who will see its output, such as the other participants of a shared conversation.

      false by default, and the engine enforces it: when a run's audience adds a reader beyond the caller, ActionEngineServer.RunAction refuses the action with result code AUDIENCE_UNSUPPORTED, without running it. Override to return true only when the action honours the audience in full — every record, snippet and count it returns is something every reader may see (pass the audience to the search engine, check each reader's entitlement to anything it scopes by, and leave out aggregates computed before that filtering).

      Returns boolean

    Methods

    • Finds the closest matching candidate names for a mistyped entity or field name using normalized substring containment and Levenshtein edit distance.

      Parameters

      • target: string
      • candidates: readonly string[]
      • maxSuggestions: number = 5

      Returns string[]

    • Extract and normalize the PrimaryKey parameter into a { keyColumn: value } map.

      Accepted shapes, so an agent or workflow can hand over whatever it has in hand:

      • a plain object keyed by the entity's primary key column name(s) — { ID: '...' }, { UserID, RoleID }
      • the CompositeKey serialization — { KeyValuePairs: [{ FieldName, Value }, ...] }
      • a JSON string of either of the above
      • for a single-column key only, the bare key value ('8F1C...', 42), which is mapped onto the entity's one key column whatever it is called

      A bare value for a composite-key entity is rejected with a message listing the required columns. Requires entityInfo, so call getEntityObject first.

      Parameters

      Returns ParamResult<Record<string, unknown>>

    • Deletes a record for the specified entity type using its primary key.

      Parameters

      • params: RunActionParams

        The action parameters containing:

        • EntityName (required): The name of the entity to delete
        • PrimaryKey (required): Object keyed by primary key column(s), the CompositeKey { KeyValuePairs } shape, a JSON string of either, or (single-column keys only) the bare key value

      Returns Promise<ActionResultSimple>

      ActionResultSimple with:

      • Success: true if record was deleted successfully
      • ResultCode: SUCCESS, FAILED, ENTITY_NOT_FOUND, RECORD_NOT_FOUND, VALIDATION_ERROR, PERMISSION_DENIED, CASCADE_CONSTRAINT, REFERENCE_CONSTRAINT
      • Message: Details about the operation
      • Params: Output parameter 'DeletedRecord' contains the data of the deleted record
    • Resolve a field name against entity metadata (EntityInfo.Fields / BaseEntity.GetFieldByName) or prototype properties (fieldName in entity), matching case-insensitively and returning the canonical field name.

      Dynamic and OpenApp entities that do not have a generated TypeScript subclass registered in ClassFactory are instantiated as generic BaseEntity instances. On a generic BaseEntity, fields live in entity.Fields / entityInfo.Fields rather than as JS getter/setter properties on the prototype (fieldName in entity === false), which is why metadata is consulted first.

      Parameters

      Returns string

    • Executes the action with the provided parameters.

      Parameters

      Returns Promise<ActionResultSimple>

      Promise resolving to the action result