Skip to main content

Extensibility and Integration

 

OutSystems

Extension Source Files

Once the extension is created, Integration Studio automatically generates, according to the definition of the extension elements, the necessary template files for the development boot-strap of that extension. Once these templates are generated, the source files listed below are added as resources of your extension and you can start coding the behavior of your extension actions.

Template files are the files needed to generate the extension assembly without any custom code, without any code written by the developer. These files are implicitly generated by Integration Studio in the following operations: Create a new Extension, Update the Extension Source Code, or Compare with Template.

The extension source files are stored in the file system in the Extension folder, under the Source folder in the corresponding sub-folder, according to the application server you are using. You can check them in the Resources tree.

.NET Source files

By default, for a .NET application server, your extension has the following source files, stored under the Source\NET folder:

  • Project files called <ExtensionName>.sln, <ExtensionName>.csproj.

  • Extension implementation files:

    • Actions are implemented in the <ExtensionName>.cs file, which contains a .NET method for each action defined by your extension: the method name is Mss<ActionName> and parameters names are ss<ParameterName>.

      This file contains the signature of the methods that correspond to the actions exposed by your extension. You must not change these signatures. Any action, either defined in Integration Studio or imported from an assembly, must be defined in this file.

      Actions are declared in the Interface.cs file in the same way as explained above for <ExtensionName>.cs file.

    • Entities are declared in the Entities.cs file, which contains a .NET structure for each entity defined in by your extension: the structure name is EN<EntityName>EntityRecord and member names are ss<AttributeName>.

    • Record Lists are declared in the RecordLists.cs file, which contains a .NET class for each record list definition used in your actions: the class name is RL<RecordListDefinition>RecordList and a set of methods are generated to manage the record list.

    • Records are declared in the Record.cs file, which contains a .NET structure for each record definition used in your actions: the structure name is RC<RecordDefinition>Record and a set of methods are generated to manage the record.

    • Structures are declared in the Structures.cs file, which contains a .NET structure for each structure defined in your extension: the structure name is ST<EntityName>Structure and member names are ss<AttributeName>.

    These files are automatically generated by Integration Studio, during the Update Source Code operation, and you should not change them in the IDE (Integrated Development Environment).

  • The Bin2 folder contains the DLL files associated with your extension and their dependencies, namely: the OutSystems.Nss<ExtensionName>.dll which is the main DLL of your extension; the OutSystems.HubEdition.RuntimePlatform.dll, which is an internal DLL necessary to Integration Studio.

  • The Obj folder contains the temporary files required by the IDE for building the .NET solution.

J2EE Source Files

By default, for a .J2EE application server, the source files for your extension are stored under the Source\J2EE folder, as follows:

  • Project files called .classpath, .project, and build.xml.

  • Extension implementation files:

    • Actions are declared inside the actions folder and there is a file for each action defined by your extension. This file contains a Java class for the action: the file name Act<ActionName>.java, class name is Act<ActionName>, method name is mos<ActionName>, input parameters names are inParam<ParameterName>, and output parameters names are outParam<ParameterName>.

    • Entities are declared inside the entities folder and there is a file for each entity defined by your extension. This file contains a Java class for the entity: the file name EN<EntityName>EntityRecord.java, class name is EN<EntityName>EntityRecord, and member names are ss<AttributeName>.

    • Record Lists are declared inside the recordlists folder and there is a file for each record list definition used in your actions. This file contains a Java class for the entity: the file name is RL<RecordListDefinition>RecordList.java, class name is RL<RecordListDefinition>RecordList, and a set of methods are generated to manage the record list.

    • Records are declared inside the records folder and there is a file for each record definition used in your actions. This file contains a Java class for the entity: the file name is RC<RecordDefinition>Record.java, class name is RC<RecordDefinition>, and a set of methods are generated to manage the record.

    • Structures are declared inside the structures folder and there is a file for each structure defined by your extension. This file contains a Java class for the structure: the file name is ST<StructureName>Structure.java, class name is ST<StructureName>Structure, and member names are ss<AttributeName>.

    These files are automatically generated by Integration Studio, during the Update Source Code operation, and you should not change them in the IDE (Integrated Development Environment).

  • The WEB-INF/lib folder contains the JAR files associated with your extension and their dependencies, namely: the outsystems.nos<ExtensionName>.jar, which is the main JAR of your extension; and the outsystems.hubedition.runtimeplatform.jar, which is an internal JAR necessary to Integration Studio.

Both Source Files

By default, for a (Both) application server, the source files of your extension, stored under the Source\NET and Source\J2EE folders, are the files explained above for each platform.

If necessary, you can explicitly add more source files to your extension.

Properties of the Source Files

The extension source files are added as resources of the extension with the following properties:

  • Name: Name of the resource as explained above.
  • Last Modified: Date and time when the resource was last modified since the last save.
  • Deploy Action: For the files stored under the Binaries folder, this property has the value Copy to Binaries directory. For the rest of the files, this property has the value Ignore.

For more information about the Deploy Action property, see Resource Properties.

  • Was this article helpful?