Appian Introspect Capability

Overview

Create SAIL variables with objects that are usually only system-generated! Introspect give the possibility to parameterize some behavior bases on meta definitions. Allows Designers to model references to Appian objects. Also provides functions to read and write object references.

Works with the following objects:

  • Types
  • CDTs
  • Rules
  • Process Models

Key Features & Functionality

Main Functions

  • CreateTypeReference and CreateTypeReferenceFromTypeId: Given a Type or a typeId returns an instance of the TypeReference CDT which points to it.
  • GetType, GetListType, NewValue, GetFieldNames are also implemented for the TypeReference CDT
  • CreateFieldReference, GetFieldType, IsFieldArray: Given a TypeReference and a field name, returns an instance of the CDTFieldReference CDT which points to the field definition. You can get the typeId from the returned CDTFieldReference and ask it the referenced field is an array
  • CreateRuleReference, GetRule: Given a Rule Reference returns an instance of RuleReference CDT which point to the given Rule. You can get back the original rule Reference and invoke it if necessary.
  • CreateProcessModelReference, GetProcessModel: Given a Process Model Constant returns an instance of ProcessModelReference CDT which point to the same Process Model as the given constant. You can get back the original Process Model reference and invoke it.
  • CreateEntityReference, GetEntity, GetEntityTypeReference: Given an Entity Constant returns an instance of EntityReference CDT which point to the same Entity as the given constant. Again you can get back the original Data Store Entity, you can also get a Reference to the CDT that is persisted in the referenced entity.
  • LoadMetadata: Returns a CDTMetadataModel grouping the metadata of the given CDT and any other rereferenced directly or indirectly indexed by typeId.
Anonymous
  • I just tried to install that plugin on Appian 22.4. It failed with the following error message in the tomcat-stdout log file.

    2022-11-30 15:10:22,285 [http-nio-8080-exec-4471] ERROR com.appiancorp.plugins.LoggingPluginEventListener - Failed to enable Plug-in 'Introspect' (introspect) version 1.2: 'The Function Module com.appiancorp.ps.introspect.cdt.TypeReferenceFunctions could not be installed due to invalid type: Invalid Type: Unsupported type com.appiancorp.ps.introspect.datatypes.TypeReference. Use the @Type annotation to indicate the type of a function parameter. The deprecated type attribute for the @Parameter annotation has been removed. (APNX-1-4104-008)'
    
  • v1.2 Release Notes
    New functions:
    • getEntityTypeReference: return a TypeReference to the CDT that is persisted in the Entity referenced by the given EntityReference
    • loadMetadata: load the metadata of the given CDT plus all its referenced CDTs
  • Hi, 

       this function getappobjectuuids() is not part of this plugin but of this one:

    community.appian.com/.../get-application-s-content-objects

    thanks

  • Very useful plugin! Thank you!

    It seems however that the ObjectDetails list that is returned by the getappobjectuuids() function does not refresh the description field after the initial call.

    Can you please advise whether this is working as expected ( i.e. a feature vs a bug )? I am guessing the latter.

    If it is the latter, it would be great if you can provide a fix or workaround to the issue.

    Kind Regards.

  • v1.1.2 Release Notes
    • Corrected an error when getting back the getFieldType for a list field, now it returns the item's type in this case.
    • New Function createTypeReferenceFromTypeId(typeId) returns a new TypeReference to the Type corresponding to the given typeId.The goal is to be able to create a TypeReference to the referenced field's type: createTypeReferenceFromTypeId(getFieldType(local!fieldReference))
  • v1.1.1 Release Notes
    • Corrected an error thrown in Function createRuleReference
    • Corrected the Function GetType(TypeReference) now it returns the Referenced Type itself and not an ID_REFERENCE to its constructor
    • New Function newValue(TypeReference) returns an ID_REFERENCE to the referenced type's constructor
    • New Function getListType(TypeReference) return the referenced type's corresponding List Type
    • New Function createEntityReference(DataStoreEntity) returns new Reference to the given datastore entity, so this references can be saved and loaded as part of other CDTs
    • New Function getEntity(EntityReference) returns the referenced entity from the given EntityReference, so this reference can be used anywhere a DataStoreEntity is expected
    • CreateRuleReference can also be used with integrations, interfaces and decision tables too