You can write a CatalogGeneration task to generate a Catalog file for a Data Object Service in an ABL Web App project.

Task-level properties and elements:

Name Description
srcdir Specifies the location of the ABL Web App project.
dlc

Specifies the location of your OpenEdge installation.

verbose (Optional) Enables the verbose mode. The valid values are true, false, on, off, yes, and no.
Note: By default, the value is set to false.
serviceName Specifies the name of the service.
resources Specifies a comma-separated list of resources (classes and procedures) associated with the Data Object Service.
Note: Make sure to specify at least one resource and the resources must be accurately annotated.
destdir (Optional) Specifies the destination directory where the Catalog file is generated.

resources element

Contains a set of ABL source files that are required to generate the Catalog file. You can configure this element using pathelement or fileset elements.

Note: For more information on pathelement or fileset elements, refer to the Apache Ant documentation.

dbinfo element

Contains the database connection details that the catalog generation task depends on. Each dbinfo element is considered a single database connection information.

Name Description
name Specifies the name of the database or the database file with its full path, for example, Sports2020 or $DLC\WRK\Sports2020.db.
host

(Optional) Specifies the host name, for example, localhost.

port (Optional) Specifies the server port or service name.
userId (Optional) Specifies the user ID that you use to log in to the database.
password (Optional) Specifies the password that you use to log in to the database.
Note: Make sure that the server and database is running when you run the ANT task.

Here is a sample build.xml file for Data Object Service catalog generation. The code output will look similar to the following example.

<?xml version="1.0" encoding="UTF-8"?>
<project name="ABLWebApp" default="main" basedir=".">
	
	<property name="dlc.dir" value="$DLC"/>
	<property name="dlc.java.dir" value="${dlc.dir}/java" />
	
	<property name="app.name" value="ExportWebApp1" />
	<property name="src.dir" value="$srcdir/${app.name}" />
	<property name="dest.dir" value="$destdir/ant/paars" />
	   
    <!-- Target for defining 'taskdef' -->
    <target name="taskdef">
    	<echo>Task Definitions</echo>
    	
        <taskdef resource="com/progress/openedge/pdt/ant/ablwebapp/ablwebapps.properties">
            <classpath>
            
            	<pathelement location="${dlc.java.dir}/ant-ablwebapp.jar" />
            	
            	<pathelement location="${dlc.java.dir}/ant-libs/ablwebapp.jar" />
            	<pathelement location="${dlc.java.dir}/ant-libs/ablwebapp-dependencies.jar" />
            	
            	<!-- CodeModel Dependencies -->
            	<pathelement location="${dlc.java.dir}/ant-libs/codemodel-dependencies.jar" />
            	
            	<!-- AST and its Dependencies -->
            	<pathelement location="${dlc.java.dir}/ant-libs/ast.jar" />
            	<pathelement location="${dlc.java.dir}/ant-libs/ast-dependencies.jar" />
            	
            	<!-- Additional deps -->
		<pathelement location="${dlc.java.dir}/ant-libs/commons-lang3-3.18.0.jar" />
		<pathelement location="${dlc.java.dir}/ant-libs/slf4j-api.jar" />
		<pathelement location="${dlc.java.dir}/ant-libs/velocity-engine-core-2.4.1.jar" />
		<pathelement location="${dlc.java.dir}/ant-libs/1padapters-restExpose.jar" />
		<pathelement location="${dlc.java.dir}/1padapters-idl.jar" />
		<pathelement location="${dlc.java.dir}/1padapters-util.jar" />
		<pathelement location="${dlc.java.dir}/ext/jettison-1.5.4.jar" />
		<pathelement location="${dlc.java.dir}/ext/commons-logging-1.3.5.jar" />
		<pathelement location="${dlc.java.dir}/ext/xmlschema-core-2.3.1.jar" />
        	</classpath>
        </taskdef>
    </target>

	<!-- Main task -->
	<target name="main" depends="taskdef">
	
		<PaarGeneration srcdir="${src.dir}" dlc="${dlc.dir}" verbose="false" 
			destdir="${dest.dir}\${app.name}" />

	</target>
	
</project>