JDAPIUtil : XML file structure

section 1
XML file : general configuration section


This section is surrounded by the<configuration></configuration> tags.


<!-- --------------------------------- -->
<!-- general configuration information -->
<!-- --------------------------------- -->

<configuration>
 <backup_directory>C:/temp/</backup_directory>
 <target_directory></target_directory>
  <module_list>
   
<!-- single filename --->
    <name>C:/dev/Forms/DnD/DND.fmb</name> 
   
<!-- entire directory --->

    <name>D:/Projets/Forms/TEST/</name>
  </module_list>
 <log_file_name>c:/jdapiutil.log</log_file_name>
 <backup_ext>_bak</backup_ext>
 <new_ext>_new</new_ext>
  <connection_string>tuto/tuto@XE</connection_string>
 <compile_module>false</compile_module>
 <comment>module modified by JDAPIUtil on :SYSDATE</comment>
 <libraries_case>to_lower_case</libraries_case>
</configuration>

Section 1

Tag

Comment

Possible values

Default value

<backup_directory>

Directory to put the saved files.

If nothing given, the file will be saved in its current  directory

 

current directory

<target_directory>

Directory to put the new files.

If nothing given, the new file will be created in its current  directory.

 

current directory

<module_list>

list of modules to process (can be a whole  directory)

 

 

   <name>

full directory or filename of the module. If you  indicate a directory, all the files that have the .FMB extension within  this directory will be added to the list.

 

 

<log_file_name>

full name of the logging file

 

 

<backup_ext>

extension for saved file.

if the module name currently processed is my_module.fmb, a  copy will be made with the my_module_bak.fmb name

 

_bak

<new_ext>

extension to new files.

if the module name currently processed is  my_module.fmb, the new module name will be : my_module_new.fmb

 

_new

<connection_string>

connection string to connect to the database  (compile time)

 

 

<compile_module>

tells if modules have to be compiled after  changes

true

false

false

<comment>

form-level comment added to every module

 

 

<libraries_case>

PL/SQL attached libraries name case conversion

to_lower_case

to_upper_case

 



Section 2
XML file : properties for all modules


This section is surrounded by the<all_modules></all_modules> tags.
The properties of this section are applied to every module given in the first section.


<!-- ---------------------------- -->
<!-- properties for every modules -->
<!-- ---------------------------- -->

<all_modules>
  <!-- all attached libraries -->
  <library>
   <action>ATTACH</action>
   <name>laf</name>
  </library>
  <library>
   <action>DETACH</action>
   <name>LAF2</name>
  </library>
  <!-- all blocks -->
  <blocks>
    <block>
     <property>setComment</property>
     <value>block comment</value>
   </block> 
 </blocks> 
  <!-- all canvases -->
  <canvases>
    <canvas>
     <property>setBackColor</property>
     <value>blue</value>
   </canvas> 
 </canvases> 
  <!-- all windows -->
  <windows>
    <window>
     <property>setBackColor</property>
     <value>blue</value>
   </window> 
    <window>
     <property>setMoveAllowed</property>
     <value>false</value>
    </window>
    <window>
     <property>setComment</property>
     <value>Window comment</value>
   </window> 
 </windows> 
  <!-- all alerts -->
 <alerts> 
    <alert>
     <property>setTitle</property>
     <value>The Super Title</value>
   </alert> 
    <alert>
     <property>setButton1Label</property>
     <value>Libellé du bouton 1</value>
    </alert>
 </alerts> 
  <!-- all items -->
  <items>
    <item>
     <type>all</type>
     <property>setComment</property>
     <value>Commentaire</value>
    </item>
    <item>
     <type>CheckBox</type>
     <property>setComment</property>
     <value>Commentaire CheckBox</value>
    </item>
 </items> 
</all_modules>

Available tags:

  <form>
  <block>
  <canvas>
  <item>
  <alert>
  <editor>
  <visual_attribute>
  <recordgroup>
  <lov>
  <window>

 


PL/SQL library tags:

<action>ATTACH | DETACH</action>
<name>library name</name>


other objects tags: exemple for blocks:

<object_type_group>
  <object_type>
   <property>property_name</property>
   <value>property_value</value>
  </object_type>
</object_type_group


<object_type_group> can be:

    - alerts
    - blocks
    - canvases
    - items
    - windows
    - forms
    - editors
    - lovs
    - recordgroups
    - visual_attributes


<object_type> can be:

    - alert
    - block
    - canvas
    - item
    - window 
    - form
    - editor
    - lov
    - recordgroup
    - visual_attribute



You need as many<object_type></object_type> tags as property to be set

Example for blocks:


<blocks>
  <block>
   <property>setComment</property>
   <value>the new block comment</value>
  </block>
</blocks>
 

Example for windows:

<windows>
  <!-- background color property -->
  <window>
   <property>setBackColor</property>
   <value>blue</value>
 </window> 
  <!-- moving allowed property -->
  <window>
   <property>setMoveAllowed</property>
   <value>false</value>
  </window>
</windows> 


item tags:

<items>
  <item>
   <type>all</type>
   <property>setComment</property>
   <value>Commentaire</value>
  </item>
  <item>
   <type>CheckBox</type>
   <property>setComment</property>
   <value>Commentaire CheckBox</value>
  </item><br></items> 


<type> can be one of the following:



Section 3
XML file : properties for single named modules


This section is surrounded by the<single_modules></single_modules> tags.
The properties of this section are applied to each single module given in the <name> tag.

The syntax is quite the same except the <name> tag to give the explicit module name in the <module> tag
and the object name in the object_type tag (<alert> or <canvas> for instance).

Each module description is surrounded by the<module></module> tags.


<!-- -------------------------------------- -->
<!-- properties for single specified module -->
<!-- -------------------------------------- -->

<single_modules>
  <module>
   <name>D:/modules/app1/TEST.fmb</name>
   <compile>true</compile>
    <alert>
     <name>ALERTE2</name>
     <property>setButton2Label</property>
     <value>Libellé du bouton 2</value>
    </alert>
    <!-- canvas -->
    <canvas>
     <name>CV</name>
     <property>setWidth</property>
     <value>400</value>
   </canvas> 
    <canvas>
     <name>CV</name>
     <property>setHeight</property>
     <value>300</value>
   </canvas> 
    <!-- olb subclassing -->
    <subclass_olb>
     <lib_name>D:/Oracle9i/forms90/webutil.olb</lib_name>
     <tab_name>MAIN</tab_name>
     <object_num>1</object_num>
     <target_name>WEBUTILCONFIG</target_name>
    </subclass_olb>
    <!-- program unit -->
    <program_unit>
     <action>ADD</action>
     <position>start</position>
     <name>P1</name>
      <text>
        Procedure P1
        Is
           Begin
        Null ;
        -- comment line --
        End P1; 
      </text>
   </program_unit
    <program_unit>
    <!-- delete some code -->
     <action>DELETE_CODE</action>
     <name>P1</name>
      <text>-- comment line--</text> 
    </program_unit>
    <trigger>
     <action>ADD</action>
     <position>end</position>
     <name>WHEN-NEW-FORM-INSTANCE</name>
      <text>
         -- Call the P1 procedure --
         Begin
           P1 ;
         End; 
      </text>
    </trigger>
    <trigger>
     <action>REPLACE</action>
     <name>ON-LOGON</name>
      <replace>
         Null;
      </replace>
     <text>
         P1;
      </text>
   </trigger> 
    <trigger_>
     <action>DELETE_CODE</action>
     <name>ON-LOGON</name>
     <text>P1;</text>
   </trigger_> 
    <trigger>
     <action>REMOVE</action>
     <name>ON-LOGON</name>
     <on_error>continue</on_error>
    </trigger>
    <trigger>
     <action>HIERARCHY</action>
     <name>ON-LOGON</name>
     <text>after</text>
     <on_error>continue</on_error>
   </trigger> 
 </module> 
</single_modules>