application objects
, table
logical definition,
and business logic procedures
, triggers
and scripts
.
1 External objects definition
External objects are defined with <external-object>
tag. It has the attributes below:
-
dict
: dictionary where the external object belongs to. -
code
: external object reference code. -
type
: type of object. -
mode
: configures the way data is shown. By default isxml
mode.
There are different mode
values, depending on object type
:
-
Type
object
:-
xml
: XML statement definition. -
sql
: SQL statement according to database engine. -
repinfo
: object information. -
docinfo
: columns description about object main table. -
tecinfo
: extended columns information of the main table (basic and metadata information as SQL type and size). -
image
: image documented in the object. -
menupath
: Get paths. -
butinfo
: But info. -
all
: Doesmenupath
,repinfo
,image
,docinfo
,butinfo
and table model with deep1
at the same time.
-
-
Type
table
,procedure
,function
andtrigger
:-
xml
: statement definition. -
sql
: SQL statement obtained from XML code transformation according to database engine.
-
The following table shows the different modes that each type of external object accepts:
External Object Attributes | |||||
---|---|---|---|---|---|
type
|
code
|
database
|
dict
|
lang
|
mode
|
object
|
xml , sql , repinfo , docinfo , image
|
||||
object
|
tecinfo
|
||||
object
|
all
|
||||
table
|
xml , sql
|
||||
procedure
|
xml , sql
|
||||
function
|
xml , sql
|
||||
trigger
|
xml , sql
|
||||
script
|
- |
Required Optional N/A
1.1 Object
The following example shows a tabbed panel for either XML, SQL, Repinfo, Docinfo, Tecinfo and Image Object definition,
taken from the database dictionary wic
.
<tabs> <tab active="yes" title="XML"> <external-object code="wic_image_object" dict="wic" type="object" mode="xml" /> </tab> <tab title="SQL"> <external-object code="wic_image_object" dict="wic" type="object" mode="sql" /> </tab> <tab title="Repinfo"> <external-object code="wic_image_object" dict="wic" type="object" mode="repinfo" /> </tab> <tab title="Docinfo"> <external-object code="wic_image_object" dict="wic" type="object" mode="docinfo" /> </tab> <tab title="Tecinfo"> <external-object code="wic_image_object" dict="wic" type="object" mode="tecinfo" /> </tab> <tab title="Image"> <external-object code="wic_image_object" dict="wic" type="object" mode="image" /> </tab> </tabs>
<select>
<columns>
<rowid table='wic_image_object' />, wic_image_object.*
</columns>
<from table='wic_image_object' />
</select>
SELECT
wic_image_object.rowid, wic_image_object.*
FROM wic_image_object
Este es el repositorio de imágenes que ilustra el diccionario (incluidos los menús) y los objetos SQL.
Estas imágenes se pueden obtener por medio de un archivo o de iconos empaquetados en una fuente. Los iconos parecen imágenes, pero se pueden manejar como fuentes.
Debido a las propiedades de color y escalabilidad de las fuentes, se debe priorizar el uso de iconos en lugar de imágenes.
wic_image_object | |
---|---|
Label | Description |
Name | Image name
|
Description | Image description |
Source | Image source
|
Glyph | Glyph (hieroglyphic): when the source is a font, enter here icon code from the website. |
Color | Color: when the source is a font, select here desired color for the icon.
If no color is selected, the system will display the icon in black or white depending on the darkness/lightness of the background. |
Type | Image type
|
Size | Image size
|
Image width | Image width
|
Image height | Image height
|
Image | Choose file: when you select this options, standard opening dialog box appears and an image file can be selected. After unloading image, the fields Size, Type, Width and Height will be automatically filled in. |
Created by | The user who has created the record
|
Date created | Date of registering
|
Modified by | The last user who has updated the record
|
Date updated | Date of the last update
|
wic_image_object | |||||
---|---|---|---|---|---|
Column | Type | Size | Not null | Label | Description |
img_name | Name | Image name
|
|||
img_memo | Description | Image description | |||
img_source | Source | Image source
|
|||
img_font_code | Glyph | Glyph (hieroglyphic): when the source is a font, enter here icon code from the website. |
|||
img_font_color | Color | Color: when the source is a font, select here desired color for the icon.
If no color is selected, the system will display the icon in black or white depending on the darkness/lightness of the background. |
|||
img_type | Type | Image type
|
|||
img_size | Size | Image size
|
|||
img_width | Image width | Image width
|
|||
img_height | Image height | Image height
|
|||
img_data | Image | Choose file: when you select this options, standard opening dialog box appears and an image file can be selected. After unloading image, the fields Size, Type, Width and Height will be automatically filled in. | |||
user_created | Created by | The user who has created the record
|
|||
date_created | Date created | Date of registering
|
|||
user_updated | Modified by | The last user who has updated the record
|
|||
date_updated | Date updated | Date of the last update
|
1.2 Table
The following example shows a tabbed panel for both XML and SQL Table definition,
taken from the database dictionary wic
.
<tabs> <tab active="yes" title="XML"> <external-object code="wic_jrep_form_hide" dict="wic" type="table"/> </tab> <tab title="SQL"> <external-object code="wic_jrep_form_hide" dict="wic" mode="sql" type="table"/> </tab> </tabs>
<table name='wic_jrep_form_hide'>
<!-- COLUMNS -->
<column name='rep_code' type='char' size='48' required='y' />
<column name='hide_colname' type='char' required='y' size='30' />
<column name='hide_colprev' type='char' required='y' size='30' />
<!-- INDEXES -->
<primary name='p_wic_jrep_form_hide' columns='rep_code, hide_colname' />
<!-- FOREIGN KEYS -->
<foreign name='f_wic_jrep_form_hide1' columns='rep_code, hide_colname' references='wic_jrep_colout' refcols='rep_code,col_name' ondeletecascade='y' />
</table>
<exception title='Exception from service object: javax.xml.transform.TransformerException: java.sql.SQLException: No such JDBC driver for name 'ids''><STACKTRACE>
[SOAPException: faultCode=SOAP-ENV:Server; msg=Exception from service object: javax.xml.transform.TransformerException: java.sql.SQLException: No such JDBC driver for name 'ids']
at deister.axional.docs.xsl.CMSSOAPClient.__doSOAPCall(CMSSOAPClient.java:113)
at deister.axional.docs.xsl.CMSSOAPClient.__doSOAPCall(CMSSOAPClient.java:94)
at deister.axional.docs.xsl.CMSSOAPClient.getDictionaryObjectData(CMSSOAPClient.java:207)
at jdk.internal.reflect.GeneratedMethodAccessor1634.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:300)
at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:440)
at org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:222)
at org.apache.xalan.transformer.TransformerImpl.extFunction(TransformerImpl.java:475)
at org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:208)
at org.apache.xpath.objects.XRTreeFragSelectWrapper.execute(XRTreeFragSelectWrapper.java:69)
at org.apache.xpath.XPath.execute(XPath.java:337)
at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:280)
at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:248)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:394)
at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:248)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:141)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemIf.execute(ElemIf.java:162)
at org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemForEach.java:425)
at org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:265)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:128)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemElement.constructNode(ElemElement.java:341)
at org.apache.xalan.templates.ElemElement.execute(ElemElement.java:290)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:128)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:128)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2272)
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1358)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:711)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1275)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1253)
at deister.axional.server.lang.xsl.XSLProcessor.__execute(XSLProcessor.java:866)
at deister.axional.server.lang.xsl.XSLProcessor$4.call(XSLProcessor.java:702)
at deister.axional.server.lang.xsl.XSLProcessor$4.call(XSLProcessor.java:694)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:832)
<Root-cause class='class org.apache.soap.SOAPException'>
</Root-cause>
</STACKTRACE></exception>
1.3 Function
The following example shows a tabbed panel for both XML and SQL Function definition,
taken from the database dictionary wic
.
<tabs> <tab active="yes" title="XML"> <external-object code="sdm_set_value" dict="wic" type="function"/> </tab> <tab title="SQL"> <external-object code="sdm_set_value" dict="wic" mode="sql" type="function"/> </tab> </tabs>
<!-- ============================================================================= -->
<!-- -->
<!-- sdm_set_value(p_string) -->
<!-- -->
<!-- Asignar una constante (valor fijo) a una columna en un trigger no es -->
<!-- facil, hay que hacerlo via un SPL. -->
<!-- -->
<!-- Se utiliza en un grupo de disparadores de wic_icon y d wic_iges. -->
<!-- WIC_ICON: cpar_projecl, cpar_projseg -->
<!-- -->
<!-- ============================================================================= -->
<function name='sdm_set_value'>
<test>
<unit id='1'>
select sdm_set_value(<char>'1'</char>) from cdataemp;
</unit>
</test>
<args>
<arg name='p_string' type='char' size='255' />
</args>
<returns type='char' size='255' />
<body>
<return>p_string</return>
</body>
</function>
<exception title='Exception from service object: No such JDBC driver for name 'ids''><STACKTRACE>
[SOAPException: faultCode=SOAP-ENV:Server; msg=Exception from service object: No such JDBC driver for name 'ids']
at deister.axional.docs.xsl.CMSSOAPClient.__doSOAPCall(CMSSOAPClient.java:113)
at deister.axional.docs.xsl.CMSSOAPClient.__doSOAPCall(CMSSOAPClient.java:94)
at deister.axional.docs.xsl.CMSSOAPClient.getDictionaryObjectData(CMSSOAPClient.java:207)
at jdk.internal.reflect.GeneratedMethodAccessor1634.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:300)
at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:440)
at org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:222)
at org.apache.xalan.transformer.TransformerImpl.extFunction(TransformerImpl.java:475)
at org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:208)
at org.apache.xpath.objects.XRTreeFragSelectWrapper.execute(XRTreeFragSelectWrapper.java:69)
at org.apache.xpath.XPath.execute(XPath.java:337)
at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:280)
at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:248)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:394)
at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:248)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:141)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemIf.execute(ElemIf.java:162)
at org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemForEach.java:425)
at org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:265)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:128)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemElement.constructNode(ElemElement.java:341)
at org.apache.xalan.templates.ElemElement.execute(ElemElement.java:290)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:128)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:128)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2272)
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1358)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:711)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1275)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1253)
at deister.axional.server.lang.xsl.XSLProcessor.__execute(XSLProcessor.java:866)
at deister.axional.server.lang.xsl.XSLProcessor$4.call(XSLProcessor.java:702)
at deister.axional.server.lang.xsl.XSLProcessor$4.call(XSLProcessor.java:694)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:832)
<Root-cause class='class org.apache.soap.SOAPException'>
</Root-cause>
</STACKTRACE></exception>
1.4 Procedure
The following example shows a tabbed panel for both XML and SQL Procedure definition,
taken from the database dictionary wic
.
<tabs> <tab active="yes" title="XML"> <external-object code="wic_raise_msg" dict="wic" type="procedure"/> </tab> <tab title="SQL"> <external-object code="wic_raise_msg" dict="wic" mode="sql" type="procedure"/> </tab> </tabs>
<procedure name='wic_raise_msg'>
<args>
<arg name='p_isam' type='integer' />
<arg name='p_strmsg' type='char' size='80' />
</args>
<body>
<exception>p_strmsg</exception>
</body>
</procedure>
<exception title='Exception from service object: No such JDBC driver for name 'ids''><STACKTRACE>
[SOAPException: faultCode=SOAP-ENV:Server; msg=Exception from service object: No such JDBC driver for name 'ids']
at deister.axional.docs.xsl.CMSSOAPClient.__doSOAPCall(CMSSOAPClient.java:113)
at deister.axional.docs.xsl.CMSSOAPClient.__doSOAPCall(CMSSOAPClient.java:94)
at deister.axional.docs.xsl.CMSSOAPClient.getDictionaryObjectData(CMSSOAPClient.java:207)
at jdk.internal.reflect.GeneratedMethodAccessor1634.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:300)
at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:440)
at org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:222)
at org.apache.xalan.transformer.TransformerImpl.extFunction(TransformerImpl.java:475)
at org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:208)
at org.apache.xpath.objects.XRTreeFragSelectWrapper.execute(XRTreeFragSelectWrapper.java:69)
at org.apache.xpath.XPath.execute(XPath.java:337)
at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:280)
at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:248)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:394)
at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:248)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:141)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemIf.execute(ElemIf.java:162)
at org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemForEach.java:425)
at org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:265)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:128)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemElement.constructNode(ElemElement.java:341)
at org.apache.xalan.templates.ElemElement.execute(ElemElement.java:290)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:128)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:128)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2272)
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1358)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:711)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1275)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1253)
at deister.axional.server.lang.xsl.XSLProcessor.__execute(XSLProcessor.java:866)
at deister.axional.server.lang.xsl.XSLProcessor$4.call(XSLProcessor.java:702)
at deister.axional.server.lang.xsl.XSLProcessor$4.call(XSLProcessor.java:694)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:832)
<Root-cause class='class org.apache.soap.SOAPException'>
</Root-cause>
</STACKTRACE></exception>
1.5 Trigger
The following example shows a tabbed panel for both XML and SQL Trigger definition,
taken from the database dictionary wic
.
<tabs> <tab active="yes" title="XML"> <external-object code="wic_change_log_del" dict="wic" type="trigger"/> </tab> <tab title="SQL"> <external-object code="wic_change_log_del" dict="wic" mode="sql" type="trigger"/> </tab> </tabs>
<xsql-trigger name="wic_change_log_del" table="wic_change_log" event="delete">
<foreach-row>
<execute-procedure name="wic_raise_msg">
<in>
<param>0</param>
<param>'No esta permitido borrar registros en esta tabla'</param>
</in>
</execute-procedure>
</foreach-row>
</xsql-trigger>
<exception title='Exception from service object: No such JDBC driver for name 'ids''><STACKTRACE>
[SOAPException: faultCode=SOAP-ENV:Server; msg=Exception from service object: No such JDBC driver for name 'ids']
at deister.axional.docs.xsl.CMSSOAPClient.__doSOAPCall(CMSSOAPClient.java:113)
at deister.axional.docs.xsl.CMSSOAPClient.__doSOAPCall(CMSSOAPClient.java:94)
at deister.axional.docs.xsl.CMSSOAPClient.getDictionaryObjectData(CMSSOAPClient.java:207)
at jdk.internal.reflect.GeneratedMethodAccessor1634.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:300)
at org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:440)
at org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:222)
at org.apache.xalan.transformer.TransformerImpl.extFunction(TransformerImpl.java:475)
at org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:208)
at org.apache.xpath.objects.XRTreeFragSelectWrapper.execute(XRTreeFragSelectWrapper.java:69)
at org.apache.xpath.XPath.execute(XPath.java:337)
at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:280)
at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:248)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:394)
at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:248)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:141)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemIf.execute(ElemIf.java:162)
at org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemForEach.java:425)
at org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:265)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:128)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemElement.constructNode(ElemElement.java:341)
at org.apache.xalan.templates.ElemElement.execute(ElemElement.java:290)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:128)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:128)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2402)
at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2272)
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1358)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:711)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1275)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1253)
at deister.axional.server.lang.xsl.XSLProcessor.__execute(XSLProcessor.java:866)
at deister.axional.server.lang.xsl.XSLProcessor$4.call(XSLProcessor.java:702)
at deister.axional.server.lang.xsl.XSLProcessor$4.call(XSLProcessor.java:694)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:832)
<Root-cause class='class org.apache.soap.SOAPException'>
</Root-cause>
</STACKTRACE></exception>
1.6 Script
The following example shows an XML Script definition, taken from the database dictionary wic
.
<external-object code="wic_jrep_object_buffer_create" dict="wic" type="script"/>
<xsql-script name='wic_jrep_object_buffer_create'>
<args>
<arg name='p_rep_code' type='string' />
<arg name='p_user_updated' type='string' />
</args>
<body>
<!-- Un usuari pot començar una edicio del buffer sempre i quan no estigui ja sent editat. -->
<update table='wic_jrep_object'>
<column name='rep_stmt_buffer' text='true'>rep_stmt</column>
<column name='user_updated'><p_user_updated /></column>
<column name='date_updated'><date.current /></column>
<where>
rep_code = <p_rep_code />
AND rep_stmt_buffer IS NULL
</where>
</update>
</body>
</xsql-script>
2 External table graph
The following example shows a tabbed panel for either external reference to table with deep="0"
and deep="1"
from cvenfach
table.
This function needs an enterprise database to obtain the physical metadata and table relations. You can specify a different level of deep for the table relations
(the exported keys).
External table graph attributes | |||||
---|---|---|---|---|---|
name
|
database
|
deep
|
|||
Required Optional N/A
<tabs> <tab active="yes" title="Graph deep 0"> <external-table-model deep="0" database="demo_erp" name="cvenfach"/> </tab> <tab title="Graph deep 1"> <external-table-model deep="1" database="demo_erp" name="cvenfach"/> </tab> </tabs>