[naca] r278 committed - Reorganisation of files/folders...

47 views
Skip to first unread message

na...@googlecode.com

unread,
Mar 24, 2010, 8:25:57 AM3/24/10
to naca-automated-cobol...@googlegroups.com
Revision: 278
Author: naca.support
Date: Wed Mar 24 05:11:35 2010
Log: Reorganisation of files/folders

See HISTORY for details when available
http://code.google.com/p/naca/source/detail?r=278

Added:
/trunk/NacaRT/bin
/trunk/NacaRT/bin/.classpath
/trunk/NacaRT/bin/.project
/trunk/NacaRT/bin/LGPL-LICENSE.txt
/trunk/NacaRT/bin/Naca.js
/trunk/NacaRT/bin/NacaCustom.js
/trunk/NacaRT/bin/NacaScript.js
/trunk/NacaRT/bin/WEB-INF
/trunk/NacaRT/bin/WEB-INF/CustomCalendar.xml
/trunk/NacaRT/bin/WEB-INF/LogSettings.cfg
/trunk/NacaRT/bin/WEB-INF/NacaContextDef.cfg
/trunk/NacaRT/bin/WEB-INF/NacaRT.cfg
/trunk/NacaRT/bin/WEB-INF/ProgramList.xml
/trunk/NacaRT/bin/WEB-INF/StandardCalendar.xml
/trunk/NacaRT/bin/WEB-INF/struts-config.xml
/trunk/NacaRT/bin/WEB-INF/web.xml
/trunk/NacaRT/bin/build.xml
/trunk/NacaRT/bin/doc
/trunk/NacaRT/bin/doc/FileDeclaration
/trunk/NacaRT/bin/doc/FileDeclaration/NacaFileDeclarationSyntax.txt
/trunk/NacaRT/bin/doc/French-InternalStructure
/trunk/NacaRT/bin/doc/French-InternalStructure/NacaStructureInterne.doc
/trunk/NacaRT/bin/doc/French-ProductionEnvironment
/trunk/NacaRT/bin/doc/French-ProductionEnvironment/ExecutionEnv.doc
/trunk/NacaRT/bin/doc/OnlineSampleConfig.pdf
/trunk/NacaRT/bin/doc/Reference
/trunk/NacaRT/bin/doc/Reference/1. Base notions.html
/trunk/NacaRT/bin/doc/Reference/1. Configuration file.html
/trunk/NacaRT/bin/doc/Reference/2. Introduction.html
/trunk/NacaRT/bin/doc/Reference/2. JMX Console.html
/trunk/NacaRT/bin/doc/Reference/3. Overview - Usage.html
/trunk/NacaRT/bin/doc/Reference/3.1 Programs.html
/trunk/NacaRT/bin/doc/Reference/3.1.1 Sample Hello World.html
/trunk/NacaRT/bin/doc/Reference/3.1.2 Program physical representation.html
/trunk/NacaRT/bin/doc/Reference/3.1.3 Program declarations.html
/trunk/NacaRT/bin/doc/Reference/3.1.4 Calls and called programs.html
/trunk/NacaRT/bin/doc/Reference/3.1.4 Program instance execution.html
/trunk/NacaRT/bin/doc/Reference/3.1.5 Supported cobol-like verbs.html
/trunk/NacaRT/bin/doc/Reference/3.2 Variables.html
/trunk/NacaRT/bin/doc/Reference/3.3 Copy.html
/trunk/NacaRT/bin/doc/Reference/3.4 SQL - generalities.html
/trunk/NacaRT/bin/doc/Reference/3.4.1 SQL - non cursor statements.html
/trunk/NacaRT/bin/doc/Reference/3.4.2 SQL - Cursors management.html
/trunk/NacaRT/bin/doc/Reference/3.5 Screen handling.html
/trunk/NacaRT/bin/doc/Reference/3.6 Batch.html
/trunk/NacaRT/bin/doc/Reference/3.6.1 Data files.html
/trunk/NacaRT/bin/doc/Reference/3.6.2 File declaration.html
/trunk/NacaRT/bin/doc/Reference/3.6.3 File Input - Output.html
/trunk/NacaRT/bin/doc/Reference/3.6.4 File internal sorting.html
/trunk/NacaRT/bin/doc/Reference/Accounting.html
/trunk/NacaRT/bin/doc/Reference/Batch execution mode custom settings.html
/trunk/NacaRT/bin/doc/Reference/Common parameters to all execution
environments.html
/trunk/NacaRT/bin/doc/Reference/Garbage Collection thread tuning.html
/trunk/NacaRT/bin/doc/Reference/Naca documentation.html
/trunk/NacaRT/bin/doc/Reference/NacaRT execution environment.html
/trunk/NacaRT/bin/doc/Reference/NacaRT internal structure
Documentation.html
/trunk/NacaRT/bin/doc/Reference/NacaRT unit testing.html
/trunk/NacaRT/bin/doc/Reference/Online specific parameters.html
/trunk/NacaRT/bin/doc/Reference/SQL Connections and connection pooling.html
/trunk/NacaRT/bin/doc/Reference/images
/trunk/NacaRT/bin/doc/Reference/images/border
/trunk/NacaRT/bin/doc/Reference/images/border/spacer.gif
/trunk/NacaRT/bin/doc/Reference/images/icons
/trunk/NacaRT/bin/doc/Reference/images/icons/emoticons
/trunk/NacaRT/bin/doc/Reference/images/icons/emoticons/forbidden.gif
/trunk/NacaRT/bin/doc/Reference/index.html
/trunk/NacaRT/bin/doc/Reference/styles
/trunk/NacaRT/bin/doc/Reference/styles/site.css
/trunk/NacaRT/bin/idea
/trunk/NacaRT/bin/idea/action
/trunk/NacaRT/bin/idea/action/ActionCompat.class
/trunk/NacaRT/bin/idea/action/ActionPopup.class
/trunk/NacaRT/bin/idea/action/ActionScenarioList$XMLFilter.class
/trunk/NacaRT/bin/idea/action/ActionScenarioList.class
/trunk/NacaRT/bin/idea/action/ActionShowScreen.class
/trunk/NacaRT/bin/idea/action/CHTTPMapFieldLoader.class
/trunk/NacaRT/bin/idea/action/CustomApplicationLauncherAction.class
/trunk/NacaRT/bin/idea/action/HelpAction.class
/trunk/NacaRT/bin/idea/action/InputAnalyser.class
/trunk/NacaRT/bin/idea/clientRequests
/trunk/NacaRT/bin/idea/clientRequests/ClientProcessLauncher.class
/trunk/NacaRT/bin/idea/clientRequests/ClientRequestServlet.class
/trunk/NacaRT/bin/idea/clientRequests/ClientTerminalInfo.class
/trunk/NacaRT/bin/idea/clientRequests/httpClientRequester.class
/trunk/NacaRT/bin/idea/emulweb
/trunk/NacaRT/bin/idea/emulweb/CEmulMapFieldLoader.class
/trunk/NacaRT/bin/idea/emulweb/CScenarioPlayer$CScenarioWarningDetail.class
/trunk/NacaRT/bin/idea/emulweb/CScenarioPlayer$EditedField.class
/trunk/NacaRT/bin/idea/emulweb/CScenarioPlayer$ScenarioPlayerState.class
/trunk/NacaRT/bin/idea/emulweb/CScenarioPlayer$ScenarioRecordDataMode.class
/trunk/NacaRT/bin/idea/emulweb/CScenarioPlayer.class
/trunk/NacaRT/bin/idea/emulweb/EmulWebRunner.class
/trunk/NacaRT/bin/idea/emulweb/EmulWebThreadedRun.class
/trunk/NacaRT/bin/idea/emulweb/IDEAEmulWeb.class
/trunk/NacaRT/bin/idea/emulweb/ThreadEmulWeb.class
/trunk/NacaRT/bin/idea/entryPoint
/trunk/NacaRT/bin/idea/entryPoint/CJMapThreadedRun.class
/trunk/NacaRT/bin/idea/entryPoint/NacaRT.cfg
/trunk/NacaRT/bin/idea/entryPoint/NacaRT.cfg.bak
/trunk/NacaRT/bin/idea/entryPoint/OnlineMain.class
/trunk/NacaRT/bin/idea/entryPoint/ThreadCJMap.class
/trunk/NacaRT/bin/idea/help
/trunk/NacaRT/bin/idea/help/HelpForm.class
/trunk/NacaRT/bin/idea/manager
/trunk/NacaRT/bin/idea/manager/CESMManager.class
/trunk/NacaRT/bin/idea/manager/CESMReceive.class
/trunk/NacaRT/bin/idea/manager/CESMSendMap.class
/trunk/NacaRT/bin/idea/manager/CMapFieldLoader.class
/trunk/NacaRT/bin/idea/manager/PreloadFileFilter.class
/trunk/NacaRT/bin/idea/manager/PreloadProgramSettings.class
/trunk/NacaRT/bin/idea/manager/ProgramPreloader.class
/trunk/NacaRT/bin/idea/onlinePrgEnv

/trunk/NacaRT/bin/idea/onlinePrgEnv/AsynchronousProgramPreloaderThread.class
/trunk/NacaRT/bin/idea/onlinePrgEnv/OnlineEnvironment$FieldComparator.class
/trunk/NacaRT/bin/idea/onlinePrgEnv/OnlineEnvironment.class
/trunk/NacaRT/bin/idea/onlinePrgEnv/OnlineProgram.class
/trunk/NacaRT/bin/idea/onlinePrgEnv/OnlineProgramLoader.class
/trunk/NacaRT/bin/idea/onlinePrgEnv/OnlineProgramLoaderFactory.class
/trunk/NacaRT/bin/idea/onlinePrgEnv/OnlineProgramManager.class
/trunk/NacaRT/bin/idea/onlinePrgEnv/OnlineProgramManagerFactory.class
/trunk/NacaRT/bin/idea/onlinePrgEnv/OnlineResourceBeanManager.class
/trunk/NacaRT/bin/idea/onlinePrgEnv/OnlineResourceManager.class
/trunk/NacaRT/bin/idea/onlinePrgEnv/OnlineResourceManagerFactory.class
/trunk/NacaRT/bin/idea/onlinePrgEnv/OnlineSession.class
/trunk/NacaRT/bin/idea/programUtil
/trunk/NacaRT/bin/idea/programUtil/BaseHelpCenter.class
/trunk/NacaRT/bin/idea/semanticContext
/trunk/NacaRT/bin/idea/semanticContext/CMenuDef.class
/trunk/NacaRT/bin/idea/semanticContext/CMenuOptionDef.class
/trunk/NacaRT/bin/idea/semanticContext/CSemanticItem.class
/trunk/NacaRT/bin/idea/semanticContext/SemanticManager.class
/trunk/NacaRT/bin/idea/servlets
/trunk/NacaRT/bin/idea/servlets/BaseCheckServiceServlet.class
/trunk/NacaRT/bin/idea/servlets/CheckServiceServlet.class
/trunk/NacaRT/bin/idea/servlets/InitServlet.class
/trunk/NacaRT/bin/idea/servlets/PrintScreenServlet.class
/trunk/NacaRT/bin/idea/servlets/UpdateServlet.class
/trunk/NacaRT/bin/idea/servlets/UpdateThread.class
/trunk/NacaRT/bin/idea/servlets/XSLTServlet.class
/trunk/NacaRT/bin/idea/view
/trunk/NacaRT/bin/idea/view/View.class
/trunk/NacaRT/bin/idea/view/XMLMerger.class
/trunk/NacaRT/bin/idea/view/XMLMergerManager.class
/trunk/NacaRT/bin/ideaScript.xsl
/trunk/NacaRT/bin/images
/trunk/NacaRT/bin/images/DE
/trunk/NacaRT/bin/images/DE/ico_7A_copie_hi.gif
/trunk/NacaRT/bin/images/DE/ico_7A_copie_lo.gif
/trunk/NacaRT/bin/images/DE/ico_7A_credit_hi.gif
/trunk/NacaRT/bin/images/DE/ico_7A_credit_lo.gif
/trunk/NacaRT/bin/images/DE/ico_7A_eadm_hi.gif
/trunk/NacaRT/bin/images/DE/ico_7A_eadm_lo.gif
/trunk/NacaRT/bin/images/DE/ico_7A_fonct_hi.gif
/trunk/NacaRT/bin/images/DE/ico_7A_fonct_lo.gif
/trunk/NacaRT/bin/images/DE/ico_7A_prix_hi.gif
/trunk/NacaRT/bin/images/DE/ico_7A_prix_lo.gif
/trunk/NacaRT/bin/images/DE/ico_7A_prov_hi.gif
/trunk/NacaRT/bin/images/DE/ico_7A_prov_lo.gif
/trunk/NacaRT/bin/images/DE/ico_7A_tbord_hi.gif
/trunk/NacaRT/bin/images/DE/ico_7A_tbord_lo.gif
/trunk/NacaRT/bin/images/DE/ico_7A_texte_hi.gif
/trunk/NacaRT/bin/images/DE/ico_7A_texte_lo.gif
/trunk/NacaRT/bin/images/DE/ico_F12_hi.gif
/trunk/NacaRT/bin/images/DE/ico_F12_lo.gif
/trunk/NacaRT/bin/images/DE/ico_F1_hi.gif
/trunk/NacaRT/bin/images/DE/ico_F1_lo.gif
/trunk/NacaRT/bin/images/DE/ico_F2_hi.gif
/trunk/NacaRT/bin/images/DE/ico_F2_lo.gif
/trunk/NacaRT/bin/images/DE/ico_F3_hi.gif
/trunk/NacaRT/bin/images/DE/ico_F3_lo.gif
/trunk/NacaRT/bin/images/DE/ico_F4_hi.gif
/trunk/NacaRT/bin/images/DE/ico_F4_lo.gif
/trunk/NacaRT/bin/images/DE/ico_F9_hi.gif
/trunk/NacaRT/bin/images/DE/ico_F9_lo.gif
/trunk/NacaRT/bin/images/DE/ico_PMO_hi.gif
/trunk/NacaRT/bin/images/DE/ico_PMO_lo.gif
/trunk/NacaRT/bin/images/FR
/trunk/NacaRT/bin/images/FR/high.psp
/trunk/NacaRT/bin/images/FR/high_button.psp
/trunk/NacaRT/bin/images/FR/high_small.psp
/trunk/NacaRT/bin/images/FR/ico_7A_copie_hi.gif
/trunk/NacaRT/bin/images/FR/ico_7A_copie_lo.gif
/trunk/NacaRT/bin/images/FR/ico_7A_credit_hi.gif
/trunk/NacaRT/bin/images/FR/ico_7A_credit_lo.gif
/trunk/NacaRT/bin/images/FR/ico_7A_eadm_hi.gif
/trunk/NacaRT/bin/images/FR/ico_7A_eadm_lo.gif
/trunk/NacaRT/bin/images/FR/ico_7A_fonct_hi.gif
/trunk/NacaRT/bin/images/FR/ico_7A_fonct_lo.gif
/trunk/NacaRT/bin/images/FR/ico_7A_prix_hi.gif
/trunk/NacaRT/bin/images/FR/ico_7A_prix_lo.gif
/trunk/NacaRT/bin/images/FR/ico_7A_prov_hi.gif
/trunk/NacaRT/bin/images/FR/ico_7A_prov_lo.gif
/trunk/NacaRT/bin/images/FR/ico_7A_tbord_hi.gif
/trunk/NacaRT/bin/images/FR/ico_7A_tbord_lo.gif
/trunk/NacaRT/bin/images/FR/ico_7A_texte_hi.gif
/trunk/NacaRT/bin/images/FR/ico_7A_texte_lo.gif
/trunk/NacaRT/bin/images/FR/ico_F12_hi.gif
/trunk/NacaRT/bin/images/FR/ico_F12_lo.gif
/trunk/NacaRT/bin/images/FR/ico_F1_hi.gif
/trunk/NacaRT/bin/images/FR/ico_F1_lo.gif
/trunk/NacaRT/bin/images/FR/ico_F2_hi.gif
/trunk/NacaRT/bin/images/FR/ico_F2_lo.gif
/trunk/NacaRT/bin/images/FR/ico_F3_hi.gif
/trunk/NacaRT/bin/images/FR/ico_F3_lo.gif
/trunk/NacaRT/bin/images/FR/ico_F4_hi.gif
/trunk/NacaRT/bin/images/FR/ico_F4_lo.gif
/trunk/NacaRT/bin/images/FR/ico_F9_hi.gif
/trunk/NacaRT/bin/images/FR/ico_F9_lo.gif
/trunk/NacaRT/bin/images/FR/ico_PMO_hi.gif
/trunk/NacaRT/bin/images/FR/ico_PMO_lo.gif
/trunk/NacaRT/bin/images/FR/low.psp
/trunk/NacaRT/bin/images/FR/low_button.psp
/trunk/NacaRT/bin/images/FR/low_small.psp
/trunk/NacaRT/bin/images/IT
/trunk/NacaRT/bin/images/IT/ico_7A_copie_hi.gif
/trunk/NacaRT/bin/images/IT/ico_7A_copie_lo.gif
/trunk/NacaRT/bin/images/IT/ico_7A_credit_hi.gif
/trunk/NacaRT/bin/images/IT/ico_7A_credit_lo.gif
/trunk/NacaRT/bin/images/IT/ico_7A_eadm_hi.gif
/trunk/NacaRT/bin/images/IT/ico_7A_eadm_lo.gif
/trunk/NacaRT/bin/images/IT/ico_7A_fonct_hi.gif
/trunk/NacaRT/bin/images/IT/ico_7A_fonct_lo.gif
/trunk/NacaRT/bin/images/IT/ico_7A_prix_hi.gif
/trunk/NacaRT/bin/images/IT/ico_7A_prix_lo.gif
/trunk/NacaRT/bin/images/IT/ico_7A_prov_hi.gif
/trunk/NacaRT/bin/images/IT/ico_7A_prov_lo.gif
/trunk/NacaRT/bin/images/IT/ico_7A_tbord_hi.gif
/trunk/NacaRT/bin/images/IT/ico_7A_tbord_lo.gif
/trunk/NacaRT/bin/images/IT/ico_7A_texte_hi.gif
/trunk/NacaRT/bin/images/IT/ico_7A_texte_lo.gif
/trunk/NacaRT/bin/images/IT/ico_F12_hi.gif
/trunk/NacaRT/bin/images/IT/ico_F12_lo.gif
/trunk/NacaRT/bin/images/IT/ico_F1_hi.gif
/trunk/NacaRT/bin/images/IT/ico_F1_lo.gif
/trunk/NacaRT/bin/images/IT/ico_F2_hi.gif
/trunk/NacaRT/bin/images/IT/ico_F2_lo.gif
/trunk/NacaRT/bin/images/IT/ico_F3_hi.gif
/trunk/NacaRT/bin/images/IT/ico_F3_lo.gif
/trunk/NacaRT/bin/images/IT/ico_F4_hi.gif
/trunk/NacaRT/bin/images/IT/ico_F4_lo.gif
/trunk/NacaRT/bin/images/IT/ico_F9_hi.gif
/trunk/NacaRT/bin/images/IT/ico_F9_lo.gif
/trunk/NacaRT/bin/images/IT/ico_PMO_hi.gif
/trunk/NacaRT/bin/images/IT/ico_PMO_lo.gif
/trunk/NacaRT/bin/images/bg_content.gif
/trunk/NacaRT/bin/images/empty.gif
/trunk/NacaRT/bin/images/ico_7A_hi.gif
/trunk/NacaRT/bin/images/ico_7A_lo.gif
/trunk/NacaRT/bin/images/ico_7C_hi.gif
/trunk/NacaRT/bin/images/ico_7C_lo.gif
/trunk/NacaRT/bin/images/ico_7E_hi.gif
/trunk/NacaRT/bin/images/ico_7E_lo.gif
/trunk/NacaRT/bin/images/ico_DMS.gif
/trunk/NacaRT/bin/images/ico_F7_hi.gif
/trunk/NacaRT/bin/images/ico_F7_lo.gif
/trunk/NacaRT/bin/images/ico_F8_hi.gif
/trunk/NacaRT/bin/images/ico_F8_lo.gif
/trunk/NacaRT/bin/images/ico_bold_minus.gif
/trunk/NacaRT/bin/images/ico_bold_plus.gif
/trunk/NacaRT/bin/images/ico_crossmedia_hi.gif
/trunk/NacaRT/bin/images/ico_crossmedia_lo.gif
/trunk/NacaRT/bin/images/ico_enter_hi.gif
/trunk/NacaRT/bin/images/ico_enter_lo.gif
/trunk/NacaRT/bin/images/ico_error.gif
/trunk/NacaRT/bin/images/ico_exit_hi.gif
/trunk/NacaRT/bin/images/ico_exit_lo.gif
/trunk/NacaRT/bin/images/ico_help_hi.gif
/trunk/NacaRT/bin/images/ico_help_lo.gif
/trunk/NacaRT/bin/images/ico_help_small_hi.gif
/trunk/NacaRT/bin/images/ico_help_small_lo.gif
/trunk/NacaRT/bin/images/ico_internet_hi.gif
/trunk/NacaRT/bin/images/ico_internet_lo.gif
/trunk/NacaRT/bin/images/ico_l_ogin_hi.gif
/trunk/NacaRT/bin/images/ico_l_ogin_lo.gif
/trunk/NacaRT/bin/images/ico_l_ogout_hi.gif
/trunk/NacaRT/bin/images/ico_l_ogout_lo.gif
/trunk/NacaRT/bin/images/ico_line.gif
/trunk/NacaRT/bin/images/ico_mediaprint_hi.gif
/trunk/NacaRT/bin/images/ico_mediaprint_lo.gif
/trunk/NacaRT/bin/images/ico_minus_hi.gif
/trunk/NacaRT/bin/images/ico_minus_lo.gif
/trunk/NacaRT/bin/images/ico_pagedown_hi.gif
/trunk/NacaRT/bin/images/ico_pagedown_lo.gif
/trunk/NacaRT/bin/images/ico_pageleft_hi.gif
/trunk/NacaRT/bin/images/ico_pageleft_lo.gif
/trunk/NacaRT/bin/images/ico_pageright_hi.gif
/trunk/NacaRT/bin/images/ico_pageright_lo.gif
/trunk/NacaRT/bin/images/ico_pageup_hi.gif
/trunk/NacaRT/bin/images/ico_pageup_lo.gif
/trunk/NacaRT/bin/images/ico_plus_hi.gif
/trunk/NacaRT/bin/images/ico_plus_lo.gif
/trunk/NacaRT/bin/images/ico_printscreen.gif
/trunk/NacaRT/bin/images/ico_progress_hi.gif
/trunk/NacaRT/bin/images/ico_progress_lo.gif
/trunk/NacaRT/bin/images/ico_update.gif
/trunk/NacaRT/bin/images/ico_warning.gif
/trunk/NacaRT/bin/images/ico_zoom_minus.gif
/trunk/NacaRT/bin/images/ico_zoom_plus.gif
/trunk/NacaRT/bin/images/logo_mosse.gif
/trunk/NacaRT/bin/images/logo_pub2000.gif
/trunk/NacaRT/bin/images/logo_publicitas.gif
/trunk/NacaRT/bin/images/logo_publicitas_0.gif
/trunk/NacaRT/bin/images/logo_publicitas_1.gif
/trunk/NacaRT/bin/images/logo_publicitas_2.gif
/trunk/NacaRT/bin/images/logo_publiconnect.gif
/trunk/NacaRT/bin/images/logo_publiconnect_0.gif
/trunk/NacaRT/bin/images/logo_publiconnect_1.gif
/trunk/NacaRT/bin/images/logo_publiconnect_2.gif
/trunk/NacaRT/bin/images/logo_publimag.gif
/trunk/NacaRT/bin/images/logo_publimag_0.gif
/trunk/NacaRT/bin/images/logo_publimag_1.gif
/trunk/NacaRT/bin/images/logo_publimag_2.gif
/trunk/NacaRT/bin/images/logo_publimedia.gif
/trunk/NacaRT/bin/images/logo_publimedia_0.gif
/trunk/NacaRT/bin/images/logo_publimedia_1.gif
/trunk/NacaRT/bin/images/logo_publimedia_2.gif
/trunk/NacaRT/bin/lib
/trunk/NacaRT/bin/lib/BerkeleyDbForJavaEditionLicence.txt
/trunk/NacaRT/bin/lib/JLib.jar
/trunk/NacaRT/bin/lib/activation.jar
/trunk/NacaRT/bin/lib/commons-beanutils-bean-collections.jar
/trunk/NacaRT/bin/lib/commons-beanutils-core.jar
/trunk/NacaRT/bin/lib/commons-beanutils.jar
/trunk/NacaRT/bin/lib/commons-codec-1.3.jar
/trunk/NacaRT/bin/lib/commons-collections-3.1.jar
/trunk/NacaRT/bin/lib/commons-dbcp-1.2.1.jar
/trunk/NacaRT/bin/lib/commons-digester.jar
/trunk/NacaRT/bin/lib/commons-fileupload-1.0.jar
/trunk/NacaRT/bin/lib/commons-httpclient-3.0-rc3.jar
/trunk/NacaRT/bin/lib/commons-logging-api.jar
/trunk/NacaRT/bin/lib/commons-logging.jar
/trunk/NacaRT/bin/lib/commons-net-1.3.0.jar
/trunk/NacaRT/bin/lib/commons-pool-1.2.jar
/trunk/NacaRT/bin/lib/db2java.zip
/trunk/NacaRT/bin/lib/jasper-runtime.jar
/trunk/NacaRT/bin/lib/je-3.2.13.jar
/trunk/NacaRT/bin/lib/jsp-api.jar
/trunk/NacaRT/bin/lib/junit.jar
/trunk/NacaRT/bin/lib/log4j-1.2.8.jar
/trunk/NacaRT/bin/lib/mail.jar
/trunk/NacaRT/bin/lib/ojdbc5.jar
/trunk/NacaRT/bin/lib/ojdbc6.jar
/trunk/NacaRT/bin/lib/serializer.jar
/trunk/NacaRT/bin/lib/servlet-api.jar
/trunk/NacaRT/bin/lib/struts.jar
/trunk/NacaRT/bin/lib/xercesImpl.jar
/trunk/NacaRT/bin/lib/xml-apis.jar
/trunk/NacaRT/bin/lib/xsltc.jar
/trunk/NacaRT/bin/log
/trunk/NacaRT/bin/nacaLib
/trunk/NacaRT/bin/nacaLib/CESM
/trunk/NacaRT/bin/nacaLib/CESM/CESMAgency.class
/trunk/NacaRT/bin/nacaLib/CESM/CESMAssign.class
/trunk/NacaRT/bin/nacaLib/CESM/CESMLink.class
/trunk/NacaRT/bin/nacaLib/CESM/CESMQueue.class
/trunk/NacaRT/bin/nacaLib/CESM/CESMQueueManager.class
/trunk/NacaRT/bin/nacaLib/CESM/CESMReadQueue.class
/trunk/NacaRT/bin/nacaLib/CESM/CESMRetrieve.class
/trunk/NacaRT/bin/nacaLib/CESM/CESMReturnCode.class
/trunk/NacaRT/bin/nacaLib/CESM/CESMSendMap.class
/trunk/NacaRT/bin/nacaLib/CESM/CESMStart.class
/trunk/NacaRT/bin/nacaLib/CESM/CESMStartData.class
/trunk/NacaRT/bin/nacaLib/CESM/CESMTempStorageColl.class
/trunk/NacaRT/bin/nacaLib/CESM/CESMUserPermission.class
/trunk/NacaRT/bin/nacaLib/CESM/CESMWriteQueue.class
/trunk/NacaRT/bin/nacaLib/CESM/CESMXctl.class
/trunk/NacaRT/bin/nacaLib/accounting
/trunk/NacaRT/bin/nacaLib/accounting/AccountingRecordProgram.class
/trunk/NacaRT/bin/nacaLib/accounting/AccountingRecordTrans.class
/trunk/NacaRT/bin/nacaLib/accounting/AccountingRessourceDesc.class
/trunk/NacaRT/bin/nacaLib/accounting/CriteriaEndRunMain.class
/trunk/NacaRT/bin/nacaLib/appOpening
/trunk/NacaRT/bin/nacaLib/appOpening/CalendarCacheManager.class
/trunk/NacaRT/bin/nacaLib/appOpening/CalendarInstant.class
/trunk/NacaRT/bin/nacaLib/appOpening/CalendarOpenState.class
/trunk/NacaRT/bin/nacaLib/appOpening/JmxAppCloser.class
/trunk/NacaRT/bin/nacaLib/appOpening/JmxAppOpener.class
/trunk/NacaRT/bin/nacaLib/appOpening/OpenCalendar.class
/trunk/NacaRT/bin/nacaLib/appOpening/OpenCalendarManager.class
/trunk/NacaRT/bin/nacaLib/appOpening/OpenCalendarRange.class
/trunk/NacaRT/bin/nacaLib/appOpening/OpenCalendarRanges.class
/trunk/NacaRT/bin/nacaLib/appOpening/OpenCalendarRangesForDates.class
/trunk/NacaRT/bin/nacaLib/appOpening/OpenCalendarWeek.class
/trunk/NacaRT/bin/nacaLib/asyncTasks
/trunk/NacaRT/bin/nacaLib/asyncTasks/CAsynchronousTask.class
/trunk/NacaRT/bin/nacaLib/base
/trunk/NacaRT/bin/nacaLib/base/CJMapObject.class
/trunk/NacaRT/bin/nacaLib/base/JmxAppEnabler.class
/trunk/NacaRT/bin/nacaLib/base/JmxGeneralStat.class
/trunk/NacaRT/bin/nacaLib/base/NacaRTVersion.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv
/trunk/NacaRT/bin/nacaLib/basePrgEnv/AsyncThreadJmxManager.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/AsyncThreadMBean.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/BaseCESMManager.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/BaseEnvironment.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/BaseProgram.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/BaseProgramLoader.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/BaseProgramManager.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/BaseProgramManagerFactory.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/BaseResourceManager.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/BaseSession.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/CBaseMapFieldLoader.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/CBaseProgramLoaderFactory.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/CallInterceptor.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/CallInterceptorManager.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/CurrentUserInfo.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/DecimalPointIsComma.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/EnvironmentStatus.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/FileManager.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/FileManagerEntry.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/ProgramSequencer.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/SessionEnvironmentRequester.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/StdIn.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/TransThreadMBean.class
/trunk/NacaRT/bin/nacaLib/basePrgEnv/TransThreadManager.class
/trunk/NacaRT/bin/nacaLib/batchOOApi
/trunk/NacaRT/bin/nacaLib/batchOOApi/BaseRecord.class
/trunk/NacaRT/bin/nacaLib/batchOOApi/BaseVariableLengthRecord.class
/trunk/NacaRT/bin/nacaLib/batchOOApi/FillerReadWriteExt.class
/trunk/NacaRT/bin/nacaLib/batchOOApi/ModeReadWriteExt.class
/trunk/NacaRT/bin/nacaLib/batchOOApi/WriteBufferExt.class
/trunk/NacaRT/bin/nacaLib/batchPrgEnv
/trunk/NacaRT/bin/nacaLib/batchPrgEnv/BatchEnvironment.class
/trunk/NacaRT/bin/nacaLib/batchPrgEnv/BatchMain.class
/trunk/NacaRT/bin/nacaLib/batchPrgEnv/BatchProgram.class
/trunk/NacaRT/bin/nacaLib/batchPrgEnv/BatchProgramLoader.class
/trunk/NacaRT/bin/nacaLib/batchPrgEnv/BatchProgramLoaderFactory.class
/trunk/NacaRT/bin/nacaLib/batchPrgEnv/BatchProgramManager.class
/trunk/NacaRT/bin/nacaLib/batchPrgEnv/BatchProgramManagerFactory.class
/trunk/NacaRT/bin/nacaLib/batchPrgEnv/BatchResourceManager.class
/trunk/NacaRT/bin/nacaLib/batchPrgEnv/BatchResourceManagerFactory.class
/trunk/NacaRT/bin/nacaLib/batchPrgEnv/BatchSession.class
/trunk/NacaRT/bin/nacaLib/bdb
/trunk/NacaRT/bin/nacaLib/bdb/BTreeCommandSort.class
/trunk/NacaRT/bin/nacaLib/bdb/BTreeEnv.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreeEncoding.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreeFile.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreeKeyComparator.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreeKeyDescription.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreeKeySegment.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreeKeySegmentAlphaNum.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreeKeySegmentBinary.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreeKeySegmentComp0.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreeKeySegmentComp3.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreeKeySegmentSignBinary.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreeKeySegmentType.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreeKeySegmentUnsignBinary.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreeKeySegmentUnsignedBinaryOrPacked.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreePooledReaderThread.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreePooledThreadReaderFactory.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreePooledThreadWriterFactory.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreePooledWriterThread.class
/trunk/NacaRT/bin/nacaLib/bdb/BtreeSegmentKeyTypeFactory.class
/trunk/NacaRT/bin/nacaLib/bdb/FileKeyExporter.class
/trunk/NacaRT/bin/nacaLib/bdb/MonoThreadedSortAddItem.class
/trunk/NacaRT/bin/nacaLib/bdb/MultiThreadedSortAddItem.class
/trunk/NacaRT/bin/nacaLib/bdb/MultiThreadedSortAddItemCache.class
/trunk/NacaRT/bin/nacaLib/bdb/SegmentKeyTypeFactoryAlphaNum.class
/trunk/NacaRT/bin/nacaLib/bdb/SegmentKeyTypeFactoryComp0.class
/trunk/NacaRT/bin/nacaLib/bdb/SegmentKeyTypeFactoryComp3.class
/trunk/NacaRT/bin/nacaLib/bdb/SegmentKeyTypeFactorySignBinary.class
/trunk/NacaRT/bin/nacaLib/bdb/SegmentKeyTypeFactoryUnsignBinary.class
/trunk/NacaRT/bin/nacaLib/bdb/SortedRecordReq.class
/trunk/NacaRT/bin/nacaLib/bdb/SortedRecordsPoolOfThreadReader.class
/trunk/NacaRT/bin/nacaLib/callPrg
/trunk/NacaRT/bin/nacaLib/callPrg/CalledEnvironment.class
/trunk/NacaRT/bin/nacaLib/callPrg/CalledMain.class
/trunk/NacaRT/bin/nacaLib/callPrg/CalledProgram.class
/trunk/NacaRT/bin/nacaLib/callPrg/CalledProgramLoader.class
/trunk/NacaRT/bin/nacaLib/callPrg/CalledProgramLoaderFactory.class
/trunk/NacaRT/bin/nacaLib/callPrg/CalledProgramManager.class
/trunk/NacaRT/bin/nacaLib/callPrg/CalledProgramManagerFactory.class
/trunk/NacaRT/bin/nacaLib/callPrg/CalledResourceManager.class
/trunk/NacaRT/bin/nacaLib/callPrg/CalledResourceManagerFactory.class
/trunk/NacaRT/bin/nacaLib/callPrg/CalledSession.class
/trunk/NacaRT/bin/nacaLib/callPrg/SubProgramCallLogger.class
/trunk/NacaRT/bin/nacaLib/calledPrgSupport

/trunk/NacaRT/bin/nacaLib/calledPrgSupport/BaseCalledPrgPublicArgPositioned.class
/trunk/NacaRT/bin/nacaLib/calledPrgSupport/BaseCalledPrgPublicArgWay.class

/trunk/NacaRT/bin/nacaLib/calledPrgSupport/CalledPrgPublicArgBeanPositioned.class

/trunk/NacaRT/bin/nacaLib/calledPrgSupport/CalledPrgPublicArgDoubleInPositioned.class

/trunk/NacaRT/bin/nacaLib/calledPrgSupport/CalledPrgPublicArgDoubleOutPositioned.class

/trunk/NacaRT/bin/nacaLib/calledPrgSupport/CalledPrgPublicArgIntInPositioned.class

/trunk/NacaRT/bin/nacaLib/calledPrgSupport/CalledPrgPublicArgIntOutPositioned.class

/trunk/NacaRT/bin/nacaLib/calledPrgSupport/CalledPrgPublicArgStringInPositioned.class

/trunk/NacaRT/bin/nacaLib/calledPrgSupport/CalledPrgPublicArgStringOutPositioned.class

/trunk/NacaRT/bin/nacaLib/calledPrgSupport/CalledProgramParamSupportByPosition.class

/trunk/NacaRT/bin/nacaLib/calledPrgSupport/ProgramCallerWithArgsPosition.class
/trunk/NacaRT/bin/nacaLib/classLoad
/trunk/NacaRT/bin/nacaLib/classLoad/CustomClassDynLoader.class
/trunk/NacaRT/bin/nacaLib/classLoad/CustomClassDynLoaderFactory.class
/trunk/NacaRT/bin/nacaLib/dbUtils
/trunk/NacaRT/bin/nacaLib/dbUtils/BaseFileScriptReader.class
/trunk/NacaRT/bin/nacaLib/dbUtils/BaseSQLUtils.class
/trunk/NacaRT/bin/nacaLib/dbUtils/DbTransfer.class
/trunk/NacaRT/bin/nacaLib/dbUtils/DbTransferDesc.class
/trunk/NacaRT/bin/nacaLib/dbUtils/FileExporter.class
/trunk/NacaRT/bin/nacaLib/dbUtils/FileSQLLoadScriptReader.class
/trunk/NacaRT/bin/nacaLib/dbUtils/FileSysinReader.class
/trunk/NacaRT/bin/nacaLib/dbUtils/LoadScriptLineInfo.class
/trunk/NacaRT/bin/nacaLib/dbUtils/PooledThreadDbTransfer.class
/trunk/NacaRT/bin/nacaLib/dbUtils/PooledThreadDbTransferFactory.class
/trunk/NacaRT/bin/nacaLib/dbUtils/SQLFileExecutor.class
/trunk/NacaRT/bin/nacaLib/dbUtils/SQLLoad.class
/trunk/NacaRT/bin/nacaLib/dbUtils/SQLUnload.class
/trunk/NacaRT/bin/nacaLib/dbUtils/TableToTransfer.class
/trunk/NacaRT/bin/nacaLib/debug
/trunk/NacaRT/bin/nacaLib/debug/BufferSpy.class
/trunk/NacaRT/bin/nacaLib/debug/BufferSpyChunk.class
/trunk/NacaRT/bin/nacaLib/debug/BufferSpyChunks.class
/trunk/NacaRT/bin/nacaLib/exceptions
/trunk/NacaRT/bin/nacaLib/exceptions/AbortSessionException.class
/trunk/NacaRT/bin/nacaLib/exceptions/CESMAbendException.class
/trunk/NacaRT/bin/nacaLib/exceptions/CESMReturnException.class
/trunk/NacaRT/bin/nacaLib/exceptions/CExitException.class
/trunk/NacaRT/bin/nacaLib/exceptions/CGotoException.class
/trunk/NacaRT/bin/nacaLib/exceptions/CGotoOtherSectionException.class

/trunk/NacaRT/bin/nacaLib/exceptions/CGotoOtherSectionParagraphException.class
/trunk/NacaRT/bin/nacaLib/exceptions/CStopRunException.class
/trunk/NacaRT/bin/nacaLib/exceptions/CXctlException.class
/trunk/NacaRT/bin/nacaLib/exceptions/CannotOpenFileException.class
/trunk/NacaRT/bin/nacaLib/exceptions/DumpProgramException.class
/trunk/NacaRT/bin/nacaLib/exceptions/FileDescriptorNofFoundException.class
/trunk/NacaRT/bin/nacaLib/exceptions/InputFileNotFoundException.class
/trunk/NacaRT/bin/nacaLib/exceptions/NacaBatchFileException.class
/trunk/NacaRT/bin/nacaLib/exceptions/NacaRTException.class
/trunk/NacaRT/bin/nacaLib/exceptions/OccursOverflowException.class
/trunk/NacaRT/bin/nacaLib/exceptions/ProgramCallerException.class
/trunk/NacaRT/bin/nacaLib/exceptions/SQLErrorException.class
/trunk/NacaRT/bin/nacaLib/exceptions/TooManyCloseFileException.class
/trunk/NacaRT/bin/nacaLib/fileConverter
/trunk/NacaRT/bin/nacaLib/fileConverter/ConverterProgram.class
/trunk/NacaRT/bin/nacaLib/fileConverter/CopyConverterClassLoader.class
/trunk/NacaRT/bin/nacaLib/fileConverter/FileConverter.class
/trunk/NacaRT/bin/nacaLib/fileConverter/FileEncodingConverter.class

/trunk/NacaRT/bin/nacaLib/fileConverter/FileEncodingConverterWithClass.class
/trunk/NacaRT/bin/nacaLib/fileConverter/FileEncodingConverterWithDesc.class
/trunk/NacaRT/bin/nacaLib/fileConverter/FileSearchGeneration.class
/trunk/NacaRT/bin/nacaLib/fileConverter/FileUtil.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/DeclareTypeFPacAlphaNum.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/DeclareTypeFPacNumEdited.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/DeclareTypeFPacRaw.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/FPacBufferCounter.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/FPacFileDeclaration.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/FPacFileDescriptor.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/FPacProgram.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/FPacRecordFiller.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/FPacVarCacheManager.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/FPacVarManager.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/FPacVarSectionDeclaration.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/PackWorking.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/VarFPacAlphaNum.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/VarFPacAlphaNumLengthUndef.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/VarFPacLengthUndef.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/VarFPacNumEdited.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/VarFPacNumIntSignComp3.class

/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/VarFPacNumIntSignComp3LengthUndef.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/VarFPacNumIntSignComp4.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/VarFPacNumLongSignComp4.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/VarFPacNumShortSignComp4.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/VarFPacRaw.class
/trunk/NacaRT/bin/nacaLib/fpacPrgEnv/VarFPacRawLengthUndef.class
/trunk/NacaRT/bin/nacaLib/mapSupport
/trunk/NacaRT/bin/nacaLib/mapSupport/LanguageCode.class
/trunk/NacaRT/bin/nacaLib/mapSupport/LocalizedString.class
/trunk/NacaRT/bin/nacaLib/mapSupport/Map.class
/trunk/NacaRT/bin/nacaLib/mapSupport/MapFieldAttrColor.class
/trunk/NacaRT/bin/nacaLib/mapSupport/MapFieldAttrFill.class
/trunk/NacaRT/bin/nacaLib/mapSupport/MapFieldAttrHighlighting.class
/trunk/NacaRT/bin/nacaLib/mapSupport/MapFieldAttrIntensity.class
/trunk/NacaRT/bin/nacaLib/mapSupport/MapFieldAttrJustify.class
/trunk/NacaRT/bin/nacaLib/mapSupport/MapFieldAttrModified.class
/trunk/NacaRT/bin/nacaLib/mapSupport/MapFieldAttrProtection.class
/trunk/NacaRT/bin/nacaLib/mapSupport/MapFieldAttribute.class
/trunk/NacaRT/bin/nacaLib/mapSupport/MapFieldBaseAttr.class
/trunk/NacaRT/bin/nacaLib/mapSupport/MapFieldFlag.class
/trunk/NacaRT/bin/nacaLib/mathSupport
/trunk/NacaRT/bin/nacaLib/mathSupport/MathAdd.class
/trunk/NacaRT/bin/nacaLib/mathSupport/MathBase.class
/trunk/NacaRT/bin/nacaLib/mathSupport/MathDivide.class
/trunk/NacaRT/bin/nacaLib/mathSupport/MathMultiply.class
/trunk/NacaRT/bin/nacaLib/mathSupport/MathPower.class
/trunk/NacaRT/bin/nacaLib/mathSupport/MathSubtract.class
/trunk/NacaRT/bin/nacaLib/misc
/trunk/NacaRT/bin/nacaLib/misc/CCESMFakeMethodContainer.class
/trunk/NacaRT/bin/nacaLib/misc/CCommarea.class
/trunk/NacaRT/bin/nacaLib/misc/CLocalizedTextManager.class
/trunk/NacaRT/bin/nacaLib/misc/IntelSignBinaryBufferStorage.class
/trunk/NacaRT/bin/nacaLib/misc/IntelUnsignBinaryBufferStorage.class
/trunk/NacaRT/bin/nacaLib/misc/KeyPressed.class
/trunk/NacaRT/bin/nacaLib/misc/Log4JConfiguration.txt
/trunk/NacaRT/bin/nacaLib/misc/LogDisplay.class
/trunk/NacaRT/bin/nacaLib/misc/LogFlowCustomNacaRT.class
/trunk/NacaRT/bin/nacaLib/misc/LogFlowDisplay.class
/trunk/NacaRT/bin/nacaLib/misc/MailUtil.class
/trunk/NacaRT/bin/nacaLib/misc/NacaToolBox.class
/trunk/NacaRT/bin/nacaLib/misc/NumberParserDec.class
/trunk/NacaRT/bin/nacaLib/misc/Pointer.class
/trunk/NacaRT/bin/nacaLib/misc/SemanticContextDef.class
/trunk/NacaRT/bin/nacaLib/misc/StringAsciiEbcdicUtil.class
/trunk/NacaRT/bin/nacaLib/pathManager
/trunk/NacaRT/bin/nacaLib/pathManager/PathNameValue.class
/trunk/NacaRT/bin/nacaLib/pathManager/PathsManager.class
/trunk/NacaRT/bin/nacaLib/program
/trunk/NacaRT/bin/nacaLib/program/CCallProgram.class
/trunk/NacaRT/bin/nacaLib/program/CESMCommandCode.class
/trunk/NacaRT/bin/nacaLib/program/CJMapRunnable.class
/trunk/NacaRT/bin/nacaLib/program/CallbackSearch.class
/trunk/NacaRT/bin/nacaLib/program/CompareResult.class
/trunk/NacaRT/bin/nacaLib/program/Copy.class
/trunk/NacaRT/bin/nacaLib/program/CopyManager.class
/trunk/NacaRT/bin/nacaLib/program/CopyReplacing.class
/trunk/NacaRT/bin/nacaLib/program/CopyReplacingItem.class
/trunk/NacaRT/bin/nacaLib/program/CoverageStatByName.class
/trunk/NacaRT/bin/nacaLib/program/CoverageStatByPrg.class
/trunk/NacaRT/bin/nacaLib/program/Paragraph.class
/trunk/NacaRT/bin/nacaLib/program/ProgramCopyOwner.class
/trunk/NacaRT/bin/nacaLib/program/Section.class
/trunk/NacaRT/bin/nacaLib/program/Sentence.class
/trunk/NacaRT/bin/nacaLib/program/SpecialCode.class
/trunk/NacaRT/bin/nacaLib/program/SpecialName.class
/trunk/NacaRT/bin/nacaLib/program/StatCoverage.class
/trunk/NacaRT/bin/nacaLib/program/StatCoverageType.class
/trunk/NacaRT/bin/nacaLib/programPool
/trunk/NacaRT/bin/nacaLib/programPool/ProgramInstancesPool.class
/trunk/NacaRT/bin/nacaLib/programPool/ProgramPoolManager.class
/trunk/NacaRT/bin/nacaLib/programPool/SharedProgramInstanceData.class

/trunk/NacaRT/bin/nacaLib/programPool/SharedProgramInstanceDataCatalog.class
/trunk/NacaRT/bin/nacaLib/programStructure
/trunk/NacaRT/bin/nacaLib/programStructure/DataDivision.class
/trunk/NacaRT/bin/nacaLib/programStructure/DataSectionFile.class
/trunk/NacaRT/bin/nacaLib/programStructure/DataSectionLinkage.class
/trunk/NacaRT/bin/nacaLib/programStructure/DataSectionWorking.class
/trunk/NacaRT/bin/nacaLib/programStructure/Division.class
/trunk/NacaRT/bin/nacaLib/spServer
/trunk/NacaRT/bin/nacaLib/spServer/SpServerEnvironment.class
/trunk/NacaRT/bin/nacaLib/spServer/SpServerProgram.class
/trunk/NacaRT/bin/nacaLib/spServer/SpServerProgramLoader.class
/trunk/NacaRT/bin/nacaLib/spServer/SpServerProgramLoaderFactory.class
/trunk/NacaRT/bin/nacaLib/spServer/SpServerProgramManager.class
/trunk/NacaRT/bin/nacaLib/spServer/SpServerProgramManagerFactory.class
/trunk/NacaRT/bin/nacaLib/spServer/SpServerResourceManager.class
/trunk/NacaRT/bin/nacaLib/spServer/SpServerResourceManagerFactory.class
/trunk/NacaRT/bin/nacaLib/spServer/SpServerSession.class
/trunk/NacaRT/bin/nacaLib/spServer/StoredProcedure.class
/trunk/NacaRT/bin/nacaLib/sqlSupport
/trunk/NacaRT/bin/nacaLib/sqlSupport/CSQLIntoItem.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/CSQLIntoItemRowId.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/CSQLItem.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/CSQLItemRowId.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/CSQLItemType.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/CSQLPreparedStatement.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/CSQLPreparedStatementDB2.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/CSQLPreparedStatementOracle.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/CSQLResultSet.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/CSQLSemanticContextDef.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/CSQLStatus.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/LiteralStmtManager.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/PreparedCallableStatement.class

/trunk/NacaRT/bin/nacaLib/sqlSupport/PreparedDeleteStmtColumnTypeManager.class

/trunk/NacaRT/bin/nacaLib/sqlSupport/PreparedInsertStmtColumnTypeManager.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/PreparedStmtColumnTypeManager.class

/trunk/NacaRT/bin/nacaLib/sqlSupport/PreparedUpdateStmtColumnTypeManager.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/RecordColTypeManagerBase.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/RecordColTypeManagerChar.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/RecordColTypeManagerDate.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/RecordColTypeManagerDecimal.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/RecordColTypeManagerDecimalInt.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/RecordColTypeManagerDecimalLong.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/RecordColTypeManagerOther.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/RecordColTypeManagerTimestamp.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/RecordColTypeManagerVarchar.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/RecordSetCacheColTypeType.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/SQL.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/SQLCall.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/SQLCode.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/SQLCodeValue.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/SQLConnection.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/SQLConnectionManager.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/SQLCursor.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/SQLCursorFetch.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/SQLCursorOperation.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/SQLErrorGotoContinueType.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/SQLErrorManager.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/SQLExecuteStart.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/SQLRecordSetVarFiller.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/SQLRecordSetVarFillerItem.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/StoredProcInfo.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/StoredProcParamDesc.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/StoredProcParams.class
/trunk/NacaRT/bin/nacaLib/sqlSupport/StoredProcSupport.class
/trunk/NacaRT/bin/nacaLib/stringSupport
/trunk/NacaRT/bin/nacaLib/stringSupport/Concat.class
/trunk/NacaRT/bin/nacaLib/stringSupport/ConcatTo.class
/trunk/NacaRT/bin/nacaLib/stringSupport/InspectConverting.class
/trunk/NacaRT/bin/nacaLib/stringSupport/InspectConvertingSingleChar.class
/trunk/NacaRT/bin/nacaLib/stringSupport/InspectReplacing.class
/trunk/NacaRT/bin/nacaLib/stringSupport/InspectReplacingType.class
/trunk/NacaRT/bin/nacaLib/stringSupport/InspectTallying.class
/trunk/NacaRT/bin/nacaLib/stringSupport/SearchAllHandler.class
/trunk/NacaRT/bin/nacaLib/stringSupport/Unstring.class
/trunk/NacaRT/bin/nacaLib/stringSupport/UnstringDelimiter.class
/trunk/NacaRT/bin/nacaLib/stringSupport/UnstringManager.class
/trunk/NacaRT/bin/nacaLib/stringSupport/UnstringToManager.class
/trunk/NacaRT/bin/nacaLib/tempCache
/trunk/NacaRT/bin/nacaLib/tempCache/CStr.class
/trunk/NacaRT/bin/nacaLib/tempCache/CStrManager.class
/trunk/NacaRT/bin/nacaLib/tempCache/CStrNumber.class
/trunk/NacaRT/bin/nacaLib/tempCache/CStrString.class
/trunk/NacaRT/bin/nacaLib/tempCache/TempCache.class
/trunk/NacaRT/bin/nacaLib/tempCache/TempCacheLocator.class
/trunk/NacaRT/bin/nacaLib/tempCache/TempCacheStack.class
/trunk/NacaRT/bin/nacaLib/tempCache/TempVarManager.class
/trunk/NacaRT/bin/nacaLib/tempCache/TempVarTypeManager.class
/trunk/NacaRT/bin/nacaLib/varEx
/trunk/NacaRT/bin/nacaLib/varEx/BaseFileDescriptor.class
/trunk/NacaRT/bin/nacaLib/varEx/CCallParam.class
/trunk/NacaRT/bin/nacaLib/varEx/CEditSemanticContextMapAssoc.class
/trunk/NacaRT/bin/nacaLib/varEx/CInitialValue.class
/trunk/NacaRT/bin/nacaLib/varEx/CInitialValueStd.class
/trunk/NacaRT/bin/nacaLib/varEx/CLevel.class
/trunk/NacaRT/bin/nacaLib/varEx/CacheCacheMoveCorresponding.class
/trunk/NacaRT/bin/nacaLib/varEx/CallParamByCharBuffer.class
/trunk/NacaRT/bin/nacaLib/varEx/CallParamByLength.class
/trunk/NacaRT/bin/nacaLib/varEx/CallParamByRef.class
/trunk/NacaRT/bin/nacaLib/varEx/CallParamByStringValue.class
/trunk/NacaRT/bin/nacaLib/varEx/CallParamByValue.class
/trunk/NacaRT/bin/nacaLib/varEx/CallParamFpac.class
/trunk/NacaRT/bin/nacaLib/varEx/CobolConstant.class
/trunk/NacaRT/bin/nacaLib/varEx/CobolConstantBase.class
/trunk/NacaRT/bin/nacaLib/varEx/CobolConstantHighValue.class
/trunk/NacaRT/bin/nacaLib/varEx/CobolConstantLowValue.class
/trunk/NacaRT/bin/nacaLib/varEx/CobolConstantSpace.class
/trunk/NacaRT/bin/nacaLib/varEx/CobolConstantZero.class
/trunk/NacaRT/bin/nacaLib/varEx/ComparisonMode.class
/trunk/NacaRT/bin/nacaLib/varEx/Cond.class
/trunk/NacaRT/bin/nacaLib/varEx/CondValue.class
/trunk/NacaRT/bin/nacaLib/varEx/Console.class
/trunk/NacaRT/bin/nacaLib/varEx/CoupleIdValue.class
/trunk/NacaRT/bin/nacaLib/varEx/CoupleVar.class
/trunk/NacaRT/bin/nacaLib/varEx/DataSection.class
/trunk/NacaRT/bin/nacaLib/varEx/DataSectionType.class
/trunk/NacaRT/bin/nacaLib/varEx/Dec.class
/trunk/NacaRT/bin/nacaLib/varEx/DeclareType9.class
/trunk/NacaRT/bin/nacaLib/varEx/DeclareTypeBase.class
/trunk/NacaRT/bin/nacaLib/varEx/DeclareTypeCond.class
/trunk/NacaRT/bin/nacaLib/varEx/DeclareTypeEditInMap.class
/trunk/NacaRT/bin/nacaLib/varEx/DeclareTypeEditInMapRedefine.class
/trunk/NacaRT/bin/nacaLib/varEx/DeclareTypeEditInMapRedefineNum.class
/trunk/NacaRT/bin/nacaLib/varEx/DeclareTypeEditInMapRedefineNumEdited.class
/trunk/NacaRT/bin/nacaLib/varEx/DeclareTypeFPacSignComp4.class
/trunk/NacaRT/bin/nacaLib/varEx/DeclareTypeFPacSignIntComp3.class
/trunk/NacaRT/bin/nacaLib/varEx/DeclareTypeForm.class
/trunk/NacaRT/bin/nacaLib/varEx/DeclareTypeG.class
/trunk/NacaRT/bin/nacaLib/varEx/DeclareTypeMapRedefine.class
/trunk/NacaRT/bin/nacaLib/varEx/DeclareTypeNumEdited.class
/trunk/NacaRT/bin/nacaLib/varEx/DeclareTypeX.class
/trunk/NacaRT/bin/nacaLib/varEx/Edit.class
/trunk/NacaRT/bin/nacaLib/varEx/EditAttributManager.class
/trunk/NacaRT/bin/nacaLib/varEx/EditInMap.class
/trunk/NacaRT/bin/nacaLib/varEx/EditInMapRedefine.class
/trunk/NacaRT/bin/nacaLib/varEx/EditInMapRedefineNum.class
/trunk/NacaRT/bin/nacaLib/varEx/EditInMapRedefineNumEdited.class
/trunk/NacaRT/bin/nacaLib/varEx/EditSupport.class
/trunk/NacaRT/bin/nacaLib/varEx/EncodingConvertionRange.class
/trunk/NacaRT/bin/nacaLib/varEx/FileDescriptor.class
/trunk/NacaRT/bin/nacaLib/varEx/FileDescriptorAutoCloseManager.class
/trunk/NacaRT/bin/nacaLib/varEx/FileDescriptorDepending.class
/trunk/NacaRT/bin/nacaLib/varEx/FileDescriptorOpenStatus.class
/trunk/NacaRT/bin/nacaLib/varEx/FileOrganization.class
/trunk/NacaRT/bin/nacaLib/varEx/FileSelectStatus.class
/trunk/NacaRT/bin/nacaLib/varEx/FileStatusEnum.class
/trunk/NacaRT/bin/nacaLib/varEx/Form.class
/trunk/NacaRT/bin/nacaLib/varEx/FoundFlag.class
/trunk/NacaRT/bin/nacaLib/varEx/GenericValue.class
/trunk/NacaRT/bin/nacaLib/varEx/GenericValueChar.class
/trunk/NacaRT/bin/nacaLib/varEx/GenericValueDec.class
/trunk/NacaRT/bin/nacaLib/varEx/GenericValueDouble.class
/trunk/NacaRT/bin/nacaLib/varEx/GenericValueInt.class
/trunk/NacaRT/bin/nacaLib/varEx/GenericValueString.class
/trunk/NacaRT/bin/nacaLib/varEx/IncWrapper.class
/trunk/NacaRT/bin/nacaLib/varEx/InitializeCache.class
/trunk/NacaRT/bin/nacaLib/varEx/InitializeCachedItem.class
/trunk/NacaRT/bin/nacaLib/varEx/InitializeCachedItemCharsArray.class
/trunk/NacaRT/bin/nacaLib/varEx/InitializeCachedItemRepeatingChar.class
/trunk/NacaRT/bin/nacaLib/varEx/InitializeManager.class
/trunk/NacaRT/bin/nacaLib/varEx/InitializeManagerDouble.class
/trunk/NacaRT/bin/nacaLib/varEx/InitializeManagerDoubleEdited.class
/trunk/NacaRT/bin/nacaLib/varEx/InitializeManagerInt.class
/trunk/NacaRT/bin/nacaLib/varEx/InitializeManagerIntEdited.class
/trunk/NacaRT/bin/nacaLib/varEx/InitializeManagerLowValue.class
/trunk/NacaRT/bin/nacaLib/varEx/InitializeManagerNone.class
/trunk/NacaRT/bin/nacaLib/varEx/InitializeManagerString.class
/trunk/NacaRT/bin/nacaLib/varEx/InitializeManagerStringEdited.class
/trunk/NacaRT/bin/nacaLib/varEx/IntLongDeterminator.class
/trunk/NacaRT/bin/nacaLib/varEx/InternalCharBuffer.class
/trunk/NacaRT/bin/nacaLib/varEx/InternalCharBufferCompressedBackup.class
/trunk/NacaRT/bin/nacaLib/varEx/MapRedefine.class
/trunk/NacaRT/bin/nacaLib/varEx/MoveCorrespondingEntry.class
/trunk/NacaRT/bin/nacaLib/varEx/MoveCorrespondingEntryManager.class
/trunk/NacaRT/bin/nacaLib/varEx/NameManager.class
/trunk/NacaRT/bin/nacaLib/varEx/NumericValue.class
/trunk/NacaRT/bin/nacaLib/varEx/OccursDef.class
/trunk/NacaRT/bin/nacaLib/varEx/OccursDefBase.class
/trunk/NacaRT/bin/nacaLib/varEx/OccursDefRecordDependingVar.class
/trunk/NacaRT/bin/nacaLib/varEx/OccursDefVar.class
/trunk/NacaRT/bin/nacaLib/varEx/OccursItemSettings.class
/trunk/NacaRT/bin/nacaLib/varEx/OccursOwnerLocation.class
/trunk/NacaRT/bin/nacaLib/varEx/Output.class
/trunk/NacaRT/bin/nacaLib/varEx/ParamDeclaration.class
/trunk/NacaRT/bin/nacaLib/varEx/Pic9BufferSupportManager.class
/trunk/NacaRT/bin/nacaLib/varEx/Pic9Comp0BufferSupport.class
/trunk/NacaRT/bin/nacaLib/varEx/Pic9Comp3BufferSupport.class
/trunk/NacaRT/bin/nacaLib/varEx/RWEdit.class
/trunk/NacaRT/bin/nacaLib/varEx/RWNumEdited.class
/trunk/NacaRT/bin/nacaLib/varEx/RWNumIntComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/RecordDescriptorAtEnd.class
/trunk/NacaRT/bin/nacaLib/varEx/SortCommand.class
/trunk/NacaRT/bin/nacaLib/varEx/SortDescriptor.class
/trunk/NacaRT/bin/nacaLib/varEx/SortItemKeySegment.class
/trunk/NacaRT/bin/nacaLib/varEx/SortKeySegmentDefinition.class
/trunk/NacaRT/bin/nacaLib/varEx/SortParagHandler.class
/trunk/NacaRT/bin/nacaLib/varEx/StackLevel.class
/trunk/NacaRT/bin/nacaLib/varEx/Var.class
/trunk/NacaRT/bin/nacaLib/varEx/VarAlphaNum.class
/trunk/NacaRT/bin/nacaLib/varEx/VarAndEdit.class
/trunk/NacaRT/bin/nacaLib/varEx/VarBase.class
/trunk/NacaRT/bin/nacaLib/varEx/VarBuffer.class
/trunk/NacaRT/bin/nacaLib/varEx/VarBufferPos.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDeclaration.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDeclarationInMap.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefBase.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefBuffer.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefEdit.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefEditInMap.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefEditInMapRedefine.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefEditInMapRedefineBase.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefEditInMapRedefineNum.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefEditInMapRedefineNumEdited.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefEncodingConvertibleManager.class

/trunk/NacaRT/bin/nacaLib/varEx/VarDefEncodingConvertibleManagerContainer.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefFPacAlphaNum.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefFPacNumIntSignComp3.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefFPacRaw.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefForm.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefG.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefInternalBool.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefInternalInt.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefItemManager.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefItemManagerStored.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefMapRedefine.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNum.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumDecComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumDecComp3.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumDecComp4.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumDecSignComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumDecSignComp3.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumDecSignComp4.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumDecSignLeadingComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumDecSignTrailingComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumEdited.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumIntComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumIntComp0Long.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumIntComp3.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumIntComp3Long.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumIntComp4.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumIntComp4Long.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumIntSignComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumIntSignComp0Long.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumIntSignComp3.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumIntSignComp3Long.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumIntSignComp4.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumIntSignComp4Long.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumIntSignLeadingComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumIntSignLeadingComp0Long.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumIntSignTrailingComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefNumIntSignTrailingComp0Long.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefVariable.class
/trunk/NacaRT/bin/nacaLib/varEx/VarDefX.class
/trunk/NacaRT/bin/nacaLib/varEx/VarEnumerator.class
/trunk/NacaRT/bin/nacaLib/varEx/VarGroup.class
/trunk/NacaRT/bin/nacaLib/varEx/VarInternalBool.class
/trunk/NacaRT/bin/nacaLib/varEx/VarInternalInt.class
/trunk/NacaRT/bin/nacaLib/varEx/VarLevel.class
/trunk/NacaRT/bin/nacaLib/varEx/VarLevelGroup.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNum.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumDecComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumDecComp0Long.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumDecComp3.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumDecComp4.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumDecSignComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumDecSignComp3.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumDecSignComp4.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumDecSignLeadingComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumDecSignTrailingComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumEdited.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumIntComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumIntComp0Long.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumIntComp3.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumIntComp4.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumIntComp4Long.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumIntSignComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumIntSignComp3.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumIntSignComp4.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumIntSignComp4Long.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumIntSignLeadingComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/VarNumIntSignTrailingComp0.class
/trunk/NacaRT/bin/nacaLib/varEx/VarSectionDeclaration.class
/trunk/NacaRT/bin/nacaLib/varEx/VarType.class
/trunk/NacaRT/bin/nacaLib/varEx/VarTypeEnum.class
/trunk/NacaRT/bin/nacaLib/varEx/VarTypeId.class
/trunk/NacaRT/bin/page1.xml
/trunk/NacaRT/bin/pageViewScreen.xml
/trunk/NacaRT/bin/page_ref.xml
/trunk/NacaRT/bin/test
/trunk/NacaRT/bin/test/.classpath
/trunk/NacaRT/bin/test/.project
/trunk/NacaRT/bin/test/ClassicalJavaApp
/trunk/NacaRT/bin/test/ClassicalJavaApp/MainNacaRTFromJavaUsage_Batch.class
/trunk/NacaRT/bin/test/ClassicalJavaApp/MainNacaRTFromJavaUsage_Call.class
/trunk/NacaRT/bin/test/ClassicalJavaApp/StdJavaApp.class
/trunk/NacaRT/bin/test/CobolLikeSupport
/trunk/NacaRT/bin/test/CobolLikeSupport/Goto.class
/trunk/NacaRT/bin/test/CobolLikeSupport/HelloWorld.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestBatchFileWrite.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestCall.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestCallAndLink.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestCallLinkageRef.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestCalled.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestCalledCopy.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestCalledProgram.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestCalledProgramRecursive.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestCalledProgramWithSQL.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestCalledWithEdit.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestCalledWithString.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestCicsLinkedProgram3.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestCond.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestCopiedFile.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestCopyCode.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestCopyCodeContainer.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestCopyCodeContainerIntf.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestHelloWorld.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestHelloWorldCalled.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestInspect.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestLong.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestMap.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestMap4.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestMap4Form.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestMap8.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestMap8Map.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestMapForm.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestMapRedefines.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestMapRedefinesMap.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestMapRightJustifyForm.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestMapScreen.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestMath.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestMisalignedVars.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestNestedPerformThrough.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestNextSentence.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestOccurs.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestOptimizationComp3.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestPara.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestQueues.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestRedefines.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestSQL.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestSQLAsBatch.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestSQLAsCalled.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestSQLCurrentDate.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestSQLDump.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestSQLDumpSimple.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestSearch.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestStrings.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestSubstring.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestUnstring.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestVarGroup.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestVarLong.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestVarMisc.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestVarNum.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestVarNumEdited.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestVarTypes.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestVarX.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestWorking2.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestWorking2Copy.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestWorking2Copy2.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestWorking2CopyReplacing.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestWorkingDeclaration.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestWorkingLevel.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestWorkingLevelForm.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestWorkingOccurs.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestWorkingRightJustify.class
/trunk/NacaRT/bin/test/CobolLikeSupport/TestWriteOnReadVars.class
/trunk/NacaRT/bin/test/Files
/trunk/NacaRT/bin/test/Files/FileFixed.txt
/trunk/NacaRT/bin/test/Files/FileFixedCRLF.txt
/trunk/NacaRT/bin/test/Files/FileFixedHeaderCRLF.txt
/trunk/NacaRT/bin/test/Files/FileFixedHeaderLF.txt
/trunk/NacaRT/bin/test/Files/FileFixedLF.txt
/trunk/NacaRT/bin/test/Files/FileRWLgVar.ascii.txt
/trunk/NacaRT/bin/test/Files/FileVariableCRLF.txt
/trunk/NacaRT/bin/test/Files/FileVariableHeaderCRLF.txt
/trunk/NacaRT/bin/test/Files/FileVariableHeaderLF.txt
/trunk/NacaRT/bin/test/Files/FileVariableLF.txt
/trunk/NacaRT/bin/test/GPL-LICENSE.txt
/trunk/NacaRT/bin/test/Main
/trunk/NacaRT/bin/test/Main/Main.class
/trunk/NacaRT/bin/test/Main/nacaRT.cfg
/trunk/NacaRT/bin/test/Main/nacaRT.cfg.bak
/trunk/NacaRT/bin/test/Release.txt
/trunk/NacaRT/bin/test/Stat.xml
/trunk/NacaRT/bin/test/lib
/trunk/NacaRT/bin/test/lib/junit-4.1.jar
/trunk/NacaRT/bin/work
/trunk/NacaRT/bin/work/tldCache.ser
/trunk/NacaRT/bin/xmlPage.xml
/trunk/NacaRT/bin/xmlPagePrintScreen.xml
/trunk/NacaRT/bin/xmlPageScript.xml
/trunk/NacaRT/doc
/trunk/NacaRT/doc/FileDeclaration
/trunk/NacaRT/doc/FileDeclaration/NacaFileDeclarationSyntax.txt
/trunk/NacaRT/doc/French-InternalStructure
/trunk/NacaRT/doc/French-InternalStructure/NacaStructureInterne.doc
/trunk/NacaRT/doc/French-ProductionEnvironment
/trunk/NacaRT/doc/French-ProductionEnvironment/ExecutionEnv.doc
/trunk/NacaRT/doc/OnlineSampleConfig.pdf
/trunk/NacaRT/doc/Reference
/trunk/NacaRT/doc/Reference/1. Base notions.html
/trunk/NacaRT/doc/Reference/1. Configuration file.html
/trunk/NacaRT/doc/Reference/2. Introduction.html
/trunk/NacaRT/doc/Reference/2. JMX Console.html
/trunk/NacaRT/doc/Reference/3. Overview - Usage.html
/trunk/NacaRT/doc/Reference/3.1 Programs.html
/trunk/NacaRT/doc/Reference/3.1.1 Sample Hello World.html
/trunk/NacaRT/doc/Reference/3.1.2 Program physical representation.html
/trunk/NacaRT/doc/Reference/3.1.3 Program declarations.html
/trunk/NacaRT/doc/Reference/3.1.4 Calls and called programs.html
/trunk/NacaRT/doc/Reference/3.1.4 Program instance execution.html
/trunk/NacaRT/doc/Reference/3.1.5 Supported cobol-like verbs.html
/trunk/NacaRT/doc/Reference/3.2 Variables.html
/trunk/NacaRT/doc/Reference/3.3 Copy.html
/trunk/NacaRT/doc/Reference/3.4 SQL - generalities.html
/trunk/NacaRT/doc/Reference/3.4.1 SQL - non cursor statements.html
/trunk/NacaRT/doc/Reference/3.4.2 SQL - Cursors management.html
/trunk/NacaRT/doc/Reference/3.5 Screen handling.html
/trunk/NacaRT/doc/Reference/3.6 Batch.html
/trunk/NacaRT/doc/Reference/3.6.1 Data files.html
/trunk/NacaRT/doc/Reference/3.6.2 File declaration.html
/trunk/NacaRT/doc/Reference/3.6.3 File Input - Output.html
/trunk/NacaRT/doc/Reference/3.6.4 File internal sorting.html
/trunk/NacaRT/doc/Reference/Accounting.html
/trunk/NacaRT/doc/Reference/Batch execution mode custom settings.html
/trunk/NacaRT/doc/Reference/Common parameters to all execution
environments.html
/trunk/NacaRT/doc/Reference/Garbage Collection thread tuning.html
/trunk/NacaRT/doc/Reference/Naca documentation.html
/trunk/NacaRT/doc/Reference/NacaRT execution environment.html
/trunk/NacaRT/doc/Reference/NacaRT internal structure Documentation.html
/trunk/NacaRT/doc/Reference/NacaRT unit testing.html
/trunk/NacaRT/doc/Reference/Online specific parameters.html
/trunk/NacaRT/doc/Reference/SQL Connections and connection pooling.html
/trunk/NacaRT/doc/Reference/images
/trunk/NacaRT/doc/Reference/images/border
/trunk/NacaRT/doc/Reference/images/border/spacer.gif
/trunk/NacaRT/doc/Reference/images/icons
/trunk/NacaRT/doc/Reference/images/icons/emoticons
/trunk/NacaRT/doc/Reference/images/icons/emoticons/forbidden.gif
/trunk/NacaRT/doc/Reference/index.html
/trunk/NacaRT/doc/Reference/styles
/trunk/NacaRT/doc/Reference/styles/site.css
/trunk/NacaRT/test
/trunk/NacaRT/test/.classpath
/trunk/NacaRT/test/.project
/trunk/NacaRT/test/ClassicalJavaApp
/trunk/NacaRT/test/ClassicalJavaApp/MainNacaRTFromJavaUsage_Batch.java
/trunk/NacaRT/test/ClassicalJavaApp/MainNacaRTFromJavaUsage_Call.java
/trunk/NacaRT/test/ClassicalJavaApp/StdJavaApp.java
/trunk/NacaRT/test/CobolLikeSupport
/trunk/NacaRT/test/CobolLikeSupport/Goto.java
/trunk/NacaRT/test/CobolLikeSupport/HelloWorld.java
/trunk/NacaRT/test/CobolLikeSupport/TestBatchFileWrite.java
/trunk/NacaRT/test/CobolLikeSupport/TestCall.java
/trunk/NacaRT/test/CobolLikeSupport/TestCallAndLink.java
/trunk/NacaRT/test/CobolLikeSupport/TestCallLinkageRef.java
/trunk/NacaRT/test/CobolLikeSupport/TestCalled.java
/trunk/NacaRT/test/CobolLikeSupport/TestCalledCopy.java
/trunk/NacaRT/test/CobolLikeSupport/TestCalledProgram.java
/trunk/NacaRT/test/CobolLikeSupport/TestCalledProgramRecursive.java
/trunk/NacaRT/test/CobolLikeSupport/TestCalledProgramWithSQL.java
/trunk/NacaRT/test/CobolLikeSupport/TestCalledWithEdit.java
/trunk/NacaRT/test/CobolLikeSupport/TestCalledWithString.java
/trunk/NacaRT/test/CobolLikeSupport/TestCicsLinkedProgram3.java
/trunk/NacaRT/test/CobolLikeSupport/TestCond.java
/trunk/NacaRT/test/CobolLikeSupport/TestCopiedFile.java
/trunk/NacaRT/test/CobolLikeSupport/TestCopyCode.java
/trunk/NacaRT/test/CobolLikeSupport/TestCopyCodeContainer.java
/trunk/NacaRT/test/CobolLikeSupport/TestCopyCodeContainerIntf.java
/trunk/NacaRT/test/CobolLikeSupport/TestHelloWorld.java
/trunk/NacaRT/test/CobolLikeSupport/TestHelloWorldCalled.java
/trunk/NacaRT/test/CobolLikeSupport/TestInspect.java
/trunk/NacaRT/test/CobolLikeSupport/TestLong.java
/trunk/NacaRT/test/CobolLikeSupport/TestMap.java
/trunk/NacaRT/test/CobolLikeSupport/TestMap4.java
/trunk/NacaRT/test/CobolLikeSupport/TestMap4Form.java
/trunk/NacaRT/test/CobolLikeSupport/TestMap8.java
/trunk/NacaRT/test/CobolLikeSupport/TestMap8Map.java
/trunk/NacaRT/test/CobolLikeSupport/TestMapForm.java
/trunk/NacaRT/test/CobolLikeSupport/TestMapRedefines.java
/trunk/NacaRT/test/CobolLikeSupport/TestMapRedefinesMap.java
/trunk/NacaRT/test/CobolLikeSupport/TestMapRightJustifyForm.java
/trunk/NacaRT/test/CobolLikeSupport/TestMapScreen.java
/trunk/NacaRT/test/CobolLikeSupport/TestMath.java
/trunk/NacaRT/test/CobolLikeSupport/TestMisalignedVars.java
/trunk/NacaRT/test/CobolLikeSupport/TestNestedPerformThrough.java
/trunk/NacaRT/test/CobolLikeSupport/TestNextSentence.java
/trunk/NacaRT/test/CobolLikeSupport/TestOccurs.java
/trunk/NacaRT/test/CobolLikeSupport/TestOptimizationComp3.java
/trunk/NacaRT/test/CobolLikeSupport/TestPara.java
/trunk/NacaRT/test/CobolLikeSupport/TestQueues.java
/trunk/NacaRT/test/CobolLikeSupport/TestRedefines.java
/trunk/NacaRT/test/CobolLikeSupport/TestSQL.java
/trunk/NacaRT/test/CobolLikeSupport/TestSQLAsBatch.java
/trunk/NacaRT/test/CobolLikeSupport/TestSQLAsCalled.java
/trunk/NacaRT/test/CobolLikeSupport/TestSQLCurrentDate.java
/trunk/NacaRT/test/CobolLikeSupport/TestSQLDump.java
/trunk/NacaRT/test/CobolLikeSupport/TestSQLDumpSimple.java
/trunk/NacaRT/test/CobolLikeSupport/TestSearch.java
/trunk/NacaRT/test/CobolLikeSupport/TestStrings.java
/trunk/NacaRT/test/CobolLikeSupport/TestSubstring.java
/trunk/NacaRT/test/CobolLikeSupport/TestUnstring.java
/trunk/NacaRT/test/CobolLikeSupport/TestVarGroup.java
/trunk/NacaRT/test/CobolLikeSupport/TestVarLong.java
/trunk/NacaRT/test/CobolLikeSupport/TestVarMisc.java
/trunk/NacaRT/test/CobolLikeSupport/TestVarNum.java
/trunk/NacaRT/test/CobolLikeSupport/TestVarNumEdited.java
/trunk/NacaRT/test/CobolLikeSupport/TestVarTypes.java
/trunk/NacaRT/test/CobolLikeSupport/TestVarX.java
/trunk/NacaRT/test/CobolLikeSupport/TestWorking2.java
/trunk/NacaRT/test/CobolLikeSupport/TestWorking2Copy.java
/trunk/NacaRT/test/CobolLikeSupport/TestWorking2Copy2.java
/trunk/NacaRT/test/CobolLikeSupport/TestWorking2CopyReplacing.java
/trunk/NacaRT/test/CobolLikeSupport/TestWorkingDeclaration.java
/trunk/NacaRT/test/CobolLikeSupport/TestWorkingLevel.java
/trunk/NacaRT/test/CobolLikeSupport/TestWorkingLevelForm.java
/trunk/NacaRT/test/CobolLikeSupport/TestWorkingOccurs.java
/trunk/NacaRT/test/CobolLikeSupport/TestWorkingRightJustify.java
/trunk/NacaRT/test/CobolLikeSupport/TestWriteOnReadVars.java
/trunk/NacaRT/test/Files
/trunk/NacaRT/test/Files/FileFixed.txt
/trunk/NacaRT/test/Files/FileFixedCRLF.txt
/trunk/NacaRT/test/Files/FileFixedHeaderCRLF.txt
/trunk/NacaRT/test/Files/FileFixedHeaderLF.txt
/trunk/NacaRT/test/Files/FileFixedLF.txt
/trunk/NacaRT/test/Files/FileRWLgVar.ascii.txt
/trunk/NacaRT/test/Files/FileVariableCRLF.txt
/trunk/NacaRT/test/Files/FileVariableHeaderCRLF.txt
/trunk/NacaRT/test/Files/FileVariableHeaderLF.txt
/trunk/NacaRT/test/Files/FileVariableLF.txt
/trunk/NacaRT/test/GPL-LICENSE.txt
/trunk/NacaRT/test/Main
/trunk/NacaRT/test/Main/Main.java
/trunk/NacaRT/test/Main/nacaRT.cfg
/trunk/NacaRT/test/Main/nacaRT.cfg.bak
/trunk/NacaRT/test/Release.txt
/trunk/NacaRT/test/Stat.xml
/trunk/NacaRT/test/lib
/trunk/NacaRT/test/lib/junit-4.1.jar

=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/.classpath Wed Mar 24 05:11:35 2010
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="idea/web"/>
+ <classpathentry excluding="idea/web/" kind="src" path=""/>
+ <classpathentry kind="lib" path="lib/commons-net-1.3.0.jar"/>
+ <classpathentry kind="lib" path="lib/commons-pool-1.2.jar"/>
+ <classpathentry kind="lib" path="lib/je-3.2.13.jar"/>
+ <classpathentry kind="lib" path="lib/db2java.zip"/>
+ <classpathentry kind="lib" path="lib/commons-httpclient-3.0-rc3.jar"/>
+ <classpathentry kind="lib" path="lib/junit.jar"/>
+ <classpathentry kind="lib" path="lib/struts.jar"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/JLib"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="lib" path="lib/ojdbc6.jar"/>
+ <classpathentry kind="lib" path="lib/jasper-runtime.jar"/>
+ <classpathentry kind="lib" path="lib/jsp-api.jar"/>
+ <classpathentry kind="lib" path="lib/servlet-api.jar"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/.project Wed Mar 24 05:11:35 2010
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>NacaRT</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>com.cross.easystruts.eclipse.easystrutsnature</nature>
+ <nature>net.sourceforge.metrics.nature</nature>
+ <nature>com.sysdeo.eclipse.tomcat.tomcatnature</nature>
+ </natures>
+</projectDescription>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/LGPL-LICENSE.txt Wed Mar 24 05:11:35 2010
@@ -0,0 +1,492 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA
+
+
+
+
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/Naca.js Wed Mar 24 05:11:35 2010
@@ -0,0 +1,349 @@
+var topIntWindow = null;
+var topSubmitCount=0;
+var topFieldFocus = '';
+var topFieldFocusCurrent = null;
+var topKeyDown = false;
+
+document.onkeydown = function() {
+ topKeyDown = true;
+ if (window.event.keyCode == 13 || (window.event.keyCode >= 113 &&
window.event.keyCode <= 135)) {
+ var myKeyCode = window.event.keyCode;
+ if (window.event.shiftKey && myKeyCode != 13) {
+ myKeyCode = myKeyCode + 12;
+ }
+ topEnter(myKeyCode);
+ window.event.keyCode = 505;
+ return false;
+ } else if (window.event.keyCode == 9) {
+ if (topFieldFocusCurrent != null) {
+ if (window.event.shiftKey) {
+ foundField = searchField(topFieldFocusCurrent, true, true);
+ } else {
+ foundField = searchField(topFieldFocusCurrent, true, false);
+ }
+ if (foundField == null) {
+ if (window.event.shiftKey) {
+ foundField = searchLoopField(false);
+ } else {
+ foundField = searchLoopField(true);
+ }
+ if (foundField != null && foundField == topFieldFocusCurrent) {
+ foundField = null;
+ }
+ }
+ if (foundField != null) {
+ try {foundField.focus();foundField.select();} catch (e) {}
+ }
+ }
+ window.event.keyCode = 505;
+ return false;
+ } else if (window.event.keyCode == 35 && (window.event.ctrlKey ||
window.event.altKey)) {
+ foundField = searchLoopField(false);
+ if (foundField != null) {
+ try {foundField.focus();foundField.select();} catch (e) {}
+ }
+ window.event.keyCode = 505;
+ return false;
+ } else if (window.event.keyCode == 36 && (window.event.ctrlKey ||
window.event.altKey)) {
+ if (window.event.altKey) alert("Blocking Alt Home!");
+ topFocusForm(document.form);
+ window.event.keyCode = 505;
+ return false;
+ }
+}
+
+function topNotInService() {
+ alert("Application not in service!\nservi...@consultas.ch");
+}
+
+function topOpen(page, frame, haut, gauche, largeur, hauteur) {
+ var sTop = 0;
+ var sLeft = 0;
+ if (document.all) {
+ x = window.screenTop;
+ y = window.screenLeft;
+ } else {
+ x = window.screenY + 100;
+ y = window.screenX;
+ }
+ sTop= x + haut;
+ sLeft= y + gauche;
+ topOpenSpecial(page,
frame, 'toolbar=0,location=1,status=0,menubar=0,scrollbars=1,directories=0,resizable=0,fullscreen=0,width='
+ largeur + ',height=' + hauteur + ',left=' + sLeft + ',top=' + sTop);
+}
+function topOpenSpecial(page, frame, info) {
+ topClose();
+ topIntWindow = window.open(page, 'PUB2000_' + frame, info);
+ topIntWindow.focus();
+}
+function topOpenNew(page, frame, info) {
+ mywindow = window.open(page, 'PUB2000_' + frame, info);
+ mywindow.focus();
+}
+function topClose() {
+ if (topIntWindow) {
+ if (!topIntWindow.closed) {
+ topIntWindow.close()
+ }
+ }
+}
+
+function topCheckForm() {
+ if (topSubmitCount == 0) {
+ topSubmitCount++;
+ return true;
+ } else {
+ return false;
+ }
+}
+
+function topPrintScreen() {
+ top.document.form.printScreen.value = 'requested' ;
+ top.document.form.submit();
+}
+
+function topDMS() {
+ myWindow =
window.open("appLaunch.do?ApplicationId=RS01A11_1A", 'pub2000_DMS', "");
+ try
+ {
+ myWindow.moveTo(0, 0);
+ myWindow.resizeTo(screen.availWidth, screen.availHeight);
+ }
+ catch (e) {}
+ myWindow.focus();
+}
+
+function topZoom() {
+ top.document.form.zoom.value = 'requested' ;
+ top.document.form.submit();
+}
+
+function topBold() {
+ top.document.form.bold.value = 'requested' ;
+ top.document.form.submit();
+}
+
+function topOver(img) {
+ document[img].src = document[img].src.replace('_lo','_hi');
+}
+function topOut(img) {
+ document[img].src = document[img].src.replace('_hi','_lo');
+}
+
+function topOnFocus(input, name) {
+ topFieldFocus = name;
+ try {
+ if (topFieldFocusCurrent != null) {
+ topFieldFocusCurrent.style.borderColor = '';
+ }
+ if (input != null) {
+ input.style.borderColor = '#003399';
+ topFieldFocusCurrent = input;
+ }
+ } catch (e) {}
+}
+
+function topOnChange(input) {
+ try {document.getElementById(input.name + 'UPD').value = '1';} catch (e)
{}
+}
+function topOnKeyDown(input) {
+ if (window.event.keyCode == 8 || window.event.keyCode == 32 ||
(window.event.keyCode >= 46 && window.event.keyCode <= 90) ||
(window.event.keyCode >= 96 && window.event.keyCode <= 105) ||
window.event.keyCode >= 186) {
+ try {document.getElementById(input.name + 'UPD').value = '1';} catch (e)
{}
+ }
+}
+function topOnKeyDownSpecial(input) {
+ if (window.event.keyCode == 13 || window.event.keyCode == 8 ||
window.event.keyCode == 32 || (window.event.keyCode >= 46 &&
window.event.keyCode <= 90) || (window.event.keyCode >= 96 &&
window.event.keyCode <= 105) || window.event.keyCode >= 186) {
+ try {document.getElementById(input.name + 'UPD').value = '1';} catch (e)
{}
+ }
+ if (window.event.keyCode == 13) {
+ window.event.keyCode = 505;
+ return false;
+ }
+}
+function topOnActivEdit(id, val)
+{
+
window.open('popup.do?id='+id+'&val='+val,'popup', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0');
+}
+function topOnDevelopMessage(messageId)
+{
+ topOpen('help.do?sessionId=H&error=' + messageId
+ '&currentPage='+document.form.idPage.value, 'help', 40, 300, 570, 400);
+}
+function topOnWarningDetails(warningid)
+{
+ topOpen('help.do?scenarioWarningId=' + warningid, 'help', 50, 280, 500,
400);
+}
+function topOnActiveChoice(target, val, submit)
+{
+ target.value = val ;
+ try {document.getElementById(target.name + 'UPD').value = '1';} catch (e)
{}
+ if (submit)
+ {
+ top.document.form.PFKey.value = '0';
+ doSubmit();
+ }
+}
+function topToggleCheckBox(input, field, flag, valOn, valOff)
+{
+ flag.value='1' ;
+ if (input.checked == true)
+ {
+ field.value = valOn ;
+ }
+ else
+ {
+ field.value = valOff ;
+ }
+ foundField = searchField(input, true, false);
+ if (foundField != null)
+ {
+ try {foundField.focus();foundField.select();} catch (e) {}
+ }
+}
+
+function topOnKeyUp(input) {
+ if (!topKeyDown) return;
+ topKeyDown = false;
+ if (window.event.keyCode == 38 || window.event.keyCode == 40) {
+ if (window.event.keyCode == 38) {
+ foundField = searchField(input, false, true);
+ } else {
+ foundField = searchField(input, false, false);
+ }
+ if (foundField == null) {
+ if (window.event.keyCode == 38) {
+ foundField = searchLoopField(false);
+ } else {
+ foundField = searchLoopField(true);
+ }
+ if (foundField != null && foundField == input) {
+ foundField = null;
+ }
+ }
+ if (foundField != null) {
+ try {foundField.focus();foundField.select();} catch (e) {}
+ }
+ } else if (window.event.keyCode == 8 || window.event.keyCode == 32 ||
(window.event.keyCode >= 46 && window.event.keyCode <= 90) ||
(window.event.keyCode >= 96 && window.event.keyCode <= 105) ||
window.event.keyCode >= 186) {
+ if (input.value.length >= input.getAttribute('maxlength')) {
+ foundField = searchField(input, true, false);
+ if (foundField != null) {
+ topFocus(foundField);
+ }
+ }
+ }
+}
+
+function searchField(input, next, up) {
+ var i = 0, found = false, id, previousField = null;
+ while (i < document.form.length) {
+ if (document.form[i].type != 'hidden' && document.form[i].id != '') {
+ if (found) {
+ if (next || document.form[i].id != id) {
+ return document.form[i];
+ }
+ } else {
+ if (document.form[i] == input) {
+ if (next && up) {
+ return previousField;
+ }
+ found = true;
+ id = document.form[i].id;
+ if (!next && up) break;
+ }
+ previousField = document.form[i];
+ }
+ }
+ i++;
+ }
+ if (!next && up && found) {
+ i = 0;
+ var idOld = '', previousField = null;
+ while (i < document.form.length) {
+ if (document.form[i].type != 'hidden' && document.form[i].id != '') {
+ if (parseInt(document.form[i].id) < parseInt(id)) {
+ if (document.form[i].id != idOld) {
+ previousField = document.form[i];
+ idOld = document.form[i].id;
+ }
+ } else {
+ return previousField;
+ }
+ }
+ i++;
+ }
+ }
+ return null;
+}
+function searchLoopField(first) {
+ var i = 0, id = "", field = null;
+ while (i < document.form.length) {
+ if (document.form[i].type != 'hidden') {
+ if (first) {
+ return document.form[i];
+ } else {
+ if (document.form[i].id != id) {
+ id = document.form[i].id;
+ field = document.form[i];
+ }
+ }
+ }
+ i++;
+ }
+ return field;
+}
+
+function topFocus(input) {
+ try {
+ input.focus();
+ input.select();
+ } catch (e) {
+ try {
+ action = 'document.form.CB_'+input.name+".focus()";
+ eval(action);
+ } catch (e) {
+ topFocusForm(document.form);
+ }
+ }
+}
+function topFocus(input, form) {
+ try {
+ input.focus();
+ input.select();
+ } catch (e) {
+ try {
+ for (var i = 0; i < form.length; i++) {
+ if (form[i].name == 'CB_'+input.name) {
+ form[i].focus();
+ return;
+ }
+ }
+ } catch (e) {
+ topFocusForm(form);
+ }
+ }
+}
+function topFocusCurrent() {
+ if (topFieldFocusCurrent != null) {
+ try {topFieldFocusCurrent.focus();topFieldFocusCurrent.select();} catch
(e) {}
+ }
+}
+function topFocusForm(form) {
+ for (var i = 0; i < form.length; i++) {
+ if (form[i].type != 'hidden') {
+ topFocus(form[i]);
+ return;
+ }
+ }
+}
+function topSetSelectedTextRange(input, selectionStart, selectionEnd) {
+ try {
+ if (input.createTextRange) {
+ var range = input.createTextRange();
+ range.collapse(true);
+ range.moveEnd('character', selectionEnd+1);
+ range.moveStart('character', selectionStart);
+ range.select();
+ } else if (input.setSelectionRange) {
+ input.focus();
+ input.setSelectionRange(selectionStart, selectionEnd+1);
+ }
+ } catch (e) {}
+}
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/NacaCustom.js Wed Mar 24 05:11:35 2010
@@ -0,0 +1,190 @@
+function onSubmitRS01A11()
+{
+ selection = top.document.form.mapchoi.value.toUpperCase();
+ if (selection=="99")
+ {
+ topEnter('logout');
+ }
+ else if (selection=="22" ||
+ selection=="23" ||
+ selection=="24")
+ {
+ myWindow =
window.open("appLaunch.do?ApplicationId=RS01A11_"+selection, 'pub2000_ERAR', "");
+ try
+ {
+ myWindow.moveTo(0, 0);
+ myWindow.resizeTo(screen.availWidth, screen.availHeight);
+ }
+ catch (e) {}
+ top.document.form.mapchoi.value="";
+ myWindow.focus();
+ return false ;
+ }
+ else if (selection=="7J")
+ {
+ myWindow =
window.open("appLaunch.do?ApplicationId=RS01A11_"+selection, 'pub2000_SC', "");
+ try
+ {
+ myWindow.moveTo(0, 0);
+ myWindow.resizeTo(screen.availWidth, screen.availHeight);
+ }
+ catch (e) {}
+ top.document.form.mapchoi.value="";
+ myWindow.focus();
+ return false ;
+ }
+ else if (selection=="7K")
+ {
+ myWindow =
window.open('appLaunch.do?ApplicationId=CROSSMEDIA', 'pub2000_CM', "");
+ try
+ {
+ myWindow.moveTo(0, 0);
+ myWindow.resizeTo(screen.availWidth, screen.availHeight);
+ }
+ catch (e) {}
+ top.document.form.mapchoi.value="";
+ myWindow.focus();
+ return false ;
+ }
+ else if (selection=="35")
+ {
+ myWindow =
window.open('appLaunch.do?ApplicationId=WATCHLIST', 'pub2000_WL', "");
+ try
+ {
+ myWindow.moveTo(0, 0);
+ myWindow.resizeTo(screen.availWidth, screen.availHeight);
+ }
+ catch (e) {}
+ top.document.form.mapchoi.value="";
+ myWindow.focus();
+ return false ;
+ }
+ else
+ {
+ return true ;
+ }
+}
+
+function onLoadRS7AA2B()
+{
+ try
+ {
+ selection = top.document.form.m7aoffd.value.toUpperCase();
+ }
+ catch (e)
+ {
+ selection = '';
+ }
+ if (selection=="C")
+ {
+ myWindow =
window.open('appLaunch.do?ApplicationId=CROSSMEDIA', 'pub2000_CM', "");
+ try
+ {
+ myWindow.moveTo(0, 0);
+ myWindow.resizeTo(screen.availWidth, screen.availHeight);
+ }
+ catch (e) {}
+ myWindow.focus();
+ return false ;
+ }
+}
+
+function onLoadRS7AA3H()
+{
+ var intParent = null;
+ intParent = window.opener;
+ if (intParent)
+ {
+ try
+ {
+ intParent.location.href = "appLaunch.do?ApplicationId=CMP";
+ intParent.focus();
+ }
+ catch (e) {}
+ }
+}
+
+function onSubmitRS7FA02()
+{
+ selection = "";
+ try
+ {
+ selection = top.document.form.m7fretf.value;
+ }
+ catch (e) {}
+
+ if (selection=="X")
+ {
+ myWindow =
window.open('appLaunch.do?ApplicationId=RS7FA02', 'pub2000_DMS', '');
+ try {
+ myWindow.moveTo(0, 0);
+ myWindow.resizeTo(screen.availWidth, screen.availHeight);
+ } catch (e) {}
+ top.document.form.m7fretf.value="";
+ top.document.form.CB_m7fretf.checked=false;
+ top.document.form.m7fretfUPD.value="1";
+ myWindow.focus();
+ return false ;
+ }
+ else
+ {
+ return true ;
+ }
+}
+
+function onSubmitRS7FA04()
+{
+ choix = "";
+ choixNumeric = 0;
+ selection = "";
+ commande = new
Array("", "", "", "", "", "", "", "", "", "", "", "", "", "", "");
+ commandeSel = "";
+ try
+ {
+ choix = top.document.form.mapchoi.value;
+ selection = top.document.form.m7fretf.value;
+ commande[1] = top.document.form.f437.value;
+ commande[2] = top.document.form.f562.value;
+ commande[3] = top.document.form.f571.value;
+ commande[4] = top.document.form.f580.value;
+ commande[5] = top.document.form.f589.value;
+ commande[6] = top.document.form.f598.value;
+ commande[7] = top.document.form.f607.value;
+ commande[8] = top.document.form.f616.value;
+ commande[9] = top.document.form.f625.value;
+ commande[10] = top.document.form.f634.value;
+ commande[11] = top.document.form.f643.value;
+ commande[12] = top.document.form.f652.value;
+ commande[13] = top.document.form.f661.value;
+ commande[14] = top.document.form.f670.value;
+ }
+ catch (e) {}
+ try
+ {
+ choixNumeric = parseInt(choix);
+ }
+ catch (e) {}
+ if (selection=="X" && choixNumeric>0 && choixNumeric<15)
+ {
+ commandeSel = commande[choixNumeric];
+ }
+ if (commandeSel!="")
+ {
+ myWindow =
window.open('appLaunch.do?ApplicationId=RS7FA04&cdenum='+commandeSel, 'pub2000_DMS', '');
+ try
+ {
+ myWindow.moveTo(0, 0);
+ myWindow.resizeTo(screen.availWidth, screen.availHeight);
+ }
+ catch (e) {}
+ top.document.form.m7fretf.value="";
+ top.document.form.CB_m7fretf.checked=false;
+ top.document.form.m7fretfUPD.value="1";
+ myWindow.focus();
+ return false ;
+ }
+ else
+ {
+ return true ;
+ }
+}
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/NacaScript.js Wed Mar 24 05:11:35 2010
@@ -0,0 +1,627 @@
+var nProfitCenter = '';
+var nServerName = '';
+var nTerminalName = '';
+var nUserName = '';
+
+var nUpdateTime = '';
+
+var nForm = '';
+var nIdPage = '';
+var nCmpSession = '';
+var nFocus = '';
+var nLanguage = '';
+var nOnload = '';
+var nOnsubmit = '';
+var nIsZoom = false;
+var nIsBold = false;
+var nIsPrintScreen = false;
+var nIsStartPrintScreen = false;
+var nIsShowScreen = false;
+
+var nSize = 8;
+var nSizeAdd = 8;
+var nSizeAddEdit = 6;
+var nSizeHeight = 24;
+
+var nTitle = '';
+var nLine = false;
+var nLineSpecial = false;
+
+var nPf = new Array();
+
+var nDateStart = new Date();
+
+function n_start() {
+ if (nIsPrintScreen) {
+ nSizeAdd = 10;
+ document.write("<TABLE border=0 cellspacing=0 cellpadding=0><TR
valign=top>");
+ document.write("<FORM action=\"" + nForm + "\" method=post name=form>");
+ document.write("<TD><TABLE border=0 cellspacing=0 cellpadding=0
width=100%><TR>");
+ document.write("<TD width=300></TD>");
+ document.write("<TD><TABLE border=0 cellspacing=0 cellpadding=0>");
+ n_showInfo();
+ document.write("</TABLE></TD>");
+ document.write("<TD width=50></TD>");
+ document.write("<TD><TABLE border=0 cellspacing=0 cellpadding=0>");
+ n_showLogo();
+ document.write("</TABLE></TD>");
+ document.write("</TR></TABLE></TD>");
+
+ document.write("<TR><TR><TD><TABLE border=0 cellspacing=0 cellpadding=0
width=100%>");
+ n_showForm();
+ n_showTitle();
+ } else {
+ if (nIsZoom) {
+ nSize = 11;
+ nSizeAdd = 11;
+ nSizeAddEdit = 8;
+ nSizeHeight = 28;
+ }
+ document.write("<TABLE border=0 cellspacing=0 cellpadding=0><TR
valign=top>");
+ document.write("<FORM action=\"" + nForm + "\" method=post name=form>");
+ document.write("<TD><TABLE border=0 cellspacing=0 cellpadding=0
width=100%>");
+ n_showLogo();
+ document.write("<TR><TD height=10></TD></TR>");
+ if (nIsShowScreen) {
+ n_showScreen();
+ } else {
+ n_showInfo();
+ document.write("<TR><TD height=10></TD></TR>");
+ n_showSpecial();
+ document.write("<TR><TD height=10></TD></TR>");
+ n_showPf();
+ }
+ document.write("</TABLE></TD>");
+
+ document.write("<TD width=20></TD>");
+ document.write("<TD><TABLE border=0 cellspacing=0 cellpadding=0
width=100%>");
+ n_showForm();
+ n_showTitle();
+ }
+}
+
+function n_stop() {
+ n_checkEndLine();
+ document.write("</FORM>");
+ document.write("</TABLE></TD>");
+
+ document.write("</TR></TABLE>");
+ if (nIsPrintScreen) {
+ n_showPrintScreen();
+ } else {
+ n_showPfAction();
+ n_showFocus();
+ n_showStartPrintScreen();
+ if (nOnload != "") {
+ eval(nOnload + "()");
+ }
+ }
+}
+
+function n_showForm() {
+ var myLine = "<INPUT type=hidden name=idPage value=\"" + nIdPage + "\">";
+ myLine += "<INPUT type=hidden name=idLang value=\"" + nLanguage + "\">";
+ myLine += "<INPUT type=hidden name=cmpSession value=\"" + nCmpSession
+ "\">";
+ myLine += "<INPUT type=hidden name=elapsedTime>";
+ myLine += "<INPUT type=hidden name=PFKey>";
+ myLine += "<INPUT type=hidden name=printScreen>";
+ myLine += "<INPUT type=hidden name=zoom>";
+ myLine += "<INPUT type=hidden name=bold>";
+ document.write(myLine);
+}
+
+function n_showTitle() {
+ var myLine = "<TR><TD height=12></TD></TR>";
+ myLine += "<TR><TD class=tit>" + nTitle + "</TD></TR>";
+ document.write(myLine);
+}
+
+function n_showFocus() {
+ window.focus();
+ if (nFocus != '') {
+ eval("topFocus(document.form." + nFocus + ", document.form)");
+ } else {
+ topFocusForm(document.form);
+ }
+}
+function n_showPrintScreen() {
+ if (window.print) self.print();
+ setTimeout('self.close()', 3000);
+}
+function n_showStartPrintScreen() {
+ if (nIsStartPrintScreen) {
+ topOpen('showprintscreen', 'ps', 20, 220, 750, 500);
+ }
+}
+
+function n_showLogo() {
+ var logo;
+ var randomnumber = Math.floor(Math.random()*3);
+ if (nProfitCenter == "10047" || nProfitCenter == "10048" || nProfitCenter
== "10049" || nProfitCenter == "10050" || nProfitCenter == "10051" ||
nProfitCenter == "10189") {
+ logo = 'images/logo_publimag_';
+ } else if (nProfitCenter == "10127" || nProfitCenter == "10128" ||
nProfitCenter == "10133") {
+ logo = 'images/logo_publiconnect_';
+ } else if (nProfitCenter == "10118" || nProfitCenter == "10142" ||
nProfitCenter == "10143" || nProfitCenter == "10144") {
+ logo = 'images/logo_publimedia_';
+ } else {
+ logo = 'images/logo_publicitas_';
+ }
+ document.write("<TR><TD><TABLE BORDER=0 cellspacing=0 cellpadding=0
width=100%>");
+ document.write("<TR><TD width=30></TD>");
+ document.write("<TD><TABLE BORDER=0 cellspacing=0 cellpadding=0
width=132>");
+ document.write("<TR><TD height=30></TD></TR>");
+ document.write("<TR><TD><IMAGE src=" + logo + randomnumber
+ ".gif></IMAGE></TD></TR>");
+ document.write("<TR><TD height=30></TD></TR>");
+ document.write("</TABLE></TD></TR>");
+ document.write("<TR><TD colspan=3><TABLE BORDER=0 cellspacing=0
cellpadding=0 width=172>");
+ document.write("<TR><TD align=right><IMAGE
src=images/logo_pub2000.gif></IMAGE></TD></TR>");
+ document.write("</TABLE></TD></TR>");
+ document.write("</TABLE></TD></TR>");
+}
+function n_showInfo() {
+ var myLine = "<TR><TD><TABLE border=0 cellspacing=0 cellpadding=0
width=100%>";
+ myLine += "<TR>";
+ myLine += "<TD width=20></TD>";
+ myLine += "<TD><TABLE border=0 class=tableinfo width=152>";
+ myLine += "<TR><TD height=16>" + nServerName + " (" + nTerminalName
+ ")</TD></TR>";
+ myLine += "<TR><TD height=16>" + nUserName + "</TD></TR>";
+ myLine += "</TABLE></TD>";
+ myLine += "</TR>";
+ myLine += "</TABLE></TD></TR>";
+ document.write(myLine);
+}
+function n_showSpecial() {
+ var myLine = "<TR><TD><TABLE border=0 cellspacing=0 cellpadding=0
width=100%>";
+ myLine += "<TR>";
+ myLine += "<TD width=20></TD>";
+ myLine += "<TD><A href=javascript:topPrintScreen()><IMG
src=images/ico_printscreen.gif border=0></A></TD>";
+ myLine += "<TD width=21></TD><TD><A href=javascript:topDMS()><IMG
src=images/ico_DMS.gif border=0></A></TD>";
+ if (nIsBold) {
+ myLine += "<TD width=22></TD><TD><A href=javascript:topBold()><IMG
src=images/ico_bold_minus.gif border=0></A></TD>";
+ } else {
+ myLine += "<TD width=22></TD><TD><A href=javascript:topBold()><IMG
src=images/ico_bold_plus.gif border=0></A></TD>";
+ }
+ if (nIsZoom) {
+ myLine += "<TD width=10></TD><TD><A href=javascript:topZoom()><IMG
src=images/ico_zoom_minus.gif border=0></A></TD>";
+ } else {
+ myLine += "<TD width=10></TD><TD><A href=javascript:topZoom()><IMG
src=images/ico_zoom_plus.gif border=0></A></TD>";
+ }
+ myLine += "<TD width=20></TD>";
+ myLine += "</TR>";
+ myLine += "</TABLE></TD></TR>";
+ document.write(myLine);
+}
+
+function n_showScreen() {
+ var myLine = "<TR><TD><TABLE border=0 cellspacing=0 cellpadding=0
width=100%>";
+ myLine += "<TR><TD height=20></TD></TR>";
+ myLine += "<TR>";
+ myLine += "<TD width=20></TD>";
+ myLine += "<TD class=txtin>Page</TD>";
+ myLine += "<TD><INPUT class=txtin style=width:80px TYPE=text
NAME=showPage VALUE=" + nIdPage + " width=8 maxlength=8></TD></TR>";
+ myLine += "</TR>";
+ myLine += "<TR><TD height=5></TD></TR>";
+ myLine += "<TR>";
+ myLine += "<TD></TD>";
+ myLine += "<TD class=txtin>Langue</TD>";
+ myLine += "<TD><SELECT class=txtin style=width:80px TYPE=text
NAME=showLanguage>";
+ myLine += "<OPTION VALUE=FR>FR</OPTION>";
+ myLine += "<OPTION VALUE=DE>DE</OPTION>";
+ myLine += "<OPTION VALUE=IT>IT</OPTION>";
+ myLine += "</SELECT></TD>";
+ myLine += "</TR>";
+ myLine += "</TABLE></TD></TR>";
+ myLine += "<TR><TD height=20></TD></TR>";
+ myLine += "<TR><TD><TABLE border=0 cellspacing=0 cellpadding=0
width=100%><TR>";
+ myLine += "<TD width=20></TD>";
+ myLine += "<TD><TABLE border=0 cellspacing=0 cellpadding=0>";
+ myLine += n_showPfkey("enter", "images/ico_enter_lo.gif", "Enter", "");
+ myLine += "</TABLE></TD>";
+ myLine += "</TR></TABLE></TD></TR>";
+ myLine += "<TR><TD height=20></TD></TR>";
+ myLine += "<TR><TD><TABLE border=0 cellspacing=0 cellpadding=0
width=100%>";
+ myLine += "<TR>";
+ myLine += "<TD width=50></TD>";
+ myLine += "<TD><TABLE border=0 class=tableinfo width=92>";
+ for (i=0; i < nPf.length; i++) {
+ myLine += "<TR><TD ALIGN=CENTER>" + nPf[i][1] + "</TD></TR>";
+ }
+ myLine += "</TABLE></TD>";
+ myLine += "</TR>";
+ myLine += "</TABLE></TD></TR>";
+ document.write(myLine);
+}
+
+function n_showPf() {
+ var myLine = "<TR><TD><TABLE border=0 cellspacing=0 cellpadding=0
width=100%><TR>";
+ myLine += "<TD width=20></TD>";
+ myLine += "<TD><TABLE border=0 cellspacing=0 cellpadding=0>";
+ myLine +=
n_showPfkey("pf1", "images/language/ico_F1_lo.gif", "Help", "topOnFocus(null, '');");
+ myLine += "<TR><TD height=10></TD></TR>";
+ myLine += n_showPfkey("pf3", "images/language/ico_F3_lo.gif", "F3", "");
+ myLine += "<TR><TD height=10></TD></TR>";
+ myLine += n_showPfkey("pf9", "images/language/ico_F9_lo.gif", "F9", "");
+ myLine += "<TR><TD height=30></TD></TR>";
+ myLine += n_showPfkey("pf7", "images/ico_F7_lo.gif", "F7", "");
+ myLine += "<TR><TD height=10></TD></TR>";
+ myLine += n_showPfkey("pf8", "images/ico_F8_lo.gif", "F8", "");
+ myLine += "<TR><TD height=30></TD></TR>";
+ myLine += n_showPfkey("pf2", "images/language/ico_F2_lo.gif", "F2", "");
+ myLine += "<TR><TD height=10></TD></TR>";
+ myLine +=
n_showPfkey("pf12", "images/language/ico_F12_lo.gif", "F12", "");
+ myLine += "<TR><TD height=10></TD></TR>";
+ myLine += n_showPfkey("pf4", "images/language/ico_F4_lo.gif", "F4", "");
+ myLine += "<TR><TD height=30></TD></TR>";
+ myLine += n_showPfkey("chguser", "images/ico_l_ogin_lo.gif", "Login", "");
+ myLine += "<TR><TD height=10></TD></TR>";
+ myLine +=
n_showPfkey("logout", "images/ico_l_ogout_lo.gif", "Logout", "");
+ myLine += "<TR><TD height=30></TD></TR>";
+ myLine += n_showPfkey("enter", "images/ico_enter_lo.gif", "Enter", "");
+ myLine += "<TR><TD height=10></TD></TR>";
+ myLine += "<TR><TD><img src=images/ico_progress_lo.gif name=progress
width=150 height=10></TD></TR>";
+ if (nUpdateTime != '') {
+ myLine += "<TR><TD height=10></TD></TR>";
+ myLine += "<TR><TD
style='FONT-WEIGHT:bold;FONT-SIZE:13px;COLOR:#ff3300;'>Restart at " +
nUpdateTime + "</TD></TR>";
+ }
+ myLine += "</TABLE></TD>";
+ myLine += "</TR>";
+ myLine += "</TR></TABLE></TD></TR>";
+ document.write(myLine);
+}
+function n_showPfkey(key, logo, display, specialAction) {
+ var myLinePart = '';
+ var myPfKey = n_getPfKey(key);
+ if (myPfKey == null) {
+ myLinePart += "<TR><TD><IMG src=images/empty.gif width=1 height=21
border=0></TD></TR>";
+ } else {
+ if (nLanguage == '') {
+ logo = logo.replace('language', 'FR');
+ } else {
+ logo = logo.replace('language', nLanguage);
+ }
+ myLinePart += "<TR><TD><A href=\"javascript:" + specialAction
+ "topEnter('" + myPfKey[1] + "')\"; onMouseOver=\"topOver('" + myPfKey[1]
+ "')\" onMouseOut=\"topOut('" + myPfKey[1] + "')\"><IMG src=" + logo + "
alt=\"" + display + "\" name=" + myPfKey[1] + " width=150 height=21
border=0></A></TD></TR>";
+ }
+ return myLinePart;
+}
+
+function n_showPfAction() {
+ document.write("<scr" + "ipt language=JavaScript>");
+ document.write("function doSubmit() {");
+ if (nOnsubmit == "") {
+ document.write(" top.document.form.submit();topOver('progress');");
+ } else {
+ document.write(" if (" + nOnsubmit + "()) {");
+ document.write(" top.document.form.submit();topOver('progress');");
+ document.write(" }");
+ }
+ document.write("}");
+
+ document.write("function topEnter(key) {");
+ document.write(" var nDateStop = new Date();");
+ document.write(" var nTimeElapsed = nDateStop - nDateStart;");
+ document.write(" top.document.form.elapsedTime.value = nTimeElapsed;");
+ document.write(" top.document.form.PFKey.value = key;");
+ document.write(" if (key != 112 && key != 117) window.focus();");
+ document.write(" if (key == 0) {");
+ document.write(" }");
+ for (i=0; i < nPf.length; i++) {
+ document.write(" else if (key == " + nPf[i][0] + " || key == '" +
nPf[i][1] + "') {");
+ myAction = nPf[i][3];
+ if (myAction == "") {
+ myAction = "top.document.form.submit();topOver('progress');";
+ }
+ document.write(" top.document.form.PFKey.value = '" + nPf[i][2]
+ "';");
+ document.write(" " + myAction);
+ document.write(" }");
+ }
+ document.write(" else {");
+ document.write(" topFocusCurrent();");
+ document.write(" }");
+ document.write("}");
+ document.write("</scr" + "ipt>");
+}
+function n_getPfKey(key) {
+ for (i=0; i < nPf.length; i++) {
+ if (nPf[i][1] == key) return nPf[i];
+ }
+ return null;
+}
+
+function n_update(updateTime) {
+ nUpdateTime = updateTime;
+}
+
+function n_user(profitCenter, serverName, terminalName, userName) {
+ nProfitCenter = profitCenter;
+ nServerName = serverName;
+ nTerminalName = terminalName;
+ nUserName = userName;
+}
+
+function n_form(form, idPage, cmpSession, focus, defaultFocus, language,
zoom, bold, printScreen, onload, onsubmit) {
+ nForm = form;
+ nIdPage = idPage;
+ nCmpSession = cmpSession;
+ nFocus = focus;
+ if (nFocus == "") nFocus = defaultFocus;
+ nLanguage = language;
+ nIsZoom = zoom;
+ nIsBold = bold;
+ if (printScreen == "true") {
+ nIsPrintScreen = true;
+ } else if (printScreen == "show") {
+ nIsStartPrintScreen = true;
+ } else if (printScreen == "showScreen") {
+ nIsShowScreen = true;
+ }
+ nOnload = onload;
+ nOnsubmit = onsubmit;
+}
+
+function n_addPf(key, name, value, action) {
+ nPf.push(new Array(key, name, value, action));
+}
+
+function n_title(title) {
+ nTitle = title;
+}
+
+function n_line() {
+ n_checkEndLine();
+ nLine = true;
+ document.write("<TR><TD><TABLE border=0 cellspacing=0
cellpadding=0><TR>");
+}
+function n_lineSpecial() {
+ n_checkEndLine();
+ nLineSpecial = true;
+ document.write("<TR><TD><TABLE border=0 cellspacing=0
cellpadding=0><TR>");
+}
+function n_checkEndLine() {
+ if (nLine) {
+ nLine = false;
+ document.write("<TD class=txtdis height=" + nSizeHeight
+ "></TD></TR></TABLE></TD></TR>");
+ } else if (nLineSpecial) {
+ nLineSpecial = false;
+ document.write("</TR></TABLE></TD></TR>");
+ }
+}
+
+function n_image(ref, name, width, height) {
+ document.write("<TD><IMG src=" + ref + " name=\"" + name + "\" width=" +
width + " height=" + height + "/></TD>");
+}
+
+function n_underline(start, length) {
+ var myLine = "<TD><TABLE border=0 cellspacing=0 cellpadding=0><TR>";
+ if (start > 1)
+ myLine += "<TD style=\"width:" + (start * nSize)
+ "px;height:3px;\"></TD>";
+ myLine += "<TD style=\"width:" + ((length * nSize) + nSizeAdd)
+ "px;height:3px;\"><IMG src=images/ico_line.gif width=" + ((length *
nSize) + nSizeAdd) + " height=1/></TD>";
+ myLine += "</TR></TABLE></TD>";
+ document.write(myLine);
+}
+
+function n_height(length) {
+ document.write("<TD height=" + length + "></TD>");
+}
+
+function n_blank(length) {
+ document.write("<TD class=txtdis style=\"width:" + ((length * nSize) +
nSizeAdd) + "px\"></TD>");
+}
+
+function n_label(type, value, action, activeChoiceTarget,
activeChoiceValue, activeChoiceLink, activeChoiceSubmit, highlighting,
intensity, color, length) {
+ var myLine = "<TD class=txtdis style=\"" + n_getStyle('label',
highlighting, color, length) + "\">";
+ if (intensity != 'dark') {
+ if (type == 'activeChoice' || type == 'linkedActiveChoice' || type
== 'actionActiveChoice') {
+ myLine += n_getActiveLabel(type, value, 'txtdis', '', action,
activeChoiceTarget, activeChoiceValue, activeChoiceLink,
activeChoiceSubmit);
+ } else {
+ myLine += n_changeSpace(value);
+ }
+ }
+ myLine += "</TD>";
+ document.write(myLine);
+}
+
+function n_edit(type, name, value, valueOn, valueOff, valueDefault,
modified, messageId, activeChoiceTarget, activeChoiceValue,
activeChoiceLink, activeChoiceSubmit, protection, highlighting, intensity,
color, line, length) {
+ var myLine = "<TD class=txtout";
+ if (type == 'hidden') {
+ myLine += "><INPUT type=hidden name=" + name + " value=\"" +
n_changeQuote(value) + "\">";
+ myLine += n_edit_UPD(name, modified);
+ } else if (protection == 'autoskip' && !n_isSpace(value)) {
+ myLine += " style=\"" + n_getStyle('label', highlighting, color, length)
+ "\">";
+ myLine += "<INPUT type=hidden name=" + name + " value=\"" +
n_changeQuote(value) + "\">";
+ if (intensity != 'dark' && messageId != '' && highlighting == 'reverse')
{
+ myLine += n_getActiveLabel('action',
value, 'txtdis', '', 'javascript:topOnDevelopMessage(\'' + messageId
+ '\')', '', '', '', '');
+ } else if (intensity != 'dark' && messageId != '') {
+ myLine += n_getActiveLabel('action',
value, 'txterror', '', 'javascript:topOnDevelopMessage(\'' + messageId
+ '\')', '', '', '', '');
+ } else if (intensity != 'dark' && (type == 'activeChoice' || type
== 'linkedActiveChoice')) {
+ myLine += n_getActiveLabel(type, value, 'txtdis', n_getStyle('link',
highlighting, color, length), "", activeChoiceTarget, activeChoiceValue,
activeChoiceLink, activeChoiceSubmit);
+ } else if (intensity != 'dark') {
+ myLine += n_changeSpace(value);
+ } else {
+ }
+ } else if (protection == 'unprotected' || protection == 'numeric') {
+ if (color == 'red') {
+ myLine += " style=\"width:" + ((length * nSize) + nSizeAdd + 12)
+ "px;\">";
+ myLine += "<IMG src=images/ico_error.gif width=12 height=9 border=0
align=absmiddle>";
+ } else {
+ myLine += " style=\"width:" + ((length * nSize) + nSizeAdd) + "px;\">";
+ }
+ if (type == 'checkbox') {
+ myLine += n_edit_UPD(name, modified);
+ myLine += "<INPUT type=hidden name=" + name + " value=\"" + value
+ "\">";
+ myLine += "<INPUT class=txtin valign=top style=\"" + n_getStyle('edit',
highlighting, color, length);
+ if (value != "" && value.toUpperCase() != valueOn)
+ myLine += "background-color:#FF8080;";
+ myLine += "\" name=CB_" + name + " id=\"" + line + "\" type=checkbox";
+ if (value.toUpperCase() == valueOn)
+ myLine += " checked";
+ myLine += " onClick=\"topToggleCheckBox(document.form.CB_" + name + ",
document.form." + name + ", document.form." + name + "UPD, '" + valueOn
+ "', '" + valueOff + "');\"";
+ myLine += " onFocus=\"topOnFocus(this, '" + name + "');\"";
+ myLine += " onKeyup=\"topOnKeyUp(this);\"";
+ myLine += ">";
+ } else if (type == 'radio') {
+ if (valueDefault == "true")
+ myLine += n_edit_UPD(name, modified);
+ myLine += "<INPUT class=txtin valign=top style=\"" + n_getStyle('edit',
highlighting, color, length) + "\" name=" + name + " type=radio value=\"" +
valueOn + "\"";
+ if (value == valueOn || (valueDefault == "true" && value == ""))
+ myLine += " checked";
+ myLine += " onClick=\"topOnChange(this);\"";
+ myLine += " onFocus=\"topOnFocus(this, '" + name + "');\"";
+ myLine += ">";
+ } else {
+ myLine += n_edit_UPD(name, modified);
+ myLine += "<INPUT class=txtin valign=top style=\"" + n_getStyle('edit',
highlighting, color, length) + "\" name=" + name + " id=\"" + line + "\"";
+ if (intensity == 'dark') {
+ myLine += " type=password";
+ } else {
+ myLine += " type=text";
+ }
+ myLine += " value=\"" + n_changeQuote(value) + "\" size=" + length + "
maxlength=" + length;
+ myLine += " onFocus=\"topOnFocus(this, '" + name + "');\"";
+ myLine += " onChange=\"topOnChange(this);\"";
+ myLine += " onKeydown=\"topOnKeyDown(this);\"";
+ myLine += " onKeyup=\"topOnKeyUp(this);\"";
+ myLine += ">";
+ }
+ } else {
+ myLine += " style=\"width:" + ((length * nSize) + nSizeAdd) + "px;\">";
+ myLine += n_edit_UPD(name, modified);
+ }
+ myLine += "</TD>";
+ document.write(myLine);
+}
+
+function n_edit_UPD(name, modified) {
+ var myLinePart = '';
+ if (modified == 'true') {
+ myLinePart = "<INPUT type=hidden name=" + name + "UPD value=1>";
+ } else {
+ myLinePart = "<INPUT type=hidden name=" + name + "UPD>";
+ }
+ return myLinePart;
+}
+
+function n_button(name, action, logo, display, length) {
+ var myLine = '';
+ if (length == "")
+ myLine = "<TD>";
+ else
+ myLine = "<TD style=\"width:" + ((length * nSize) + nSizeAdd) + "px;\">";
+ if (logo != "") {
+ myLine += "<A href=\"javascript:" + action + "\"
onMouseOver=\"topOver('" + name + "');\" onMouseOut=\"topOut('" + name
+ "');\">";
+ myLine += "<IMG src=" + logo + " name=\"" + name + "\" alt=\"" + display
+ "\" border=0/></A>";
+ } else {
+ myLine += "<INPUT name=\"" + name + "\" type=button onClick=\"" + action
+ "\" value=\"" + n_changeQuote(display) + "\" style=\"width:" + (length *
nSize) + "px;\">";
+ }
+ myLine += "</TD>";
+ document.write(myLine);
+}
+
+function n_select(name) {
+ document.write("<SELECT name=\"" + name + "\">");
+}
+
+function n_selectOption(value, name, selected) {
+}
+
+function n_selectEnd() {
+ document.write("</SELECT>");
+}
+
+function n_warning(id, value) {
+ var myLine = "<TD class=txtdis>";
+ myLine += "<A href=\"javascript:topOnWarningDetails('" + id + "');\"><IMG
src=images/ico_warning.gif width=12 height=9 border=0 align=absmiddle
alt=\"" + value + "\"/></A>";
+ myLine += "</TD>";
+ document.write(myLine);
+}
+
+function n_getStyle(type, highlighting, color, length) {
+ var myStyle = '';
+ var myBold = '';
+ if (nIsBold) myBold = 'font-weight:bold;';
+ if (type == 'label' && highlighting == 'reverse') {
+ myStyle = 'width:' + ((length * nSize) + nSizeAdd) + 'px;';
+ if (color == 'green') myStyle
+= 'background-color:#00C000;color:black;' + myBold;
+ else if (color == 'yellow') myStyle
+= 'background-color:#FFA000;color:black;' + myBold;
+ else if (color == 'turquoise') myStyle
+= 'background-color:#C0C0C0;color:black;' + myBold;
+ else if (color == 'blue') myStyle
+= 'background-color:#4040FF;color:black;' + myBold;
+ else if (color == 'red') myStyle
+= 'background-color:#FF0000;color:black;' + myBold;
+ else if (color == 'pink') myStyle
+= 'background-color:#FF00FF;color:black;' + myBold;
+ else myStyle += 'background-color:#C0C0C0;color:black;' + myBold;
+ } else if (type == 'edit' && highlighting == 'reverse') {
+ myStyle = 'width:' + ((length * nSize) + nSizeAddEdit) + 'px;';
+ if (color == 'green') myStyle
+= 'background-color:#80FF80;color:black;';
+ else if (color == 'yellow') myStyle
+= 'background-color:#C0C0C0;color:black;';
+ else if (color == 'turquoise') myStyle
+= 'background-color:#8080FF;color:black;';
+ else if (color == 'blue') myStyle
+= 'background-color:#8080FF;color:black;';
+ else if (color == 'red') myStyle
+= 'background-color:#FF8080;color:black;';
+ else if (color == 'pink') myStyle
+= 'background-color:#FF80FF;color:black;';
+ else myStyle += 'background-color:#C0C0C0;color:black;';
+ } else if (type == 'link' && highlighting == 'reverse') {
+ myStyle = 'color:black;' + myBold;
+ } else if (type == 'label' || type == 'link') {
+ if (type == 'label') myStyle = 'width:' + ((length * nSize) +
nSizeAdd) + 'px;';
+ if (color == 'green') myStyle += 'color:black;';
+ else if (color == 'neutral') myStyle += 'color:#8080FF;' + myBold;
+ else if (color == 'turquoise') myStyle += 'color:#0000C0;' + myBold;
+ else if (color == 'blue') myStyle += 'color:blue;' + myBold;
+ else if (color == 'red') myStyle += 'color:#FF0000;font-weight:bold;';
+ else if (color == 'pink') myStyle += 'color:#FF00FF;' + myBold;
+ else myStyle += 'color:black;' + myBold;
+ } else {
+ myStyle = 'width:' + ((length * nSize) + nSizeAddEdit) + 'px;';
+ if (color == 'green') myStyle
+= 'background-color:#80FF80;color:black;';
+ else if (color == 'yellow') myStyle += 'color:black;';
+ else if (color == 'turquoise') myStyle
+= 'background-color:#8080FF;color:black;';
+ else if (color == 'blue') myStyle
+= 'background-color:#8080FF;color:black;';
+ else if (color == 'red') myStyle += 'color:black;';
+ else if (color == 'pink') myStyle
+= 'background-color:#FF00FF;color:black;';
+ else myStyle += 'color:black;';
+ }
+ return myStyle;
+}
+
+function n_getActiveLabel(type, value, classtxt, style, action,
activeChoiceTarget, activeChoiceValue, activeChoiceLink,
activeChoiceSubmit) {
+ var myAction = '';
+ if (type == 'activeChoice') {
+ myAction = "javascript:topOnActiveChoice(document.form." +
activeChoiceTarget + ", '" + activeChoiceValue + "', " + activeChoiceSubmit
+ ");";
+ } else if (type == 'linkedActiveChoice') {
+ myAction = 'javascript:topOnActiveChoice(document.form.' +
activeChoiceTarget + ', document.form.' + activeChoiceLink + '.value, ' +
activeChoiceSubmit + ');';
+ } else {
+ myAction = action;
+ }
+
+ var iLength = value.length;
+ var iLeft = 0;
+ var iRight = iLength;
+ for (; iLeft < iLength && value.charAt(iLeft) == " "; iLeft++) {}
+ for (; iRight > 0 && value.charAt(iRight - 1) == " "; iRight--) {}
+
+ var myLabel = n_changeSpace(value.substring(0, iLeft));
+ myLabel += "<A class=" + classtxt;
+ if (style != "") {
+ myLabel += " style=\"" + style + "\"";
+ }
+ myLabel += " href=\"" + myAction + "\">" +
n_changeSpace(value.substring(iLeft, iRight)) + '</A>';
+ myLabel += n_changeSpace(value.substring(iRight, iLength));
+ return myLabel;
+}
+
+function n_changeSpace(value) {
+ var myValue = value.replace(/\s/g, '&nbsp;');
+ myValue = myValue.replace('<', '&lt;');
+ myValue = myValue.replace('>', '&gt;');
+ if (nIsPrintScreen) {
+ myValue = myValue.replace('-', '&#8722;');
+ }
+ return myValue;
+}
+function n_changeQuote(value) {
+ return value.replace(/"/g, '&quot;');
+}
+
+function n_isSpace(value) {
+ if (value.replace(/\s/g, '') == "")
+ return true;
+ else
+ return false
+}
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/WEB-INF/CustomCalendar.xml Wed Mar 24 05:11:35 2010
@@ -0,0 +1,14 @@
+<Settings>
+ <!--
+ <Date Value="JJ/MM/YYYY">
+ <Close Min="10:50:00" Max="14:50:59"/>
+ <Open Min="14:51:00" Max="14:51:59"/>
+ <Close Min="14:52:00" Max="14:52:59"/>
+ </Date>
+ -->
+ <Date Value="08/03/2008">
+ <Close Min="00:00:00" Max="05:59:59"/>
+ <Open Min="06:00:00" Max="11:59:59"/>
+ <Close Min="12:00:00" Max="23:59:59"/>
+ </Date>
+</Settings>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/WEB-INF/LogSettings.cfg Wed Mar 24 05:11:35 2010
@@ -0,0 +1,36 @@
+<LogSettings>
+ <Settings GetCallerLocation="true" CESM="false" Flow="false"
STCheck="false" Sql="false" >
+ <CallLocation Exclude="jlib"/>
+ <CallLocation Exclude="nacaLib"/>
+ </Settings>
+ <LogCenters>
+ <LogCenter
+ Channel="NacaRT"
+ Enable="true"
+ Mode="Console"
+ Level="Normal"
+ Flow="Any"
+ NbRequestBufferSize="0"
+ Asynchronous="false"
+ Format="Naca>%Timestamp (%ThreadName): %Message"
+ />
+ <LogCenter
+ Channel="NacaRT"
+ Enable="true"
+ Mode="FileST6"
+ FilePath="d:/dev/naca/CobolAppOnline/Logs/"
+ FileName="NacaRT.log"
+ FileStrategy="BackupOnstart"
+ Level="Normal"
+ NbRequestBufferSize="1"
+ Asynchronous="false"
+ Flow="Any"
+ >
+ <Backup
+ BackupPath="./LogBackup"
+ BackupFileFormat="[BackupDateTime]_Log.NacaRT.BakLog"
+ MaxBackupFileCount="20"
+ />
+ </LogCenter>
+ </LogCenters>
+</LogSettings>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/WEB-INF/NacaContextDef.cfg Wed Mar 24 05:11:35 2010
@@ -0,0 +1,34 @@
+<conf Toto="EEEEGG">
+ <Cases Toto2="456465">
+ <Case MenuId="UserOperations">
+ <Conditions>
+ <Condition ScreenId="*" SemanticId="recoll"/>
+ </Conditions>
+ </Case>
+
+ <Case MenuId="UserManager">
+ <Conditions>
+ <Condition ScreenId="rs01a11" SemanticId="UserId"/>
+ <Condition ScreenId="rs01a12" SemanticId="UserId"/>
+ </Conditions>
+
+ </Case>
+ </Cases>
+
+ <Menus>
+ <Menu Id="UserOperations" Title="User Operation">
+ <Options>
+ <Option Label="Definition" ActionId="DefUser"/>
+ <Option Label="Update password" ActionId="UpdatePassword"/>
+ </Options>
+ </Menu>
+ <Menu Id="UserManager" Title="User Operation">
+ <Options>
+ <Option Label="Definition" ActionId="DefUser"/>
+ <Option Label="Remove user" ActionId="RemoveUser"/>
+ </Options>
+ </Menu>
+ </Menus>
+</conf>
+
+
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/WEB-INF/NacaRT.cfg Wed Mar 24 05:11:35 2010
@@ -0,0 +1,137 @@
+<conf
+ XSLFilePath="%DefaultPath%\NacaRT/idea/web/ideaScript.xsl"
+ HelpXSLFilePath="%DefaultPath%\NacaRT/idea/web/help.xsl"
+ ResourcePath="%DefaultPath%/CobolAppOnline/Resources/"
+ AlternateResourcePath="%DefaultPath%/NacaSamples/src/online/resources/"
+ SequencerFactoryClass="idea.onlinePrgEnv.OnlineProgramLoaderFactory"
+ XMLFrameFilePath="%DefaultPath%/NacaRT/idea/web/xmlPageScript.xml"
+
LogSettingsPathFile="%DefaultPath%/NacaRT/idea/web/WEB-INF/LogSettings.cfg"
+
+ PreLoadAllProgramFromDir="false"
+ PreLoadAllProgramFromList="false"
+ KeepPreloadedProgramList="false"
+ PreLoadProgramList="%DefaultPath%/nacaRT/idea/web/WEB-INF/ProgramList.xml"
+ AsynchronousPreloadPrograms="false"
+ GCAfterPreloadPrograms="true"
+
+ LoadCopyByPrimordialLoader="false"
+
+ EmulWebRootPath=""
+
+ SimulateRealEnvironment="true"
+
+ UseProgramPool="true"
+ UseSQLStatementCache="true"
+ UseSQLObjectCache="true"
+ UseVarFillCache="true"
+ ManageVarDefCatalog="true"
+ CacheResourceFiles="false"
+
+ MaxSessionExecTime_ms="36000000"
+ HttpSessionMaxInactiveInterval_s="10800"
+
+ ApplicationClassPath="%DefaultPath%/NacaSamples\bin\"
+ JarFile=""
+ CanLoadJar="false"
+ CanLoadClass="true"
+
+ MaxSizeMemPoolCodeCache_Mb="0"
+ MaxSizeMemPoolPermGen_Mb="0"
+
+ TomcatStartCommand=""
+
+ ServerName="NACT"
+
+ LDAPDomain="domain"
+ LDAPServer="xxx1.domain.net"
+ LDAPServer2="xxx2.domain.net"
+ LDAPServer3="xxx3.domain.net"
+ LDAPRootOU="OU=DOMAIN_OU,DC=Domain,DC=net"
+ LDAPGenericUser="LDapUser"
+ LDAPGenericPassword="LDapPassword"
+
+
AppLauncherConfig="%DefaultPath%/NacaRT/idea/web/WEB-INF/CustomAppLauncher.cfg"
+
+ CodeJavaToDb="255-159,10-133"
+ CodeDbToJava="159-255"
+ ComparisonMode="EBCDIC"
+
+
StandardCalendar="%DefaultPath%/nacaRT/idea/web/WEB-INF/StandardCalendar.xml"
+ CustomCalendar="%DefaultPath%/nacaRT/idea/web/WEB-INF/CustomCalendar.xml"
+>
+
+ <Paths>
+ <Path Name="%DefaultPath%" Value="d:/dev/nacaOSS" />
+ </Paths>
+
+ <GCThread
+ ActivateThreadGarbageCollectorStatement="false"
+ GarbageCollectorStatement_ms="300000"
+ MaxPermanentHeap_Mo="800"
+ NbStatementForcedRemoved="100"
+ NbSystemGCCall="3"
+ NbStatementsToRemoveBeforeGC="100"
+ />
+
+ <DebugLoadTest
+ LogAllSQLException="true"
+ />
+
+ <SequencerConfig
+
TransIDMappingFilePath="%DefaultPath%/CobolAppOnline/Java/TransIDMapping.xml"
+ TranslationFilePath="%DefaultPath%/CobolAppOnline/Java/Translations.xml"
+ >
+ <StartPrograms>
+ <_Program name="RS15S50" delaySeconds="300"/>
+ </StartPrograms>
+
+ <MailConfig
+ addressFrom="alert...@domain.com"
+ smtpServer="smtp.intra.domain.com"
+ title="NACA-COBOL"
+ >
+ <addressTo email="us...@domain.com"/>
+ <addressTo email="us...@domain.com"/>
+ </MailConfig>
+
+ <CESMConfig
+ StartProgramId="ONLINE1"
+ StartCommandCode="XCTL"
+ HelpCenterClassName="pub2000Utils.help.HelpCenter"
+ >
+ <Config
+ StartBatchPrefix="N"
+ StartBatchHostTest="true"
+ StartBatchHostFtpUrl="mvs.domain.com"
+ StartBatchHostFtpUser="UserFTP"
+ StartBatchHostFtpPassword="PasswordFTP"
+ StartBatchHostFtpSiteCommand="xlate=iso8859;FILETYPE=JES"
+ StartBatchLinuxFtpUrl="???"
+ StartBatchLinuxFtpUser="???"
+ StartBatchLinuxFtpPassword="???"
+ StartBatchLinuxFtpDirectory="???"
+ StartBatchLinuxSshCommand="???"
+ StartBatchLinuxSshPath="???"
+ StartBatchLinuxSshUser="???"
+ />
+ </CESMConfig>
+
+ <!-- TEST -->
+ <SQLConfig
+ dburl="jdbc:db2://IpAddress:0/Name:"
+ dbuser="DbUser"
+ dbpassword="DbPassword"
+
dbConnectionUrlOptionalParams="currentPackageSet=NACA;keepDynamic=yes;clientProgramName=$FoundPoolName;"
+ dbenvironment="TEST"
+ driverClass="com.ibm.db2.jcc.DB2Driver"
+ CloseCursorOnCommit="true"
+ AutoCommit="false"
+ validationQuery="select * from SYSIBM.SYSDUMMY1"
+ >
+ <Pools>
+ <Pool Name="Generic" ProgramId="" MaxConnection="50"
TimeBeforeRemoveConnection_ms="1200000" MaxStatementLiveTime_ms="1200001"
UseExplain="false"/>
+ </Pools>
+ </SQLConfig>
+
+ </SequencerConfig>
+</conf>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/WEB-INF/ProgramList.xml Wed Mar 24 05:11:35 2010
@@ -0,0 +1,654 @@
+<PreloadedPrograms>
+<Program KeepCode="true" Name="FUF1M00" Qty="1"/>
+<Program KeepCode="true" Name="FUF1M01" Qty="1"/>
+<Program KeepCode="true" Name="FUF1M02" Qty="1"/>
+<Program KeepCode="true" Name="FUF1M03" Qty="1"/>
+<Program KeepCode="true" Name="FUF1M04" Qty="1"/>
+<Program KeepCode="true" Name="RS01M05" Qty="1"/>
+<Program KeepCode="true" Name="RS01M06" Qty="1"/>
+<Program KeepCode="true" Name="RS01M07" Qty="1"/>
+<Program KeepCode="true" Name="RS01M10" Qty="1"/>
+<Program KeepCode="true" Name="RS01M11" Qty="1"/>
+<Program KeepCode="true" Name="RS02S24" Qty="1"/>
+<Program KeepCode="true" Name="RS02S25" Qty="1"/>
+<Program KeepCode="true" Name="RS02U20" Qty="1"/>
+<Program KeepCode="true" Name="RS02U21" Qty="1"/>
+<Program KeepCode="true" Name="RS02U22" Qty="1"/>
+<Program KeepCode="true" Name="RS02U23" Qty="1"/>
+<Program KeepCode="true" Name="RS02U99" Qty="1"/>
+<Program KeepCode="true" Name="RS03M00" Qty="1"/>
+<Program KeepCode="true" Name="RS03M03" Qty="1"/>
+<Program KeepCode="true" Name="RS03M05" Qty="1"/>
+<Program KeepCode="true" Name="RS03M06" Qty="1"/>
+<Program KeepCode="true" Name="RS03M07" Qty="1"/>
+<Program KeepCode="true" Name="RS03M11" Qty="1"/>
+<Program KeepCode="true" Name="RS03M20" Qty="1"/>
+<Program KeepCode="true" Name="RS03M22" Qty="1"/>
+<Program KeepCode="true" Name="RS03M23" Qty="1"/>
+<Program KeepCode="true" Name="RS03M24" Qty="1"/>
+<Program KeepCode="true" Name="RS03M25" Qty="1"/>
+<Program KeepCode="true" Name="RS03M26" Qty="1"/>
+<Program KeepCode="true" Name="RS03M28" Qty="1"/>
+<Program KeepCode="true" Name="RS03M30" Qty="1"/>
+<Program KeepCode="true" Name="RS03M32" Qty="1"/>
+<Program KeepCode="true" Name="RS03M33" Qty="1"/>
+<Program KeepCode="true" Name="RS03M34" Qty="1"/>
+<Program KeepCode="true" Name="RS03M36" Qty="1"/>
+<Program KeepCode="true" Name="RS03S01" Qty="1"/>
+<Program KeepCode="true" Name="RS03S03" Qty="1"/>
+<Program KeepCode="true" Name="RS03S06" Qty="1"/>
+<Program KeepCode="true" Name="RS03S10" Qty="1"/>
+<Program KeepCode="true" Name="RS03S19" Qty="1"/>
+<Program KeepCode="true" Name="RS03U09" Qty="1"/>
+<Program KeepCode="true" Name="RS03U11" Qty="1"/>
+<Program KeepCode="true" Name="RS03U12" Qty="1"/>
+<Program KeepCode="true" Name="RS05M01" Qty="1"/>
+<Program KeepCode="true" Name="RS05M02" Qty="1"/>
+<Program KeepCode="true" Name="RS06M00" Qty="1"/>
+<Program KeepCode="true" Name="RS06M01" Qty="1"/>
+<Program KeepCode="true" Name="RS06M02" Qty="1"/>
+<Program KeepCode="true" Name="RS07M00" Qty="1"/>
+<Program KeepCode="true" Name="RS07M01" Qty="1"/>
+<Program KeepCode="true" Name="RS07M02" Qty="1"/>
+<Program KeepCode="true" Name="RS10M00" Qty="1"/>
+<Program KeepCode="true" Name="RS10M01" Qty="1"/>
+<Program KeepCode="true" Name="RS10M02" Qty="1"/>
+<Program KeepCode="true" Name="RS10M03" Qty="1"/>
+<Program KeepCode="true" Name="RS10M90" Qty="1"/>
+<Program KeepCode="true" Name="RS15M00" Qty="1"/>
+<Program KeepCode="true" Name="RS15M01" Qty="1"/>
+<Program KeepCode="true" Name="RS15M02" Qty="1"/>
+<Program KeepCode="true" Name="RS15M03" Qty="1"/>
+<Program KeepCode="true" Name="RS15M04" Qty="1"/>
+<Program KeepCode="true" Name="RS15M05" Qty="1"/>
+<Program KeepCode="true" Name="RS15M06" Qty="1"/>
+<Program KeepCode="true" Name="RS15M07" Qty="1"/>
+<Program KeepCode="true" Name="RS15M12" Qty="1"/>
+<Program KeepCode="true" Name="RS15M13" Qty="1"/>
+<Program KeepCode="true" Name="RS15M90" Qty="1"/>
+<Program KeepCode="true" Name="RS15S50" Qty="1"/>
+<Program KeepCode="true" Name="RS15S70" Qty="1"/>
+<Program KeepCode="true" Name="RS18M00" Qty="1"/>
+<Program KeepCode="true" Name="RS18M01" Qty="1"/>
+<Program KeepCode="true" Name="RS18M02" Qty="1"/>
+<Program KeepCode="true" Name="RS20M00" Qty="1"/>
+<Program KeepCode="true" Name="RS20M01" Qty="1"/>
+<Program KeepCode="true" Name="RS20M02" Qty="1"/>
+<Program KeepCode="true" Name="RS20M03" Qty="1"/>
+<Program KeepCode="true" Name="RS20M04" Qty="1"/>
+<Program KeepCode="true" Name="RS20M05" Qty="1"/>
+<Program KeepCode="true" Name="RS20M06" Qty="1"/>
+<Program KeepCode="true" Name="RS20M07" Qty="1"/>
+<Program KeepCode="true" Name="RS20M10" Qty="1"/>
+<Program KeepCode="true" Name="RS20M20" Qty="1"/>
+<Program KeepCode="true" Name="RS20M21" Qty="1"/>
+<Program KeepCode="true" Name="RS20M22" Qty="1"/>
+<Program KeepCode="true" Name="RS20M23" Qty="1"/>
+<Program KeepCode="true" Name="RS20M24" Qty="1"/>
+<Program KeepCode="true" Name="RS20M25" Qty="1"/>
+<Program KeepCode="true" Name="RS20M26" Qty="1"/>
+<Program KeepCode="true" Name="RS20M27" Qty="1"/>
+<Program KeepCode="true" Name="RS20M2A" Qty="1"/>
+<Program KeepCode="true" Name="RS20M30" Qty="1"/>
+<Program KeepCode="true" Name="RS20M40" Qty="1"/>
+<Program KeepCode="true" Name="RS20M90" Qty="1"/>
+<Program KeepCode="true" Name="RS20S01" Qty="1"/>
+<Program KeepCode="true" Name="RS20S02" Qty="1"/>
+<Program KeepCode="true" Name="RS30M00" Qty="1"/>
+<Program KeepCode="true" Name="RS30M01" Qty="1"/>
+<Program KeepCode="true" Name="RS30M02" Qty="1"/>
+<Program KeepCode="true" Name="RS30M11" Qty="1"/>
+<Program KeepCode="true" Name="RS30M12" Qty="1"/>
+<Program KeepCode="true" Name="RS30M21" Qty="1"/>
+<Program KeepCode="true" Name="RS30M22" Qty="1"/>
+<Program KeepCode="true" Name="RS30M23" Qty="1"/>
+<Program KeepCode="true" Name="RS30M27" Qty="1"/>
+<Program KeepCode="true" Name="RS30M28" Qty="1"/>
+<Program KeepCode="true" Name="RS30M29" Qty="1"/>
+<Program KeepCode="true" Name="RS30M50" Qty="1"/>
+<Program KeepCode="true" Name="RS30M51" Qty="1"/>
+<Program KeepCode="true" Name="RS30M52" Qty="1"/>
+<Program KeepCode="true" Name="RS30M53" Qty="1"/>
+<Program KeepCode="true" Name="RS30S01" Qty="1"/>
+<Program KeepCode="true" Name="RS30S02" Qty="1"/>
+<Program KeepCode="true" Name="RS30S03" Qty="1"/>
+<Program KeepCode="true" Name="RS30S04" Qty="1"/>
+<Program KeepCode="true" Name="RS30S12" Qty="1"/>
+<Program KeepCode="true" Name="RS30S13" Qty="1"/>
+<Program KeepCode="true" Name="RS30T01" Qty="1"/>
+<Program KeepCode="true" Name="RS30T11" Qty="1"/>
+<Program KeepCode="true" Name="RS30U99" Qty="1"/>
+<Program KeepCode="true" Name="RS31M00" Qty="1"/>
+<Program KeepCode="true" Name="RS31M01" Qty="1"/>
+<Program KeepCode="true" Name="RS31M02" Qty="1"/>
+<Program KeepCode="true" Name="RS31M03" Qty="1"/>
+<Program KeepCode="true" Name="RS33M00" Qty="1"/>
+<Program KeepCode="true" Name="RS33M50" Qty="1"/>
+<Program KeepCode="true" Name="RS33M51" Qty="1"/>
+<Program KeepCode="true" Name="RS33M52" Qty="1"/>
+<Program KeepCode="true" Name="RS33M55" Qty="1"/>
+<Program KeepCode="true" Name="RS33M56" Qty="1"/>
+<Program KeepCode="true" Name="RS33U99" Qty="1"/>
+<Program KeepCode="true" Name="RS38M00" Qty="1"/>
+<Program KeepCode="true" Name="RS38M01" Qty="1"/>
+<Program KeepCode="true" Name="RS38M02" Qty="1"/>
+<Program KeepCode="true" Name="RS38M12" Qty="1"/>
+<Program KeepCode="true" Name="RS38M21" Qty="1"/>
+<Program KeepCode="true" Name="RS38M22" Qty="1"/>
+<Program KeepCode="true" Name="RS38U99" Qty="1"/>
+<Program KeepCode="true" Name="RS40M00" Qty="1"/>
+<Program KeepCode="true" Name="RS40M01" Qty="1"/>
+<Program KeepCode="true" Name="RS40M02" Qty="1"/>
+<Program KeepCode="true" Name="RS40M06" Qty="1"/>
+<Program KeepCode="true" Name="RS40M07" Qty="1"/>
+<Program KeepCode="true" Name="RS40M90" Qty="1"/>
+<Program KeepCode="true" Name="RS42M00" Qty="1"/>
+<Program KeepCode="true" Name="RS42M01" Qty="1"/>
+<Program KeepCode="true" Name="RS42M02" Qty="1"/>
+<Program KeepCode="true" Name="RS42S05" Qty="1"/>
+<Program KeepCode="true" Name="RS43M00" Qty="1"/>
+<Program KeepCode="true" Name="RS43M01" Qty="1"/>
+<Program KeepCode="true" Name="RS43M02" Qty="1"/>
+<Program KeepCode="true" Name="RS43M03" Qty="1"/>
+<Program KeepCode="true" Name="RS43M04" Qty="1"/>
+<Program KeepCode="true" Name="RS43M05" Qty="1"/>
+<Program KeepCode="true" Name="RS43U99" Qty="1"/>
+<Program KeepCode="true" Name="RS43S01" Qty="1"/>
+<Program KeepCode="true" Name="RS43U99" Qty="1"/>
+<Program KeepCode="true" Name="RS50M00" Qty="1"/>
+<Program KeepCode="true" Name="RS51M50" Qty="1"/>
+<Program KeepCode="true" Name="RS55M00" Qty="1"/>
+<Program KeepCode="true" Name="RS55M05" Qty="1"/>
+<Program KeepCode="true" Name="RS55M10" Qty="1"/>
+<Program KeepCode="true" Name="RS55M11" Qty="1"/>
+<Program KeepCode="true" Name="RS55M25" Qty="1"/>
+<Program KeepCode="true" Name="RS55M30" Qty="1"/>
+<Program KeepCode="true" Name="RS55M90" Qty="1"/>
+<Program KeepCode="true" Name="RS55S00" Qty="1"/>
+<Program KeepCode="true" Name="RS55S05" Qty="1"/>
+<Program KeepCode="true" Name="RS61M00" Qty="1"/>
+<Program KeepCode="true" Name="RS61M01" Qty="1"/>
+<Program KeepCode="true" Name="RS61M02" Qty="1"/>
+<Program KeepCode="true" Name="RS61M03" Qty="1"/>
+<Program KeepCode="true" Name="RS61M04" Qty="1"/>
+<Program KeepCode="true" Name="RS61M05" Qty="1"/>
+<Program KeepCode="true" Name="RS61M06" Qty="1"/>
+<Program KeepCode="true" Name="RS61M07" Qty="1"/>
+<Program KeepCode="true" Name="RS61M09" Qty="1"/>
+<Program KeepCode="true" Name="RS61M10" Qty="1"/>
+<Program KeepCode="true" Name="RS61M11" Qty="1"/>
+<Program KeepCode="true" Name="RS61M12" Qty="1"/>
+<Program KeepCode="true" Name="RS61M14" Qty="1"/>
+<Program KeepCode="true" Name="RS61M20" Qty="1"/>
+<Program KeepCode="true" Name="RS61M21" Qty="1"/>
+<Program KeepCode="true" Name="RS61M22" Qty="1"/>
+<Program KeepCode="true" Name="RS61M23" Qty="1"/>
+<Program KeepCode="true" Name="RS61M24" Qty="1"/>
+<Program KeepCode="true" Name="RS61M25" Qty="1"/>
+<Program KeepCode="true" Name="RS61M26" Qty="1"/>
+<Program KeepCode="true" Name="RS61M30" Qty="1"/>
+<Program KeepCode="true" Name="RS61S32" Qty="1"/>
+<Program KeepCode="true" Name="RS61S33" Qty="1"/>
+<Program KeepCode="true" Name="RS61S34" Qty="1"/>
+<Program KeepCode="true" Name="RS61S36" Qty="1"/>
+<Program KeepCode="true" Name="RS61S37" Qty="1"/>
+<Program KeepCode="true" Name="RS61S38" Qty="1"/>
+<Program KeepCode="true" Name="RS61S40" Qty="1"/>
+<Program KeepCode="true" Name="RS67M00" Qty="1"/>
+<Program KeepCode="true" Name="RS67M01" Qty="1"/>
+<Program KeepCode="true" Name="RS67M02" Qty="1"/>
+<Program KeepCode="true" Name="RS67M03" Qty="1"/>
+<Program KeepCode="true" Name="RS67U99" Qty="1"/>
+<Program KeepCode="true" Name="RS68M00" Qty="1"/>
+<Program KeepCode="true" Name="RS68M20" Qty="1"/>
+<Program KeepCode="true" Name="RS68M21" Qty="1"/>
+<Program KeepCode="true" Name="RS68M30" Qty="1"/>
+<Program KeepCode="true" Name="RS68M31" Qty="1"/>
+<Program KeepCode="true" Name="RS68U99" Qty="1"/>
+<Program KeepCode="true" Name="RS69M00" Qty="1"/>
+<Program KeepCode="true" Name="RS69M01" Qty="1"/>
+<Program KeepCode="true" Name="RS69M02" Qty="1"/>
+<Program KeepCode="true" Name="RS69U99" Qty="1"/>
+<Program KeepCode="true" Name="RS6AM00" Qty="1"/>
+<Program KeepCode="true" Name="RS6AM11" Qty="1"/>
+<Program KeepCode="true" Name="RS6BM00" Qty="1"/>
+<Program KeepCode="true" Name="RS6BM01" Qty="1"/>
+<Program KeepCode="true" Name="RS6BM02" Qty="1"/>
+<Program KeepCode="true" Name="RS6BM03" Qty="1"/>
+<Program KeepCode="true" Name="RS6BM04" Qty="1"/>
+<Program KeepCode="true" Name="RS6BM05" Qty="1"/>
+<Program KeepCode="true" Name="RS6BM06" Qty="1"/>
+<Program KeepCode="true" Name="RS6BM07" Qty="1"/>
+<Program KeepCode="true" Name="RS6BM10" Qty="1"/>
+<Program KeepCode="true" Name="RS6BM30" Qty="1"/>
+<Program KeepCode="true" Name="RS6CM00" Qty="1"/>
+<Program KeepCode="true" Name="RS70M01" Qty="1"/>
+<Program KeepCode="true" Name="RS70M11" Qty="1"/>
+<Program KeepCode="true" Name="RS70M12" Qty="1"/>
+<Program KeepCode="true" Name="RS70U99" Qty="1"/>
+<Program KeepCode="true" Name="RS71M00" Qty="1"/>
+<Program KeepCode="true" Name="RS71M04" Qty="1"/>
+<Program KeepCode="true" Name="RS71M05" Qty="1"/>
+<Program KeepCode="true" Name="RS71M08" Qty="1"/>
+<Program KeepCode="true" Name="RS71M11" Qty="1"/>
+<Program KeepCode="true" Name="RS71M12" Qty="1"/>
+<Program KeepCode="true" Name="RS71M13" Qty="1"/>
+<Program KeepCode="true" Name="RS71M14" Qty="1"/>
+<Program KeepCode="true" Name="RS71M15" Qty="1"/>
+<Program KeepCode="true" Name="RS71M30" Qty="1"/>
+<Program KeepCode="true" Name="RS71M31" Qty="1"/>
+<Program KeepCode="true" Name="RS71M32" Qty="1"/>
+<Program KeepCode="true" Name="RS71M33" Qty="1"/>
+<Program KeepCode="true" Name="RS71M34" Qty="1"/>
+<Program KeepCode="true" Name="RS71M35" Qty="1"/>
+<Program KeepCode="true" Name="RS71M36" Qty="1"/>
+<Program KeepCode="true" Name="RS71M37" Qty="1"/>
+<Program KeepCode="true" Name="RS71M38" Qty="1"/>
+<Program KeepCode="true" Name="RS71M39" Qty="1"/>
+<Program KeepCode="true" Name="RS71M40" Qty="1"/>
+<Program KeepCode="true" Name="RS71M41" Qty="1"/>
+<Program KeepCode="true" Name="RS71M42" Qty="1"/>
+<Program KeepCode="true" Name="RS71M43" Qty="1"/>
+<Program KeepCode="true" Name="RS71M44" Qty="1"/>
+<Program KeepCode="true" Name="RS71M51" Qty="1"/>
+<Program KeepCode="true" Name="RS71M52" Qty="1"/>
+<Program KeepCode="true" Name="RS71S08" Qty="1"/>
+<Program KeepCode="true" Name="RS71S12" Qty="1"/>
+<Program KeepCode="true" Name="RS71S13A" Qty="1"/>
+<Program KeepCode="true" Name="RS71S13B" Qty="1"/>
+<Program KeepCode="true" Name="RS71S13C" Qty="1"/>
+<Program KeepCode="true" Name="RS71S13D" Qty="1"/>
+<Program KeepCode="true" Name="RS71S90" Qty="1"/>
+<Program KeepCode="true" Name="RS71S92" Qty="1"/>
+<Program KeepCode="true" Name="RS71S92" Qty="1"/>
+<Program KeepCode="true" Name="RS71S94" Qty="1"/>
+<Program KeepCode="true" Name="RS71S95" Qty="1"/>
+<Program KeepCode="true" Name="RS71S96" Qty="1"/>
+<Program KeepCode="true" Name="RS71S97" Qty="1"/>
+<Program KeepCode="true" Name="RS71S98" Qty="1"/>
+<Program KeepCode="true" Name="RS71U99" Qty="1"/>
+<Program KeepCode="true" Name="RS72M00" Qty="1"/>
+<Program KeepCode="true" Name="RS72M10" Qty="1"/>
+<Program KeepCode="true" Name="RS72M20" Qty="1"/>
+<Program KeepCode="true" Name="RS72M30" Qty="1"/>
+<Program KeepCode="true" Name="RS72M40" Qty="1"/>
+<Program KeepCode="true" Name="RS73M00" Qty="1"/>
+<Program KeepCode="true" Name="RS73M15" Qty="1"/>
+<Program KeepCode="true" Name="RS73M20" Qty="1"/>
+<Program KeepCode="true" Name="RS73M21" Qty="1"/>
+<Program KeepCode="true" Name="RS73M22" Qty="1"/>
+<Program KeepCode="true" Name="RS73M23" Qty="1"/>
+<Program KeepCode="true" Name="RS73M24" Qty="1"/>
+<Program KeepCode="true" Name="RS73M25" Qty="1"/>
+<Program KeepCode="true" Name="RS73M26" Qty="1"/>
+<Program KeepCode="true" Name="RS73M27" Qty="1"/>
+<Program KeepCode="true" Name="RS73M28" Qty="1"/>
+<Program KeepCode="true" Name="RS73M40" Qty="1"/>
+<Program KeepCode="true" Name="RS73M60" Qty="1"/>
+<Program KeepCode="true" Name="RS73M61" Qty="1"/>
+<Program KeepCode="true" Name="RS73M62" Qty="1"/>
+<Program KeepCode="true" Name="RS73U99" Qty="1"/>
+<Program KeepCode="true" Name="RS74M00" Qty="1"/>
+<Program KeepCode="true" Name="RS74M10" Qty="1"/>
+<Program KeepCode="true" Name="RS74M11" Qty="1"/>
+<Program KeepCode="true" Name="RS74M20" Qty="1"/>
+<Program KeepCode="true" Name="RS74M30" Qty="1"/>
+<Program KeepCode="true" Name="RS74M50" Qty="1"/>
+<Program KeepCode="true" Name="RS74M51" Qty="1"/>
+<Program KeepCode="true" Name="RS74M52" Qty="1"/>
+<Program KeepCode="true" Name="RS74U99" Qty="1"/>
+<Program KeepCode="true" Name="RS76M00" Qty="1"/>
+<Program KeepCode="true" Name="RS76M01" Qty="1"/>
+<Program KeepCode="true" Name="RS76M02" Qty="1"/>
+<Program KeepCode="true" Name="RS76M03" Qty="1"/>
+<Program KeepCode="true" Name="RS76M04" Qty="1"/>
+<Program KeepCode="true" Name="RS76M99" Qty="1"/>
+<Program KeepCode="true" Name="RS78M00" Qty="1"/>
+<Program KeepCode="true" Name="RS78M01" Qty="1"/>
+<Program KeepCode="true" Name="RS78M02" Qty="1"/>
+<Program KeepCode="true" Name="RS78M03" Qty="1"/>
+<Program KeepCode="true" Name="RS78M04" Qty="1"/>
+<Program KeepCode="true" Name="RS78M05" Qty="1"/>
+<Program KeepCode="true" Name="RS78M0A" Qty="1"/>
+<Program KeepCode="true" Name="RS78M10" Qty="1"/>
+<Program KeepCode="true" Name="RS78M11" Qty="1"/>
+<Program KeepCode="true" Name="RS78M12" Qty="1"/>
+<Program KeepCode="true" Name="RS78M20" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM00" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM01" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM10" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM11" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM12" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM21" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM22" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM23" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM24" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM25" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM26" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM27" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM28" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM29" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM2B" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM2C" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM2E" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM2M" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM2N" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM2O" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM2P" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM2Q" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM2R" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM2S" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM2T" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM2U" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM31" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM32" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM3G" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM3H" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM40" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM41" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM42" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM43" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM44" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM47" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM49" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM4A" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM4B" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM4C" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM4D" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM4E" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM4P" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM4Q" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM4S" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM50" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM51" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM52" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM53" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM54" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM55" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM56" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM57" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM58" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM59" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM61" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM65" Qty="1"/>
+<Program KeepCode="true" Name="RS7AM7A" Qty="1"/>
+<Program KeepCode="true" Name="RS7AR01" Qty="1"/>
+<Program KeepCode="true" Name="RS7AR03" Qty="1"/>
+<Program KeepCode="true" Name="RS7AR04" Qty="1"/>
+<Program KeepCode="true" Name="RS7AR05" Qty="1"/>
+<Program KeepCode="true" Name="RS7AR09" Qty="1"/>
+<Program KeepCode="true" Name="RS7AR10" Qty="1"/>
+<Program KeepCode="true" Name="RS7AR36" Qty="1"/>
+<Program KeepCode="true" Name="RS7AR37" Qty="1"/>
+<Program KeepCode="true" Name="RS7AR71" Qty="1"/>
+<Program KeepCode="true" Name="RS7AR87" Qty="1"/>
+<Program KeepCode="true" Name="RS7AR88" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS01" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS0C" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS10" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS11" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS12" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS2B" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS3G" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS40" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS41" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS42" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS44" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS47" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS49" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS4P" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS4Q" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS4S" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS50" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS53" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS70" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS7A" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS7B" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS38" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS55" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS59" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS60" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS61" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS62" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS63" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS64" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS65" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS66" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS67" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS68" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS69" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS6A" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS70" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS71" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS72" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS76" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS78" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS79" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS80" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS81" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS82" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS83" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS84" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS85" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS86" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS89" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS93" Qty="1"/>
+<Program KeepCode="true" Name="RS7AS94" Qty="1"/>
+<Program KeepCode="true" Name="RS7BM00" Qty="1"/>
+<Program KeepCode="true" Name="RS7BM01" Qty="1"/>
+<Program KeepCode="true" Name="RS7BM02" Qty="1"/>
+<Program KeepCode="true" Name="RS7BM03" Qty="1"/>
+<Program KeepCode="true" Name="RS7BM04" Qty="1"/>
+<Program KeepCode="true" Name="RS7BM90" Qty="1"/>
+<Program KeepCode="true" Name="RS7BS90" Qty="1"/>
+<Program KeepCode="true" Name="RS7BS91" Qty="1"/>
+<Program KeepCode="true" Name="RS7BU99" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM00" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM01" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM10" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM11" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM15" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM16" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM17" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM18" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM2A" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM40" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM42" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM43" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM44" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM46" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM47" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM49" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM50" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM51" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM52" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM53" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM54" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM55" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM56" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM57" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM60" Qty="1"/>
+<Program KeepCode="true" Name="RS7CM70" Qty="1"/>
+<Program KeepCode="true" Name="RS7CS36" Qty="1"/>
+<Program KeepCode="true" Name="RS7CS69" Qty="1"/>
+<Program KeepCode="true" Name="RS7CS70" Qty="1"/>
+<Program KeepCode="true" Name="RS7CS72" Qty="1"/>
+<Program KeepCode="true" Name="RS7CS73" Qty="1"/>
+<Program KeepCode="true" Name="RS7CS74" Qty="1"/>
+<Program KeepCode="true" Name="RS7CS76" Qty="1"/>
+<Program KeepCode="true" Name="RS7CS77" Qty="1"/>
+<Program KeepCode="true" Name="RS7DM00" Qty="1"/>
+<Program KeepCode="true" Name="RS7DM01" Qty="1"/>
+<Program KeepCode="true" Name="RS7DM02" Qty="1"/>
+<Program KeepCode="true" Name="RS7DM03" Qty="1"/>
+<Program KeepCode="true" Name="RS7DM04" Qty="1"/>
+<Program KeepCode="true" Name="RS7DS05" Qty="1"/>
+<Program KeepCode="true" Name="RS7DS70" Qty="1"/>
+<Program KeepCode="true" Name="RS7DU99" Qty="1"/>
+<Program KeepCode="true" Name="RS7EM00" Qty="1"/>
+<Program KeepCode="true" Name="RS7EU99" Qty="1"/>
+<Program KeepCode="true" Name="RS7FM00" Qty="1"/>
+<Program KeepCode="true" Name="RS7FM01" Qty="1"/>
+<Program KeepCode="true" Name="RS7FM02" Qty="1"/>
+<Program KeepCode="true" Name="RS7FM03" Qty="1"/>
+<Program KeepCode="true" Name="RS7FM04" Qty="1"/>
+<Program KeepCode="true" Name="RS7FM06" Qty="1"/>
+<Program KeepCode="true" Name="RS7FM07" Qty="1"/>
+<Program KeepCode="true" Name="RS7FU99" Qty="1"/>
+<Program KeepCode="true" Name="RS7GM02" Qty="1"/>
+<Program KeepCode="true" Name="RS7GM03" Qty="1"/>
+<Program KeepCode="true" Name="RS7GS07" Qty="1"/>
+<Program KeepCode="true" Name="RS7HS76" Qty="1"/>
+<Program KeepCode="true" Name="RS7IM00" Qty="1"/>
+<Program KeepCode="true" Name="RS7IM01" Qty="1"/>
+<Program KeepCode="true" Name="RS7IM90" Qty="1"/>
+<Program KeepCode="true" Name="RS7SM00" Qty="1"/>
+<Program KeepCode="true" Name="RS7YM01" Qty="1"/>
+<Program KeepCode="true" Name="RS7YM02" Qty="1"/>
+<Program KeepCode="true" Name="RS7YM03" Qty="1"/>
+<Program KeepCode="true" Name="RS7YM04" Qty="1"/>
+<Program KeepCode="true" Name="RS7YU99" Qty="1"/>
+<Program KeepCode="true" Name="RS7ZM00" Qty="1"/>
+<Program KeepCode="true" Name="RS7ZM01" Qty="1"/>
+<Program KeepCode="true" Name="RS7ZM02" Qty="1"/>
+<Program KeepCode="true" Name="RS7ZM03" Qty="1"/>
+<Program KeepCode="true" Name="RS7ZM04" Qty="1"/>
+<Program KeepCode="true" Name="RS7ZM05" Qty="1"/>
+<Program KeepCode="true" Name="RS7ZM99" Qty="1"/>
+<Program KeepCode="true" Name="RS80S04" Qty="1"/>
+<Program KeepCode="true" Name="RS81M00" Qty="1"/>
+<Program KeepCode="true" Name="RS81M01" Qty="1"/>
+<Program KeepCode="true" Name="RS81M02" Qty="1"/>
+<Program KeepCode="true" Name="RS81M03" Qty="1"/>
+<Program KeepCode="true" Name="RS81M05" Qty="1"/>
+<Program KeepCode="true" Name="RS81M10" Qty="1"/>
+<Program KeepCode="true" Name="RS81M90" Qty="1"/>
+<Program KeepCode="true" Name="RS81S01" Qty="1"/>
+<Program KeepCode="true" Name="RS81S11" Qty="1"/>
+<Program KeepCode="true" Name="RS81M90" Qty="1"/>
+<Program KeepCode="true" Name="RSGVS01" Qty="1"/>
+<Program KeepCode="true" Name="RSGVS31" Qty="1"/>
+<Program KeepCode="true" Name="TB85M00" Qty="1"/>
+<Program KeepCode="true" Name="TB85M01" Qty="1"/>
+<Program KeepCode="true" Name="TB85M02" Qty="1"/>
+<Program KeepCode="true" Name="TB85M03" Qty="1"/>
+<Program KeepCode="true" Name="TB85M04" Qty="1"/>
+<Program KeepCode="true" Name="TB85M05" Qty="1"/>
+<Program KeepCode="true" Name="TB85M06" Qty="1"/>
+<Program KeepCode="true" Name="TB85M07" Qty="1"/>
+<Program KeepCode="true" Name="TB85M08" Qty="1"/>
+<Program KeepCode="true" Name="TB85M09" Qty="1"/>
+<Program KeepCode="true" Name="TB85M0A" Qty="1"/>
+<Program KeepCode="true" Name="TB85M0B" Qty="1"/>
+<Program KeepCode="true" Name="TB85M0C" Qty="1"/>
+<Program KeepCode="true" Name="TB85M10" Qty="1"/>
+<Program KeepCode="true" Name="TB85M11" Qty="1"/>
+<Program KeepCode="true" Name="TB85M12" Qty="1"/>
+<Program KeepCode="true" Name="TB85M13" Qty="1"/>
+<Program KeepCode="true" Name="TB85M14" Qty="1"/>
+<Program KeepCode="true" Name="TB85M15" Qty="1"/>
+<Program KeepCode="true" Name="TB85M16" Qty="1"/>
+<Program KeepCode="true" Name="TB85M17" Qty="1"/>
+<Program KeepCode="true" Name="TB85M18" Qty="1"/>
+<Program KeepCode="true" Name="TB85M19" Qty="1"/>
+<Program KeepCode="true" Name="TB85M1A" Qty="1"/>
+<Program KeepCode="true" Name="TB85M20" Qty="1"/>
+<Program KeepCode="true" Name="TB85M21" Qty="1"/>
+<Program KeepCode="true" Name="TB85M22" Qty="1"/>
+<Program KeepCode="true" Name="TB85M23" Qty="1"/>
+<Program KeepCode="true" Name="TB85M24" Qty="1"/>
+<Program KeepCode="true" Name="TB85M25" Qty="1"/>
+<Program KeepCode="true" Name="TB85M26" Qty="1"/>
+<Program KeepCode="true" Name="TB85M27" Qty="1"/>
+<Program KeepCode="true" Name="TB85M28" Qty="1"/>
+<Program KeepCode="true" Name="TB85M29" Qty="1"/>
+<Program KeepCode="true" Name="TB85M2A" Qty="1"/>
+<Program KeepCode="true" Name="TB85M30" Qty="1"/>
+<Program KeepCode="true" Name="TB85M31" Qty="1"/>
+<Program KeepCode="true" Name="TB85M32" Qty="1"/>
+<Program KeepCode="true" Name="TB85M33" Qty="1"/>
+<Program KeepCode="true" Name="TB85M34" Qty="1"/>
+<Program KeepCode="true" Name="TB85M35" Qty="1"/>
+<Program KeepCode="true" Name="TB85M40" Qty="1"/>
+<Program KeepCode="true" Name="TB85M41" Qty="1"/>
+<Program KeepCode="true" Name="TB85M42" Qty="1"/>
+<Program KeepCode="true" Name="TB85M43" Qty="1"/>
+<Program KeepCode="true" Name="TB85M45" Qty="1"/>
+<Program KeepCode="true" Name="TB85M46" Qty="1"/>
+<Program KeepCode="true" Name="TB85M47" Qty="1"/>
+<Program KeepCode="true" Name="TB85M48" Qty="1"/>
+<Program KeepCode="true" Name="TB85M49" Qty="1"/>
+<Program KeepCode="true" Name="TB85M4A" Qty="1"/>
+<Program KeepCode="true" Name="TB85M50" Qty="1"/>
+<Program KeepCode="true" Name="TB85M51" Qty="1"/>
+<Program KeepCode="true" Name="TB85M52" Qty="1"/>
+<Program KeepCode="true" Name="TB85M7A" Qty="1"/>
+<Program KeepCode="true" Name="TB85M90" Qty="1"/>
+<Program KeepCode="true" Name="TB85M9A" Qty="1"/>
+<Program KeepCode="true" Name="TB85MP1" Qty="1"/>
+<Program KeepCode="true" Name="TB85MP2" Qty="1"/>
+<Program KeepCode="true" Name="TB85MT1" Qty="1"/>
+<Program KeepCode="true" Name="TB85MT2" Qty="1"/>
+<Program KeepCode="true" Name="TB85MT3" Qty="1"/>
+<Program KeepCode="true" Name="TB85MV1" Qty="1"/>
+<Program KeepCode="true" Name="TB85MV2" Qty="1"/>
+<Program KeepCode="true" Name="TB85S01" Qty="1"/>
+<Program KeepCode="true" Name="TB85S03" Qty="1"/>
+<Program KeepCode="true" Name="TB85S05" Qty="1"/>
+<Program KeepCode="true" Name="TB85S07" Qty="1"/>
+<Program KeepCode="true" Name="TB85S0A" Qty="1"/>
+<Program KeepCode="true" Name="TB85S29" Qty="1"/>
+<Program KeepCode="true" Name="TB85S41" Qty="1"/>
+<Program KeepCode="true" Name="TB85S52" Qty="1"/>
+<Program KeepCode="true" Name="TB86M00" Qty="1"/>
+<Program KeepCode="true" Name="TB86M01" Qty="1"/>
+<Program KeepCode="true" Name="TB86M02" Qty="1"/>
+<Program KeepCode="true" Name="TB86M03" Qty="1"/>
+<Program KeepCode="true" Name="TB86M0A" Qty="1"/>
+<Program KeepCode="true" Name="TB86M70" Qty="1"/>
+<Program KeepCode="true" Name="TB87M00" Qty="1"/>
+<Program KeepCode="true" Name="TB88M00" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM01" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM03" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM07" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM10" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM15" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM20" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM21" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM25" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM26" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM30" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM35" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM40" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM70" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM72" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM73" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM75" Qty="1"/>
+<Program KeepCode="true" Name="TB8AM90" Qty="1"/>
+<Program KeepCode="true" Name="TB8EM00" Qty="1"/>
+<Program KeepCode="true" Name="TB8EM01" Qty="1"/>
+<Program KeepCode="true" Name="TB8EM02" Qty="1"/>
+<Program KeepCode="true" Name="TB8EM90" Qty="1"/>
+<Program KeepCode="true" Name="TB8ES01" Qty="1"/>
+<Program KeepCode="true" Name="VC01U30" Qty="1"/>
+<Program KeepCode="true" Name="VC01U57" Qty="1"/>
+<Program KeepCode="true" Name="VI01S06" Qty="1"/>
+<Program KeepCode="true" Name="VI01S07" Qty="1"/>
+<Program KeepCode="true" Name="VI01S08" Qty="1"/>
+<Program KeepCode="true" Name="VI01S09" Qty="1"/>
+<Program KeepCode="true" Name="VI01S12" Qty="1"/>
+<Program KeepCode="true" Name="VI08M01" Qty="1"/>
+<Program KeepCode="true" Name="VI08M02" Qty="1"/>
+<Program KeepCode="true" Name="VIZ2M00" Qty="1"/>
+<Program KeepCode="true" Name="VIZ2M01" Qty="1"/>
+<Program KeepCode="true" Name="VIZ2M02" Qty="1"/>
+<Program KeepCode="true" Name="VIZ2M03" Qty="1"/>
+<Program KeepCode="true" Name="VIZ2U99" Qty="1"/>
+<Program KeepCode="true" Name="VIZ4M00" Qty="1"/>
+<Program KeepCode="true" Name="VIZ4M01" Qty="1"/>
+<Program KeepCode="true" Name="VIZ4M02" Qty="1"/>
+<Program KeepCode="true" Name="VIZ4M03" Qty="1"/>
+<Program KeepCode="true" Name="VIZ4M04" Qty="1"/>
+<Program KeepCode="true" Name="VIZ4M05" Qty="1"/>
+<Program KeepCode="true" Name="VIZ4U99" Qty="1"/>
+</PreloadedPrograms>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/WEB-INF/StandardCalendar.xml Wed Mar 24 05:11:35 2010
@@ -0,0 +1,45 @@
+<Settings>
+ <!-- Normal open hours per day -->
+ <!--
+ <Day Value="Mon">
+ <Open Min="06:00:00" Max="20:00:00"/>
+ </Day>
+ <Day Value="Tue">
+ <Open Min="06:00:00" Max="20:00:00"/>
+ </Day>
+ <Day Value="Wed">
+ <Open Min="06:00:00" Max="20:00:00"/>
+ </Day>
+ <Day Value="Thu">
+ <Open Min="06:00:00" Max="20:00:00"/>
+ </Day>
+ <Day Value="Fri">
+ <Open Min="06:00:00" Max="20:00:00"/>
+ </Day>
+ <Day Value="Sat">
+ <Open Min="06:00:00" Max="16:00:00"/>
+ </Day>
+ -->
+ <!-- Samples are always executable; site is never closed -->
+ <Day Value="Mon">
+ <Open Min="00:00:00" Max="23:59:59"/>
+ </Day>
+ <Day Value="Tue">
+ <Open Min="00:00:00" Max="23:59:59"/>
+ </Day>
+ <Day Value="Wed">
+ <Open Min="00:00:00" Max="23:59:59"/>
+ </Day>
+ <Day Value="Thu">
+ <Open Min="00:00:00" Max="23:59:59"/>
+ </Day>
+ <Day Value="Fri">
+ <Open Min="00:00:00" Max="23:59:59"/>
+ </Day>
+ <Day Value="Sat">
+ <Open Min="00:00:00" Max="23:59:59"/>
+ </Day>
+ <Day Value="Sun">
+ <Open Min="00:00:00" Max="23:59:59"/>
+ </Day>
+</Settings>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/WEB-INF/struts-config.xml Wed Mar 24 05:11:35 2010
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts
Configuration
1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
+<struts-config>
+<!-- ========== Data Source Configuration ===============================
-->
+<data-sources />
+
+ <!-- ========== Form Bean Definitions
================================== -->
+ <form-beans>
+ <form-bean dynamic="false" name="helpForm"
type="idea.help.HelpForm">
+ <form-property name="Type" type="java.lang.String" />
+ <form-property name="Message" type="java.lang.String" />
+ <form-property name="Title" type="java.lang.String" />
+ </form-bean>
+ </form-beans>
+
+ <!-- ========== Global Exception Definitions
============================== -->
+ <global-exceptions />
+
+ <!-- ========== Global Forward Definitions
=============================== -->
+ <global-forwards />
+
+ <!-- ========== Action Mapping Definitions
=============================== -->
+ <action-mappings>
+ <action
+ attribute="Naca"
+ path="/naca"
+ scope="session"
+ type="idea.action.ActionCompat"
+ unknown="false"
+ validate="false"
+ >
+ <forward
+ name="ViewCompat"
+ path="/XSLTServlet"
+ redirect="false"
+ contextRelative="false"
+ />
+ <forward
+ name="RestartNaca"
+ path="/naca"
+ redirect="false"
+ contextRelative="false"
+ />
+ </action>
+ <action
+ attribute="ShowScreen"
+ path="/showScreen"
+ scope="session"
+ type="idea.action.ActionShowScreen"
+ unknown="false"
+ validate="false"
+ >
+ <forward
+ name="ViewCompat"
+ path="/XSLTServlet"
+ redirect="false"
+ contextRelative="false"
+ />
+ <forward
+ name="RestartNaca"
+ path="/naca"
+ redirect="false"
+ contextRelative="false"
+ />
+ </action>
+ <action
+ attribute="CustomApplicationLauncher"
+ path="/appLaunch"
+ scope="session"
+ type="idea.action.CustomApplicationLauncherAction"
+ unknown="false"
+ validate="false"
+ />
+ <action
+ attribute="FormCompat"
+ path="/scenario"
+ scope="session"
+ type="idea.action.ActionScenarioList"
+ unknown="false"
+ validate="false"
+ >
+ <forward
+ name="ViewCompat"
+ path="/XSLTServlet"
+ redirect="false"
+ contextRelative="false"
+ />
+ <forward
+ name="StartNaca"
+ path="/naca"
+ redirect="false"
+ contextRelative="false"
+ />
+ </action>
+ <action
+ attribute="helpForm"
+ name="helpForm"
+ path="/help"
+ scope="session"
+ type="idea.action.HelpAction"
+ unknown="false"
+ validate="true"
+ >
+ <forward
+ name="ViewHelp"
+ path="/showhelp"
+ redirect="false"
+ contextRelative="false"
+ />
+ </action>
+ </action-mappings>
+
+ <!-- ========== Controller Configuration
================================ -->
+ <controller
+ bufferSize="4096"
+ contentType="text/html"
+ debug="0"
+ locale="false"
+ maxFileSize="250M"
+
multipartClass="org.apache.struts.upload.CommonsMultipartRequestHandler"
+ nocache="false"
+ processorClass="org.apache.struts.action.RequestProcessor"
+ inputForward="false"
+ />
+
+ <!-- ========== Message Resources Definitions
============================ -->
+ <!--
+ <message-resources
+ factory="org.apache.struts.util.PropertyMessageResourcesFactory"
+ key="org.apache.struts.action.MESSAGE"
+ null="true"
+ parameter="com.youcompany.struts.ApplicationResources"
+ />
+ -->
+
+ <!-- ========== Plug Ins Configuration
================================= -->
+</struts-config>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/WEB-INF/web.xml Wed Mar 24 05:11:35 2010
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<web-app>
+ <servlet>
+ <servlet-name>XSLTServlet</servlet-name>
+ <servlet-class>idea.servlets.XSLTServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>UpdateServlet</servlet-name>
+ <servlet-class>idea.servlets.UpdateServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>BaseCheckService</servlet-name>
+
<servlet-class>publigroupe.utils.checkservice.BaseCheckService</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>CheckService</servlet-name>
+ <servlet-class>idea.servlets.CheckServiceServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>action</servlet-name>
+
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
+ <init-param>
+ <param-name>config</param-name>
+ <param-value>/WEB-INF/struts-config.xml</param-value>
+ </init-param>
+ <init-param>
+ <param-name>debug</param-name>
+ <param-value>3</param-value>
+ </init-param>
+ <init-param>
+ <param-name>detail</param-name>
+ <param-value>3</param-value>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet>
+ <servlet-name>InitServlet</servlet-name>
+ <servlet-class>idea.servlets.InitServlet</servlet-class>
+ <init-param>
+ <param-name>INIFilePath</param-name>
+ <param-value>/WEB-INF/NacaRT.cfg</param-value>
+ </init-param>
+ <init-param>
+ <param-name>ApplicationRootPath</param-name>
+ <param-value></param-value>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>action</servlet-name>
+ <url-pattern>*.do</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>action</servlet-name>
+ <url-pattern>/naca</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>XSLTServlet</servlet-name>
+ <url-pattern>/XSLTServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>XSLTServlet</servlet-name>
+ <url-pattern>/showhelp</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>XSLTServlet</servlet-name>
+ <url-pattern>/showprintscreen</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>UpdateServlet</servlet-name>
+ <url-pattern>/updateServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>BaseCheckService</servlet-name>
+ <url-pattern>/basecheckservice</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>CheckService</servlet-name>
+ <url-pattern>/checkservice</url-pattern>
+ </servlet-mapping>
+</web-app>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/build.xml Wed Mar 24 05:11:35 2010
@@ -0,0 +1,59 @@
+<project name="NacaRT" default="all">
+ <property environment="env"/>
+
+ <target name="clean">
+ <delete dir="./bin" quiet="true"/>
+ <delete file="./NacaRT.jar"/>
+ </target>
+ <target name="build">
+ <mkdir dir="./bin"/>
+ <javac srcdir="." destdir="./bin" debug="true" encoding="ISO-8859-1"
target="1.5">
+ <classpath>
+ <pathelement path="${JLibJarPath}"/>
+ <pathelement path="./lib/JLib.jar"/>
+ <pathelement path="./lib/je-3.2.13.jar"/>
+ <pathelement path="./lib/db2java.zip"/>
+ <pathelement path="./lib/activation.jar"/>
+ <pathelement path="./lib/commons-beanutils.jar"/>
+ <pathelement path="./lib/commons-beanutils-bean-collections.jar"/>
+ <pathelement path="./lib/commons-beanutils-core.jar"/>
+ <pathelement path="./lib/commons-codec-1.3.jar"/>
+ <pathelement path="./lib/commons-collections-3.1.jar"/>
+ <pathelement path="./lib/commons-dbcp-1.2.1.jar"/>
+ <pathelement path="./lib/commons-digester.jar"/>
+ <pathelement path="./lib/commons-fileupload-1.0.jar"/>
+ <pathelement path="./lib/commons-httpclient-3.0-rc3.jar"/>
+ <pathelement path="./lib/commons-logging.jar"/>
+ <pathelement path="./lib/commons-logging-api.jar"/>
+ <pathelement path="./lib/commons-net-1.3.0.jar"/>
+ <pathelement path="./lib/commons-pool-1.2.jar"/>
+ <pathelement path="./lib/jsp-api.jar"/>
+ <pathelement path="./lib/junit.jar"/>
+ <pathelement path="./lib/log4j-1.2.8.jar"/>
+ <pathelement path="./lib/mail.jar"/>
+ <pathelement path="./lib/serializer.jar"/>
+ <pathelement path="./lib/servlet-api.jar"/>
+ <pathelement path="./lib/struts.jar"/>
+ <pathelement path="./lib/xalan.jar"/>
+ <pathelement path="./lib/xercesImpl.jar"/>
+ <pathelement path="./lib/xml-apis.jar"/>
+ <pathelement path="./lib/xsltc.jar"/>
+ <pathelement path="./lib/ojdbc5.jar"/>
+ </classpath>
+ </javac>
+ </target>
+ <target name="rebuild" depends="clean,build"/>
+
+
+
+ <target name="jar">
+ <jar destfile="./NacaRT.jar" basedir="./bin" includes="**/*.class">
+ </jar>
+ </target>
+
+ <target name="all" depends="rebuild,jar">
+ <copy file="./NacaRT.jar"
tofile="../../PagesJaunesFr/PagesJaunesPOCJavaPrg/lib/NacaRT.jar"/>
+ <copy file="./NacaRT.jar"
tofile="../../PagesJaunesFr/libToShip/NacaRT.jar"/>
+ </target>
+
+</project>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/FileDeclaration/NacaFileDeclarationSyntax.txt Wed
Mar 24 05:11:35 2010
@@ -0,0 +1,263 @@
+NacaRT File rules
+
+File declaration:
+
+There is 2 different syntax:
+Standard declaration: -File_<LogicalName>=<Path and physical file
name>[,vb|fb][,ascii|ebcdic][,ext][,nnn]
+Advanced declaration: -<LogicalName>=<Path and physical file
name>,advancedMode[,variable|fixed][RecordLengthHeader|
NoRecordLengthHeader][,CRLF|LF][,][,ascii|ebcdic][,ext][,nnn]
+Advanced declaration using Microfocus sequential fiel compatibility:
-<LogicalName>=<Path and physical file
name>,advancedMode,MFCobolLineSequential,[CRLF|LF]*
+
+These values can be sepecified either:
+- by calling the program with the command line argument. Example:
-File_Client=D:/Files/2007/Clients/ClientFile.txt,advancedMode,variable,ascii,CRLF,NoRecordLengthHeader
+- or by exporting a system variable named Client, having value
D:/Files/2007/Clients/ClientFile.txt,advancedMode,variable,ascii,CRLF,NoRecordLengthHeader
+
+1. Standard declaration
+
+1.1 Physical file name
+
+<Path and physical file name> must be the first parameter. It's mandatory.
+If it is empty, or set to wrk/nullfile or NULLFILE (both case
insensitive), then the file is marked as dummy, and is not written not read.
+In other case, the path and file name must be valid under current
plateform.
+
+The other parameters are optional.
+
+1.2 Mode identification
+
+- advancedMode must not be defined. If it is defined, then the file
descriptor is setup as advanced mode. This parameter must be defined before
any other advanced mode parameter.
+
+1.3 File encoding : [,ascii|ebcdic]
+
+- ascii: the file is encoded in ascii
+- ebcdic: the file is encoded in ascii
+Both values are incompatible. If none is specified, then the file is
considered by default as encoded in ascii.
+
+1.4 Extended open mode : [,ext]
+
+- ext: activates the extended open mode: when a file is open in output
mode, it sometimes desirable to append new records, or the erase the file.
+By defaut, when writing the 1st record after open in output mode, the file
is erased. but, if the extended mode is declared in the file definition,
then records are appended at the end of file.
+
+1.5 Record structure : [,vb|fb][,nnn]
+
+- vb: Indicates a variable record size file. The records are prefixed with
a 4 bytes binary header, specifying the record length. Every record is
terminated with a LF (0x0A) character. The record header doesn't count
itselft, nor the trailing LF.
+- fb: Indicates a fix record size file. A supplementary option -nnn, where
n is a digit can optionnally define the record size, in byte. No record
header is used. Every record is terminated with a LF (0x0A) character.
+vb and fb an are mutually exclusive. If none is specified, then the file
is considered by default as using fix record length.
+A numeric only parameter can be specified (e.g. 123). It defines the
length of the records, and is usied only fix record size files.
+
+
+2. Advanced declaration
+
+2.1 Physical file name
+
+<Path and physical file name> must be the first parameter. It's mandatory.
+If it is empty, or set to wrk/nullfile or NULLFILE (both case
insensitive), then the file is marked as dummy, and is not written not read.
+In other case, the path and file name must be valid under current
plateform.
+
+2.2 Mode identification
+
+- advancedMode must be defined to activate the advanced mode file
descriptor.
+
+The other parameters are optional.
+
+2.3 File encoding : [,ascii|ebcdic]
+
+- ascii: the file is encoded in ascii
+- ebcdic: the file is encoded in ascii
+Both values are incompatible. If none is specified, then the file is
considered by default as encoded in ascii.
+This has the same meaning as standard file descriptor.
+
+2.4 Extended open mode : [,ext]
+
+- ext: activates the extended open mode: when a file is open in output
mode, it sometimes desirable to append new records, or the erase the file.
+By defaut, when writing the 1st record after open in output mode, the file
is erased. but, if the extended mode is declared in the file definition,
then records are appended at the end of file.
+This has the same meaning as standard file descriptor.
+
+2.5 Record structure
+
+- variable: Indicates a variable record size file. Contrary to vb mode,
the 4 binary byte header is optionnal. Contrary to vb mode, the trailing LF
is also optionnal.
+- fixed: Indicates a fix record size file. Contrary to fb mode, the
trailing LF is optionnal.
+If none of these parameters if specified, then fixed is taken by default.
+
+A supplementary option -nnn, where n is a digit can optionnally define the
record size, in byte.
+variable and fixed an are mutually exclusive.
+A numeric only parameter can be specified (e.g. 123). It defines the
length of the records, and is usied only fix record size files.
+
+2.6 Record length header
+
+- RecordLengthHeader: Indicates that all records are prefixed by a binary
4 bytes length.
+- NoRecordLengthHeader: Indicates records are not prefixed by a binary 4
bytes length.
+If none of these parameters if specified, then NoRecordLengthHeader is
taken by default.
+
+2.7 Record end of line marker
+
+-CRLF: Indicates that every record is terminated by 2 bytes CR/LF
(0x0D/0x0A).
+-LF: Indicates that every record is terminated by a single bytes LF (0x0A).
+Both value are mutually exclusive. If none is specified, then no record
end of line is defined.
+
+3. Advanced declaration using Microfocus sequential file compatibility
+
+Syntax: -<LogicalName>=<Path and physical file
name>,advancedMode,MFCobolLineSequential,[CRLF|LF]*
+
+To activate the sequential record structure, compatible with Microfocus
sequential files, then set the MFCobolLineSequential option.
+the only valid other option is LF or CRLF to indicate required record
terminaison convention.
+If CRLF and LF are missing, then the current OS line terminaison code is
used. It's CRLF for windows, LF for other palteforms.
+The record won't have binary 4 byte header. It's termintaed either by a
CRLF or LF, depending on record terminaison choice.
+
+The bytes with value less than 0x20 are prefixed by a leading byte set to
0x00. The record terminaison bytes are not prefixed.
+Record trailing spaces are also removed. This format is compatible with
Micro focus and Cobol IT line sequential file format.
+
+4. Default values
+
+4.1. Default file path
+
+A default file path can be specified on the program command line by
setting the argument "-DefaultFilePath=xxx", where xxx is a valid path.
+The path can be use either \ or / subdirectory separators. There is no
need to terminate the path by a trailing subdirectory separator (ie
c:\toto/files\ equals c:/toto/files).
+Characters are case sensitive in Unix file system.
+This default path is used when a file has no path specification in it's
physical file name.
+If it's needed to set the file in the current working directory, set it
into ./ directory.
+
+Examples of file definitions, using the default file path c:\toto\files\:
+
+- abc.txt: The default file path will be used: The complete physical file
name will be c:\toto\files\abc.txt
+- ./abc.txt: The default file path will not be used. This file will be set
in the current working directory (whatever it's value)
+- d:/xxx\abc.txt: The default file path will not be used. The complete
file name will be d:\xxx\abc.txt
+
+4.2. Default file mode
+
+There are 3 differents manners to define the file mode.
+In the example, we define the argument for logical file name ABC. It's
located in file system as d:\files\abc001.txt and is
advancedMode,MFCobolLineSequential,LF
+
+4.2.1 By making it explicit in the logical file name's value.
+
+Example:
+-File_abc=d:\files\abc001.txt,advancedMode,MFCobolLineSequential,LF
+
+4.2.2 By defining a default value on the command line.
+
+All files without specific settings will share the default arguments
+
+Example:
+ -DefaultFileMode=advancedMode,MFCobolLineSequential,LF
+ -File_abc=d:\files\abc001.txt
+
+4.2.3 Base upon ORGANIZATION SEQUENTIAL usage
+
+If the File is declared as ORGANIZATION SEQUENTIAL in the cobol source
code, and if NacaRT.cfg contains the following definition:
+ <FileOrganizationSequential
DefaultFileMode="advancedMode,MFCobolLineSequential,LF"/>
+
+then the command line argument can only be:
+-File_abc=d:\files\abc001.txt
+In that case, the DefaultFileMode command line argument is ignored.
+
+To sum-up:
+If a file specifies explicitly it's file mode, they are used.
+If a file doesn't define explicitly it's file mode, but is defined as
ORGANIZATION SEQUENTIAL in the Cobol source code, and if the NacaRT.cfg
defines the tag <FileOrganizationSequential>, then the value of tha
argument "DefaultFileMode" of this tag is used to provide the file mode for
this file.
+If a file doesn't define explicitly it's file mode, and is not defined as
ORGANIZATION SEQUENTIAL, or there is not <FileOrganizationSequential> tag
is the nacaRT.cfg, then the value of the command line argument
-DefaultFileMode is taken.
+
+Note: these defautl file modes are shared by all files, within their own
definition limits:
+- All file without explicit file mode without ORGANIZATION SEQUENTIAL
statements uses the same default command line argument -DefaultFileMode.
+
+
+5. Remarks
+
+Combinaison fixed,RecordLengthHeader cannot be used for read operations
+Combinaison variable,RecordLengthHeader, equals standard vb declaration
+Combinaison fixed,NoRecordLengthHeader, equals standard fb declaration
+
+
+6. Samples
+
+6.1 Fixed record length files
+
+6.1.1 Without record header
+
+Ascii, terminated by CRLF:
+export file
d:\test\file.data,advancedMode,fixed,ascii,NoRecordLengthHeader,CRLF
+
+Ascii, terminated by LF:
+export file
d:\test\file.data,advancedMode,fixed,ascii,NoRecordLengthHeader,LF
+
+Ascii, not terminated:
+export file d:\test\file.data,advancedMode,fixed,ascii,NoRecordLengthHeader
+
+Ebcdic, terminated by CRLF:
+export file
d:\test\file.data,advancedMode,fixed,ebcdic,NoRecordLengthHeader,CRLF
+
+Ebcdic, terminated by LF:
+export file
d:\test\file.data,advancedMode,fixed,ebcdic,NoRecordLengthHeader,CRLF
+
+Ebcdic, not terminated:
+export file d:\test\file.data,advancedMode,fixed,ascii,NoRecordLengthHeader
+
+6.1.2 With record header
+
+Ascii terminated by CRLF:
+export file
d:\test\file.data,advancedMode,fixed,ascii,RecordLengthHeader,CRLF
+
+Ascii terminated by LF:
+export file
d:\test\file.data,advancedMode,fixed,ascii,RecordLengthHeader,LF
+
+Ascii not terminated:
+export file d:\test\file.data,advancedMode,fixed,ascii,RecordLengthHeader
+
+Ebcdic terminated by CRLF:
+export file
d:\test\file.data,advancedMode,fixed,ebcdic,RecordLengthHeader,CRLF
+
+Ebcdic terminated by LF:
+export file
d:\test\file.data,advancedMode,fixed,ebcdic,RecordLengthHeader,CRLF
+
+Ebcdic not terminated:
+export file d:\test\file.data,advancedMode,fixed,ebcdic,RecordLengthHeader
+
+6.2 Variable record length files
+
+6.2.1 Without header
+
+Ascii, terminated by CRLF:
+export file
d:\test\file.data,advancedMode,variable,ascii,NoRecordLengthHeader,CRLF
+
+Ascii, terminated by LF:
+export file
d:\test\file.data,advancedMode,variable,ascii,NoRecordLengthHeader,LF
+
+Ascii, not terminated: <-- WARNING: The records cannot be recognized !
+export file
d:\test\file.data,advancedMode,variable,ascii,NoRecordLengthHeader
+
+Ebcdic, terminated by CRLF:
+export file
d:\test\file.data,advancedMode,variable,ebcdic,NoRecordLengthHeader,CRLF
+
+Ebcdic, terminated by LF:
+export file
d:\test\file.data,advancedMode,variable,ebcdic,NoRecordLengthHeader,LF
+
+Ebcdic, not terminated: <-- WARNING: The records cannot be recognized !
+export file
d:\test\file.data,advancedMode,variable,ebcdic,NoRecordLengthHeader
+
+
+6.2.2 With header
+
+Ascii, terminated by CRLF:
+export file
d:\test\file.data,advancedMode,variable,ascii,RecordLengthHeader,CRLF
+
+Ascii, terminated by LF:
+export file
d:\test\file.data,advancedMode,variable,ascii,RecordLengthHeader,LF
+
+Ascii, not terminated:
+export file
d:\test\file.data,advancedMode,variable,ascii,RecordLengthHeader
+
+Ebcdic, terminated by CRLF:
+export file
d:\test\file.data,advancedMode,variable,ebcdic,RecordLengthHeader,CRLF
+
+Ebcdic, terminated by LF:
+export file
d:\test\file.data,advancedMode,variable,ebcdic,RecordLengthHeader,LF
+
+Ebcdic, not terminated:
+export file
d:\test\file.data,advancedMode,variable,ebcdic,RecordLengthHeader
+
+6.3 Sequential line MicroFocus compatible
+
+Ascii, terminated by LF:
+export file d:\test\file.data,advancedMode,MFCobolLineSequential,LF
+
+Ascii, terminated by CRLF:
+export file d:\test\file.data,advancedMode,MFCobolLineSequential,CRLF
+
+Ascii, terminated by OS record terminaison code (CRLF for windows, LF for
other systems):
+export file d:\test\file.data,advancedMode,MFCobolLineSequential
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/French-InternalStructure/NacaStructureInterne.doc
Wed Mar 24 05:11:35 2010
Binary file, no diff available.
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/French-ProductionEnvironment/ExecutionEnv.doc Wed
Mar 24 05:11:35 2010
File is too large to display a diff.
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/OnlineSampleConfig.pdf Wed Mar 24 05:11:35 2010
Binary file, no diff available.
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/1. Base notions.html Wed Mar 24
05:11:35 2010
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 1. Base notions</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 1. Base notions
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 19 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <h1><a name="1.Basenotions-1.1Nomemclature"></a>1.1
Nomemclature</h1>
+
+<table class='confluenceTable'><tbody>
+<tr>
+<th class='confluenceTh'> Name </th>
+<th class='confluenceTh'> Description </th>
+</tr>
+<tr>
+<td class='confluenceTd'> NacaRT </td>
+<td class='confluenceTd'> Stands for Naca Runtime - Base library
exposing&nbsp;a high level abstraction of methods supproting a cobol - like
syntax. It's the runtime framework of Nacar </td>
+</tr>
+<tr>
+<td class='confluenceTd'> JLib </td>
+<td class='confluenceTd'> Stands for Java Libraray - Base library exposing
generic services internally used by NacaRT </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Idea </td>
+<td class='confluenceTd'> Internal nacaRT&nbsp;part, made of several
packages, offering user interface services </td>
+</tr>
+<tr>
+<td class='confluenceTd'> NacaLib </td>
+<td class='confluenceTd'> Internal NacaRT&nbsp;part, made of several
packages, offering runtime support for cobol-like application programs </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Cobol-like </td>
+<td class='confluenceTd'> Name of the syntax of Cobol programs
automatically transcoded in Java source files. This syntax has been design
to be as close as possible to the original Cobol syntax. In particular,
object orientation is out of scope from this syntax. The purpose is enable
experimented Cobol developpers to maintain and develop the transcoded
applications with a minimum amount of Java knowledge. </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Program </td>
+<td class='confluenceTd'> Java Executable binary code, represented in
a .class </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Program instance </td>
+<td class='confluenceTd'> Instance of a program. Many instqances can be
executed simulataeously </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Variable (var) </td>
+<td class='confluenceTd'> Defines a memory place where to store a value. A
variable is owned by a single program instance, so that it's value is not
not shared among all program instances. </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Variable definition (vardef) </td>
+<td class='confluenceTd'> Java objects defining the various
characteristics of a given variable (name, hierarchical position, ...) It's
shared among all instances of a given program. A variable owns a reference
to it's variable definition. </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Variable definition catalog </td>
+<td class='confluenceTd'> Collection that groups all variabke definitions
of a given program </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Buffer </td>
+<td class='confluenceTd'> Memory storage area where values of variables of
a program instance are stored. A buffer is by default not shared by
multiple program instances. There may ba excpetion to that rule. </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Parent </td>
+<td class='confluenceTd'> Cobol variables belongs to a hierarchy, which is
defined by the variable definition depth level number. The parent of a
given variable definition is the variable definition of a lowest depth
level that precedes it. </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Children </td>
+<td class='confluenceTd'> A given variable definition may&nbsp;own a list
of sub-variables. They are the children of the current variable definition.
</td>
+</tr>
+<tr>
+<td class='confluenceTd'> Dimension </td>
+<td class='confluenceTd'> Number of indexes that are&nbsp;needed to
resolve&nbsp;a array access. An array of a dimension of 2 needs to indexes
to find an item. The maximum dimension supported is 3. </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Occurs owner </td>
+<td class='confluenceTd'> Parent variable of the variable that owns an
occurs definition. <br clear="all" />
+Cobol exemple: <br clear="all" />
+01 A OCCURS 3. <br clear="all" />
+&nbsp;&nbsp; 05 B PIC X(10). <br clear="all" />
+A is the occurs owner of B. That means that A defines the number of times
that&nbsp;B is instanciated. As occurs can be imbricated, a variable may
have multiple occurs owner. </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Nibble </td>
+<td class='confluenceTd'> Half byte = 4 bits. A byte occupied then 2
nibbles </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Unicode char </td>
+<td class='confluenceTd'> Alphanumeric supporting variables are stored
internally as unicode String. Each char reserves 16 bits for it's internal
representation. As of 01/04/07, only 8 bits ascii subset is used. </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Edit </td>
+<td class='confluenceTd'> Screen entry field. It has the same attributes
as a CICS BMS map&nbsp; entry field, but is used in an object oriented
manner, instead of byte per byte </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Form <br clear="all" /> </td>
+<td class='confluenceTd'> Collection of Edits, representing a CICS BMS Map
<br clear="all" /> </td>
+</tr>
+<tr>
+<td class='confluenceTd'> MapRedefine <br clear="all" /> </td>
+<td class='confluenceTd'> Objects that redefines a form. It enables occess
to the Form field in an indexed manner <br clear="all" /> </td>
+</tr>
+<tr>
+<td class='confluenceTd'> EdiInMapRedefine <br clear="all" /> </td>
+<td class='confluenceTd'> Redefine of an Edit <br clear="all" /> </td>
+</tr>
+</tbody></table>
+
+<h1><a name="1.Basenotions-1.2Notationandsyntax"></a>1.2 Notation and
syntax</h1>
+
+<p><br clear="all" /></p>
+<table class='confluenceTable'><tbody>
+<tr>
+<th class='confluenceTh'> Notation </th>
+<th class='confluenceTh'> Comment </th>
+<th class='confluenceTh'> Sample 1 </th>
+<th class='confluenceTh'> Sample 2 </th>
+</tr>
+<tr>
+<td class='confluenceTd'> [xxx] </td>
+<td class='confluenceTd'> xxx is optional. </td>
+<td class='confluenceTd'> SortDescriptor sortDesc1 = declare.sort(); </td>
+<td class='confluenceTd'>&nbsp;</td>
+</tr>
+<tr>
+<td class='confluenceTd'> [xxx]&#43; </td>
+<td class='confluenceTd'> xxx must apear 1 or many time </td>
+<td class='confluenceTd'>&nbsp;</td>
+<td class='confluenceTd'>&nbsp;</td>
+</tr>
+<tr>
+<td class='confluenceTd'> [xxx]&#42; </td>
+<td class='confluenceTd'> xxx can appear 0, 1 or many time </td>
+<td class='confluenceTd'>&nbsp;</td>
+<td class='confluenceTd'>&nbsp;</td>
+</tr>
+<tr>
+<td class='confluenceTd'>&nbsp;</td>
+<td class='confluenceTd'>&nbsp;</td>
+<td class='confluenceTd'>&nbsp;</td>
+<td class='confluenceTd'>&nbsp;</td>
+</tr>
+<tr>
+<td class='confluenceTd'>&nbsp;</td>
+<td class='confluenceTd'>&nbsp;</td>
+<td class='confluenceTd'>&nbsp;</td>
+<td class='confluenceTd'>&nbsp;</td>
+</tr>
+</tbody></table>
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/1. Configuration file.html Wed Mar 24
05:11:35 2010
@@ -0,0 +1,331 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 1. Configuration file</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 1. Configuration file
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 02 Apr 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <h1><a name="1.Configurationfile-1.Introduction"></a>1.
Introduction </h1>
+
+<p>NacaRT is configured by a main configuration file: nacaRT.cfg<br/>
+The purpose of this file is to give variuos settings used during nacaRT
runtime.<br/>
+It sets items like:</p>
+<ul class="alternate" type="square">
+ <li>Path and file name</li>
+ <li>Log settings</li>
+ <li>Db connection informationsc</li>
+ <li>Cache activation</li>
+ <li>...</li>
+</ul>
+
+
+<p>Some settings are mandatory, some are optional. If it's optionnal, then
the default value is indicated.</p>
+
+<p>This file is critical to the correct execution. It must not be modified
without a deep understanding.</p>
+
+<p>Some settings are usefull only in some execution mode. It's particulary
true for specific online settings that are unsusable for batch
programs.<br/>
+The parameters are grouped by such usage.</p>
+
+<h1><a name="1.Configurationfile-2.Notation"></a>2. Notation</h1>
+
+<p>This is a XML file.<br/>
+The notation used for all settings is given using the following syntax:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-xml">{{[tag_name/]+ parameter_name}}</pre>
+</div></div>
+
+<p>Exemple XML file:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-xml">&lt;conf
+ XSLFilePath=<span class="code-quote">"..."</span>
+ &lt;GCThread
+ ActivateThreadGarbageCollectorStatement=<span
class="code-quote">"..."</span>
+ /&gt;
+/&gt;</pre>
+</div></div>
+<p>is expressed as </p>
+<ul class="alternate" type="square">
+ <li><tt>conf/XSLFilePath</tt></li>
+ <li><tt>conf/GCThread/ActivateThreadGarbageCollectorStatement</tt></li>
+</ul>
+
+
+<h1><a name="1.Configurationfile-3Sample"></a>3 Sample</h1>
+
+<p>The following path, db and ldap identifications are faked. This XML
configuration file is for a Linux system.</p>
+
+<h2><a name="1.Configurationfile-3.1OnlineSample"></a>3.1 Online
Sample</h2>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-xml">&lt;conf
+ XSLFilePath=<span
class="code-quote">"/opt/apps/pub/webapps/Naca/ideaScript.xsl"</span>
+ HelpXSLFilePath=<span
class="code-quote">"/opt/apps/pub/webapps/Naca/help.xsl"</span>
+ ResourcePath=<span
class="code-quote">"/opt/apps/pub/webapps/Naca/WEB-INF/lib/Resources"</span>
+ SequencerFactoryClass=<span
class="code-quote">"idea.onlinePrgEnv.OnlineProgramLoaderFactory"</span>
+ XMLFrameFilePath=<span
class="code-quote">"/opt/apps/pub/webapps/Naca/xmlPageScript.xml"</span>
+ LogSettingsPathFile=<span
class="code-quote">"/opt/apps/pub/webapps/Naca/WEB-INF/LogSettings.cfg"</span>
+
+ PreLoadAllProgramFromDir=<span class="code-quote">"false"</span>
+ PreLoadAllProgramFromList=<span class="code-quote">"true"</span>
+ KeepPreloadedProgramList=<span class="code-quote">"false"</span>
+ PreLoadProgramList=<span
class="code-quote">"/opt/apps/pub/webapps/Naca/WEB-INF/ProgramList.xml"</span>
+ AsynchronousPreloadPrograms=<span class="code-quote">"true"</span>
+ GCAfterPreloadPrograms=<span class="code-quote">"true"</span>
+
+ EmulWebRootPath=""
+ UseProgramPool=<span class="code-quote">"true"</span>
+ UseSQLStatementCache=<span class="code-quote">"true"</span>
+ UseSQLObjectCache=<span class="code-quote">"true"</span>
+ UseVarFillCache=<span class="code-quote">"true"</span>
+ ManageVarDefCatalog=<span class="code-quote">"true"</span>
+ CacheResourceFiles=<span class="code-quote">"false"</span>
+
+ MaxSessionExecTime_ms=<span class="code-quote">"120000"</span>
+ HttpSessionMaxInactiveInterval_s=<span class="code-quote">"10800"</span>
+
+ ApplicationClassPath=<span
class="code-quote">"/opt/apps/pub/webapps/Naca/WEB-INF/lib/pub2000"</span>
+
+ JarFile=<span class="code-quote">"Application.jar"</span>
+ CanLoadJar=<span class="code-quote">"true"</span>
+ CanLoadClass=<span class="code-quote">"true"</span>
+
+ MaxSizeMemPoolCodeCache_Mb=<span class="code-quote">"64"</span>
+ MaxSizeMemPoolPermGen_Mb=<span class="code-quote">"300"</span>
+
+ TomcatStartCommand=<span
class="code-quote">"./opt/apps/pub/start_tomcat"</span>
+
+ ServerName=<span class="code-quote">"PROD1b"</span>
+ LDAPServer=<span class="code-quote">"LDAP1.company.com"</span>
+ LDAPServer2=<span class="code-quote">"LDAP2.company.com"</span>
+ LDAPServer3=<span class="code-quote">"LDAP3.company.com"</span>
+ LDAPRootOU=<span class="code-quote">"OU=MY_OU,DC=MY_DC,DC=MYDCDC"</span>
+ LDAPGenericUser=<span class="code-quote">"LDAP_USER"</span>
+ LDAPGenericPassword=<span class="code-quote">"LDAP_PASSWORD"</span>
+
+ AppLauncherConfig=<span
class="code-quote">"/opt/apps/pub/webapps/Naca/WEB-INF/CustomAppLauncher.cfg"</span>
+
+ CodeJavaToDb=<span class="code-quote">"255-159,10-133"</span>
+ CodeDbToJava=<span class="code-quote">"159-255"</span>
+
+ ComparisonMode=<span class="code-quote">"EBCDIC"</span>
+
+ StandardCalendar=<span
class="code-quote">"/opt/apps/pub/webapps/Naca/WEB-INF/StandardCalendar.xml"</span>
+ CustomCalendar=<span
class="code-quote">"/opt/apps/pub/webapps/Naca/WEB-INF/CustomCalendar.xml"</span>
+&gt;
+
+ &lt;GCThread
+ ActivateThreadGarbageCollectorStatement=<span
class="code-quote">"true"</span>
+ GarbageCollectorStatement_ms=<span class="code-quote">"300000"</span>
+ MaxPermanentHeap_Mo=<span class="code-quote">"3500"</span>
+ NbStatementForcedRemoved=<span class="code-quote">"0"</span>
+ NbSystemGCCall=<span class="code-quote">"1"</span>
+ NbStatementsToRemoveBeforeGC=<span class="code-quote">"500000"</span>
+ /&gt;
+
+ &lt;Accounting
+ MachineId=<span class="code-quote">"NACA1"</span>
+ TomcatId=<span class="code-quote">"TOMCAT1"</span>
+ TableName=<span class="code-quote">"SY0330"</span>
+ MaxLevelDepth=<span class="code-quote">"0"</span>
+ dburl=<span class="code-quote">"jdbc:db2://DBURL/TOTO:"</span>
+ dbuser=<span class="code-quote">"DBUSER"</span>
+ dbpassword=<span class="code-quote">"DBPASSWORD"</span>
+ dbConnectionUrlOptionalParams=<span
class="code-quote">"clientProgramName=$FoundPoolName;"</span>
+ dbenvironment=<span class="code-quote">"DB_ENV"</span>
+ driverClass=<span class="code-quote">"com.ibm.db2.jcc.DB2Driver"</span>
+ CloseCursorOnCommit=<span class="code-quote">"true"</span>
+ AutoCommit=<span class="code-quote">"true"</span>
+ validationQuery=<span class="code-quote">"select * from
SYSIBM.SYSDUMMY1"</span>
+ &gt;
+ <span class="code-tag">&lt;Pools&gt;</span>
+ <span class="code-tag">&lt;Pool Name=<span
class="code-quote">"Accounting"</span> ProgramId=<span
class="code-quote">"Accounting"</span> MaxConnection=<span
class="code-quote">"20"</span> TimeBeforeRemoveConnection_ms=<span
class="code-quote">"1200000"</span> MaxStatementLiveTime_ms=<span
class="code-quote">"1200001"</span> UseExplain=<span
class="code-quote">"false"</span>/&gt;</span>
+ <span class="code-tag">&lt;/Pools&gt;</span>
+ <span class="code-tag">&lt;/Accounting&gt;</span>
+
+ &lt;DebugLoadTest
+ LogAllSQLException=<span class="code-quote">"true"</span>
+ /&gt;
+
+ &lt;SequencerConfig
+ TransIDMappingFilePath=<span
class="code-quote">"/opt/apps/pub/webapps/Naca/WEB-INF/lib/Resources/TransIDMapping.xml"</span>
+ TranslationFilePath=<span
class="code-quote">"/opt/apps/pub/webapps/Naca/WEB-INF/lib/Resources/Translations.xml"</span>
+ &gt;
+ <span class="code-tag">&lt;StartPrograms&gt;</span>
+ <span class="code-tag">&lt;Program name=<span
class="code-quote">"ZX15T50"</span> delaySeconds=<span
class="code-quote">"300"</span>/&gt;</span>
+ <span class="code-tag">&lt;Program name=<span
class="code-quote">"ZX42V05"</span> delaySeconds=<span
class="code-quote">"300"</span>/&gt;</span>
+ <span class="code-tag">&lt;Program name=<span
class="code-quote">"ZX55B05"</span> delaySeconds=<span
class="code-quote">"300"</span>/&gt;</span>
+ <span class="code-tag">&lt;Program name=<span
class="code-quote">"ZX7AH7B"</span> delaySeconds=<span
class="code-quote">"300"</span>/&gt;</span>
+ <span class="code-tag">&lt;Program name=<span
class="code-quote">"ZX7BD91"</span> delaySeconds=<span
class="code-quote">"300"</span>/&gt;</span>
+ <span class="code-tag">&lt;/StartPrograms&gt;</span>
+
+ &lt;MailConfig
+ addressFrom=<span
class="code-quote">"alert-n...@consultas.ch"</span>
+ smtpServer=<span class="code-quote">"smtp.intra.consultas.ch"</span>
+ title=<span class="code-quote">"NACA-Online-PROD1"</span>
+ &gt;
+ <span class="code-tag">&lt;addressTo email=<span
class="code-quote">"us...@company.com"</span>/&gt;</span>
+ <span class="code-tag">&lt;addressTo email=<span
class="code-quote">"us...@company.com"</span>/&gt;</span>
+ <span class="code-tag">&lt;addressTo email=<span
class="code-quote">"us...@company.com"</span>/&gt;</span>
+ <span class="code-tag">&lt;/MailConfig&gt;</span>
+
+ &lt;CESMConfig
+ StartProgramId=<span class="code-quote">"ZX01G01"</span>
+ StartCommandCode=<span class="code-quote">"XCTL"</span>
+ HelpCenterClassName=<span
class="code-quote">"pub2000Utils.help.HelpCenter"</span>
+ &gt;
+ &lt;Config
+ StartBatchPrefix=<span class="code-quote">"P"</span>
+ StartBatchHostTest=<span class="code-quote">"false"</span>
+ StartBatchHostFtpUrl=<span class="code-quote">"???"</span>
+ StartBatchHostFtpUser=<span class="code-quote">"???"</span>
+ StartBatchHostFtpPassword=<span class="code-quote">"???"</span>
+ StartBatchHostFtpSiteCommand=<span class="code-quote">"???"</span>
+ StartBatchLinuxFtpUrl=<span class="code-quote">"???"</span>
+ StartBatchLinuxFtpUser=<span class="code-quote">"???"</span>
+ StartBatchLinuxFtpPassword=<span class="code-quote">"???"</span>
+ StartBatchLinuxFtpDirectory=<span class="code-quote">"???"</span>
+ StartBatchLinuxSshCommand=<span class="code-quote">"???"</span>
+ StartBatchLinuxSshPath=<span class="code-quote">"???"</span>
+ StartBatchLinuxSshUser=<span class="code-quote">"???"</span>
+ /&gt;
+ <span class="code-tag">&lt;/CESMConfig&gt;</span>
+
+ &lt;SQLConfig
+ dburl=<span class="code-quote">"jdbc:db2://DB_URL2/DFSAFDSA:"</span>
+ dbuser=<span class="code-quote">"DBUSER2"</span>
+ CryptKey=<span class="code-quote">"DBCRYPTKEY"</span>
+ CryptedDbpassword=<span class="code-quote">"DBCRYPTEDPASSWORD"</span>
+ dbConnectionUrlOptionalParams=<span
class="code-quote">"currentPackageSet=NACA;keepDynamic=yes;clientProgramName=$FoundPoolName;"</span>
+ dbenvironment=<span class="code-quote">"DBENV"</span>
+ driverClass=<span class="code-quote">"com.ibm.db2.jcc.DB2Driver"</span>
+ CloseCursorOnCommit=<span class="code-quote">"true"</span>
+ AutoCommit=<span class="code-quote">"false"</span>
+ validationQuery=<span class="code-quote">"select * from
SYSIBM.SYSDUMMY1"</span>
+ &gt;
+ <span class="code-tag">&lt;Pools&gt;</span>
+ <span class="code-tag">&lt;Pool Name=<span
class="code-quote">"Generic"</span> ProgramId=<span class="code-quote">""
MaxConnection="</span>100<span class="code-quote">"
TimeBeforeRemoveConnection_ms="</span>1200000<span class="code-quote">"
MaxStatementLiveTime_ms="</span>1200001<span class="code-quote">"
UseExplain="</span>false"/&gt;</span>
+ <span class="code-tag">&lt;Pool Name=<span
class="code-quote">"RS7AS70"</span> ProgramId=<span
class="code-quote">"ZX7AS70"</span> MaxConnection=<span
class="code-quote">"1"</span> TimeBeforeRemoveConnection_ms=<span
class="code-quote">"1200000"</span> MaxStatementLiveTime_ms=<span
class="code-quote">"1200001"</span> UseExplain=<span
class="code-quote">"false"</span>/&gt;</span>
+ <span class="code-tag">&lt;Pool Name=<span
class="code-quote">"RS7CS70"</span> ProgramId=<span
class="code-quote">"ZX7CS70"</span> MaxConnection=<span
class="code-quote">"1"</span> TimeBeforeRemoveConnection_ms=<span
class="code-quote">"1200000"</span> MaxStatementLiveTime_ms=<span
class="code-quote">"1200001"</span> UseExplain=<span
class="code-quote">"false"</span>/&gt;</span>
+ <span class="code-tag">&lt;Pool Name=<span
class="code-quote">"RS7CS70"</span> ProgramId=<span
class="code-quote">"ZX7FGHJ"</span> ParentProgramId=<span
class="code-quote">"RS74M11"</span> MaxConnection=<span
class="code-quote">"1"</span> TimeBeforeRemoveConnection_ms=<span
class="code-quote">"1200000"</span> MaxStatementLiveTime_ms=<span
class="code-quote">"1200001"</span> UseExplain=<span
class="code-quote">"false"</span>/&gt;</span>
+ <span class="code-tag">&lt;Pool Name=<span
class="code-quote">"RS7DS70"</span> ProgramId=<span
class="code-quote">"RS7TD70"</span> MaxConnection=<span
class="code-quote">"1"</span> TimeBeforeRemoveConnection_ms=<span
class="code-quote">"1200000"</span> MaxStatementLiveTime_ms=<span
class="code-quote">"1200001"</span> UseExplain=<span
class="code-quote">"false"</span>/&gt;</span>
+ <span class="code-tag">&lt;/Pools&gt;</span>
+ <span class="code-tag">&lt;ConnectionKillerSQLCodes&gt;</span>
+ <span class="code-tag">&lt;ConnectionKillerSQLCode Value=<span
class="code-quote">"-9999"</span>/&gt;</span>
+ <span class="code-tag">&lt;/ConnectionKillerSQLCodes&gt;</span>
+ <span class="code-tag">&lt;/SQLConfig&gt;</span>
+ <span class="code-tag">&lt;/SequencerConfig&gt;</span>
+<span class="code-tag">&lt;/conf&gt;</span></pre>
+</div></div>
+
+<h2><a name="1.Configurationfile-3.2BatchSample"></a>3.2 Batch Sample</h2>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-xml">&lt;conf
+ LogSettingsPathFile=<span
class="code-quote">"/opt/apps/batch/libs/java/LogSettings.cfg"</span>
+ SequencerFactoryClass=<span
class="code-quote">"nacaLib.batchPrgEnv.BatchProgramLoaderFactory"</span>
+
+ UseProgramPool=<span class="code-quote">"true"</span>
+ UseSQLStatementCache=<span class="code-quote">"true"</span>
+ UseSQLObjectCache=<span class="code-quote">"true"</span>
+ UseVarFillCache=<span class="code-quote">"true"</span>
+ ManageVarDefCatalog=<span class="code-quote">"true"</span>
+
+ ApplicationClassPath=<span
class="code-quote">"/opt/apps/batch/libs/java/"</span>
+ JarFile=<span class="code-quote">"Application.jar"</span>
+ CanLoadJar=<span class="code-quote">"true"</span>
+ CanLoadClass=<span class="code-quote">"true"</span>
+
+ TempDir=<span class="code-quote">"/opt/apps/batch/sort_tmp"</span>
+ DynamicAllocationPath=<span
class="code-quote">"/opt/apps/batch/data/"</span>
+
+ CodeJavaToDb=""
+ CodeDbToJava=""
+
+ ComparisonMode=<span class="code-quote">"ASCII"</span>
+
+ SQLInsertStatementBatchSize=<span class="code-quote">"100"</span>
+&gt;
+
+ &lt;GCThread
+ ActivateThreadGarbageCollectorStatement=<span
class="code-quote">"false"</span>
+ GarbageCollectorStatement_ms=<span class="code-quote">"300000"</span>
+ MaxPermanentHeap_Mo=<span class="code-quote">"800"</span>
+ NbStatementForcedRemoved=<span class="code-quote">"100"</span>
+ /&gt;
+
+ &lt;Accounting
+ MachineId=<span class="code-quote">"MACHINEID"</span>
+ TomcatId=<span class="code-quote">"batch"</span>
+ TableName=<span class="code-quote">"SY0330"</span>
+ MaxLevelDepth=<span class="code-quote">"0"</span>
+ dburl=<span class="code-quote">"jdbc:db2://DB_URL/TZTT:"</span>
+ dbuser=<span class="code-quote">"DBUSER"</span>
+ dbpassword=<span class="code-quote">"DBPASSWORD"</span>
+ dbConnectionUrlOptionalParams=<span
class="code-quote">"clientProgramName=$FoundPoolName;"</span>
+ dbenvironment=<span class="code-quote">"DB_ENV"</span>
+ driverClass=<span class="code-quote">"com.ibm.db2.jcc.DB2Driver"</span>
+ CloseCursorOnCommit=<span class="code-quote">"true"</span>
+ AutoCommit=<span class="code-quote">"true"</span>
+ validationQuery=<span class="code-quote">"select * from
SYSIBM.SYSDUMMY1"</span>
+ &gt;
+ <span class="code-tag">&lt;Pools&gt;</span>
+ <span class="code-tag">&lt;Pool Name=<span
class="code-quote">"Accounting"</span> ProgramId=<span
class="code-quote">"Accounting"</span> MaxConnection=<span
class="code-quote">"1"</span> TimeBeforeRemoveConnection_ms=<span
class="code-quote">"1200000"</span> MaxStatementLiveTime_ms=<span
class="code-quote">"1200001"</span> UseExplain=<span
class="code-quote">"false"</span>/&gt;</span>
+ <span class="code-tag">&lt;/Pools&gt;</span>
+ <span class="code-tag">&lt;/Accounting&gt;</span>
+
+ <span class="code-tag">&lt;SequencerConfig&gt;</span>
+ &lt;MailConfig
+ addressFrom=<span class="code-quote">"alert...@company.com"</span>
+ smtpServer=<span class="code-quote">"smtp.intra.company.com"</span>
+ title=<span
class="code-quote">"NACA-Pub2000-Batch-VALT-UDB-batchvali"</span>
+ &gt;
+ <span class="code-tag">&lt;addressTo email=<span
class="code-quote">"us...@company.com"</span>/&gt;</span>
+ <span class="code-tag">&lt;addressTo email=<span
class="code-quote">"us...@company.com"</span>/&gt;</span>
+ <span class="code-tag">&lt;addressTo email=<span
class="code-quote">"us...@company.com"</span>/&gt;</span>
+ <span class="code-tag">&lt;/MailConfig&gt;</span>
+
+ &lt;SQLConfig
+ dburl=<span class="code-quote">"jdbc:db2://DBURL2/GFDGD:"</span>
+ dbuser=<span class="code-quote">"DBUSER"</span>
+ dbpassword=<span class="code-quote">"DBPASSWORD"</span>
+ dbConnectionUrlOptionalParams=<span
class="code-quote">"clientProgramName=$FoundPoolName;"</span>
+ dbenvironment=<span class="code-quote">"PROD"</span>
+ driverClass=<span class="code-quote">"com.ibm.db2.jcc.DB2Driver"</span>
+ CloseCursorOnCommit=<span class="code-quote">"true"</span>
+ AutoCommit=<span class="code-quote">"false"</span>
+ validationQuery=<span class="code-quote">"select * from
SYSIBM.SYSDUMMY1"</span>
+ &gt;
+ <span class="code-tag">&lt;Pools&gt;</span>
+ <span class="code-tag">&lt;Pool Name=<span
class="code-quote">"Generic"</span> ProgramId=<span class="code-quote">""
MaxConnection="</span>1<span class="code-quote">"
TimeBeforeRemoveConnection_ms="</span>1200000<span class="code-quote">"
MaxStatementLiveTime_ms="</span>1200001<span class="code-quote">"
UseExplain="</span>false"/&gt;</span>
+ <span class="code-tag">&lt;/Pools&gt;</span>
+ <span class="code-tag">&lt;/SQLConfig&gt;</span>
+ <span class="code-tag">&lt;/SequencerConfig&gt;</span>
+<span class="code-tag">&lt;/conf&gt;</span></pre>
+</div></div>
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/2. Introduction.html Wed Mar 24
05:11:35 2010
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 2. Introduction</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 2. Introduction
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 19 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <div class="error"><span class="error">Error formatting macro:
toc: java.lang.NullPointerException</span> </div>
+<h1><a name="2.Introduction-Designconstraints"></a>Design constraints</h1>
+
+<p>Various requirements were mandatory during design and implentation
phases:</p>
+
+<p>NacaRT is a library layer used to executed Cobol-transcoded
applications within a Java environment. Cobol programs are automatically
transcoded in java source files with a syntaxe named cobol-like.</p>
+
+<p>These transcoded programs have a strict source structure which is not
executable by itself, but requires a important abstraction layer. NacaRT
implements all required objets to fully the Cobol-Like syntax, and then be
able to executed these programs in the same manner as the original Cobol
code.</p>
+
+<h3><a name="2.Introduction-TypesofsupportedCobolprograms"></a>Types of
supported Cobol programs</h3>
+
+<p>There are multiple types of supported Cobol programs. They must all
respect IBM Mainframe hosts Cobol (<b><em>version to precised</em></b>)
specifications.</p>
+<table class='confluenceTable'><tbody>
+<tr>
+<th class='confluenceTh'> Execution mode </th>
+<th class='confluenceTh'> Comments </th>
+<th class='confluenceTh'> Execution environment </th>
+</tr>
+<tr>
+<td class='confluenceTd'> Base </td>
+<td class='confluenceTd'> Support for Cobol standards keywords, variable
declarations, arrays, DB2 and UDB database access. </td>
+<td class='confluenceTd'> Can be either: <br clear="all" />
+&#45; Application server (Tomcat) <br clear="all" />
+&#45; UDB stored procedure container <br clear="all" />
+&#45; Command line script <br clear="all" />
+&#45; Eclipse debugger command line </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Online </td>
+<td class='confluenceTd'> Online program with user interface. These
programs&nbsp;can use all base services, plus can handle transactionnal
screen input/output. These I/O are based upon CICS&nbsp;standard from Cobol
world. </td>
+<td class='confluenceTd'> Application server (Tomcat) </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Batch </td>
+<td class='confluenceTd'> Batch programs, supporting sequential and direct
access files. Internal sorting is avalaible </td>
+<td class='confluenceTd'> Command line script <br clear="all" />
+or <br clear="all" />
+Eclipse debugger command line </td>
+</tr>
+<tr>
+<td class='confluenceTd'> FilePac </td>
+<td class='confluenceTd'> Kind of script file giving a direct access
buffer manipulation. All characterics of Batch programs are supported in
this mode, with FilePac extensions. </td>
+<td class='confluenceTd'> Command line script </td>
+</tr>
+<tr>
+<td class='confluenceTd'> Stored procedure </td>
+<td class='confluenceTd'> A DB2 Cobol stored procedure can be transcoded
and executed in UDB as a java transcoded program. </td>
+<td class='confluenceTd'> UDB stored procedure container </td>
+</tr>
+<tr>
+<td class='confluenceTd'> EmulWeb </td>
+<td class='confluenceTd'> Reserved for testing purpose of screen oriented
applications </td>
+<td class='confluenceTd'> Application server (Tomcat) </td>
+</tr>
+<tr>
+<td class='confluenceTd'> UnitTests </td>
+<td class='confluenceTd'> Reserved for unitary function testing. </td>
+<td class='confluenceTd'> Application server (Tomcat) <br clear="all" />
+or <br clear="all" />
+Command line script <br clear="all" />
+or <br clear="all" />
+Eclipse debugger command line <br clear="all" /> </td>
+<td class='confluenceTd'> <br clear="all" /> </td>
+</tr>
+</tbody></table>
+
+<h3><a name="2.Introduction-Syntaxandeasymaintenance"></a>Syntax and easy
maintenance</h3>
+
+<p>&#45; Automatic transcoding with full Cobol + CICS extension
support.<br/>
+&#45; Cobol like syntax as close as possible of original cobol syntax. In
particular, it was mostly important to keep the same
hierarchical&nbsp;description of the variables as in Cobol. No hard
variable memory position computing was allowed. However,&nbsp;the important
area of user interface management has been completly modernized, and defers
in a important manner from the original CICS handling. But this
transformation is automatically handled by the transcoder. This gives the
developper a much high abstraction level of it's screen management.<br/>
+&#45; All cobol variable types had to be fully supported, including packed
decimal, binary variables, alphanumeric types, numeric edited types.<br/>
+&#45; Ebcdic encoding had to be optinally supported for DB and File
I/O.<br/>
+&#45; All standard cobol keywords had to be fully supported, with the same
semantics&nbsp;and border effects.<br/>
+&#45; The notion of parapgraph, section, perform and goto had to be fully
supported. The implentations details had to be hidden from the point of
view of the application developper.<br/>
+&#45; The Cobol-like source code files had to be widely checked by Java
compiler. This means that no strings could to be used for variable ou
paragraph identification for example, as there semantic could not be
validated by the java compiler.</p>
+
+<h3><a name="2.Introduction-Performance"></a>Performance</h3>
+
+<p>The&nbsp;aim the the project is to execute entreprise-wide applications
with&nbsp;the same magnitude of response time as the original mainframe.
Many optimisations strategies have been used to achieve this important
point. they will be explained below.
+<br clear="all" /></p>
+
+<h2><a name="2.Introduction-Libraryorganisation"></a>Library
organisation</h2>
+
+<p>2 Consultas specific libraries provides execution support:</p>
+
+<h3><a name="2.Introduction-JLib"></a>JLib</h3>
+
+<p>Base service library layer offering standards service, independants
from the naca projet, but used by the naca project.</p>
+
+<p>The following base services are available:</p>
+
+<p>&#45; Logging<br/>
+&#45; XML parsing<br/>
+&#45; Class loading / Unloading<br/>
+&#45; Database connection and statement pooling<br/>
+&#45; Ldap authentication<br/>
+&#45; Multi-threading<br/>
+&#45; JMX beans<br/>
+&#45; Lots of various helper classes</p>
+
+<h3><a name="2.Introduction-NacaRT"></a>NacaRT</h3>
+
+<p>The following services are offered by the 2 main components:</p>
+
+<h4><a name="2.Introduction-NacaLib"></a>NacaLib</h4>
+
+<p>&#45; Base program class from which all transcoded programs are derived
from. It exposes all Cobol keywords support (move, compute,
perform, ...).<br/>
+&#45; Call program support, including arguments passing by reference or
value<br/>
+&#45; Copy support<br/>
+&#45; Variable and Variable Defintion management<br/>
+&#45; Full cobol data types<br/>
+&#45; Flow of execution support, including goto keyword<br/>
+&#45; SQL statement handling, as well as sql error management<br/>
+&#45; CICS keywords<br/>
+&#45; Program instances pooling<br/>
+&#45; Batch file handling<br/>
+&#45; Batch internal and external sort<br/>
+&#45; Dynamic program class loading<br/>
+&#45; Execution of a program as a stored procedure with an UDB
database<br/>
+&#45; JMX reporting<br/>
+&#45; Transaction support<br/>
+&#45; Accounting<br/>
+&#45; Program environment<br/>
+&#45; Asynchronous tasks support<br/>
+&#45; Time range defining application availability<br/>
+&#45; Ebcdic - ascii converter<br/>
+&#45; All internal classes required for this management.</p>
+
+<h4><a name="2.Introduction-Idea"></a>Idea</h4>
+
+<p>&#45; Tomcat servlet for application server startup<br/>
+&#45; User interface resources management<br/>
+&#45; Tomcat servlet for application screen handling<br/>
+&#45; HTML/javascript ouput generation<br/>
+&#45; HTML data input handling<br/>
+&#45; User session management<br/>
+&#45; Screen management compatible with CICS BMS
+<br clear="all" /></p>
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/2. JMX Console.html Wed Mar 24 05:11:35
2010
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 2. JMX Console</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 2. JMX Console
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 02 Apr 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <p>NacaRT uses JMX for action reporting and adminitration during
runtime.<br/>
+This console is activated for Online execution mode. It is not available
in batch or stored procedure mode.</p>
+
+<p>The following operations are available:</p>
+<ul class="alternate" type="square">
+ <li>Memory consumption display</li>
+ <li>Application resource usage statics display and operation</li>
+</ul>
+
+
+<h1><a name="2.JMXConsole-JMXConsole"></a>JMX Console</h1>
+
+<p>The hosting tomcat server waits for JMX client requests on a specific
port identified by a JVM command line parameter:<br/>
+<tt>-Dcom.sun.management.jmxremote.port=xxx</tt> where xxx is the port
used for requests handling.</p>
+
+<p>The JMX console is described by Sun documentation.</p>
+
+<h1><a name="2.JMXConsole-Memoryconsumption"></a>Memory consumption</h1>
+
+<p>The Memory tab on the JMX console gives informations on the various
types of memory.<br/>
+There 5 different memory pools, grouped in 2 main categories:</p>
+<ul class="alternate" type="square">
+ <li>Heap memory pools
+ <ul class="alternate" type="square">
+ <li>Memory Pool "Eden space"</li>
+ <li>Memory Pool "Survivor space"</li>
+ <li>Memory Pool "Tenured gen"</li>
+ </ul>
+ </li>
+</ul>
+
+
+<ul class="alternate" type="square">
+ <li>Non-heap pools
+ <ul class="alternate" type="square">
+ <li>Code Cache</li>
+ <li>Perm Gen</li>
+ </ul>
+ </li>
+</ul>
+
+
+<h2><a name="2.JMXConsole-Memoryusagesumup"></a>Memory usage sumup</h2>
+
+<p>An object is freed form memory when it's not refered to anymore. That
is when no other object references it. The garbage collector is a JVM
internal <br/>
+thread that activates asynchronously when required by the JVM. It detects
the objects that are not used anymore dans refress their memory block, so
that this storage space becomes avaible for other objects usages.<br/>
+Some of these operations are non blocking, which is good, as it has a
small impact on server execution time.<br/>
+However, some other operations are blocking. That is bad, as it means that
user requests are suspending, thus takes a longer time to be processed.<br/>
+A great deal of nacaRT implementation is to minimize these blocking
garbage collection. It is not possible to avoid at all these periods, but
they are minimized at most by using caching strategies. NacaRT uses large
amount of memory for caching and object reuse. </p>
+
+<h2><a name="2.JMXConsole-Heapmemorypools"></a>Heap memory pools</h2>
+
+<p>These pools are used by the JVM to store java data objects. <br/>
+The Eden space is used for storing only short-lived objects. It's garbage
collectet often. It's not a blocking one, and is named "Copy" in the JMX
console. the purpose is to remove temporary used objects, or the send them
to the "Survivor space" heap.<br/>
+This space can vary from 0 byte to 2.5 Gb in 1 or 2 minutes, as a lot of
small objects are allocated and destoy very fast.</p>
+
+<p>The "survivor space" contains objects with a middle to long live time.
It size is not large and vary from 0 to 200 Mb.</p>
+
+<p>The "tenured gen" is the pool that holds long term objects. For
example, sql prepared statements are stored in caches associated with the
db sql connection. The object may live all day long, if they are used often
enough. In that case, these objects won't be removed form this pool.<br/>
+However, if the sql prepared statement is not re-used within a certain
amount of time, the nacaRT internal GC thread will detect that it's
obsolete and will take it out of this cache. thus, when the JVM garbage
collector thread will activates, it will free the memory blocks used by the
prepared statement. This operation is blocking !</p>
+
+<h2><a name="2.JMXConsole-Nonheapmomorypools"></a>Non-heap momory
pools</h2>
+
+<p>These pools are used to store java code, not data. Java code is loaded
in memory by a class loader which loads in memory the .class binary
code.<br/>
+This code is managed almost a data: it's also garbage collected. There is
only 2 pools:</p>
+<ul class="alternate" type="square">
+ <li>"Code cache" that holds short lived code classes.</li>
+ <li>"Perm gen" that holds long lived code classes.<br/>
+In the case of cobol like programs, they are all cached by nacaRT, thus
are have a natural tendency to live a long time. Thus, they are transfered
by the JVM garbage collector to the "Perm gen" pool.<br/>
+This is hopefully not a blocking operation.</li>
+</ul>
+
+
+
+<h2><a name="2.JMXConsole-JMXconsoledisplays"></a>JMX console displays</h2>
+<p>All these 5 pools current level are displayed in the tab "Memory" of
the JMX console. The garbage collection times is also displayed.</p>
+
+
+
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3. Overview - Usage.html Wed Mar 24
05:11:35 2010
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3. Overview - Usage</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3. Overview - Usage
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 19 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.1 Programs.html Wed Mar 24 05:11:35
2010
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.1 Programs</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.1 Programs
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 12 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.1.1 Sample Hello World.html Wed Mar
24 05:11:35 2010
@@ -0,0 +1,123 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.1.1 Sample Hello World</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.1.1 Sample Hello World
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 13 Mar 2007 by <font
color="#0050B2">u930di</font>.
+
+ </div>
+
+ <h1><a
name="3.1.1SampleHelloWorld-Samplehelloworldtypeprogram"></a>Sample
hello-world type program</h1>
+
+
+<h2><a name="3.1.1SampleHelloWorld-Source"></a>Source</h2>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">import</span>
nacaLib.batchPrgEnv.BatchProgram;
+<span class="code-keyword">import</span> nacaLib.program.Paragraph;
+<span class="code-keyword">import</span> nacaLib.varEx.DataSection;
+<span class="code-keyword">import</span> nacaLib.varEx.Var;
+<span class="code-keyword">public</span> class TestHelloWorld <span
class="code-keyword">extends</span> BatchProgram
+{
+ DataSection WorkingStorage = declare.workingStorageSection();
+ Var varHelloWorld = declare.level(1).<span
class="code-keyword">var</span>();
+ Var hello = declare.level(5).picX(5).<span
class="code-keyword">var</span>();
+ Var space = declare.level(5).picX(1).value(<span
class="code-quote">" "</span>).filler();
+ Var world = declare.level(5).picX(5).<span
class="code-keyword">var</span>();
+ <span class="code-keyword">public</span> void procedureDivision()
+ {
+ move(<span class="code-quote">"Hello"</span>, hello);
+ move(<span class="code-quote">"World"</span>, world);
+ perform(DisplayHelloWorld);
+ stopRun();
+ }
+
+ Paragraph DisplayHelloWorld = <span class="code-keyword">new</span>
Paragraph(<span class="code-keyword">this</span>){<span
class="code-keyword">public</span> void run(){DisplayHelloWorld();}};void
DisplayHelloWorld()
+ {
+ display(varHelloWorld);
+ }
+}</pre>
+</div></div>
+
+
+<h2><a name="3.1.1SampleHelloWorld-Explanations"></a>Explanations</h2>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> class
TestHelloWorld <span class="code-keyword">extends</span> BatchProgram</pre>
+</div></div>
+<p>This program is a batch program as it derives from BatchProgram
class.</p>
+
+<p>The working storage section is declared by</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">DataSection WorkingStorage =
declare.workingStorageSection();</pre>
+</div></div>
+<p>This declaration is mandatory.</p>
+
+<p>The program's variables are declared as</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">Var varHelloWorld = declare.level(1).<span
class="code-keyword">var</span>(); Var hello =
declare.level(5).picX(5).<span class="code-keyword">var</span>(); Var space
= declare.level(5).picX(1).value(<span
class="code-quote">" "</span>).filler(); Var world =
declare.level(5).picX(5).<span class="code-keyword">var</span>();</pre>
+</div></div>
+<p>Note that the space leading variables of level 5 is optional. It's set
here only for easy reading of the source code.<br/>
+Declaration of all variables is always the same, and follows the
syntax:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">Var &lt;variable name&gt; =
declare.level(&lt;level&gt;).&lt;options&gt;.<span
class="code-keyword">var</span>();</pre>
+</div></div>
+<p>a filler is declared as a variable, but the last keyword is filler()
instead of var() :</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">Var &lt;filler name&gt; =
declare.level(&lt;level&gt;).&lt;options&gt;.filler();</pre>
+</div></div>
+<p>The program entry point is here the method:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> void
procedureDivision()</pre>
+</div></div>
+<p>It could be also a paragraph ou a section.</p>
+
+<p>The procedure division contains various sentences that act upon the
variables. Here we have moves and a paragrpah perform.</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">move(<span class="code-quote">"Hello"</span>,
hello);
+move(<span class="code-quote">"World"</span>, world);
+perform(DisplayHelloWorld);
+stopRun();</pre>
+</div></div>
+<p>Note that the paragraph is identified by a compiler validated
name :<br/>
+<tt>DisplayHelloWorld</tt>, not a string that the compiler could not
validate ("DisplayHelloWorld").<br/>
+The paragraph delcaration is a little bit strange:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">Paragraph DisplayHelloWorld = <span
class="code-keyword">new</span> Paragraph(<span
class="code-keyword">this</span>){<span class="code-keyword">public</span>
void run(){DisplayHelloWorld();}};void DisplayHelloWorld()</pre>
+</div></div>
+<p>This syntax is imposed by the fact that a paragraph is a java "functor"
that can be called indirectly by it's name. It's name can also be
registered internally.</p>
+
+<p>In the sample, the paragraph internal code does only</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">display(varHelloWorld);</pre>
+</div></div>
+<p>This displays the "Hello World" message on the java console output.<br/>
+Note that as varHelloWorld is build up with 2 variables and a filler, and
then can be assambled by chunks.</p>
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+
+ <br>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.1.2 Program physical
representation.html Wed Mar 24 05:11:35 2010
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.1.2 Program physical
representation</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.1.2 Program physical
representation
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 12 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <h1><a
name="3.1.2Programphysicalrepresentation-Programphyscialrepresentation"></a>Program
physcial representation</h1>
+
+<p><br clear="all" /></p>
+
+<p>Compiled programs are physically represented in&nbsp; 1 or many binary
files. The whole program code is represented as:</p>
+<table class='confluenceTable'><tbody>
+<tr>
+<th class='confluenceTh'> Type </th>
+<th class='confluenceTh'> Source file name </th>
+<th class='confluenceTh'> Compiled file name </th>
+<th class='confluenceTh'> Remark </th>
+</tr>
+<tr>
+<td class='confluenceTd'> program </td>
+<td class='confluenceTd'> xxx.java </td>
+<td class='confluenceTd'> xxx.class </td>
+<td class='confluenceTd'> Contains the code of the program xxx. There
isn't a main() metjo in this program, as it can only be run through nacaRT
support. </td>
+</tr>
+<tr>
+<td class='confluenceTd'> paragraph </td>
+<td class='confluenceTd'> xxx.java </td>
+<td class='confluenceTd'> xxx$nnn.class, where nnn is a counter value </td>
+<td class='confluenceTd'> Each paragraph is contained in it's own class.
However, this class is embedded in the program's source file and then
doesn't have it's own java source. But the java compiler generates a
separated class file file during build. The nn value is a counter value
generated by the compiler </td>
+</tr>
+<tr>
+<td class='confluenceTd'> section </td>
+<td class='confluenceTd'> xxx.java </td>
+<td class='confluenceTd'> xxx$nnn.class </td>
+<td class='confluenceTd'> Same remarks as paragraph </td>
+</tr>
+<tr>
+<td class='confluenceTd'> copy </td>
+<td class='confluenceTd'> yyy.java </td>
+<td class='confluenceTd'> yyy.class </td>
+<td class='confluenceTd'> A copy is independant from the source file that
includes it.&nbsp;It&nbsp;can also be shared by various programs. The copy
files are technically not inlined, even if syntaxically they looks as being
inlined. </td>
+</tr>
+</tbody></table>
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.1.3 Program declarations.html Wed Mar
24 05:11:35 2010
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.1.3 Program declarations</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.1.3 Program declarations
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 13 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <p>A program is implemented in 1 or many java classes.</p>
+
+<p>A Cobol-like program is structured as a Cobol program, within
limitaitions due to Java language.</p>
+
+<p>The main declarations are described below. The declaration order is
important and must be respected. A note indicates if the declaration is
mandatory or not, and in which case it can be used.</p>
+
+<h4><a name="3.1.3Programdeclarations-Packagesimports"></a>Packages
imports</h4>
+
+<p>Used&nbsp;by: OnlineProgram, BatchProgram, CalledProgram,
FPacProgram&nbsp;</p>
+
+<p>This is mandatory for all Java programs to delcare the packages that
provides needed runtime classes</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">import</span>
nacaLib.batchPrgEnv.BatchProgram;
+<span class="code-keyword">import</span> nacaLib.program.Paragraph;
+<span class="code-keyword">import</span> nacaLib.varEx.DataSection;
+<span class="code-keyword">import</span> nacaLib.varEx.Var;</pre>
+</div></div>
+<p>This list is not complete and may be different, depending on your exact
source code. However Eclipse integration makes easy the package
declaration, as the tool proposes imports.</p>
+
+<h4><a name="3.1.3Programdeclarations-Programidentification"></a>Program
identification</h4>
+
+<p>Used by: OnlineProgram, BatchProgram, CalledProgram,
FPacProgram&nbsp;&nbsp;</p>
+
+<p>As each program is implemented in it's own java class and can use
resources from base classes, the declaration of the program is</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> class xxx
<span class="code-keyword">extends</span> BatchProgram|OnlineProgram|
CalledProgram|FPacProgram</pre>
+</div></div>
+<p>where xxx is the program's name<br/>
+and yyy can be one of :</p>
+<table class='confluenceTable'><tbody>
+<tr>
+<th class='confluenceTh'> Name </th>
+<th class='confluenceTh'> Comment </th>
+</tr>
+<tr>
+<td class='confluenceTd'> BatchProgram </td>
+<td class='confluenceTd'> Used by batch programs. They can handle files
and do internal sorting </td>
+</tr>
+<tr>
+<td class='confluenceTd'> OnlineProgram </td>
+<td class='confluenceTd'> Used by online program supporting CICS like
environment </td>
+</tr>
+<tr>
+<td class='confluenceTd'> CalledProgram </td>
+<td class='confluenceTd'> Used by programs that are called by the call()
keyword. Such a program can be called by a BatchProgram, OnlineProgram or
as a Stored procedure within UDB </td>
+</tr>
+<tr>
+<td class='confluenceTd'> FPacProgram </td>
+<td class='confluenceTd'> Consultas custom extension of batch programs.
The can handle file buffer directly. </td>
+</tr>
+</tbody></table>
+
+<h4><a name="3.1.3Programdeclarations-Cursorssection"></a>Cursors
section</h4>
+
+<p>Used by: OnlineProgram, BatchProgram, CalledProgram&nbsp;</p>
+
+<p>Contrary to native Cobol programs, the cursors MUST be declared
in&nbsp;cobol-like programs that uses SQL cursors. If it's not the case,
then this declaration can safely be ignored.<br/>
+Syntax:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">[DataSection sqlcursorsection =
declare.cursorSection();
+[SQLCursor &lt;cursor_name&gt; = declare.cursor();]*]</pre>
+</div></div>
+<p>Note:</p>
+
+<p>DataSection sqlcursorsection = declare.cursorSection(); Declares that
the program uses some cursors. The name sqlcursorsection is only
convention, and can be any unused name.</p>
+
+<p>SQLCursor cur1 = declare.cursor(); Declares a SQL cursor variable. it
will be identified in source code by the name cur1.</p>
+
+<h4><a name="3.1.3Programdeclarations-Filesection"></a>File section</h4>
+
+<p>Used by: BatchProgram, CalledProgram</p>
+
+<p>Syntax:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">[DataSection filesection = declare.fileSection();
+ [FileDescriptor &lt;file_descriptor_name&gt; = declare.file(<span
class="code-quote">"&lt;File_descriptor_logical_name&gt;"</span>);
+ &lt;File record structure declaration&gt;]* [SortDescriptor
&lt;sort_descriptor_name&gt; = declare.sort();
+ &lt;sort record structure declaration&gt;]*]</pre>
+</div></div>
+<p>Sample:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">DataSection filesection = declare.fileSection();
+FileDescriptor fileIn = declare.file(<span
class="code-quote">"FILE_IN"</span>);
+ Var enreg_Pars = declare.level(1).<span
class="code-keyword">var</span>()
+ Var pars_Param = declare.level(5).picX(8).<span
class="code-keyword">var</span>() ;
+ Var filler$31 = declare.level(5).picX(1).filler() ;
+ Var pars_Value = declare.level(5).picX(60).<span
class="code-keyword">var</span>() ;
+ Var filler$32 = declare.level(5).picX(11).filler() ;</pre>
+</div></div>
+<p>The file section is used only by batch programs or called programs used
by batch programs. It declares the various file descriptor. They are
identified internally by their file_descriptor_name and refers to a
physical file through the File_descriptor_logical_name. Of course, multiple
FileDescriptor objects can be describes here.</p>
+
+<p>The file descriptor is followed by a structure of variables that
builds-up the file record. This variables declaration is similar to the
WorkingStorage variable declarations, that is described below.</p>
+
+<p>The sort descriptor is used only for internal sorting.</p>
+
+<h4><a name="3.1.3Programdeclarations-Workingstorage"></a>Working
storage</h4>
+
+<p>Used by: OnlineProgram, BatchProgram, CalledProgram, FPacProgram</p>
+
+<p>Syntax:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">DataSection workingstoragesection =
declare.workingStorageSection();
+[Var &lt;variable_name&gt; =
declare.level(&lt;level&gt;).[&lt;specialisation&gt;].<span
class="code-keyword">var</span>()|.filler() ;][&lt;Copy_Class_Name&gt;
&lt;copy_variable_name&gt; = &lt;Copy_Class_Name&gt;.Copy(<span
class="code-keyword">this</span>);]</pre>
+</div></div>
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">Var pr_Output = declare.level(1).<span
class="code-keyword">var</span>() ;
+ Var pr_Texte = declare.level(5).occurs(3).<span
class="code-keyword">var</span>() ;
+ Var pr_Lichmr5 = declare.level(10).picX(5).<span
class="code-keyword">var</span>() ;
+ Var filler$4 = declare.level(10).picX(2).value(<span
class="code-quote">"--"</span>).filler() ;
+
+Var w_Utiste = declare.level(1).<span class="code-keyword">var</span>() ;
+ Var filler$1 = declare.level(5).picX(2).valueSpaces().filler() ;
+ Var w_Utiste_3 = declare.level(5).picX(1).valueSpaces().<span
class="code-keyword">var</span>() ;
+Var w_Utiste_Princ = declare.level(1).redefines(w_Utiste).picX(3).<span
class="code-keyword">var</span>() ;
+
+Var w_Count = declare.level(77).pic9(5).comp3().<span
class="code-keyword">var</span>() ;FROMZONE fromzone = FROMZONE.Copy(<span
class="code-keyword">this</span>) ;ERRZONE errzone = ERRZONE.Copy(<span
class="code-keyword">this</span>) ;</pre>
+</div></div>
+<p>The variable declarations are explained in later chapter. The
identation of variables is for eye catching only.</p>
+
+<p>Each variable declared here mmust have a unique name among all
variables of the program, including the variables of the varous Copy that
are included. This is a strong constraint that comethines requires name
decoration to ensure this uniqueness. In particular, the fillers must be
named with a unique name. The patterne used by the transcoder tool is to
append a unique counter's value to the fille prefix. The Prefix and suffix
is separated by a $ sign.</p>
+
+<p>The copy file is included by declaring a variable typed from the copy
Class. This copy is then an instance of the copy class.&nbsp;A copy&nbsp;is
not embedded within the program's class, but instead is shared by all
programs that declares an instance of this copy.</p>
+
+<p>The &lt;specialisation&gt; is a list of method calls that fully
qualifies the variable type. It is described below.</p>
+
+<h4><a name="3.1.3Programdeclarations-Linkagesection"></a>Linkage
section</h4>
+
+<p>Used by: OnlineProgram, BatchProgram, CalledProgram</p>
+
+<p>Syntax:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">[
+ DataSection linkagesection = declare.linkageSection() ;
+ [Var &lt;variable_name&gt; =
declare.level(&lt;level&gt;).[&lt;specialisation&gt;].<span
class="code-keyword">var</span>()|.filler() ;]*
+]</pre>
+</div></div>
+<p>The linkage section is used to declare parameters to pass from a caller
program to a called program.<br/>
+The &lt;specialisation&gt; is a list of method calls that fully qualifies
the variable type. It is described below.</p>
+
+<h4><a name="3.1.3Programdeclarations-Calledparameter"></a>Called
parameter</h4>
+
+<p>Used by: OnlineProgram, BatchProgram, CalledProgram</p>
+
+<p>Syntax:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">[
+ ParamDeclaration callParameters =
declare[.using(&lt;linkageSection_variable_name)]\+
+]</pre>
+</div></div>
+<p>This declaration is used to indicate which variables of the linkage
section are to filled by caller program. It is similar to the PROCEDURE
DIVISON USING ... of Cobol.</p>
+
+<h4><a
name="3.1.3Programdeclarations-FileDescritorDependingdeclaration"></a>FileDescritorDepending
declaration</h4>
+
+<p>Used by: BatchProgram, CalledProgram</p>
+
+<p>Syntax:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">[
+ FileDescriptorDepending&amp;nbsp;&lt;name&gt; =
declare.fileDescriptorDepending(&lt;file_descriptor_name&gt;,
&lt;variable_name_within_file_descriptor_record&gt;);
+]</pre>
+</div></div>
+<p>This is used only for variable length files. The purpose is to
identifies the variable of the file's record that carry the length of the
record. This way, when writting such a record, nacaRT knowns the number of
bytes to write in the file's record.</p>
+
+<h4><a
name="3.1.3Programdeclarations-ProcedureDivision"></a>ProcedureDivision</h4>
+
+<p>Used by: OnlineProgram, BatchProgram, CalledProgram<br/>
+Syntax:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">[
+ <span class="code-keyword">public</span> void ProcedureDivision()
+]</pre>
+</div></div>
+<p>This is program execution entry point main method.<br/>
+It contains varous verbs and method call. They are defined by the base
class of the current program, and then support a different set of
operations depending of base cléass type being BatchProgram, OnlineProgram,
CalledProgram or FPacProgram.<br/>
+However, a large common set of features is supported for all these
cases.</p>
+
+<h4><a name="3.1.3Programdeclarations-Sectionsandparagraphs"></a>Sections
and paragraphs</h4>
+
+<p>Used by: OnlineProgram, BatchProgram, CalledProgram<br/>
+Syntax:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">Section &lt;section_name&gt; = <span
class="code-keyword">new</span> Section(<span
class="code-keyword">this</span>){<span class="code-keyword">public</span>
void run(){section_name();}};void section_name()
+{
+ &lt;code&gt;...
+}
+|
+Paragraph &lt;paragraph_name&gt; = <span class="code-keyword">new</span>
Paragraph(<span class="code-keyword">this</span>){<span
class="code-keyword">public</span> void run(){paragraph_name();}};void
paragraph_name()
+{
+ &lt;code&gt;...
+}</pre>
+</div></div>
+<p>The sections and paragraphs are defined with the same syntax. In terms
of java implementation, they are both an object and a method. This enable
nacaRT to store a reference to a paragraph / section, and to call it
without using java relection APIs. That way, the paragraph/section name is
fully checked by the compiler, and it's then impossible to perform / goto a
paragraph/section that doesn't exists.</p>
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.1.4 Calls and called programs.html
Wed Mar 24 05:11:35 2010
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.1.4 Calls and called programs</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.1.4 Calls and called
programs
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 13 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <h2><a
name="3.1.4Callsandcalledprograms-Calledprograms"></a>Called programs</h2>
+
+
+<h3><a name="3.1.4Callsandcalledprograms-Callertypes"></a>Caller types</h3>
+
+<p>Called programs are structurally similar to other programs, except that
they a re derivated form CalledProgram base class. They can be used in
equally by 3 different types of programs:</p>
+
+<p>&#45; Online programs<br/>
+&#45; Batch programs<br/>
+&#45; Stored procedure</p>
+
+<h3><a
name="3.1.4Callsandcalledprograms-Parameterpassing%3Afromcallerpointofview"></a>Parameter
passing: from caller point of view</h3>
+
+<p>When a program Caller has to call a program Called, it uses the
following syntax:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">call(&lt;called_program_class_name&gt;.class)
[.using(&lt;variable&gt;)|.usingValue(&lt;variable&gt;)|.usingLengthOf(&lt;variable&gt;)]*.executeCall();</pre>
+</div></div>
+<p>There can be as much variable passed as required.</p>
+
+<p><tt>called_program_class_name</tt> is the name of the class that is to
be called. It's not a string, as giving the class name ensures by the
compiler that the called program name is valid.</p>
+
+<p>The following parameter passing is avalaible:</p>
+<ul class="alternate" type="square">
+ <li><tt>.using(&lt;variable&gt;)</tt>: Passes a variable by reference:
the variable in the called program will hold a pointer (or a reference) to
the orignal variable passed by .using() method call. Then, when the
variable in the called program is modified, the original value in the
caller program is also modified.</li>
+ <li><tt>.usingValue(&lt;variable&gt;)</tt>: Passes a variable by value:
the variable in the called program is filled-up with the value of the
caller program's variable. Then, when the variable in the called program is
modified, the original value in the caller program is NOT modified.</li>
+ <li><tt>.usingLengthOf(&lt;variable&gt;)</tt>: Passes the length of the
provided variable to the called program.</li>
+</ul>
+
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre
class="code-java">call(TestCalledProgram.class).using(plaurech.plau_Rech).executeCall();</pre>
+</div></div>
+
+<h3><a
name="3.1.4Callsandcalledprograms-Parameterpassing%3Afromcalledpointofview"></a>Parameter
passing: from called point of view</h3>
+
+<p>The called program must declare the parameters that it can receive in a
ParamDeclaration line:<br/>
+The syntax is:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">ParamDeclaration callParameters =
declare[.using(&lt;variable_name&gt;)]+;</pre>
+</div></div>
+<p>The number of .using() method calls must match the number of parameters
passed by caller. The variables must be declared in the Linksage Section of
the called program.</p>
+
+<h3><a name="3.1.4Callsandcalledprograms-Example"></a>Example</h3>
+
+
+<h4><a name="3.1.4Callsandcalledprograms-Caller"></a>Caller</h4>
+
+<p>Fedined in file TestCallerProgram.java:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">...
+<span class="code-keyword">public</span> class TestCallerProgram <span
class="code-keyword">extends</span> OnlineProgram
+{
+ DataSection workingstoragesection =
declare.workingStorageSection() ; <span class="code-comment">//
(115) WORKING-STORAGE SECTION.
+</span>
+ PLAURECH plaurech = PLAURECH.Copy(<span
class="code-keyword">this</span>) ;
+ ...
+ <span class="code-keyword">public</span> void procedureDivision()
+ {
+ ...
+
call(TestCalledProgram.class).using(plaurech.plau_Rech).executeCall() ;
+ ...
+ }
+ ...
+}</pre>
+</div></div>
+<p>The parameter passed by reference is given by the copy file PLAURECH.
It's code is:<br/>
+Defined in file PLAURECH.java:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> class
PLAURECH <span class="code-keyword">extends</span> Copy
+{
+ <span class="code-keyword">public</span> <span
class="code-keyword">static</span> PLAURECH Copy(BaseProgram program)
+ {
+ <span class="code-keyword">return</span> <span
class="code-keyword">new</span> PLAURECH(program, <span
class="code-keyword">null</span>);
+ }
+ <span class="code-keyword">public</span> <span
class="code-keyword">static</span> PLAURECH Copy(BaseProgram program,
CopyReplacing copyReplacing)
+ {
+ <span class="code-keyword">return</span> <span
class="code-keyword">new</span> PLAURECH(program, copyReplacing);
+ }
+ <span class="code-keyword">public</span> PLAURECH(BaseProgram program,
CopyReplacing copyReplacing)
+ {
+ <span class="code-keyword">super</span>(program, copyReplacing);
+ }
+
+ Var plau_Rech = declare.level(1).<span
class="code-keyword">var</span>() ;
+ Var pr_Cdret = declare.level(5).picX(1).valueSpaces().<span
class="code-keyword">var</span>() ;
+ Var pr_Input = declare.level(5).<span
class="code-keyword">var</span>() ;
+ ...
+}</pre>
+</div></div>
+
+<h4><a name="3.1.4Callsandcalledprograms-Called"></a>Called</h4>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">...
+<span class="code-keyword">public</span> class TestCalledProgram <span
class="code-keyword">extends</span> CalledProgram
+{
+ DataSection WorkingStorage = declare.workingStorageSection();
+ ...
+ DataSection LinkageSection = declare.linkageSection();
+ Var dfhcommarea = declare.level(1).<span
class="code-keyword">var</span>() ;
+ Var plau_Rech = declare.level(3).<span
class="code-keyword">var</span>() ;
+ Var pr_Cdret = declare.level(5).picX(1).<span
class="code-keyword">var</span>() ;
+ Var pr_Input = declare.level(5).<span
class="code-keyword">var</span>() ;
+ ...
+ ParamDeclaration callParameters = declare.using(dfhcommarea);
+ <span class="code-keyword">public</span> void procedureDivision()
+ {
+ ....
+ }
+ ....
+}</pre>
+</div></div>
+<p>The called variable <tt>dfhcommarea</tt> acts as a reference on the
<tt>plaurech.plau_Rech</tt> caller's variable. So, when
<tt>dfhcommarea</tt> is modified, <tt>plaurech.plau_Rech</tt> is also
modified.</p>
+
+<p>This is implemented by mapping the buffer of <tt>dfhcommarea</tt> on
the buffer of <tt>plaurech.plau_Rech</tt>. However, access on the
<tt>dfhcommarea</tt> are based on the data typing of <tt>dfhcommarea</tt>,
not on the data typing of the source variable
(<tt>plaurech.plau_Rech</tt>). This means that semantic and padding rules
of <tt>dfhcommarea</tt> are applied, not those of
<tt>plaurech.plau_Rech</tt>. What's more, if <tt>dfhcommarea</tt> is
defined as a larger structure than <tt>plaurech.plau_Rech</tt>, Caller
write in <tt>dfhcommarea</tt> may override chars that are out of the scope
of <tt>plaurech.plau_Rech</tt>.</p>
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.1.4 Program instance execution.html
Wed Mar 24 05:11:35 2010
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.1.4 Program instance execution</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.1.4 Program instance
execution
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 12 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <h2><a
name="3.1.4Programinstanceexecution-ProgramversusPrograminstance"></a>Program
versus Program instance</h2>
+
+
+<h3><a name="3.1.4Programinstanceexecution-Definition"></a>Definition</h3>
+
+<p>A program is technically a piece of java code loaded in memory by a
class loader. nacaRT contains such a class loader. This custom class
loader, or the java&nbsp;standard one can equally be used, depending on
parameters provided by configuration file. The act of loading a program in
memory is the program's instanciation.</p>
+
+<p>A program can be loaded multiple times in memory. Each instance will be
holded within a unique java object.</p>
+
+<p>It's important to do the distinction between these 2 notions as a
single program may be run multiple times simultaneously by differents
sessions, without leaking data from one session to another.</p>
+
+<h2><a
name="3.1.4Programinstanceexecution-Programinstancestate"></a>Program
instance state</h2>
+
+<p>A program instance can be either:<br/>
+&#45; in use. that is running<br/>
+&#45; waiting to be used</p>
+
+<h2><a name="3.1.4Programinstanceexecution-Programexecution"></a>Program
execution</h2>
+
+<p>There is a pool for each program within the system. It keeps already
allocated but unused program instance in a stack. So, when a user requests
a program execution, nacaRT does the following operations:</p>
+<ul>
+ <li>checks if there is an available program instance in a dedicated pool.
+ <ul>
+ <li>if it doesn't find such an object (for example if the program has
never been run yet), it loads the program instance in memory, using a class
loader and initialize it. There is 2 cases, depending on whether the
program has already been instancied once or not:
+ <ul>
+ <li>If it's the first instance of the program, then many computings
must be done. For example, all variables' buffer position must be computed.
These are important and CPU intensive steps. All these instance-neutral
data are stored in a SharedProgramInstanceData object. This object contains
data that can safely be shared among all instances of a given program.</li>
+ <li>If it's not the first instance of the program, then a
SharedProgramInstanceData object has already been filled previously. Some
buffer initializations must be done for the new instance to be correctly
initialized. However, this is a lighter step than the 1st program
instanciarion.<br/>
+. the program instance is then available for proper execution and the
procedureDivision() method is called. After whole execution of the program
instance, it set in the program's pool. making it almost immedaitly
avalaible for other executions</li>
+ </ul>
+ </li>
+ <li>if an avalaible program instance is found in it's pool, it's removed
from the pool, making sure that no other session can use the instance
simultaneously. Some re-initializations must be done, using the program's
SharedProgramInstanceData. It's mostly applying the initial values of
working storage section variables that have an initial value declaration.
The value of these variables may have been modified by a previous program
execution and then must be re-set.</li>
+ </ul>
+ </li>
+ <li>We now have an initialized program instance, ready for running. the
procedureDivision() metho is then called. If it doesn't exists, then the
1st paragraph or section is launched.</li>
+ <li>We the program execution terminates, the program instance is set in
the program's pool.</li>
+</ul>
+
+
+<h2><a
name="3.1.4Programinstanceexecution-PrograminstanceandProgramManager"></a>Program
instance and ProgramManager</h2>
+
+<p>The program manager is the hidden side of the program instance. It's
purpose is to make avaiable resources during program execution, without
exposing these resources to the developper durng coding phases. They work
together hand in hand, but are oriented differently. The program instance
contains a reference to it's ProgramManager, and a ProgramManager contains
also a reference on it's Program instance.</p>
+
+<h3><a
name="3.1.4Programinstanceexecution-Programusagebyadevelopper"></a>Program
usage by a developper</h3>
+
+<p>The developper sees the Program as the base class of it's code:<br/>
+&#45; It inherits all public methods that corresponds to Cobol verbs<br/>
+&#45; It gives access to all variables defined by the applciation code</p>
+
+<h3><a
name="3.1.4Programinstanceexecution-Programusage%26nbsp%3Bduringexecution"></a>Program
usage&nbsp;during execution</h3>
+
+<p>The executable public methods are defined here, but they are just
public methods, that&nbsp;goes very quickly inside nacaRT classes. These
classes are then isolated form the developper's point of view</p>
+
+<h3><a
name="3.1.4Programinstanceexecution-ProgramManagerusagebyadevelopper"></a>ProgramManager
usage by a developper</h3>
+
+<p>This object is mostly ignored, as it's visibilty during edition is
reduced at the maximum.</p>
+
+<h3><a
name="3.1.4Programinstanceexecution-ProgramManagerusageduringexecution"></a>ProgramManager
usage during execution</h3>
+
+<p>Lots of applications resources are stored within the ProgramManager.
For exemple an SQLStatus object contains the status of the last SQL
statement executed. It is used by application code to handle SQL errors and
perform treatment&nbsp;when an error occurs. But the program safely ignores
how the last sql code is stored.</p>
+
+<h3><a name="3.1.4Programinstanceexecution-"></a></h3>
+
+<p><br clear="all" /></p>
+
+<h2><a
name="3.1.4Programinstanceexecution-Programinstanceexecutionthreadcontext"></a>Program
instance execution thread context</h2>
+
+<p>A program instance is executed by only one thread, as far as
applicative code is concerned. Form the point of view of the Cobol-like
program, there is only one thread that executes the instance.<br/>
+However, as multiple user session executes concurrently, it is possible
that 2 different instances of the same program are executed by 2 differents
threads. but, as nacaRT and it's&nbsp;internal libraries are thread safe,
there no constraints on the application program. As long as nacaRT
resources are used, there is no need to synchronize applicative code.<br/>
+Thread safety, and the fact that a given program instance is executed by
the same thread during it's whole execution is critical. Some
execution-required data are stored&nbsp;within the thread local storage, so
that these objects are available by for everywhere of nacaRT, but only form
the same thread.</p>
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.1.5 Supported cobol-like verbs.html
Wed Mar 24 05:11:35 2010
@@ -0,0 +1,446 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.1.5 Supported cobol-like verbs</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.1.5 Supported cobol-like
verbs
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 20 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <p>As nacaRT purpose is to work in a similar manner as Cobol,
there is a full emulation compatibility layer. Cobol is a very verbose
language, and some given verbs have a very complex syntax. NacaRT supports
a subset of all these verbs that is sufficient to cover the Pub2000
application (batch and online) requirements. As this is a fairly large
application, it is supposed that the coverage of the Cobol language is
sufficient&nbsp;in most cases. If it's not the case, then some new methods
in BaseProgram class will have to be added.</p>
+
+<p>This layer is implemented in the <tt>BaseProgram.java</tt> source code
of nacaRT, and in some other source files.</p>
+
+<p>&nbsp;A lot of these methods exists with different parameters. For
example, the move method exists in many flavors:<br/>
+&#45; protected void move(int n, Var varDest)<br/>
+&#45; protected void move(boolean b, Var varDest)<br/>
+&#45; protected void move(Var varSource, Edit varDest)<br/>
+&#45; protected void move(Edit varSource, Edit varDest)<br/>
+&#45; protected void move(Edit varSource,&nbsp;Var varDest)<br/>
+&#45; protected void move(CobolConstantSpace constant, VarAndEdit
varDest)<br/>
+&#45; protected void move(CobolConstantZero constant, VarAndEdit
varDest)<br/>
+&#45; protected void move(double d, Var varDest)<br/>
+&#45; protected void move(String cs, Var varDest)<br/>
+&#45; ... Many more of them exists.The eclipse editor proposes clearly the
correct move method, taking in account the type of the provided
paramters</p>
+
+<h1><a
name="3.1.5Supportedcobol-likeverbs-Categoriesofmethodsupported"></a>Categories
of method supported</h1>
+
+
+<h2><a
name="3.1.5Supportedcobol-likeverbs-Verbsandconstructscommontoallexecutionmode%3AOnlineProgram%2CBatchProgram%2CCalledProgram%2CFPacProgram"></a>Verbs
and constructs common to all execution mode: OnlineProgram, BatchProgram,
CalledProgram, FPacProgram</h2>
+
+
+<h3><a
name="3.1.5Supportedcobol-likeverbs-Entrypointdeclaration"></a>Entry point
declaration</h3>
+
+<ul class="alternate" type="square">
+ <li>procedureDivision</li>
+ <li>paragraphe declaration</li>
+ <li>section declaration</li>
+</ul>
+
+
+<h3><a
name="3.1.5Supportedcobol-likeverbs-Programcallandargumentpassing"></a>Program
call and argument passing</h3>
+
+<ul class="alternate" type="square">
+ <li>call</li>
+ <li>getCommAreaLength</li>
+ <li>setCommAreaLength</li>
+</ul>
+
+
+<h3><a
name="3.1.5Supportedcobol-likeverbs-Comparisons"></a>Comparisons</h3>
+
+<ul class="alternate" type="square">
+ <li>isEqual</li>
+ <li>isDifferent</li>
+ <li>isLess</li>
+ <li>isLessOrEqual</li>
+ <li>isGreater</li>
+ <li>isGreaterOrEqual</li>
+ <li>isLessInEbcdic</li>
+ <li>isLessOrEqualInEbcdic</li>
+ <li>isGreaterInEbcdic</li>
+ <li>isGreaterOrEqualInEbcdic</li>
+</ul>
+
+
+<h3><a
name="3.1.5Supportedcobol-likeverbs-Comparisonagainscobolconstantvalue%3A"></a>Comparison
agains cobol constant value:</h3>
+
+<ul class="alternate" type="square">
+ <li>isLowValue</li>
+ <li>isNotLowValue</li>
+ <li>isHighValue</li>
+ <li>isNotHighValue</li>
+ <li>isSpace</li>
+ <li>isNotSpace</li>
+ <li>isZero</li>
+ <li>isNotZero</li>
+</ul>
+
+
+<h3><a
name="3.1.5Supportedcobol-likeverbs-Miscellaneous"></a>Miscellaneous</h3>
+
+<ul class="alternate" type="square">
+ <li>isAll</li>
+ <li>isNotAll</li>
+ <li>isNumeric</li>
+ <li>isNotNumeric</li>
+ <li>isAlphabetic</li>
+ <li>isNotAlphabetic</li>
+ <li>lengthOf</li>
+ <li>val</li>
+ <li>digits</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Date%2Ftimemanagement"></a>Date
/ time management</h3>
+
+<ul class="alternate" type="square">
+ <li>currentDate</li>
+ <li>getDate</li>
+ <li>getTime</li>
+ <li>setTime</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Pointermanagement"></a>Pointer
management</h3>
+
+<ul class="alternate" type="square">
+ <li>moveReferenceTo</li>
+ <li>addressOf</li>
+</ul>
+
+
+<h3><a
name="3.1.5Supportedcobol-likeverbs-Initizations"></a>Initizations</h3>
+
+<ul class="alternate" type="square">
+ <li>initialize</li>
+ <li>initializeReplacingNum</li>
+ <li>initializeReplacingNumEdited</li>
+ <li>initializeReplacingAlphaNum</li>
+ <li>initializeReplacingAlphaNumEdited</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Stringconcatenation"></a>String
concatenation</h3>
+
+<ul class="alternate" type="square">
+ <li>concat</li>
+ <li>concatDelimitedBy</li>
+ <li>concatDelimitedBySpaces</li>
+ <li>concatDelimitedBySize</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Stringsplitting"></a>String
splitting</h3>
+
+<ul class="alternate" type="square">
+ <li>unstring</li>
+</ul>
+
+
+<h3><a
name="3.1.5Supportedcobol-likeverbs-SubStringmanagement"></a>SubString
management</h3>
+
+<ul class="alternate" type="square">
+ <li>moveSubStringZero</li>
+ <li>moveSubStringSpace</li>
+ <li>moveSubStringLowValue</li>
+ <li>moveSubStringHighValue</li>
+ <li>setSubString</li>
+ <li>setSubStringAll</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Stringinspection"></a>String
inspection</h3>
+
+<ul class="alternate" type="square">
+ <li>inspectReplacing</li>
+ <li>inspectTallying</li>
+</ul>
+
+
+<h3><a
name="3.1.5Supportedcobol-likeverbs-Conditionsupport%28level66inCobolapplication%29"></a>Condition
support (level 66 in Cobol application)</h3>
+
+<ul class="alternate" type="square">
+ <li>is</li>
+ <li>isNot</li>
+ <li>moveTrue</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Math"></a>Math</h3>
+
+<ul class="alternate" type="square">
+ <li>add</li>
+ <li>opposite</li>
+ <li>subtract</li>
+ <li>divide</li>
+ <li>multiply</li>
+ <li>compute</li>
+ <li>computeRounded</li>
+ <li>inc</li>
+ <li>dec</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-moves"></a>moves</h3>
+
+<ul class="alternate" type="square">
+ <li>move</li>
+ <li>moveAll</li>
+ <li>moveCorresponding</li>
+ <li>moveSpace</li>
+ <li>moveLowValue</li>
+ <li>moveHighValue</li>
+ <li>moveZero</li>
+</ul>
+
+
+<h3><a
name="3.1.5Supportedcobol-likeverbs-Programflowmanagement"></a>Program flow
management</h3>
+
+<ul class="alternate" type="square">
+ <li>perform</li>
+ <li>performThrough</li>
+ <li>goTo</li>
+ <li>goBack</li>
+ <li>exitProgram</li>
+ <li>exit</li>
+ <li>stopRun</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-SQL"></a>SQL</h3>
+
+<ul class="alternate" type="square">
+ <li>sqlCall</li>
+ <li>sql</li>
+ <li>cursorDefine</li>
+ <li>cursorOpen</li>
+ <li>cursorClose</li>
+ <li>cursorUpdateCurrent</li>
+ <li>cursorDeleteCurrent</li>
+ <li>cursorFetch</li>
+ <li>isSQLCode</li>
+ <li>isNotSQLCode</li>
+ <li>resetSQLCode</li>
+ <li>sqlRollback</li>
+ <li>sqlCommit</li>
+</ul>
+
+
+<h2><a
name="3.1.5Supportedcobol-likeverbs-VerbsreservedforBatchProgramandFPacProgramderivated"></a>Verbs
reserved for BatchProgram and FPacProgram derivated</h2>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Filehandling"></a>File
handling</h3>
+
+<ul class="alternate" type="square">
+ <li>openOutput</li>
+ <li>openInputOutput</li>
+ <li>openInput</li>
+ <li>openExtend</li>
+ <li>close</li>
+ <li>write</li>
+ <li>writeFrom</li>
+ <li>rewrite</li>
+ <li>rewriteFrom</li>
+ <li>read</li>
+ <li>readInto</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Internalsorting"></a>Internal
sorting</h3>
+
+<ul class="alternate" type="square">
+ <li>sort</li>
+ <li>release</li>
+ <li>returnSort</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Returncode"></a>Return code</h3>
+
+<ul class="alternate" type="square">
+ <li>getReturnCode</li>
+ <li>setReturnCode</li>
+</ul>
+
+
+<h3><a
name="3.1.5Supportedcobol-likeverbs-Consoleinput%2Foutput"></a>Console
input/output</h3>
+
+<ul class="alternate" type="square">
+ <li>display</li>
+ <li>console</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Timemanagement"></a>Time
management</h3>
+
+<ul class="alternate" type="square">
+ <li>getDateBatch</li>
+ <li>getTimeBatch</li>
+ <li>getDayBatch</li>
+</ul>
+
+
+<h2><a
name="3.1.5Supportedcobol-likeverbs-DirectlyaccessibleverbsreservedforOnlineProgramsonly"></a>Directly
accessible verbs reserved for OnlinePrograms only</h2>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-CICSCondition"></a>CICS
Condition</h3>
+
+<ul class="alternate" type="square">
+ <li>getConditionOccured()</li>
+ <li>setConditionOccured</li>
+</ul>
+
+
+<h3><a
name="3.1.5Supportedcobol-likeverbs-Terminalidentification"></a>Terminal
identification</h3>
+
+<ul class="alternate" type="square">
+ <li>getTerminalID</li>
+</ul>
+
+
+<h3><a
name="3.1.5Supportedcobol-likeverbs-Transactionidentification"></a>Transaction
identification</h3>
+
+<ul class="alternate" type="square">
+ <li>getTransID</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Keypresshandling"></a>Keypress
handling</h3>
+
+<ul class="alternate" type="square">
+ <li>isKeyPressed</li>
+ <li>isNotKeyPressed</li>
+ <li>resetKeyPressed</li>
+ <li>setKeyPressed</li>
+ <li>getKeyPressed</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-LastCICScommandcode"></a>Last
CICS command code</h3>
+
+<ul class="alternate" type="square">
+ <li>getLastCICSCommandExecutedCode</li>
+</ul>
+
+
+<h2><a
name="3.1.5Supportedcobol-likeverbs-CICSextension%3AverbsreservedforOnlineProgramsonlythatareindirectlyaccessible"></a>CICS
extension: verbs reserved for OnlinePrograms only that are indirectly
accessible</h2>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Endoftransaction"></a>End of
transaction</h3>
+
+<ul class="alternate" type="square">
+ <li>CESM.returnTrans</li>
+ <li>CESM.abend()</li>
+</ul>
+
+
+<h3><a
name="3.1.5Supportedcobol-likeverbs-Specialvariableaccess"></a>Special
variable access</h3>
+
+<ul class="alternate" type="square">
+ <li>CESM.getAddressOfTCTUA</li>
+ <li>CESM.getAddressOfTWA</li>
+ <li>CESM.getAddressOfCWA</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Conditions"></a>Conditions</h3>
+
+<ul class="alternate" type="square">
+ <li>CESM.ignoreCondition</li>
+ <li>CESM.unhandleCondition</li>
+ <li>CESM.handleCondition</li>
+ <li>CESM.getConditionOccured</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Timewait"></a>Time wait</h3>
+
+<ul class="alternate" type="square">
+ <li>CESM.delayInterval</li>
+ <li>CESM.delaySeconds</li>
+</ul>
+
+
+<h3><a
name="3.1.5Supportedcobol-likeverbs-Variousidentifications"></a>Various
identifications</h3>
+
+<ul class="alternate" type="square">
+ <li>CESM.getDeclaredUserId</li>
+ <li>CESM.getDeclaredCompany</li>
+ <li>CESM.getDeclaredAgency</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Currentdate"></a>Current
date</h3>
+
+<ul class="alternate" type="square">
+ <li>CESM.getCurrentDate</li>
+ <li>CESM.getCurrentDay</li>
+ <li>CESM.getCurrentMonth</li>
+ <li>CESM.getCurrentYear</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Time"></a>Time</h3>
+
+<ul class="alternate" type="square">
+ <li>CESM.askTime</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Temporaryqueues"></a>Temporary
queues</h3>
+
+<ul class="alternate" type="square">
+ <li>CESM.readTempQueue</li>
+ <li>CESM.deleteTempQueue</li>
+ <li>CESM.writeTempQueue</li>
+</ul>
+
+
+<h3><a
name="3.1.5Supportedcobol-likeverbs-Asynchronoustransaction"></a>Asynchronous
transaction</h3>
+
+<ul class="alternate" type="square">
+ <li>CESM.start</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-SQLcommit%2Frollback"></a>SQL
commit / rollback</h3>
+
+<ul class="alternate" type="square">
+ <li>CESM.syncPointCommit</li>
+ <li>CESM.syncPointRollback</li>
+</ul>
+
+
+<h3><a name="3.1.5Supportedcobol-likeverbs-Programlinking"></a>Program
linking</h3>
+
+<ul class="alternate" type="square">
+ <li>CESM.link</li>
+ <li>CESM.xctl</li>
+</ul>
+
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.2 Variables.html Wed Mar 24 05:11:35
2010
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.2 Variables</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.2 Variables
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 14 Mar 2007 by <font
color="#0050B2">u930lz</font>.
+ </div>
+
+ <div class="error"><span class="error">Error formatting macro:
toc: java.lang.NullPointerException</span> </div>
+<h1><a name="3.2Variables-Introduction"></a>Introduction</h1>
+
+<p>Cobol-like variables are the main way to manipulate data inside
Cobol-like programs.</p>
+
+<p>The variables have differents major properties:</p>
+
+<ul class="alternate" type="square">
+ <li>Section: A variable can belong to one of the following section:
WorkingStorage or&nbsp; Linkage section.</li>
+ <li>Name: Each variable of a given program has a unique name among all
the variables of a program, whatever the section.</li>
+ <li>Depth level</li>
+ <li>Filler: A variable can be a filler, that is</li>
+ <li>Type: Each variable is typed, that is has a semantic during
manipulation of it's value. for exampe, a variable of type PIC X can store
alphanumeric chars, while a PIC 9 COMP stores numeric value in a binary
form. PIC 9 Comp-3 stores packed numeric values e.g. each digit is stored
in a nibble.</li>
+ <li>Buffer: Variables reads and writes their value in an underlying
buffer. The buffer used in nacaRT is an array of 16 bits chars. So each
char of a PIC X variable is stored in a 16 bits item. At present, only
lower 8 bits are used. The internal representation is Ascii, but could be
expended to UTF-16 encoding.</li>
+ <li>Occurences: It is possible to declared that a variable&nbsp;is
represented mulitple times in memory. The underlying buffer is used to
carry these occrurrences of a given variable</li>
+ <li>redefines: a variable A may redefine another one (B). That is A
occuies the same storage within the buffer as B.</li>
+ <li>Length: A PIC X variable must have access to a certain&nbsp;quantity
of storage, wich is function of the declared width, and of the place needed
to store a single item.</li>
+ <li>Buffer position: as the buffer is used to store a variable value, the
variable is located at a known position within this buffer</li>
+ <li>Initial value: It is possible to initialize the variable's buffer
with a default value</li>
+</ul>
+
+
+<p>There exists also specialized properties:</p>
+<ul class="alternate" type="square">
+ <li>precision: For numerical types with decimals, it's the number of
digits after comma</li>
+</ul>
+
+
+
+<p>To sum up, a variable is:</p>
+<ul class="alternate" type="square">
+ <li>A definition (Type, Name, Depth level, Length, ...)</li>
+ <li>A chunk of a memory buffer, and the begin position within this
buffer</li>
+</ul>
+
+
+<h2><a
name="3.2Variables-Variablestorage%3ABufferorganisation"></a>Variable
storage: Buffer organisation</h2>
+
+
+<h3><a name="3.2Variables-Simpleexample"></a>Simple example</h3>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">DataSection WorkingStorage =
declare.workingStorageSection();
+ Var x = declare.level(1).<span class="code-keyword">var</span>();
+ Var a = declare.level(5).picX(5).<span
class="code-keyword">var</span>();
+ Var b = declare.level(5).picX(1).value(<span
class="code-quote">" "</span>).filler();
+ Var c = declare.level(5).picX(5).<span
class="code-keyword">var</span>();
+ Var y = declare.level(1).picX(3).<span
class="code-keyword">var</span>();</pre>
+</div></div>
+<p>Buffer representation:</p>
+<div class="preformatted panel" style="border-width: 1px;"><div
class="preformattedContent panelContent">
+<pre>Buffer position: 000000000011111
+Buffer position: 012345678901234
+--------------------------------
+Variable stored: xxxxxxxxxxxxyyy
+Variable stored: aaaaabbccccc
+</pre>
+</div></div>
+<p>We see here that variables a, b and c are all stored within the same
buffer. It's because they all belong to the Working Storage Section.</p>
+<ul class="alternate" type="square">
+ <li>Variable x starts at position 0 and has a length of 12 chars, because
it covers all sub variable (a, b and c).</li>
+ <li>Variable a starts also at position 0, and has a length of 5
chars.</li>
+ <li>Variable b starts after variable a, so at position 5, and has a
length of 2 chars.</li>
+ <li>Variable c starts after variable b, so at position 7, and has a
length of 5 chars.</li>
+ <li>Variable y starts after variable x, so at position 12, and has a
length of 3 chars.</li>
+</ul>
+
+
+<h3><a name="3.2Variables-Morecomplexexample"></a>More complex example</h3>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">DataSection WorkingStorage =
declare.workingStorageSection();
+ Var x = declare.level(1).<span class="code-keyword">var</span>();
+ Var a = declare.level(5).picX(5).<span
class="code-keyword">var</span>();
+ Var b = declare.level(5).occurs(3).<span
class="code-keyword">var</span>();
+ Var c = declare.level(10).picX(2).<span
class="code-keyword">var</span>();
+ Var d = declare.level(10).pic9(2).<span
class="code-keyword">var</span>();
+ Var y = declare.level(1).picX(3).<span
class="code-keyword">var</span>();
+ Var z = declare.level(1).redefines(y).<span
class="code-keyword">var</span>();</pre>
+</div></div>
+<p>Buffer representation</p>
+<div class="preformatted panel" style="border-width: 1px;"><div
class="preformattedContent panelContent">
+<pre>Buffer position: 00000000001111111111
+Buffer position: 01234567890123456789
+-------------------------------------
+Variable stored: aaaaabbbbbbbbbbbbyyy
+Variable stored: aaaaaccddccddccddyyy
+Variable stored: aaaaaccddccddccddzzz
+Variable stored: xxxxxxxxxxxxxxxxxyyy
+
+Each line is rtepresents different cases, depending on which variable is
considered
+</pre>
+</div></div>
+
+<ul class="alternate" type="square">
+ <li>Variable x starts ar position 0. Its size is the length of it's
children a and b</li>
+ <li>Variable a starts at position 0 as x and is 5 chars long.</li>
+ <li>Variable b starts after a, so position 5. It has 2 children which are
occured 3 times. The sum of it's children is 4 chars. So it's whole length
is 3 * (2 + 2) = 3 * 4 = 12 chars long.</li>
+ <li>The 1st occurrence of c starts at the position of b, so it's 5.</li>
+ <li>The 1st occurrence of d start after the 1st occurence of it's
predecessor (1st occurrence of c), so it's 5 + 2 = 7.</li>
+ <li>The 2nd occurrence of c starts at the position of b + size of it's
first child (4 chars), so it's 5 + 4 = 9.</li>
+ <li>The 2nd occurrence of d start after the 2nd occurence of it's
predecessor (2nd occurrence of c), so it's 9 + 2 = 11.</li>
+ <li>The 3nd occurrence of c starts at the position of b + size of it's 2
first children (2 * 4 chars), so it's 5 + (2 &#42;4) = 11.</li>
+ <li>The 3nd occurrence of d start after the 2nd occurence of it's
predecessor (2nd occurrence of c), so it's 11 + 2 = 13.</li>
+ <li>Variable y starts after variable b. b starts at 5 and is 3 * (2+2) =
12 chars long. So y starts at position 17. It is 3 chars long</li>
+ <li>Variable z redefines variable y, so starts at position 17. It doesn't
defines a length, so it inherit the length of y (3 chars).</li>
+</ul>
+
+
+<p>These 2 examples shows clearly that we can manipulate the same memory
chunks by differents means. This is consistent with the requirements of
Cobol, but places a lot of complexity on the nacaRT variable buffer
computing.</p>
+
+<p>When the an application program does a move("val", a); for example, in
fact the variable a is only used to get a type and a chunk of the buffer
storage. The typing goves information on padding. In this case, as a is
typed picX(), it means that spaces&nbsp;may have to be added on right if
required. This rule is not valid for a numerically typed variable.</p>
+
+<h2><a name="3.2Variables-Variabledeclaration"></a>Variable
declaration</h2>
+
+<p>A variable declaration follows starts always the same:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">Var &lt;variable_name&gt; =
declare.level(&lt;Level_number&gt;).</pre>
+</div></div>
+<p>The declaration specifics follows.<br/>
+&lt;Level_number&gt; is a constant that range between 1 and 49, or 77.<br/>
+Level 66 or 88 are not declared that way.</p>
+
+<p>The declaration always terminates by</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">.<span class="code-keyword">var</span>();
+or
+ .filler();</pre>
+</div></div>
+
+<h3><a name="3.2Variables-Declarationspecifics"></a>Declaration
specifics</h3>
+
+<p>After level(), we can have:</p>
+<ul class="alternate" type="square">
+ <li><tt>.filler()</tt>: The variable is a group used as a filler.</li>
+ <li><tt>.var()</tt>: The variable is a group.</li>
+
<li><tt>.occurs(&lt;integer_numeric_quantity&gt;&#124;&lt;variable_name&gt;)</tt>:
Used to indicate that the current variable carries multiple times it's
children. The quantity (= number of occurs) can be directly given
(.occurs(5)) ou provided by another variable. Note that this settings has
limitations and is discouraged, as the variable's value must be known
during variable buffer computations.</li>
+ <li><tt>.occursDepending(&lt;integer_numeric_quantity&gt;,
&lt;variable_name&gt;)</tt>: The maximum allowed number of items is given
by the first parameter (integer_numeric_quantity), but only the first items
within the range 1, variable_name's integer value can be used.</li>
+ <li><tt>.redefines&lt;variable_name&gt;</tt>: Delcares that the current
variable shares the buffer of the variable_name.</li>
+ <li><tt>.picX(&lt;length&gt;)</tt>: To indicate that the varible is PIC
X</li>
+ <li><tt>.pic9(&lt;length&gt;)</tt>: To indicate that the varible is PIC
9</li>
+ <li><tt>.picS9(&lt;length&gt;)</tt>: To indicate that the varible is PIC
S9</li>
+ <li><tt>.pic9(&lt;length&gt;, &lt;precision)</tt>: To indicate that the
varible is PIC 9 with decimals</li>
+ <li><tt>.picS9(&lt;length&gt;, &lt;precision)</tt>: To indicate that the
varible is PIC 9 with decimals</li>
+ <li><tt>.pic(&lt;String_format&gt;)</tt>: Used to create a numeric edited
variable, whose format is given by String_format.</li>
+</ul>
+
+
+<p>When the variable is typed picX, then one of the specific methods can
add appended:<br/>
+<tt>.justifyRight()</tt> to indicate that the justication is done on the
right<br/>
+<tt>.value("String_Value")</tt>: to indicate the initial string value of
the variable's buffer chunk<br/>
+<tt>.valueAll('&lt;char_value&gt;')</tt>: to fill the variable's buffer
chunk with the char in parameter<br/>
+<tt>.valueAll("&lt;String_value&gt;")</tt>: to fill the variable's buffer
chunk with the string in parameter<br/>
+<tt>.valueHighValue()</tt>: to fill the variable's buffer chunk with high
value<br/>
+<tt>.valueLowValue()</tt>: to fill the variable's buffer chunk with high
value<br/>
+<tt>.valueSpace()</tt>: to fill the variable's buffer chunk with
spaces<br/>
+<tt>.valueZero()</tt>: to fill the variable's buffer chunk with zeroes</p>
+
+<p>When the variable is typed pic9 or picS9, it is by default COMP 0 -
That is each digits is stored by exactly one char of buffer storage</p>
+
+<p>One of the specific methods can add appended:<br/>
+<tt>.signLeadingSeparated()</tt>: Specifies that the sign is separated
form data, and is on the left<br/>
+<tt>.signTrailingSeparated()</tt>: Specifies that the sign is separated
form data, and is on the right side<br/>
+By default, is sign is embedded with the rightest digit of the number
value. The encoding is the same as the cobol on the host.<br/>
+<tt>.comp3()</tt>: Specifies that the variable uses decimal packed
storage. Each 16 bits char of the buffer stores 2 digits (or 1 digit +
sign).<br/>
+They are encoded in 1 byte, each digit using 1 nibble. The second byte of
the 16 bits char is unused.<br/>
+<tt>.comp()</tt>: Specifies that the variable uses binary storage.
Depending on the number of digits specifies, the binary storage may use 2,
4 or 8 chars of 16 bits each. As in the comp3 storage, only 1 byte of each
char is used for storage. The byte ordering is little-endian as IBM
mainframes : high value &#45;&gt; low value. It is the reverse order from
Intel binary storage.</p>
+
+<p>The combination of pic9() or picS9() with or without decimals, and
indicxation of comp3 or comp3 generates a different Var type. There exists
21 different numeric class in nacaRT to support all these possibilities.</p>
+
+<h2><a name="3.2Variables-Variabledefinition"></a>Variable definition</h2>
+
+<p>As we have seen previously, a variable belongs to a program. But the
same program code may be run simulateously by different sessions. Each
session uses a different program instance.<br/>
+Then we must make sure that a variable's value is unique and not shared
eith another instance of the same program. Otherwise, we would have data
values spreading and "jumping" form one user session to another one ...
This is then a mandatory feature &#33;</p>
+
+<p>Another point to handle concerns memory usage optimisation: it would be
interesting to share the name and depth level of a given variable among all
instances of a given program.</p>
+
+<p>The notion of VarDef (standing for Variable Definition)&nbsp;achieves
these points by defining only at one point all invariant characterics of a
given variable:</p>
+<ul class="alternate" type="square">
+ <li>Name</li>
+ <li>Depth level</li>
+ <li>Typing</li>
+ <li>Parent variable</li>
+ <li>List of children</li>
+ <li>Initial value</li>
+ <li>number of occurs</li>
+ <li>Data size</li>
+ <li>...<br/>
+Interstingly, what is NOT here is the variable's value &#33;</li>
+</ul>
+
+
+<p>A variable is then a triple entity. If we are a variable, we then have
access to:</p>
+<ul class="alternate" type="square">
+ <li>The VarDef that defines the invariant settings of the variable</li>
+ <li>The buffer which carries our's value</li>
+ <li>The start position that we occupies in the buffer</li>
+</ul>
+
+
+<p>To sum up:</p>
+
+<p>A variable belongs to a program instance, so it doesn't share it's
value with another program instance<br/>
+A variable shares all it's invariant settings with all program
instances</p>
+
+<p>Finally, when we need to manipulate a variable's value, we need the 3
entities:</p>
+<ul class="alternate" type="square">
+ <li>The VarBase derived object: The representationof the variable</li>
+ <li>The VarDefBase derivated object: The representationof the variable's
definition</li>
+ <li>the VarBufferPos: It's the object that defines the buffer, and the
variable start position within the buffer</li>
+</ul>
+
+
+<h3><a name="3.2Variables-Variableclasshierarchy"></a>Variable class
hierarchy</h3>
+
+<p>The variable class hierarchy is dual: It's duplicated with the VarDef
hierarchy.</p>
+
+<p>Its detailed here with the notation Var / VarDef.</p>
+<ul>
+ <li><tt>VarBase / VarDefBase</tt>: Base classes
+ <ul>
+ <li><tt>VarDefBuffer</tt>: Base classes which has no Var correspondance.
+ <ul>
+ <li><tt>Var / VarDefVariable</tt>: Base classes: This the common type
of all application accessible variables : see <tt>Var v =
declare.level(nnn)...var();</tt>
+ <ul>
+ <li><tt>VarGroup / VarDefG</tt>: Defines a group, that is no .pic
method have been specified; <tt>Var v = declare.level(1).var();</tt></li>
+ <li><tt>VarAlphaNum / VarDefX</tt>: Defines an alphanumeric variable:
<tt>Var v = declare.level(1).picX(10).var();</tt></li>
+ <li><tt>VarNum / VarDefFNum</tt>: Base class for all numeric types;
it's not directly instanciable
+ <ul>
+ <li><tt>VarNumDecComp0 / VarDefNumDecComp0</tt>: Unsigned decimal
comp-0 variable: <tt>Var v = declare.level(1).pic9(5, 2).var();</tt></li>
+ <li><tt>VarNumDecComp3 / VarDefNumDecComp3</tt>: Unsigned decimal
comp-3 variable: <tt>Var v = declare.level(1).pic9(5,
2).comp3().var();</tt></li>
+ <li><tt>VarNumDecComp4 / VarDefNumDecComp4</tt>: Unsigned decimal
comp-4 variable: <tt>Var v = declare.level(1).pic9(5,
2).comp().var();</tt></li>
+ <li><tt>VarNumDecSignComp0 / VarDefNumDecSignComp0</tt>: Signed
decimal comp-0 variable: <tt>Var v = declare.level(1).picS9(5,
2).var();</tt></li>
+ <li><tt>VarNumDecSignComp3 / VarDefNumDecSignComp3</tt>: Signed
decimal comp-3 variable: <tt>Var v = declare.level(1).picS9(5,
2).comp3().var();</tt></li>
+ <li><tt>VarNumDecSignComp4 / VarDefNumDecSignComp4</tt>: Signed
decimal comp-4 variable: <tt>Var v = declare.level(1).picS9(5,
2).comp4().var();</tt></li>
+ <li><tt>VarNumDecSignLeadingComp0 /
VarDefNumDecSignLeadingComp0</tt>: Sign separated leading decimal comp0
variable: <tt>Var v = declare.level(1).pic9(5,
2).signLeadingSeparated().var();</tt></li>
+ <li><tt>VarNumDecSignTrailingComp0 /
VarDefNumDecSignTrailingComp0</tt>: Sign separated trailing decimal comp0
variable: <tt>Var v = declare.level(1).pic9(5,
2).signTralingSeparated().var();</tt></li>
+ <li><tt>VarNumEdited / VarDefNumEdited</tt>: Numeric edited variable:
<tt>Var v = declare.level(1).pic("ZZZ9").var();</tt></li>
+ <li><tt>VarNumIntComp0 / VarDefNumIntComp0</tt>: Unsigned integer
comp-0 variable: <tt>Var v = declare.level(1).pic9(5).var();</tt></li>
+ <li><tt>VarNumIntComp0Long / VarDefNumIntComp0Long</tt>: Unsigned
integer comp-0 with more than 9 digits variable: <tt>Var v =
declare.level(1).pic9(14).var();</tt></li>
+ <li><tt>VarNumIntComp3 / VarDefNumIntComp3</tt>: Unsigned integer
comp-3 variable: <tt>Var v =
declare.level(1).pic9(5).comp3().var();</tt></li>
+ <li><tt>VarNumIntComp3Long / VarDefNumIntComp3Long</tt>: Unsigned
integer comp-3 variable with more than 9 digits: <tt>Var v =
declare.level(1).pic9(14).comp3().var();</tt></li>
+ <li><tt>VarNumIntComp4 / VarDefNumIntComp4</tt>: Unsigned integer
comp-4 variable: <tt>Var v =
declare.level(1).pic9(5).comp4().var();</tt></li>
+ <li><tt>VarNumIntSignComp0 / VarDefNumIntSignComp0</tt>:Signed
integer comp-0 variable: <tt>Var v =
declare.level(1).picS9(5).var();</tt></li>
+ <li><tt>VarNumIntSignComp0 / VarDefNumIntSignComp0Long</tt>:Signed
integer comp-0 variable with more than 9 digits: }}Var v =
declare.level(1).picS9(14).var();}}</li>
+ <li><tt>VarNumIntSignComp3 / VarDefNumIntSignComp3</tt>:Signed
integer comp-3 variable: <tt>Var v =
declare.level(1).picS9(5).comp3().var();</tt></li>
+ <li><tt>VarNumIntSignComp3 / VarDefNumIntSignComp3Long</tt>:Signed
integer comp-3 variable with more than 9 digits: <tt>Var v =
declare.level(1).picS9(14).comp3().var();</tt></li>
+ <li><tt>VarNumIntSignComp4 / VarDefNumIntSignComp4</tt>:Signed
integer comp-3 variable: <tt>Var v =
declare.level(1).picS9(5).comp4().var();</tt></li>
+ <li><tt>VarNumIntSignLeadingComp0 /
VarDefNumIntSignLeadingComp0</tt>:Sign separated leading integer comp-0
variable: <tt>Var v =
declare.level(1).picS9(5).signLeadingSeparated().var();</tt></li>
+ <li><tt>VarNumIntSignLeadingComp0 /
VarDefNumIntSignLeadingComp0Long</tt>:Sign separated leading integer
comp-0, with more than 9 digits support variable: <tt>Var v =
declare.level(1).picS9(14).signLeadingSeparated().var();</tt></li>
+ <li><tt>VarNumIntSignTrailingComp0 /
VarDefNumIntSignTrailingComp0</tt>:Sign separated trailing integer comp-0
variable: <tt>Var v =
declare.level(1).picS9(5).signTrailingSeparated().var();</tt></li>
+ <li><tt>VarNumIntSignTrailingComp0 /
VarDefNumIntSignTrailingComp0Long</tt>:Sign separated trailing integer
comp-0 variable with more than 9 digits: <tt>Var v =
declare.level(1).picS9(14).signTrailingSeparated().var();</tt></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+</ul>
+
+
+<p>Note: This hierarchy is simplified, as Edits, forms and FPac type
variables have been removed. These notions will be detailed below.</p>
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.3 Copy.html Wed Mar 24 05:11:35 2010
@@ -0,0 +1,131 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.3 Copy</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.3 Copy
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 13 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <p>A copy file is a file that owns a list of variables that are
included in a program.</p>
+
+<p>It can be used for example to declared database table definition, or
data file structure.</p>
+
+<h2><a name="3.3Copy-DeclarationofaCopyfile"></a>Declaration of a Copy
file</h2>
+
+<p>A copy is a java class that dervices from the base class
<tt>Copy</tt>.<br/>
+Syntax is :</p>
+
+<p>Source code file is &lt;copy_name&gt;.java:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> class
&lt;copy_class_name&gt; <span class="code-keyword">extends</span> Copy
+{
+ <span class="code-keyword">static</span> &lt;copy_class_name&gt;
Copy(BaseProgram program)
+ {
+ <span class="code-keyword">return</span> <span
class="code-keyword">new</span> &lt;copy_class_name&gt;(program, <span
class="code-keyword">null</span>);
+ }
+ <span class="code-keyword">static</span> &lt;copy_class_name&gt;
Copy(BaseProgram program, CopyReplacing copyReplacing)
+ {
+ <span class="code-keyword">return</span> <span
class="code-keyword">new</span> &lt;copy_class_name&gt;(program,
copyReplacing);
+ }
+ &lt;copy_class_name&gt;(BaseProgram program, CopyReplacing
copyReplacing)
+ {
+ <span class="code-keyword">super</span>(program, copyReplacing);
+ }
+ &lt;Variables declaration. It's the same syntax as program's variable
declaration&gt;
+}</pre>
+</div></div>
+<p>Example:</p>
+
+<p>Copy source file name is ErrorDef.java</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> class
ErrorDef <span class="code-keyword">extends</span> Copy
+{
+ <span class="code-keyword">static</span> ErrorDef Copy(BaseProgram
program)
+ {
+ <span class="code-keyword">return</span> <span
class="code-keyword">new</span> ErrorDef(program, <span
class="code-keyword">null</span>);
+ }
+ <span class="code-keyword">static</span> ErrorDef Copy(BaseProgram
program, CopyReplacing copyReplacing)
+ {
+ <span class="code-keyword">return</span> <span
class="code-keyword">new</span> ErrorDef(program, copyReplacing);
+ }
+ ErrorDef(BaseProgram program, CopyReplacing copyReplacing)
+ {
+ <span class="code-keyword">super</span>(program, copyReplacing);
+ }
+
+ Var vError = declare.level(1).<span class="code-keyword">var</span>();
+ Var vErrorText = declare.level(5).picX(80).<span
class="code-keyword">var</span>();
+ Var vErrorNumber = declare.level(5).pic9(4).<span
class="code-keyword">var</span>();
+}</pre>
+</div></div>
+
+<h2><a name="3.3Copy-Copyusagebyaprogram"></a>Copy usage by a program</h2>
+
+<h3><a name="3.3Copy-Declaration"></a>Declaration</h3>
+
+<p>A copy is declared by a program as:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">&lt;copy_class_name&gt; &lt;copy_variable_name&gt;
= &lt;copy_class_name&gt;.Copy(<span
class="code-keyword">this</span>);</pre>
+</div></div>
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">ErrorDef errorDef = ErrorDef.Copy(<span
class="code-keyword">this</span>);</pre>
+</div></div>
+
+<h3><a name="3.3Copy-Variableaccess"></a>Variable access</h3>
+
+<p>As the copy variable are defined inside a different class than the
program's own class, the copy's variable name must be prefixed by the copy
variable name, so that the compiler knows form which class the copy
variable is taken.</p>
+
+<h2><a name="3.3Copy-Example"></a>Example</h2>
+
+<p>With the following program TestCopy.java:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">import</span>
idea.onlinePrgEnv.*;
+<span class="code-keyword">import</span> nacaLib.varEx.*;
+<span class="code-keyword">import</span> nacaLib.program.*;
+
+<span class="code-keyword">public</span> class TestCopy <span
class="code-keyword">extends</span> OnlineProgram
+{
+ DataSection WorkingStorage = declare.workingStorageSection();
+
+ Var vErrorText = declare.level(1).picX(10).<span
class="code-keyword">var</span>(); <span class="code-comment">// Declare a
variable named vErrorText
+</span> Var v = declare.level(77).pic9(4).<span
class="code-keyword">var</span>(); <span class="code-comment">//
Declare another variable named vErrorText
+</span>
+ ErrorDef errorDef = ErrorDef.Copy(<span
class="code-keyword">this</span>); <span class="code-comment">//
Declares the copy class; all it's variables will be accessed through
errorDef. prefix
+</span>
+ <span class="code-keyword">public</span> void procedureDivision()
+ {
+ move(<span class="code-quote">"No Error"</span>, vErrorText);
<span class="code-comment">// This is the vErrorText variable of the
working storage section
+</span> move(<span class="code-quote">"No Error in copy
variable"</span>, errorDef.vErrorText); <span class="code-comment">//
This is the vErrorText variable of the copy ErrorDef !
+</span>
+ <span class="code-keyword">assert</span>(!isEquals(<span
class="code-quote">"No Error"</span>, errorDef.vErrorText));
+ <span class="code-keyword">assert</span>(!isEquals(<span
class="code-quote">"No Error in copy variable"</span>, vErrorText)); <span
class="code-comment">// the 2 variables are not mixed !!!
+</span> }
+}</pre>
+</div></div>
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.4 SQL - generalities.html Wed Mar 24
05:11:35 2010
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.4 SQL - generalities</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.4 SQL - generalities
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 15 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <p>SQL access is mandatory for Cobol-like transcoded
applications<br/>
+It is internally implemented by JDBC calls, but presents a high level API
to the developper.</p>
+
+<h2><a name="3.4SQL-generalities-Syntaxandremarks"></a>Syntax and
remarks</h2>
+
+<p>There are different types of SQL statements :</p>
+<ul class="alternate" type="square">
+ <li>Statements that acts upon a single record at time. These are select,
insert, update or delete statements</li>
+ <li>Statements that manages transaction states: commit or rollback</li>
+ <li>Cursors, that can fetch multiple records: they must be open, fetched,
close. Records may optinnaly be updated or deleted depending on opening
mode.</li>
+</ul>
+
+
+<p>Remarks: table-space prefix is added automatically before preparation
of a SQL statement. This prefix is taken from nacaRT configuration file.
<br/>
+This enables a given source program to be executed with different table
spaces, without modifying source code. To achieve that, nacaRT parses the
sql clause and adds the chosen table prefix before each table name.</p>
+
+<h3><a name="3.4SQL-generalities-Syntax%3A"></a>Syntax :</h3>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">sql(&lt;clause_string&gt;)
+ [.into(destination_variable_name)]*
+ [.param(&lt;parameter_number&gt;, param_variable_name&gt;)]*
+ [.value(&lt;parameter_number&gt;, source_variable_name&gt;)]*
+ [.onErrorContinue]
+ [.onErrorGoto(&lt;paragraph&gt;)][.onErrorGoto(&lt;section&gt;)]
+
[.onWarningContinue][.onWarningGoto(onErrorGoto(&lt;paragraph&gt;))][.onWarningGoto(onErrorGoto(&lt;section&gt;)]</pre>
+</div></div>
+
+<p>The clause string must be SQL valid. It may contains place-holders
marked as #&lt;unique_number&gt;. This helps map a parameter to the where
argument list.<br/>
+the number placed on the right of the # sign must be unique within the
statement.<br/>
+The param method specified a parameter that will be used by the
corresponding # .</p>
+
+<h3><a name="3.4SQL-generalities-Chainofmethodcalls"></a>Chain of method
calls</h3>
+
+<p>The first method called is sql(&lt;clause_string&gt;) that indicates
the sql clause string to use. It must be SQL a valid statement. It's
correctness is not validated by the java compiler, as it's only interpreted
at run-time.</p>
+
+<p>The sql() can be followed by various method calls:</p>
+
+<ul class="alternate" type="square">
+ <li><tt>into(variable)</tt>: indicates nacaRT that the variable must be
filled with the content of a resultset column. There must be as many into()
calls as there are columns seleted in the statement.<br/>
+If a column sepecification is *, then the variable indicated by the into()
calls must be a group.<br/>
+This methode is only valid for select statements of course.</li>
+</ul>
+
+
+<ul class="alternate" type="square">
+ <li><tt>param(&lt;parameter_number&gt;, param_variable_name&gt;)</tt>:
This method call has 2 parameters. The 1st (parameter_number) is a number
which must match a parameter placeholder given in the sql statement as
#&lt;parameter_number&gt;. &lt;param_variable_name&gt; is the name of a
cobol-like variable whose value will be used for record selection. This
method is used for all statements that are filtered (select, update,
delete).</li>
+</ul>
+
+
+<ul class="alternate" type="square">
+ <li><tt>value(&lt;parameter_number&gt;, source_variable_name&gt;</tt>:
this method is used to provide a value to write in some table. The
parameter_number number must match a parameter number of the SQL clause
specified as #&lt;parameter_number&gt;. It's used only for insert or update
statements.</li>
+</ul>
+
+
+<ul class="alternate" type="square">
+ <li><tt>onErrorGoto()</tt> enables error management. An error is any DB2
negative code (&lt; 0) . Then, when we get such a negative code, the
paragraph or section is executed.</li>
+</ul>
+
+
+<ul class="alternate" type="square">
+ <li><tt>onWarningGoto()</tt> enables management when a warning appears. A
warning is any DB2 strictly positive code (&gt; 0), excluding 100. Then,
when we get such a code, the paragraph or section is executed.</li>
+</ul>
+
+
+<ul class="alternate" type="square">
+ <li>{{onErrorContinue()} declares explicitly that we don't manages
errors</li>
+</ul>
+
+
+<h4><a name="3.4SQL-generalities-MoreonSQLCodehandling"></a>More on SQL
Code handling</h4>
+
+<p>When a SQL statement is executed, a status code is generated by JDBC.
It can be either :</p>
+<ul class="alternate" type="square">
+ <li>handled directly in the methode chain, as described below (i.e.
<tt>onErrorGoto()</tt>)</li>
+ <li>or handled in next source line:<br/>
+The method isSQLCode() enables to check the last SQL code against a given
SQL code. A list of standard SQL code value is provided by object
SQLCode.<br/>
+This enables to do the following operations:
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">sql(<span class="code-quote">"select * from
xxx"</span>).into(vGroup);
+...
+<span class="code-keyword">if</span>(isSQLCode(SQLCode.SQL_NOT_FOUND))
+{
+ <span class="code-comment">// Did not found any record !!!
+</span>}</pre>
+</div></div></li>
+</ul>
+
+
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.4.1 SQL - non cursor statements.html
Wed Mar 24 05:11:35 2010
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.4.1 SQL - non cursor statements</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.4.1 SQL - non cursor
statements
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 15 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <p>These statement acts only on a resultset of 0 or 1 record</p>
+
+<h2><a name="3.4.1SQL-noncursorstatements-Select"></a>Select</h2>
+<p>The select statement specifies ate least one table and must return 0 or
1 record. A selection of coulumns is provided. It can be *, or a mix of *
and column names from a separe table.</p>
+
+<p>It can specify where parameters that act as a filter to find the
matching record.</p>
+
+<h3><a name="3.4.1SQL-noncursorstatements-Example"></a>Example</h3>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">sql("SELECT count(*) FROM Customer)
+ .into(wQty);</pre>
+</div></div>
+
+<p>This clause returns the number of records of table Customer in
colbol-like variable wQty. No error handling is done.</p>
+
+<h3><a name="3.4.1SQL-noncursorstatements-Example2%3A"></a>Example 2:</h3>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">sql("SELECT PhoneNumber, Name FROM Customer WHERE
Id = #1)
+ .into(wPhoneNumber)
+ .into(wName)
+ .param(1, wId)
+ .onErrorGoto(paragraphSQLErrorHandler);</pre>
+</div></div>
+
+<p>This clause select 1 record matching a given customer id. the
cobol-like variables wPhoneNumber and wName are filled on return.<br/>
+If no customer having an id wId, then a goto to paragraph
paragraphSQLErrorHandler is done.</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">h3. Example 3:
+{code:java}
+sql("SELECT count(*) FROM Customer WHERE Id = #1)
+ .into(wPhoneNumber)
+ .into(wName)
+ .param(1, wId)
+ .onErrorGoto(paragraphSQLErrorHandler);</pre>
+</div></div>
+
+<p>This clause select 1 record matching a given customer id. the
cobol-like variables wPhoneNumber and wName are filled on return.<br/>
+If no customer having an id wId, then a goto to paragraph
paragraphSQLErrorHandler is done.</p>
+
+<h3><a name="3.4.1SQL-noncursorstatements-Example4%3A"></a>Example 4:</h3>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">sql(<span class="code-quote">"SELECT * FROM RS0501
WHERE CDSTE = #1 AND CDCENPR = #2 AND CDNIVRG = #3 AND CDRGRP ^= #4"</span>)
+ .into(vrs0501b.dvrs0501b)
+ .param(1, vrs0501b.cdste)
+ .param(2, vrs0501b.cdcenpr)
+ .param(3, rs05a01s.sutirgrn)
+ .param(4, rs05a01s.sutirgr01)
+ .onErrorGoto(paragraphSQLErrorHandler);</pre>
+</div></div>
+
+<p>In that sample, there is 4 parameters that will be used for
filtering:</p>
+<ul class="alternate" type="square">
+ <li>vrs0501b.cdste is set as a filter of column CDSTE.</li>
+ <li>vrs0501b.cdcenpr is set as a filter of column CDCENPR.</li>
+ <li>rs05a01s.sutirgrn is set as a filter of column CDNIVRG.</li>
+ <li>rs05a01s.sutirgr01 is set as a filter of column CDRGRP.<br/>
+The type of the parameters-variable must be consistent with the type of
the underlying table's column. NacaRT and JDBC does resonable conversions
if required, but with some limitations</li>
+</ul>
+
+
+<p>As it's a select statement, only 0 or 1 record can be returned. </p>
+
+<p>After execution of the statement, we get a result sert of 0 or 1
record. Getting more than 1 record generates an error, as such a select
statement is limited to a single record return. This error can be catched
by onErrorGoto() method call.</p>
+
+<p>If we get 1 record in the resultset, then cobol-like variables of the
group <tt>vrs0501b.dvrs0501b</tt> will be filled.<br/>
+As we have a "select *" statement , then the resultset's table column name
is used to find variables of the same name within the group
<tt>vrs0501b.dvrs0501b</tt>. Only variables of the same name as the
column's name are filled. </p>
+
+<h3><a name="3.4.1SQL-noncursorstatements-Example5%3A"></a>Example 5:</h3>
+<p>It is possible to have both * and column names as for example:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">sql(<span class="code-quote">"SELECT X.*, Y.NMCOLL
FROM RS0104 X, RS0103 Y WHERE X.CDPROJ = Y.CDPROJ"</span>)
+ .into(dvrs0104a)
+ .into(vnm)</pre>
+</div></div>
+<p>Where :</p>
+<ul class="alternate" type="square">
+ <li><tt>dvrs0104a</tt> is a group whose some (or all) children have the
same name as the columns of table RS0104. Only the children that have a
column with the same name will be filled. Name comporarison is case
insensitive.</li>
+ <li><tt>vnm</tt> is a variable that will be filled by the value of the
column NMCOLL. As it's not a group, there is no name matching done.</li>
+</ul>
+
+
+
+<h2><a name="3.4.1SQL-noncursorstatements-Insertstatement"></a>Insert
statement</h2>
+
+<p>The statement is simple:</p>
+
+<h3><a name="3.4.1SQL-noncursorstatements-Example%3A"></a>Example:</h3>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">sql(<span class="code-quote">"INSERT INTO
RS7A00(UTISTE, UTIENTO, CDENUM, CORNUM) VALUES (#1, #2, #3, #4)"</span>)
+ .value(1, vrs7a000.utiste)
+ .value(2, vrs7a000.utiento)
+ .value(3, vrs7a000.cdenum)
+ .value(4, vrs7a000.cornum)
+ .onErrorGoto(erreur_Db2);</pre>
+</div></div>
+
+<p>All column values are passed as parameter by cahined value() method
calls. The number obvioulsy refers to the #number of the sql statement.</p>
+
+<h2><a name="3.4.1SQL-noncursorstatements-Update"></a>Update</h2>
+
+<p>This statement must give 2 kinds of informations:</p>
+<ul class="alternate" type="square">
+ <li>column's values: it's given by value() calls.</li>
+ <li>where parameters: it's given by param() calls.</li>
+</ul>
+
+
+<h3><a name="3.4.1SQL-noncursorstatements-Example%3A"></a>Example:</h3>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">sql(<span class="code-quote">"UPDATE FUF101 SET
OFEVAPR = #1, OFEVAFR = #2, OFEUMS = #3, MUTDAT = #4 WHERE UTISTE = #5 AND
UTIENTJ = #6"</span>)
+ .value(1, vfuf101d.ofevapr)
+ .value(2, vfuf101d.ofevafr)
+ .value(3, vfuf101d.ofeums)
+ .value(4, vfuf101d.mutdat)
+ .param(5, vfuf101d.utiste)
+ .param(6, vfuf101d.utientj)
+ .onErrorGoto(db2_Fehler);</pre>
+</div></div>
+
+<h2><a name="3.4.1SQL-noncursorstatements-Delete"></a>Delete</h2>
+
+<p>There is only where param to provide.</p>
+<h3><a name="3.4.1SQL-noncursorstatements-Example%3A"></a>Example:</h3>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">sql(<span class="code-quote">"DELETE FROM FUF104
WHERE UTISTE = #1 AND UTIENTJ = #2 AND EDIDAT = #3 AND JNLCOD = #4 AND
EDIGRCD = #5 AND OFEUTYP = #6"</span>)
+ .param(1, vfuf104a.utiste)
+ .param(2, vfuf104a.utientj)
+ .param(3, w_Edidat)
+ .param(4, vfuf104a.jnlcod)
+ .param(5, vfuf104a.edigrcd)
+ .param(6, vfuf104a.ofeutyp)
+ .onErrorGoto(db2_Fehler) ;</pre>
+</div></div>
+
+
+
+
+
+
+
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.4.2 SQL - Cursors management.html Wed
Mar 24 05:11:35 2010
@@ -0,0 +1,237 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.4.2 SQL - Cursors management</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.4.2 SQL - Cursors
management
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 16 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <p>Cursors are used to handle resultset of 0, 1 or many records,
one at a time.</p>
+
+<p>Multiple stages are required for operations:</p>
+<ul class="alternate" type="square">
+ <li>Cursor declaration</li>
+ <li>Cursor open</li>
+ <li>Cursor fetch</li>
+ <li>Cursor current record update</li>
+ <li>Cursor current record deletion</li>
+ <li>Cursor close</li>
+</ul>
+
+
+<h2><a name="3.4.2SQL-Cursorsmanagement-Cursordeclaration"></a>Cursor
declaration</h2>
+
+<p>This is done at the very beginning of the program using the syntax:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">SQLCursor &lt;cursor_variable_name =
declare.cursor();</pre>
+</div></div>
+
+<p>It's done in a cursorSection, before working storage section
declaration.</p>
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> class prog
<span class="code-keyword">extends</span> BatchProgram
+{
+ DataSection sqlcursorsection = declare.cursorSection();
+ SQLCursor cl07 = declare.cursor() ;
+ SQLCursor c0307 = declare.cursor() ;
+ ...</pre>
+</div></div>
+
+<p>Here 2 cursors are declared.</p>
+
+
+<h2><a name="3.4.2SQL-Cursorsmanagement-Open"></a>Open</h2>
+<p>When we open a cursor, we must provide the select statement that will
give the resultset when executed. It follows the same general syntax as
simple select statement, as seen previously:</p>
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">cursorOpen(cl07, <span class="code-quote">"SELECT
TXTTYP FROM RS7A07 WHERE UTIENTO = #1 AND CDENUM= #2 AND TXTNO = #3 AND
UTILNG = #4 AND TXTTYP = #5"</span>)
+.param(1, vrs7a03l.utiento)
+.param(2, vrs7a03l.cdenum)
+.param(3, vrs7a03l.txtno)
+.param(4, vrs7a07b.utilng)
+.param(5, vrs7a07b.txttyp)
+.onErrorGoto(sql_Error);</pre>
+</div></div>
+
+<p>Note: there is no .into() method call in the chain of method calls.
Only .param() are indicated. The indicated variables's value will be used
for record filtering.</p>
+
+<h2><a name="3.4.2SQL-Cursorsmanagement-Fetch"></a>Fetch</h2>
+<p>Fetching a cusror is to return to applcation the next record of the
result set matching parameters of the select clause.<br/>
+We must indicate here which variable are to be filled. It's done by into()
method calls.</p>
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">cursorFetch(cl07)
+ .into(vrs7a07b.txttyp)
+ .onErrorGoto(sql_Error);</pre>
+</div></div>
+<p>As the SQL clause specified for c107 had only one column to return,
there is only one into() method called.<br/>
+Error handling can be done here by onErrorGoto() or onWarningGoto or can
use the isSQLCode() separated call.</p>
+
+<h3><a name="3.4.2SQL-Cursorsmanagement-Close"></a>Close</h3>
+<p>When the cursor's result set is not needed, it must be closed:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">cursorClose(cl07).onErrorGoto(sql_Error) ;</pre>
+</div></div>
+
+<h2><a
name="3.4.2SQL-Cursorsmanagement-Updateofsomecolumnsofthecurrentrecord"></a>Update
of some columns of the current record</h2>
+
+<p>This operation enables to update a record after fetching it.<br/>
+It's done in 2 steps:</p>
+
+<h3><a name="3.4.2SQL-Cursorsmanagement-FORUPDATEOFspecifications"></a>FOR
UPDATE OF specifications</h3>
+
+<p>The clause specified at cursor-open time must indicates the list of
columns that will be updated.<br/>
+It's done by specifiy a string FOR UPDATE OF <span
class="error">&#91;&lt;column&gt;&#93;</span>+</p>
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">cursorOpen(c0c_1, <span class="code-quote">"SELECT
* FROM RS7A0C WHERE UTIENTO = #1 AND CDENUM = #2 AND CDEST03 = '0' FOR
UPDATE OF CDEST03, MUTDAT, MUTHEU"</span>)
+ .param(1, vrs7a0cd.utiento)
+ .param(2, vrs7a0cd.cdenum);</pre>
+</div></div>
+
+<p>In that sample, it will be possible to update the value of the columns
<tt>CDEST03</tt>, <tt>MUTDAT</tt> and <tt>MUTHEU</tt> after having fetched
a record.</p>
+
+<h3><a
name="3.4.2SQL-Cursorsmanagement-Updatingcurrentrecord"></a>Updating
current record</h3>
+
+<p>After fetching a cursor open with the "FOR UPDATE ..." string, it's
possible to update the selected columns of the current record by
calling:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">cursorUpdateCurrent(c0c_1, <span
class="code-quote">"UPDATE RS7A0C SET CDEST03 = '1', MUTDAT = #1, MUTHEU =
#2"</span>)
+ .value(1, w_Sysdat)
+ .value(2, w_Sysheu)
+ .onErrorGoto(sql_Error);</pre>
+</div></div>
+<p>The statement and chained method calls has the same syntax as the
sql("Update ...") order, but it acts only one the current record. There is
no Where specification. Error management is similar.</p>
+
+<h3><a
name="3.4.2SQL-Cursorsmanagement-Deletingcurrentrecord"></a>Deleting
current record</h3>
+
+<p>After fetching a cursor open with the "FOR UPDATE ..." string, it's
possible to delete the current record: </p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">cursorDeleteCurrent(c0c_1, <span
class="code-quote">"DELETE FROM RS7A0D"</span>)
+ .onErrorGoto(sql_Error);</pre>
+</div></div>
+
+<h2><a name="3.4.2SQL-Cursorsmanagement-Operationssumup"></a>Operations
sum-up</h2>
+
+<h3><a name="3.4.2SQL-Cursorsmanagement-Wholeexample1"></a>Whole example
1</h3>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> class prog
<span class="code-keyword">extends</span> BatchProgram
+{
+ DataSection sqlcursorsection = declare.cursorSection();
+ SQLCursor cur = declare.cursor() ;
+ ...
+ procedureDivision()
+ {
+ ...
+ cursorOpen(cur, <span class="code-quote">"SELECT DISTINCT TXTNO,
CDECOND1, UTIENTJ2, JNLCOD, JNLGRC, "</span>
+ <span class="code-quote">"JNLCODS FROM RS7A03 WHERE UTIENTO = #1 AND
CDENUM = #2 AND TXTNO BETWEEN "</span>#3 AND #4")
+ .param(1, vrs7a03l.utiento)
+ .param(2, vrs7a03l.cdenum)
+ .param(3, w_Txtno_Min)
+ .param(4, w_Txtno_Max)
+ .onErrorGoto(sql_Error);
+ ...
+ cursorFetch(cur)
+ .into(vrs7a03l.txtno)
+ .into(vrs7a03l.cdecond1)
+ .into(vrs7a03l.utientj2)
+ .into(vrs7a03l.jnlcod)
+ .into(vrs7a03l.jnlgrc)
+ .into(vrs7a03l.jnlcods)
+ .onErrorGoto(sql_Error);
+ <span
class="code-keyword">while</span>(!isNotSQLCode(SQLCode.SQL_NOT_FOUND))
+ {
+ ...
+ cursorFetch(cur)
+ .into(vrs7a03l.txtno)
+ .into(vrs7a03l.cdecond1)
+ .into(vrs7a03l.utientj2)
+ .into(vrs7a03l.jnlcod)
+ .into(vrs7a03l.jnlgrc)
+ .into(vrs7a03l.jnlcods)
+ .onErrorGoto(sql_Error);
+ ...
+ }
+ cursorClose(cur);
+ ...
+ }
+ ...
+}</pre>
+</div></div>
+
+<h3><a
name="3.4.2SQL-Cursorsmanagement-Wholeexample2withrecordupdateanddelete"></a>Whole
example 2 - with record update and delete</h3>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> class prog
<span class="code-keyword">extends</span> BatchProgram
+{
+ DataSection sqlcursorsection = declare.cursorSection();
+ SQLCursor cur = declare.cursor() ;
+ ...
+ procedureDivision()
+ {
+ ...
+ cursorOpen(cur, <span class="code-quote">"SELECT * FROM RS7A0C
WHERE UTIENTO = #1 AND CDENUM = #2 AND CDEST03 = '0' FOR UPDATE OF CDEST03,
MUTDAT, MUTHEU"</span>)
+ .param(1, vrs7a0cd.utiento)
+ .param(2, vrs7a0cd.cdenum)
+ .onErrorGoto(sql_Error);
+ ...
+ cursorFetch(cur)
+ .into(vrs7a0cd.dvrs7a0cd) <span class="code-comment">//
vrs7a0cd.dvrs7a0cd is a group whose children having similar names as
columns of RS7A0C will be filled
+</span> .onErrorGoto(sql_Error) ;
+ <span
class="code-keyword">while</span>(!isNotSQLCode(SQLCode.SQL_NOT_FOUND))
+ {
+ <span
class="code-keyword">if</span>(isEqual(vrs7a0cd.mustUpdate, <span
class="code-quote">"O"</span>))
+ {
+ cursorUpdateCurrent(cur, <span class="code-quote">"UPDATE
RS7A0C SET CDEST03 = '1', MUTDAT = #1, MUTHEU = #2"</span>)
+ .value(1, w_Sysdat)
+ .value(2, w_Sysheu)
+ .onErrorGoto(sql_Error);
+ }
+ <span class="code-keyword">else</span> <span
class="code-keyword">if</span>(isEqual(vrs7a0cd.mustDelete, <span
class="code-quote">"O"</span>))
+ {
+ cursorDeleteCurrent(cur, <span class="code-quote">"DELETE
RS7A0C"</span>)
+ .onErrorGoto(sql_Error);
+ }
+ ...
+ cursorFetch(cur)
+ .into(vrs7a0cd.dvrs7a0cd)
+ .onErrorGoto(sql_Error) ;
+ }
+ cursorClose(cur);
+ ...
+ }
+ ...
+}</pre>
+</div></div>
+
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.5 Screen handling.html Wed Mar 24
05:11:35 2010
@@ -0,0 +1,404 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.5 Screen handling</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.5 Screen handling
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 19 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <p>The screen handling is done by nacaRT. It is available only to
<tt>OnlineProgram</tt> derivated programs.</p>
+
+<p>The implementation is quite different from the original CICS screen
handling, but all CICS possibilities are supported, with improvements.<br/>
+As of 03/2007, user screen input/output is done only via a web browser.
But provisions have been done in nacaRT to support other user interface
means.<br/>
+The implementation code make it sure not to be liked too heavily to a web
interface, but generalizes the notion.</p>
+
+<h1><a name="3.5Screenhandling-Concept"></a>Concept</h1>
+
+<p>In CICS applications, screen definition is done by Cobol maps.<br/>
+This notion doesn't exist as such in transcoded programs.</p>
+
+<p>Cobol maps are transcoded as a derivated of Copy files, with Forms,
Edit entry fields and static multi-lingual texts. Some other user interface
controls could be added in future releases of nacaRT. There is no
relationship between the screen description and it's graphical
representation. In particular, the screen description doesn't give any
information on the geographical placement of entry fields, nor does it
defines the type of web-control used to provide entry field support: the
description is fully independant from it's graphical representation on the
user's workstation.<br/>
+The screen layout level is not provided by a source file, but instead is
given by an external xml file. This enables a strong decoupling of the
screen graphical representation from it's definition in source code.</p>
+
+<h1><a name="3.5Screenhandling-ScreendefinitionCICSMap"></a>Screen
definition - CICS Map</h1>
+
+<p>A screen definition is a specialized Copy file, derived from standard
base class Map, which in turns derives itself from Copy.<br/>
+It can contain a Form and multiple Edits and localized Strings.</p>
+
+<h2><a name="3.5Screenhandling-Example"></a>Example</h2>
+
+<p>Example of such a map :</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> class
TestMap <span class="code-keyword">extends</span> Map
+{
+ <span class="code-keyword">static</span> TestMap Copy(BaseProgram
program)
+ {
+ <span class="code-keyword">return</span> <span
class="code-keyword">new</span> TestMap(program);
+ }
+
+ TestMap(BaseProgram program)
+ {
+ <span class="code-keyword">super</span>(program);
+ }
+
+ Form vForm = declare.form(<span class="code-quote">"TestForm"</span>,
24, 8);
+ LocalizedString str_Nmmasq =
declare.localizedString().text(LanguageCode.FR, <span
class="code-quote">"FR"</span>);
+ Edit name1 = declare.edit(<span class="code-quote">"name1"</span>,
6)
+ .initialValue(str_Nmmasq)
+ .justifyFill(MapFieldAttrFill.BLANK)
+ .justify(MapFieldAttrJustify.LEFT)
+ .edit();
+
+ Edit name2 = declare.edit(<span class="code-quote">"name2"</span>,
6)
+ .justifyFill(MapFieldAttrFill.BLANK)
+ .justify(MapFieldAttrJustify.LEFT)
+ .edit();
+
+ Edit name3 = declare.edit(<span class="code-quote">"name3"</span>,
6)
+ .justifyFill(MapFieldAttrFill.BLANK)
+ .justify(MapFieldAttrJustify.LEFT)
+ .edit();
+
+ Edit name4 = declare.edit(<span class="code-quote">"name4"</span>,
6)
+ .justifyFill(MapFieldAttrFill.BLANK)
+ .justify(MapFieldAttrJustify.LEFT)
+ .edit();
+
+ Edit city1 = declare.edit(<span class="code-quote">"city1"</span>,
4)
+ .justifyFill(MapFieldAttrFill.BLANK)
+ .justify(MapFieldAttrJustify.LEFT)
+ .edit();
+
+ Edit city2 = declare.edit(<span class="code-quote">"city1"</span>,
4)
+ .justifyFill(MapFieldAttrFill.BLANK)
+ .justify(MapFieldAttrJustify.LEFT)
+ .edit();
+
+ Edit hDate = declare.edit(<span class="code-quote">"date"</span>, 10)
+ .justifyFill(MapFieldAttrFill.BLANK)
+ .justify(MapFieldAttrJustify.LEFT)
+ .edit();
+ Var vYear = declare.level(3).picX(4).<span
class="code-keyword">var</span>();
+ Var vFillerSep1 = declare.level(3).picX(1).filler();
+ Var vMonth = declare.level(3).picX(2).<span
class="code-keyword">var</span>();
+ Var vFillerSep2 = declare.level(3).picX(1).filler();
+ Var vDay = declare.level(3).picX(2).<span
class="code-keyword">var</span>();</pre>
+</div></div>
+
+<p>This Copy is declared in the program source as a copy:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> class
TestMapProgram <span class="code-keyword">extends</span> OnlineProgram
+{
+ ...
+ DataSection WS = declare.workingStorageSection() ;
+ ...
+ TestMap testMap = TestMap.Copy(<span
class="code-keyword">this</span>) ;
+ ...</pre>
+</div></div>
+
+<p>Comments: the structure is close to the Copy structure: a map is a
specialized Copy.<br/>
+A map contains a Form.<br/>
+Lets see the various parts of this declaration.</p>
+
+<h3><a name="3.5Screenhandling-Form"></a>Form</h3>
+
+<p>The form is described as:</p>
+
+<p><tt>Form MainForm = declare.form("TestForm", 24, 80) ;</tt><br/>
+the <tt>form</tt> method gives the folwingo parameters:</p>
+<ul class="alternate" type="square">
+ <li>Form's name, which must match a resource name, in a xml file.</li>
+ <li>Form's lines number</li>
+ <li>Form's column number.</li>
+</ul>
+
+
+<p>A form typically natchies a 3270 screen which is 24 lines of 80 chars.
Non propotionnal char spacing is used.</p>
+
+<p>The <tt>Form MainForm</tt> can be seen as a kind of group variable of
level 01. This group is composed of:</p>
+<ul class="alternate" type="square">
+ <li>Entry fields: the Edit</li>
+ <li>Localized String: Static text</li>
+ <li>Var.</li>
+</ul>
+
+
+<h3><a name="3.5Screenhandling-Edit"></a>Edit</h3>
+
+<p>An edit is typically displayed as an entry field in the user's web
client. It can :</p>
+<ul class="alternate" type="square">
+ <li>display some textual value on the user screen,</li>
+ <li>enable datat input by the user.<br/>
+What's more, an the CICS map defines various attributes for entry field.
These attributes also exists in nacaRT support.<br/>
+An edit can have an optional list of custom attributes. But 2 things are
mandatory:</li>
+ <li>Edit name: The edit's name, which must match an entry of the xml
resource file.</li>
+ <li>Width: length of the edit: that is the number of chars that can be
dispayed and/or input.</li>
+</ul>
+
+
+<p>They are given by <tt>declare.edit(&lt;edit_name&gt;,
&lt;Width&gt;)</tt>.</p>
+
+<p>The other optional attributes are defined by the parameter call chain
that follows the <tt>declare.edit</tt> call.<br/>
+The following parameters are supported:</p>
+<ul class="alternate" type="square">
+ <li><tt>initialValue(&lt;localized_string_name&gt;)</tt>: Gives a
reference to the initial value ofthe edit's textual content.</li>
+ <li><tt>color(MapFieldAttrColor.*)</tt>: Gives the default edit
background color, where * is one of BLUE, RED, PINK, GREEN, TURQUOISE,
YELLOW, NEUTRAL, DEFAULT.</li>
+ <li><tt>highLighting(MapFieldAttrHighlighting.*)</tt>: Gives the default
edit text highlightning level where * is one of OFF, BLINK, REVERSE,
UNDERLINE. Note: BLINK isn't supported on web client.</li>
+ <li><tt>protection(MapFieldAttrProtection.*)</tt>: Gives the default
access right to the text content, where * is one of AUTOSKIP, UNPROCTECTED,
NUMERIC, PROTECTED</li>
+ <li><tt>intensity(MapFieldAttrIntensity.*)</tt>: Gives the default edit
text intensity, where * is one of NORMAL, BRIGHT, DATK, HIDE</li>
+ <li><tt>justify(MapFieldAttrJustify.*)</tt>: Gives the default text
justification, where * is one of LEFT, RIGHT</li>
+ <li><tt>justifyFill(MapFieldAttrFill.*)</tt>: Gives the default char
filling, where * is one of BLANK, ZERO</li>
+</ul>
+
+
+<p>Edits are variables defines at depth level 2, so they are part of the
Form group.</p>
+
+<h3><a name="3.5Screenhandling-LocalizedString"></a>LocalizedString</h3>
+
+<p>A localized string is a way to define a text in multiple languages.<br/>
+This text in the current language is used to provide a default textual
value to the Edit that references the localized string by calling the
<tt>initialValue</tt> method.</p>
+
+<h3><a name="3.5Screenhandling-Var"></a>Var</h3>
+<p>As a form is a group of level 1, it can contains Edit of level 2. These
edit can themsleves contains Vars. These Vars cannot have a higher level
than 3. They redefine the Edit text content. The attributes are not
accessible throught the Var.</p>
+
+<p>In the sample:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">Edit hDate = declare.edit(<span
class="code-quote">"date"</span>, 10)
+ .justifyFill(MapFieldAttrFill.BLANK)
+ .justify(MapFieldAttrJustify.LEFT)
+ .edit();
+ Var vYear = declare.level(3).picX(4).<span
class="code-keyword">var</span>();
+ Var vFillerSep1 = declare.level(3).picX(1).filler();
+ Var vMonth = declare.level(3).picX(2).<span
class="code-keyword">var</span>();
+ Var vFillerSep2 = declare.level(3).picX(1).filler();
+ Var vDay = declare.level(3).picX(2).<span
class="code-keyword">var</span>();</pre>
+</div></div>
+
+<p>The hDate's textual value is split as a year, month and day value by
variables <tt>vYear</tt>, <tt>vMonth</tt> and <tt>vDay</tt>.</p>
+
+<h2><a name="3.5Screenhandling-Internalmemoryrepresentation"></a>Internal
memory representation</h2>
+
+<p>CICS screen handling specifies that:</p>
+<ul class="alternate" type="square">
+ <li>forms must have a leading buffer size of 12 bytes for CICS internal
usage</li>
+ <li>entry fields attributes are stored in a 7 bytes header.</li>
+</ul>
+
+
+<p>The Cobol application handles directly these 7 bytes to change
attributes.<br/>
+It's the case anymore in transcoded programs, as new methods for
attributes handling are provided. <br/>
+However, the headers still exists for Forms and Edits fir compatibility
reasons, but their handling is reserved for nacaRT usage only.<br/>
+Thus, when declaring an edit of 10 chars, a buffer chunk of 17 chars is
reserved.</p>
+
+<p>Thus, the buffer of the previous example is 92 chars long:</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div
class="preformattedContent panelContent">
+<pre> 0 1 2 3
4 5 6 7 8 9 10
+Char buffer position:
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123
+
---------------------------------------------------------------------------------
+Buffer content 1 :
hhhhhhhhhhhhaaaaaaaTTTTTTaaaaaaaUUUUUUaaaaaaaVVVVVVaaaaaaaWWWWWWaaaaaaaCCCCaaaaaaaCCCCaaaaaaaXXXXXXXXXX
+Buffer content 2 :
hhhhhhhhhhhhaaaaaaaTTTTTTaaaaaaaUUUUUUaaaaaaaVVVVVVaaaaaaaWWWWWWaaaaaaaCCCCaaaaaaaCCCCaaaaaaaYYYYFMMFDD
+</pre>
+</div></div>
+<p>Where:</p>
+<ul class="alternate" type="square">
+ <li>h: is a form header reserved char</li>
+ <li>a: is an edit's attributes header reserved char</li>
+ <li>T: is name1 textual value</li>
+ <li>U: is name2 textual value</li>
+ <li>V: is name3 textual value</li>
+ <li>W: is name4 textual value</li>
+ <li>C: is city textual value</li>
+ <li>X: is hDate textual value</li>
+ <li>Y is the year chunk of the <tt>hDate</tt> textual value</li>
+ <li>F is a filler within the <tt>hDate</tt> textual value</li>
+ <li>M is the month chunk of the <tt>hDate</tt> textual value</li>
+ <li>D is the month chunk of the <tt>hDate</tt> textual value</li>
+</ul>
+
+
+<h1><a name="3.5Screenhandling-MapRedefines"></a>MapRedefines</h1>
+
+<p>The map gives a higher abstraction level than original CICS map.
However, as CICS enables a lower level access than nacaRT, it possible in
Cobol, program to maniplate directly the attributes of a given entry
field.<br/>
+What's more, the map just defines a list of single edits. It is not
possible to access them as aa array for example. This is often desirable,
as some screens are in fact a list of entry fields organized in a tabular
manner. </p>
+
+<p>Thus the notion of MapRedefine has been introduced in nacaRT. In the
previous example, it enables to access edit name1 to name4 as an array of 4
edits. </p>
+
+<h2><a name="3.5Screenhandling-Example"></a>Example</h2>
+
+<p>The mapRedefine object is generally set just after the Copy declaration
of the Map in the program's source code. The TestMapProgram is then:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> class
TestMapProgram <span class="code-keyword">extends</span> OnlineProgram
+{
+ ...
+ DataSection WS = declare.workingStorageSection() ;
+ ...
+ TestMap testMap = TestMap.Copy(<span
class="code-keyword">this</span>) ;
+ MapRedefine testMapRedefine =
declare.level(1).redefinesMap(testMap.vForm);
+ Edit editNamesArray = declare.level(2).editOccurs(4, <span
class="code-quote">"EditNamesArray"</span>);
+ Edit editName = declare.level(5).edit();
+ Edit filler_edit1 = declare.level(2).editSkip(1);
+ Edit editDate = declare.level(2).edit();
+ ...</pre>
+</div></div>
+
+<p>The variable editNamesArray is now an edit that enable indexed access
to any of the 4 edits : testMap.name1, testMap.name2, testMap.name3 or
testMap.name4.</p>
+
+<p>Lets see the various declarations:</p>
+
+<ul class="alternate" type="square">
+ <li><tt>TestMap testMap = TestMap.Copy(this);</tt>: It's the copy
declaration, as seen below.</li>
+</ul>
+
+
+<ul class="alternate" type="square">
+ <li><tt>MapRedefine testMapRedefine =
declare.level(1).redefinesMap(testMap.vForm);</tt>: Declares a map that
redfines the whole form testMap.vForm.<br/>
+<tt>testMap.vForm</tt> is the full of the form <tt>vForm</tt> declared
inside the Map <tt>testMap</tt>. A MapRedefine thus is used to redefine a
form. It references this form and gives a direct access to the edits of the
referenced form.</li>
+</ul>
+
+
+<ul class="alternate" type="square">
+ <li><tt>Edit editNamesArray =
declare.level(2).editOccurs(4, "EditNamesArray");</tt>: Declares that
editNamesArray is an array of 1 dimension of the 4th first edits of the
form referenced by the parent mapRedefine <tt>testMapRedefine</tt>.</li>
+</ul>
+
+
+<ul class="alternate" type="square">
+ <li><tt>Edit filler_edit1 = declare.level(2).editSkip(2);</tt>:
filler_edit1 is mapped upon the 5th entry field of the map
<tt>testMap.vForm</tt>. The skipEdit(2) call specifies that the 2
<tt>city</tt> edits are skipped. Not however, that they are not accessible
with <tt>filler_edit1</tt>.</li>
+</ul>
+
+
+<ul class="alternate" type="square">
+ <li><tt>Edit editDate = declare.level(2).edit();</tt>: Declares that
<tt>editDate</tt> is mapped on the 6th edit of the form. It then point to
hDate.</li>
+</ul>
+
+
+<p>These edits are sait as EditInMapRedefine, as they are used only inside
MapRedefine. Some specialized form of EditInMapRedefine exists, such as </p>
+<ul class="alternate" type="square">
+ <li>EditInMapRedefineNum with redefines a specialized edit than can input
only numeric values</li>
+ <li>EditInMapRedefineNumEdited with redefines a specialized edit than can
input only values with formatting</li>
+</ul>
+
+
+<h3><a name="3.5Screenhandling-Usages"></a>Usages</h3>
+
+<p>The edit textual value, or any of it's attribute can be accessed
directly or indeirectly, via an EditInMapoRedefine.<br/>
+EditInMapRedefine enable indexed access to an edit.</p>
+
+<p>In the example: </p>
+<ul class="alternate" type="square">
+ <li><tt>editNamesArray.getAt(1)</tt> is the same edit as
<tt>name1</tt></li>
+ <li><tt>editNamesArray.getAt(2)</tt> is the same edit as
<tt>name2</tt></li>
+ <li><tt>editNamesArray.getAt(3)</tt> is the same edit as
<tt>name3</tt></li>
+ <li><tt>editNamesArray.getAt(4)</tt> is the same edit as
<tt>name4</tt></li>
+ <li><tt>filler_edit1</tt> is null. It cannot be used.</li>
+ <li><tt>editDate</tt> is the same edit as <tt>editDate</tt></li>
+</ul>
+
+
+<h2><a name="3.5Screenhandling-VarandEditmixing"></a>Var and Edit
mixing</h2>
+
+
+<h3><a name="3.5Screenhandling-VarinsideanEdit"></a>Var inside an Edit</h3>
+
+<p>We have seen that an Edit in form can have it's textual value mapped on
a one or many variable.</p>
+
+<p>This case happens when an edit's texutal value is redefined in one or
many variables:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> class
TestMapProgram <span class="code-keyword">extends</span> OnlineProgram
+{
+ ...
+ DataSection WS = declare.workingStorageSection() ;
+ ...
+ TestMap testMap = TestMap.Copy(<span
class="code-keyword">this</span>) ;
+ MapRedefine testMapRedefine =
declare.level(1).redefinesMap(testMap.vForm);
+ Edit editNamesArray = declare.level(2).editOccurs(4, <span
class="code-quote">"EditNamesArray"</span>);
+ Edit editName = declare.level(5).edit();
+ Edit filler_edit1 = declare.level(2).editSkip(1);
+ Edit editDate = declare.level(2).edit();
+ ...
+ <span class="code-keyword">public</span> void procedureDivision()
+ {
+ ...
+ move(<span class="code-quote">"2007/03/19"</span>,
testMap.hDate); <span class="code-comment">// testMap.hDate's and
editDate's text is now <span class="code-quote">"2007/03/19"</span>
+</span> inc(vDay); <span
class="code-comment">// testMap.hDate's and editDate's text is now <span
class="code-quote">"2007/03/20"</span>
+</span> move(<span class="code-quote">"2007/03/21"</span>,
editDate); <span class="code-comment">// testMap.hDate's and
editDate's text is now <span class="code-quote">"2007/03/21"</span>
+</span> inc(vMonth); <span
class="code-comment">// testMap.hDate's and editDate's text is now <span
class="code-quote">"2007/04/21"</span>
+</span> ...</pre>
+</div></div>
+
+<p><tt>vDay</tt> and <tt>vMonth</tt> are defined in the TestMap source
file (see below).</p>
+
+<p>What can't be done that way is access to hDate's attribute.</p>
+
+
+<h1><a name="3.5Screenhandling-XMLresourcefile"></a>XML resource file</h1>
+
+<p>Each form defines a list of entry fields and static texts. But the form
doesn't give any clue on the geographical placement of these elements.<br/>
+To provide this information, each form is associated with an unique XML
resource file. The extension of this file is .res.</p>
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-xml"><span class="code-tag">&lt;?xml version=<span
class="code-quote">"1.0"</span> encoding=<span
class="code-quote">"ISO-8859-1"</span>?&gt;</span>
+<span class="code-tag">&lt;form allLanguages=<span
class="code-quote">"FR"</span> name=<span
class="code-quote">"rs01a10"</span> title=<span
class="code-quote">"rs01a10"</span>&gt;</span>
+ <span class="code-tag">&lt;pfkeydefine enter=<span
class="code-quote">"true"</span> logout=<span
class="code-quote">"true"</span> /&gt;</span>
+ <span class="code-tag">&lt;formbody&gt;</span>
+ <span class="code-tag">&lt;vbox&gt;</span>
+ <span class="code-tag">&lt;hbox&gt;</span>
+ &lt;edit col=<span class="code-quote">"1"</span> color=<span
class="code-quote">"green"</span> highlighting=<span
class="code-quote">"off"</span> intensity=<span
class="code-quote">"normal"</span> length=<span
class="code-quote">"6"</span> line=<span class="code-quote">"1"</span>
linkedvalue=<span class="code-quote">"nmmasq"</span> name=<span
class="code-quote">"nmmasq"</span>
+ protection=<span class="code-quote">"autoskip"</span>/&gt;
+ <span class="code-tag">&lt;blank length=<span
class="code-quote">"1"</span>/&gt;</span>
+ <span class="code-tag">&lt;title brightness=<span
class="code-quote">"normal"</span> col=<span class="code-quote">"8"</span>
color=<span class="code-quote">"green"</span> highlighting=<span
class="code-quote">"off"</span> length=<span class="code-quote">"30"</span>
line=<span class="code-quote">"1"</span> name=<span
class="code-quote">"pageTitle"</span>&gt;</span>
+ <span class="code-tag">&lt;texts&gt;</span>
+ <span class="code-tag">&lt;text lang=<span
class="code-quote">"FR"</span>&gt;</span>Initialisation<span
class="code-tag">&lt;/text&gt;</span>
+ <span class="code-tag">&lt;/texts&gt;</span>
+ <span class="code-tag">&lt;/title&gt;</span>
+ <span class="code-tag">&lt;blank length=<span
class="code-quote">"1"</span>/&gt;</span>
+ &lt;edit col=<span class="code-quote">"39"</span> color=<span
class="code-quote">"turquoise"</span> highlighting=<span
class="code-quote">"off"</span> intensity=<span
class="code-quote">"normal"</span> length=<span
class="code-quote">"8"</span> line=<span class="code-quote">"1"</span>
linkedvalue=<span class="code-quote">"execdate"</span> name=<span
class="code-quote">"execdate"</span>
+ protection=<span class="code-quote">"autoskip"</span>
replayMutable=<span class="code-quote">"true"</span>/&gt;
+ <span class="code-tag">&lt;blank length=<span
class="code-quote">"1"</span>/&gt;</span>
+ &lt;edit col=<span class="code-quote">"48"</span> color=<span
class="code-quote">"turquoise"</span> highlighting=<span
class="code-quote">"off"</span> intensity=<span
class="code-quote">"normal"</span> length=<span
class="code-quote">"8"</span> line=<span class="code-quote">"1"</span>
linkedvalue=<span class="code-quote">"exechour"</span> name=<span
class="code-quote">"exechour"</span>
+ protection=<span class="code-quote">"autoskip"</span>
replayMutable=<span class="code-quote">"true"</span>/&gt;
+ <span class="code-tag">&lt;/hbox&gt;</span>
+ <span class="code-tag">&lt;hbox&gt;</span>
+ &lt;edit col=<span class="code-quote">"1"</span> color=<span
class="code-quote">"default"</span> highlighting=<span
class="code-quote">"off"</span> intensity=<span
class="code-quote">"dark"</span> length=<span class="code-quote">"6"</span>
line=<span class="code-quote">"2"</span> linkedvalue=<span
class="code-quote">"cdtrans"</span> modified=<span
class="code-quote">"true"</span> name=<span
class="code-quote">"cdtrans"</span>
+ protection=<span class="code-quote">"autoskip"</span>/&gt;
+ <span class="code-tag">&lt;blank length=<span
class="code-quote">"32"</span>/&gt;</span>
+ <span class="code-tag">&lt;label brightness=<span
class="code-quote">"normal"</span> col=<span class="code-quote">"39"</span>
color=<span class="code-quote">"green"</span> highlighting=<span
class="code-quote">"off"</span> length=<span class="code-quote">"5"</span>
line=<span class="code-quote">"2"</span>&gt;</span>
+ <span class="code-tag">&lt;texts&gt;</span>
+ <span class="code-tag">&lt;text lang=<span
class="code-quote">"FR"</span>&gt;</span>0110 <span
class="code-tag">&lt;/text&gt;</span>
+ <span class="code-tag">&lt;/texts&gt;</span>
+ <span class="code-tag">&lt;/label&gt;</span>
+ <span class="code-tag">&lt;/hbox&gt;</span>
+ <span class="code-tag">&lt;/vbox&gt;</span>
+ <span class="code-tag">&lt;/formbody&gt;</span>
+<span class="code-tag">&lt;/form&gt;</span></pre>
+</div></div>
+
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.6 Batch.html Wed Mar 24 05:11:35 2010
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.6 Batch</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.6 Batch
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 19 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <p>Batch program are all derived from base class BatchProgram, or
CalledProgram. </p>
+
+<p>A batch program is used to handle flat files and sorting. They do not
have access to CICS like environment. </p>
+
+<p>To achieve that purpose, the following declarations are available:</p>
+<ul class="alternate" type="square">
+ <li>File definition</li>
+ <li>File verbs handling</li>
+ <li>Sort support</li>
+</ul>
+
+
+<p>As of 03/2007, only sequential data access is supported by nacaRT.</p>
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.6.1 Data files.html Wed Mar 24
05:11:35 2010
@@ -0,0 +1,204 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.6.1 Data files</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.6.1 Data files
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 20 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <h1><a name="3.6.1Datafiles-Files"></a>Files</h1>
+
+<h2><a name="3.6.1Datafiles-Content"></a>Content</h2>
+
+<p>A file is a collection of records. Records are separated by an ascii
line feed char (0x0A in hexadeciaml notation). This char is not part of the
record. As a record may contain a 0x0a char as part of it's data, the 0x0a
char cannot be used as a record separator, but is used for human easy
editing of the file, and for heuristic determination of record length (see
below).</p>
+
+<p>A record of a variable length record file is prefixed by the length of
the record. It's expressed in binary form as 4 bytes ordered as little
endian.<br/>
+The maximum record length is by default 32Ko. This limit can be raised,
but some settings of the configuration nacaRT.cfg configuration file must
be set accordingly.</p>
+
+<h3><a name="3.6.1Datafiles-Variablelengthrecordfile"></a>Variable length
record file</h3>
+
+<p>Example:</p>
+
+<p>A file TEST_VAR contains 3 records. It's encoded in ascii format and
physically stored in d:\Test\Test.txt.</p>
+
+<p>It's textual value is </p>
+<div class="preformatted panel" style="border-width: 1px;"><div
class="preformattedContent panelContent">
+<pre>xxxxabcd
+xxxx12345678
+xxxxABC
+</pre>
+</div></div>
+
+<p>where x is a non-printable character.</p>
+
+<p>It's hexadeciaml dump is:</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div
class="preformattedContent panelContent">
+<pre> 00 01 02 03 04 05 06 01 07 08 0A 0B 0C 0D 0E 0F
+ ------------------------------------------------
+10 !00 00 00 04 61 62 63 64 0A 00 00 00 08 31 32 33
+20 !34 35 36 37 38 0A 00 00 00 03 41 42 43 0A
+</pre>
+</div></div>
+
+<p>The 1st record is <tt>00 00 00 04 61 62 63 64 0A</tt><br/>
+The 2nd record is <tt>00 00 00 08 31 32 33 20 34 35 36 37 38 0A</tt><br/>
+The 3rd one is <tt>00 00 00 03 41 42 43 0A</tt></p>
+
+<p>We see clearly that the 4 leading bytes are the record length,
excluding the 0A end of record marker.</p>
+
+<p>The File descriptor of this file is
TEST_VAR=d:\Test\Test.txt,vb,ascii</p>
+
+<h3><a name="3.6.1Datafiles-Fixedlengthrecordfile"></a>Fixed length record
file</h3>
+
+<p>Example:</p>
+
+<p>A file TEST_FIXED contains 3 records of 6 bytes each. It's expressed in
ascii format and physically stored in d:\Test\TestFixed.txt.</p>
+
+<p>It's textual value is </p>
+<div class="preformatted panel" style="border-width: 1px;"><div
class="preformattedContent panelContent">
+<pre>ABCDEF
+123
+GHIJKL
+</pre>
+</div></div>
+
+<p>Note the 2nd record is filled with spaces on right !</p>
+
+<p>It's hexadeciaml dump is:</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div
class="preformattedContent panelContent">
+<pre> 00 01 02 03 04 05 06 01 07 08 0A 0B 0C 0D 0E 0F
+ ------------------------------------------------
+10 !41 42 43 44 45 46 0A 31 32 33 20 20 20 0A 47 48
+20 !49 4A 4B 4C 0A
+</pre>
+</div></div>
+
+<p>The 1st record is <tt>41 42 43 44 45 46 0A</tt><br/>
+The 2nd record is <tt>31 32 33 20 20 20 0A</tt><br/>
+The 3rd record is <tt>47 48 49 4A 4B 4C 0A</tt></p>
+
+<p>We see clearly that there isn't any leading bytes, but that the
trailing 0A end of record marker is present.</p>
+
+<p>The File descriptor of this file is
TEST_FIXED=d:\Test\TestFixed.txt,6,ascii</p>
+
+<h3><a name="3.6.1Datafiles-Filedescriptor"></a>File descriptor</h3>
+
+<p>the file descriptor is a nacaRT internal object that contains various
definitions for a given file:</p>
+<ul class="alternate" type="square">
+ <li>It's logical name</li>
+ <li>It's phsical file path name</li>
+ <li>It's character encoding</li>
+ <li>It's record length if it's a fixed size record length file</li>
+</ul>
+
+
+<h4><a name="3.6.1Datafiles-Physicalfilename"></a>Physical file name</h4>
+
+<p>In a host environment, files accessed form a Cobol application are
identified by their logical name. The physical path of the file is defined
out of the program source code. In Java environment, a file is handled by
it's physical path. NacaRT abstracts taht and enables file handling by
logical name only. <br/>
+However, the physical path file must be given prior program execution as
either:</p>
+<ul class="alternate" type="square">
+ <li>a command line parameter</li>
+ <li>an environment variable</li>
+</ul>
+
+
+<p>Example:<br/>
+The file "Client" is logical name of the physical file
D:\Files\2007\Clients\ClientFile.txt</p>
+
+<p>It can be mapped either:</p>
+<ul class="alternate" type="square">
+ <li>by calling the program with the command line argument
<tt>-File_Client=D:/Files/2007/Clients/ClientFile.txt</tt></li>
+ <li>or by exporting a system variable named <tt>Client</tt>, having value
<tt>D:/Files/2007/Clients/ClientFile.txt</tt></li>
+</ul>
+
+
+<p>Note that in both cases the backslash chars ('\') used b ywindows as
directory separator are replaced by slash chars ('/'). These definitions
are identical in Linux plateforms.</p>
+
+<p>This enables the program to handle the file "Client", without knowing
exactly where it physically stored.</p>
+
+<h4><a name="3.6.1Datafiles-Dummyfiles"></a>Dummy files</h4>
+
+<p>A dummy file is a file that doesn't physically exists in the file
system, but can be used without errors, but treated as an empty file. <br/>
+Reading form a dummy file is the same as reading into an empty file.<br/>
+Writing into a dummy file does nothing.</p>
+
+<p>The physical name of a dummy file must be either:</p>
+<ul class="alternate" type="square">
+ <li>wrk/nullfile</li>
+ <li>NULLFILE</li>
+ <li>an empty string</li>
+</ul>
+
+
+<h4><a name="3.6.1Datafiles-Encoding"></a>Encoding</h4>
+
+<p>Mainframes use EBCDIC encoding, while Windows/Linux OS use ASCII
encoding. A given Cobol program must be able to handle files in both
encodings. Thus a file encoding must be provided somewhere so that nacaRT
kowns how to deal with the file's data. Indeed, nacaRT uses internally
unicode encoding, so EBCDIC data must be converter in UNICODE before
execution. </p>
+
+<p>The encoding is specified by appending a <tt>,ebcdic</tt> or
<tt>,ascii</tt> to the file physical definition. If nothing is specified,
then ascii is considered the default value.</p>
+
+<h4><a name="3.6.1Datafiles-Recordlength"></a>Record length</h4>
+
+<p>The is 2 kinds of files records:</p>
+<ul class="alternate" type="square">
+ <li>Fixed length records.</li>
+ <li>Variable length records.</li>
+</ul>
+
+
+<p>If a file has a fixed length record definition, then all it's records
have the same length.<br/>
+It is possible to instruct nacaRT of a file record length by appending
another string to the file definition. It can be:</p>
+<ul class="alternate" type="square">
+ <li><tt>,vb</tt>: This indicates that thee file is variabel block: it
contains variable length records.</li>
+ <li><tt>,nnn</tt>: this indicates that de file has fixed length record.
nnn is the size in bytes of the records.</li>
+</ul>
+
+
+<p>If none of these specifications is given, then nacaRT will try to guess
which is the record length type of a file. This is a heuristic method that
read the beginning of the file. If the file is too short, then this
guessing may fail. So it's not a very strong method.</p>
+
+<h4><a name="3.6.1Datafiles-Extendedmode"></a>Extended mode</h4>
+<p>When a file is open in output mode, it sometimes desirable to append
new records, or the erase the file.<br/>
+By defaut, when writing the 1st record after open in output mode, the file
is erased. but, if the extended mode is declared in the file definition,
then records will by appended at the end of file.<br/>
+The extended mode is thus declared by specifying <tt>,ext</tt> in the file
defintion string.</p>
+
+<h4><a name="3.6.1Datafiles-Filedefinitionsyntax"></a>File definition
syntax</h4>
+
+<p>To sum-up, the file definition syntax can be given as an exported
system variable, or as a command line parameter.</p>
+
+<p>Command line aprameter syntax:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre
class="code-java">-File_&lt;logical_file_name&gt;=&lt;physical_file_path_name&gt;[,ebcdic|,ascii][,vb|
nnn],[ext] where nnn is a record length</pre>
+</div></div>
+
+<p>Exported system variable:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">export &lt;logical_file_name&gt;
&lt;physical_file_path_name&gt;[,ebcdic|,ascii][,vb|nnn],[ext] where nnn is
a record length</pre>
+</div></div>
+
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.6.2 File declaration.html Wed Mar 24
05:11:35 2010
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.6.2 File declaration</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.6.2 File declaration
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 19 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <h1><a
name="3.6.2Filedeclaration-Filesdeclarationinprograms"></a>Files
declaration in programs</h1>
+
+<p>Files are declared in the File section, which is located after the
working storage section, and before the linkage section.</p>
+
+<h2><a name="3.6.2Filedeclaration-Declaration"></a>Declaration</h2>
+
+<p>The declaration looks like:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> class
TestBatch <span class="code-keyword">extends</span> BatchProgram
+{
+ DataSection workingstoragesection = declare.workingStorageSection();
+ ...
+ DataSection filesection = declare.fileSection();
+ FileDescriptor fileIn = declare.file(<span
class="code-quote">"FileTestIn"</span>);
+ Var enreg = declare.level(1).<span class="code-keyword">var</span>();
+ Var name = declare.level(5).picX(5).<span
class="code-keyword">var</span>();
+ Var Date = declare.level(5).picX(8).<span
class="code-keyword">var</span>();
+ ...</pre>
+</div></div>
+
+<p>Every file is defined by a FileDescriptor entry.<br/>
+Each FileDescriptor is immediatly followed by a group variable at level 1.
It's children defines a structure of all fields of the record.<br/>
+Note: the 0x0A end of record marker is not represented in a children of
the record</p>
+
+
+<h2><a name="3.6.2Filedeclaration-Fixedrecordlengthdeclaration"></a>Fixed
record length declaration</h2>
+
+<p>Fixed record length files are defined as below.</p>
+
+<p>For example, if the record is:</p>
+<ul class="alternate" type="square">
+ <li>a name of 10 chars</li>
+ <li>a date of 8 chars encoded as an unsigned comp3 number</li>
+ <li>a number of 4 digits encoded in 2 bytes as a comp value<br/>
+The total record length is 10 + ((8/2)+1) + 2 = 17 bytes. It will take 18
bytes on disk, as the trailing end of record marker will ba added.</li>
+</ul>
+
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> class
TestBatch <span class="code-keyword">extends</span> BatchProgram
+{
+ DataSection workingstoragesection = declare.workingStorageSection();
+ ...
+ DataSection filesection = declare.fileSection();
+ FileDescriptor fileIn = declare.file(<span
class="code-quote">"FileTestIn"</span>);
+ Var enreg = declare.level(1).<span class="code-keyword">var</span>();
+ Var name = declare.level(5).picX(10).<span
class="code-keyword">var</span>();
+ Var Date = declare.level(5).pic9(8).comp3().<span
class="code-keyword">var</span>();
+ Var <span class="code-object">Number</span> =
declare.level(5).pic9(4).comp().<span
class="code-keyword">var</span>();</pre>
+</div></div>
+
+<h2><a
name="3.6.2Filedeclaration-Variablelengthrecorddeclaration"></a>Variable
length record declaration</h2>
+
+<p>A variable length record is divided in 2 parts:</p>
+<ul class="alternate" type="square">
+ <li>constant length chunk</li>
+ <li>variable length chunk</li>
+</ul>
+
+
+<p>For example, if the record is:</p>
+<ul class="alternate" type="square">
+ <li>a name of 10 chars</li>
+ <li>a date of 8 chars encoded as an unsigned comp3 number</li>
+ <li>a number of 4 digits encoded in 2 bytes as a comp value</li>
+ <li>a text length encoded in 2 bytes as a comp value</li>
+ <li>a variable length text, that can occupied a between 0 to 1000
bytes.<br/>
+The constant record size is 10 + ((8/2)+1) + 2 + 2 = 19 bytes.<br/>
+The variable record length is between 0 to 1000 bytes. <br/>
+Thus a record length ranges from 19 to 1019 bytes.</li>
+</ul>
+
+
+<p>It is important to identify 2 things:</p>
+<ul class="alternate" type="square">
+ <li>The variable part of this record. This is done by specifying
<tt>.variableLength()</tt> in the Var declaration call chain.</li>
+ <li>The length of the variable part of the record. This is given by
declaring a fileDescriptorDepending.</li>
+</ul>
+
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> class
TestBatch <span class="code-keyword">extends</span> BatchProgram
+{
+ DataSection workingstoragesection = declare.workingStorageSection();
+ ...
+ DataSection filesection = declare.fileSection();
+ FileDescriptor fileIn = declare.file(<span
class="code-quote">"FileTestIn"</span>);
+ Var enreg = declare.level(1).<span class="code-keyword">var</span>();
+ Var Name = declare.level(5).picX(10).<span
class="code-keyword">var</span>();
+ Var Date = declare.level(5).pic9(8).comp3().<span
class="code-keyword">var</span>();
+ Var <span class="code-object">Number</span> =
declare.level(5).pic9(4).comp().<span class="code-keyword">var</span>();
+ Var Length = declare.level(5).pic9(4).comp().<span
class="code-keyword">var</span>();
+ Var Text = declare.level(5).variableLength().picX(1000).<span
class="code-keyword">var</span>() ;
+ ...
+ FileDescriptorDepending fileIn$dependency =
declare.fileDescriptorDepending(fileIn, Length);
+ ...
+ <span class="code-keyword">public</span> void procedureDivision()
+ {
+ ...</pre>
+</div></div>
+
+<p>This declaration states that:</p>
+<ul class="alternate" type="square">
+ <li>There are 4 fields in the record.</li>
+ <li>Name, Date, Number and Length are in the fixed variable chunk of the
record</li>
+ <li>Text is the variable chunk part of the record</li>
+ <li>The variable chunk part length is given by the value of the Length
variable.</li>
+</ul>
+
+
+<p>Note 1: In that sample, the variable length value is provided by a
variable that is part of the fixed part chunk of the record. It could also
be a working or linkage section variable.<br/>
+Note 2: The length stored in the record header is the total record length,
excluding the header itself and the trailing 0x0A. But it includes the
length of the fixed chunk. In that example, the Length contained "7" and
Test's value was "My Text", then the record length stored in the header
would be 19 + 7 = 26 bytes.</p>
+
+
+
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.6.3 File Input - Output.html Wed Mar
24 05:11:35 2010
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.6.3 File Input - Output</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.6.3 File Input - Output
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 20 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <p>Batch derivated programs can manipulate flat files.</p>
+
+<p>After declaration within the FileSection, the program can manipulate
records. </p>
+
+<p>The following i/o operations can be done on a file:</p>
+<ul class="alternate" type="square">
+ <li>Open</li>
+ <li>Close</li>
+ <li>Read</li>
+ <li>Write</li>
+ <li>Rewrite</li>
+</ul>
+
+
+<p>What's more a file file can be operated in different modes:</p>
+<ul class="alternate" type="square">
+ <li>Input</li>
+ <li>Output with append</li>
+ <li>Output without append</li>
+ <li>InputOutput</li>
+</ul>
+
+
+<p>These operations are detailed here.</p>
+
+<h2><a name="3.6.3FileInput-Output-Exampleused"></a>Example used</h2>
+
+<p>The following file definition is used for next verbs explanations:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> class
TestBatch <span class="code-keyword">extends</span> BatchProgram
+{
+ DataSection workingstoragesection = declare.workingStorageSection();
+
+ Var enreg2 = declare.level(1).<span class="code-keyword">var</span>();
+ Var Name2 = declare.level(5).picX(10).<span
class="code-keyword">var</span>();
+ Var Date2 = declare.level(5).pic9(8).comp3().<span
class="code-keyword">var</span>();
+ Var Number2 = declare.level(5).pic9(4).comp().<span
class="code-keyword">var</span>();
+ Var Length2 = declare.level(5).pic9(4).comp().<span
class="code-keyword">var</span>();
+ Var Text2 = declare.level(5).variableLength().picX(1000).<span
class="code-keyword">var</span>() ;
+ ...
+ DataSection filesection = declare.fileSection();
+ FileDescriptor fileIn = declare.file(<span
class="code-quote">"FileTestIn"</span>);
+ Var enreg = declare.level(1).<span class="code-keyword">var</span>();
+ Var Name = declare.level(5).picX(10).<span
class="code-keyword">var</span>();
+ Var Date = declare.level(5).pic9(8).comp3().<span
class="code-keyword">var</span>();
+ Var <span class="code-object">Number</span> =
declare.level(5).pic9(4).comp().<span class="code-keyword">var</span>();
+ Var Length = declare.level(5).pic9(4).comp().<span
class="code-keyword">var</span>();
+ Var Text = declare.level(5).variableLength().picX(1000).<span
class="code-keyword">var</span>() ;
+ ...
+ FileDescriptorDepending fileIn$dependency =
declare.fileDescriptorDepending(fileIn, Length);
+ ...
+ <span class="code-keyword">public</span> void procedureDivision()
+ {
+ ...</pre>
+</div></div>
+
+<h2><a name="3.6.3FileInput-Output-Fileopen"></a>File open</h2>
+
+<p>The file open call identifies an open mode, and the writability of the
file.</p>
+
+<p>Int he following code, the FileDescriptor_variable_name is the variable
declared in the FileSection by </p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">FileDescriptor FileDescriptor_variable_name =
declare.file(&lt;file descriptor logcial name string&gt;);</pre>
+</div></div>
+
+<p>A program should not open a given file twice. This generates a
non-fatal log error.</p>
+
+<h3><a name="3.6.3FileInput-Output-Openreadonlyfile"></a>Open read-only
file</h3>
+<p>To open a file in input only:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre
class="code-java">&lt;FileDescriptor_variable_name&gt;.openInput();</pre>
+</div></div>
+<p>The physical file must exists. If it's not the case, then an excpetion
is thrown, the process exits, and a status code 8 is returned by the
JVM.<br/>
+The physical file name may be dummy. </p>
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">fileIn.openInput();</pre>
+</div></div>
+
+<h3><a name="3.6.3FileInput-Output-Openwriteonlyfile"></a>Open write only
file</h3>
+<p>To open a file in output only:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre
class="code-java">&lt;FileDescriptor_variable_name&gt;.openOutput();</pre>
+</div></div>
+
+<p>If the file doesn't exists, then it's created.<br/>
+If the file exists and is declared in extended mode, then write operations
will append records.<br/>
+If the file exists and is not in extended mode, then the 1st write
operation after open will erase the file.<br/>
+When the file is opened, it's locked: This forbid another thread or
process to write in this file.</p>
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">fileIn.openOutput();</pre>
+</div></div>
+
+<h3><a
name="3.6.3FileInput-Output-Openwriteonlyfileforcedinextendedmode"></a>Open
write only file forced in extended mode</h3>
+
+<p>To open a file in output only, file record appending only:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre
class="code-java">&lt;FileDescriptor_variable_name&gt;.openExtend();</pre>
+</div></div>
+
+<p>If the file doesn't exists, then it's created.<br/>
+If the file exists, then write operations will append records.<br/>
+When a file is open in that mode, the file definition's flag <tt>,ext</tt>
is ignored.</p>
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">fileIn.openExtend();</pre>
+</div></div>
+
+<h3><a name="3.6.3FileInput-Output-Toopenafileininputandoutput"></a>To
open a file in input and output</h3>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre
class="code-java">&lt;FileDescriptor_variable_name&gt;.openInputOutput();</pre>
+</div></div>
+
+<p>If the file doesn't exists, then it's created.<br/>
+If the file exists, then it's file position is set at the beginnig of
file, and records may be read or re-write as required by the program.</p>
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">fileIn.openInputOutput();</pre>
+</div></div>
+
+<h2><a name="3.6.3FileInput-Output-Fileclose"></a>File close</h2>
+
+<p>When a program doesn't need a file resource anymore, it must close
it.<br/>
+The syntax is</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">&lt;FileDescriptor_variable_name&gt;.close();</pre>
+</div></div>
+
+<p>If a program forgets to close a file, then an auto-close mecanism will
be used to close the still open files. A log error will be issued. The
program execution won't be affected.</p>
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">fileIn.close();</pre>
+</div></div>
+
+<h2><a name="3.6.3FileInput-Output-Fileread"></a>File read</h2>
+
+<p>A file is read one record at a time.</p>
+
+<p>There is 2 methods for reading a record form a file:</p>
+<ul class="alternate" type="square">
+ <li>read(&lt;FileDescriptor_variable_name&gt;); : Reads the current
record data.
+ <ul class="alternate" type="square">
+ <li>the data are set into the variable group at level 01 that immediatly
follows the <tt>FileDescriptor_variable_name</tt>.</li>
+ </ul>
+ </li>
+ <li>readInto(&lt;FileDescriptor_variable_name&gt;,
&lt;group_variable_name&gt;); Reads the current record data. The data is
set in 2 variables groups:
+ <ul class="alternate" type="square">
+ <li>the variable group at level 01 that immediatly follows the
<tt>FileDescriptor_variable_name</tt></li>
+ <li>the variable named <tt>group_variable_name</tt></li>
+ </ul>
+ </li>
+</ul>
+
+
+<p>Data are converted in ascii if the file is encoded in ebcdic. In fact,
only alphanumeric fields are converted. These fields are identified by
using the type of the children of the variable group at level 01. So, only
picX, pic9 comp0 or picS9 comp0 typed children are converted from ebcdic to
ascii. <br/>
+pic9 comp3 (packed decimal) and pic9 comp (binary encoded) are not
converted, as nacaRT internal representation is the same as maineframe
internal representation.</p>
+
+<p>If a file is variable length, the variable groups are filled only with
the number of bytes indicated by the record length header. The variable
indentified by the <tt>declare.fileDescriptorDepending</tt> statement.</p>
+
+<p>It is possibleto test for end of file condition by appending and
texting the return value of a <tt>.atEnd()</tt> method call after a
<tt>read</tt> or <tt>readInto</tt> call.</p>
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">...
+ fileIn.openInput();
+ ...
+ <span class="code-keyword">if</span>(!read(fileIn).atEnd()) <span
class="code-comment">// variable group enreg is filled. We check <span
class="code-keyword">for</span> end of file condition
+</span> {
+ ... <span class="code-comment">// We are not at end of file.
+</span> <span class="code-keyword">while</span>(!readInto(fileIn,
enreg2).atEnd()) <span class="code-comment">// read next record; variable
group enreg is filled; variable group enreg2 is also filled
+</span> {
+ .... <span class="code-comment">// handle records read
+</span> }
+ }
+ <span class="code-comment">// we have read all records form the input
file
+</span> fileIn.close();
+ ...</pre>
+</div></div>
+
+
+<h2><a name="3.6.3FileInput-Output-Filewrite"></a>File write</h2>
+
+<p>There is 2 methods for writing a record into a file:</p>
+<ul class="alternate" type="square">
+ <li>write(&lt;FileDescriptor_variable_name&gt;); : Write the record given
by level 01 following
+ <ul class="alternate" type="square">
+ <li>the data are set into the variable group at level 01 that immediatly
follows the <tt>FileDescriptor_variable_name</tt>.</li>
+ </ul>
+ </li>
+ <li>readInto(&lt;FileDescriptor_variable_name&gt;,
&lt;group_variable_name&gt;); Reads the current record data. The data is
set in 2 variables groups:
+ <ul class="alternate" type="square">
+ <li>the variable group at level 01 that immediatly follows the
<tt>FileDescriptor_variable_name</tt></li>
+ <li>the variable named <tt>group_variable_name</tt></li>
+ </ul>
+ </li>
+</ul>
+
+
+<p>If the file encoding is declared in ecbdic, then alphanumeric fields
are converted from ascii to ebcdic and then written in ebcdic. The fields
are identified by the types of the chidren of the varioable group. Only
fields typed picX, pic9 coomp0 or picS9 comp0 are convertible form ascii to
ebcdic.</p>
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">...
+ fileIn.openOutput();
+ move(29, Length);
+ move(..., enreg);
+ write(fileIn); <span class="code-comment">// write a record of 29
bytes <span class="code-object">long</span>; the data are provided by enreg
children; the fixed part is 19 bytes <span class="code-object">long</span>,
and the variable part is only 10 bytes <span class="code-object">long</span>
+</span> inc(Length);
+ move(..., enreg2);
+ writeFrom(fileIn, enreg2); <span class="code-comment">// write a
record of 30 bytes <span class="code-object">long</span>; ; the data are
provided by enreg2 children; the fixed part is 19 bytes <span
class="code-object">long</span>, and the variable part is only 11 bytes
<span class="code-object">long</span>
+</span> fileIn.close();
+ ...</pre>
+</div></div>
+
+<h2><a name="3.6.3FileInput-Output-Filerewrite"></a>File rewrite</h2>
+
+<p>This method enable to update a record of a given file. The file must
have been open in input output mode. The record must have previously been
read.</p>
+
+<p>Example:</p>
+
+<p>All records that have 0 in field <tt>Number</tt> are updated:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">...
+ fileIn.openInputOuput();
+ ...
+ <span class="code-keyword">while</span>(!read(fileIn).atEnd()) <span
class="code-comment">// variable group enreg is filled. We check <span
class="code-keyword">for</span> end of file condition
+</span> {
+ <span class="code-keyword">if</span>(isEqual(<span
class="code-object">Number</span>, 0)) <span class="code-comment">//
record have a 0 in field <span class="code-object">Number</span> must be
updated
+</span> {
+ ... <span class="code-comment">//
+</span> move(1, <span class="code-object">Number</span>);
+ rewrite(fileIn);
+ }
+ }
+ fileIn.close();
+ ...</pre>
+</div></div>
+
+
+
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/3.6.4 File internal sorting.html Wed
Mar 24 05:11:35 2010
@@ -0,0 +1,240 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : 3.6.4 File internal sorting</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : 3.6.4 File internal sorting
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 20 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <p>nacaRT supports internal and external sorting.<br/>
+Internal sorting is the possibility for a program to sort a given file.
The file may be larger than available memory, as the sort is not done
in-memory.</p>
+
+
+<h1><a name="3.6.4Fileinternalsorting-Internalsorting"></a>Internal
sorting</h1>
+
+<p>Internal sorting uses a sort descriptor for describing the record
structure to sort. </p>
+
+<p>A sort descriptor is desclared within the file section.</p>
+
+<p>It syntax is:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">SortDescriptor &lt;sort_descriptor_name&gt; =
declare.sort();</pre>
+</div></div>
+
+<p>It is followed by a variable at level 01 with it's children that
defines the fields that builds up the record to sort.</p>
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">SortDescriptor tr03prod = declare.sort();
+ Var ws03prod = declare.level(1).<span
class="code-keyword">var</span>();
+ Var utitrt = declare.level(5).picX(1).<span
class="code-keyword">var</span>();
+ Var utiref = declare.level(5).picX(3).<span
class="code-keyword">var</span>();
+ Var utiproj = declare.level(5).picX(2).<span
class="code-keyword">var</span>();
+ Var utiste = declare.level(5).picX(3).<span
class="code-keyword">var</span>();
+ Var utisel = declare.level(5).picX(1).<span
class="code-keyword">var</span>();
+ Var criteres = declare.level(5).<span
class="code-keyword">var</span>();
+ Var dicapp = declare.level(7).occurs(2).picX(2).<span
class="code-keyword">var</span>();
+ Var dicmap = declare.level(7).occurs(10).picX(6).<span
class="code-keyword">var</span>();
+ Var helerrn = declare.level(7).occurs(2).picX(4).<span
class="code-keyword">var</span>();
+ Var dicdonz = declare.level(7).occurs(10).picX(7).<span
class="code-keyword">var</span>();
+ Var heldon1 = declare.level(7).occurs(9).picX(10).<span
class="code-keyword">var</span>();
+ dicfamnz = declare.level(7).occurs(2).picX(3).<span
class="code-keyword">var</span>();</pre>
+</div></div>
+
+
+<p>The sort_descriptor_name is used</p>
+
+
+
+<h2><a name="3.6.4Fileinternalsorting-SortDescriptor"></a>Sort
Descriptor</h2>
+
+<p>This type of internal sort uses a static description of the sort to
do.</p>
+
+<h2><a name="3.6.4Fileinternalsorting-Callinginternalsort"></a>Calling
internal sort</h2>
+
+<p>Example:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">class ProgramInternalSort <span
class="code-keyword">extends</span> BatchProgram
+{
+ ...
+ DataSection filesection = declare.fileSection() ;
+ Var rrs03prod = declare.level(1).picX(248).<span
class="code-keyword">var</span>() ;
+
+ FileDescriptor rs03prod = declare.file(<span
class="code-quote">"RS03PROD"</span>) ;
+ SortDescriptor tr03prod = declare.sort();
+ Var ws03prod = declare.level(1).<span
class="code-keyword">var</span>();
+ Var utitrt = declare.level(5).picX(1).<span
class="code-keyword">var</span>();
+ Var utiref = declare.level(5).picX(3).<span
class="code-keyword">var</span>();
+ Var utiproj = declare.level(5).picX(2).<span
class="code-keyword">var</span>();
+ Var utiste = declare.level(5).picX(3).<span
class="code-keyword">var</span>();
+ Var utisel = declare.level(5).picX(1).<span
class="code-keyword">var</span>();
+ Var criteres = declare.level(5).<span
class="code-keyword">var</span>();
+ Var dicapp = declare.level(7).occurs(2).picX(2).<span
class="code-keyword">var</span>();
+ Var dicmap = declare.level(7).occurs(10).picX(6).<span
class="code-keyword">var</span>();
+ Var helerrn = declare.level(7).occurs(2).picX(4).<span
class="code-keyword">var</span>();
+ Var dicdonz = declare.level(7).occurs(10).picX(7).<span
class="code-keyword">var</span>();
+ Var heldon1 = declare.level(7).occurs(9).picX(10).<span
class="code-keyword">var</span>();
+ dicfamnz = declare.level(7).occurs(2).picX(3).<span
class="code-keyword">var</span>();
+ ...
+
+ <span class="code-keyword">public</span> void procedureDivision()
+ {
+ rs03prod.openInput(); <span class="code-comment">// Open input
data file
+</span>
+ sort(tr03prod)
+ .ascKey(utiref)
+ .ascKey(utiproj)
+ .ascKey(utiste)
+ .ascKey(utisel)
+ .ascKey(criteres)
+ .usingInput(in)
+ .usingOutput(out)
+ .exec();
+ rs03prod.close();
+ }
+
+ Section in = <span class="code-keyword">new</span> Section(<span
class="code-keyword">this</span>){<span class="code-keyword">public</span>
void run(){in();}};void in()
+ {
+ <span class="code-keyword">while</span>(!read(rs03prod).atEnd())
+ {
+ release(ws03prod);
+ ...
+ }
+ }
+
+ Paragraph out = <span class="code-keyword">new</span> Paragraph(<span
class="code-keyword">this</span>){<span class="code-keyword">public</span>
void run(){out();}};void out()
+ {
+ ...
+ <span
class="code-keyword">while</span>(!returnSort(tr03prod).atEnd())
+ {
+ ...
+ }
+ }</pre>
+</div></div>
+
+<h2><a name="3.6.4Fileinternalsorting-Syntax%3A"></a>Syntax:</h2>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">sort(&lt;sort_descriptor&gt;)
+ [.ascKey(&lt;variable&gt;)]*
+ [.descKey(&lt;variable&gt;)]*
+
+ [.using(&lt;input_file_descriptor&gt;)]
+ [.usingInput(&lt;paragraph_name&gt;)]
+ [.usingInput(&lt;section_name&gt;)]
+ [.usingInput(&lt;first_paragraph_name&gt;, &lt;last_paragraph_name&gt;)
+
+ [.giving(&lt;output_file_descriptor&gt;)]
+ [.usingOutput(&lt;paragraph_name&gt;)]
+ [.usingOutput(&lt;section_name&gt;)]
+ [.usingOutput(&lt;paragraph_name&gt;|&lt;section_name&gt;)]
+
+ .exec();</pre>
+</div></div>
+
+<p>The <br/>
+The sort() method has multiple options. It must always be terminated by
calling <tt>.exec()</tt>, as the number of methods calls in the call chain
cannot be determined automatically.</p>
+
+<h3><a name="3.6.4Fileinternalsorting-Keyspecfications%3A"></a>Key
specfications:</h3>
+
+<ul class="alternate" type="square">
+ <li>.ascKey(&lt;variable&gt;): Identify a key segment. This key segment
is used to sort on ascending order.</li>
+ <li>.descKey(&lt;variable&gt;): Identify a key segment. This key segment
is used to sort on descending order.<br/>
+The key specification is a chained list of .ascKey(&lt;variable&gt;)
or .descKey(&lt;variable&gt;) calls. They contain in parameter the
variable name. <br/>
+For example, it is possible to call:
<tt>.ascKey(varKey1).ascKey(varKey2).descKey(varKey3)</tt></li>
+</ul>
+
+
+<p>The type for comparison is brought by the variable underlying type.</p>
+
+<h3><a name="3.6.4Fileinternalsorting-Recordinput"></a>Record input</h3>
+
+<p>There is 2 main possibilities to provide records to sort. Either
specify a source file, or identify a paragraph or section that provides the
records to sort by calling the <tt>relase()</tt> method:</p>
+<ul class="alternate" type="square">
+ <li><tt>.using(&lt;input_file_descriptor&gt;)</tt>: Data are given the
the records of the file in parameter.</li>
+</ul>
+
+
+<p>Or use one of these 3 methods:</p>
+<ul class="alternate" type="square">
+ <li><tt>.usingInput(&lt;paragraph_name&gt;)</tt>: The paragraph in
parameter must call <tt>release(&lt;variable&gt;)</tt> to provide a record
to sort. The paragraph is called by the internal sort code of nacaRT.</li>
+ <li><tt>.usingInput(&lt;section_name&gt;)</tt>: All paragraphs of the
provided section are called. They must themsleves call
<tt>release(&lt;variable&gt;)</tt> to provide a record to sort.</li>
+ <li><tt>.usingInput(&lt;first_paragraph_name&gt;,
&lt;last_paragraph_name&gt;)</tt>: All paragraph between
first_paragraph_name and last_paragraph_name are executed. The
<tt>release()</tt> method must be called also.</li>
+</ul>
+
+
+<h4><a name="3.6.4Fileinternalsorting-release%28%29method"></a>release()
method</h4>
+
+<p>This method is used to send a record to sort. The parameter must be a
group. It's typically the group variable that follows the sort
descriptor.</p>
+
+<p>Syntax:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">release(&lt;group_variable&gt;)</pre>
+</div></div>
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">release(ws03prod);</pre>
+</div></div>
+
+
+<h3><a name="3.6.4Fileinternalsorting-Sortedrecordoutput"></a>Sorted
record output</h3>
+
+<p>There is also 2 main possibilities to get sorted records. Either
specify a destination file, or identify a paragraph or section that fetch
the next sorted record by calling the <tt>return()</tt> method. It then can
handle this record as required by application:</p>
+<ul class="alternate" type="square">
+ <li><tt>.giving(&lt;output_file_descriptor&gt;)</tt>: The file specified
is filled with sorted records</li>
+</ul>
+
+
+<p>Or use one of these 3 methods:</p>
+<ul class="alternate" type="square">
+ <li>.usingOutput(&lt;paragraph_name&gt;): The paragraph in parameter must
call <tt>return&lt;variable&gt;)</tt> to provide a record to sort. The
paragraph is called by the internal sort code of nacaRT.</li>
+ <li>.usingOutput(&lt;section_name&gt;)</li>
+ <li>.usingOutput(&lt;paragraph_name&gt;|&lt;section_name&gt;)</li>
+</ul>
+
+
+<h4><a
name="3.6.4Fileinternalsorting-returnSort%28%29method"></a>returnSort()
method</h4>
+
+<p>This method is used to fetch a sorted record. The first call to
<tt>return</tt> is handled when the whole data set has been sorted. It is
not allowed to call <tt>release</tt> after a <tt>returnSort{)</tt>.<br/>
+It is possible to known when all sorted records have been retrieved by
appending <tt>.atEnd()</tt> after the <tt>returnSort{)</tt> call, and
testing the returned boolean value:</p>
+
+<p>Syntax:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre
class="code-java">returnSort{&lt;sort_descriptor_variable&gt;)[.atend()]</pre>
+</div></div>
+
+<p>Example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java"><span
class="code-keyword">while</span>(!returnSort{xxx).atEnd()) <span
class="code-comment">// Fetch all sorted records form sort descriptor xxx
+</span>{
+ ...
+}</pre>
+</div></div>
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
--- /dev/null
+++ /trunk/NacaRT/bin/doc/Reference/Accounting.html Wed Mar 24 05:11:35 2010
@@ -0,0 +1,116 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
+ <title>Publicitas Naca : Accounting</title>
+ <link rel="stylesheet" href="styles/site.css" type="text/css" />
+ <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+
+ <body>
+ <table class="pagecontent" border="0" cellpadding="0" cellspacing="0"
width="100%" bgcolor="#ffffff">
+ <tr>
+ <td valign="top" class="pagebody">
+ <div class="pageheader">
+ <span class="pagetitle">
+ Publicitas Naca : Accounting
+ </span>
+ </div>
+ <div><a href="index.html">Return to menu</a></div>
+ <div class="pagesubheading">
+ This page last changed on 30 Mar 2007 by <font
color="#0050B2">u930di</font>.
+ </div>
+
+ <p>nacaRT holds accounting informations for statics and billing
purpose.<br/>
+They are defined here in tag &lt;Accounting&gt; stored within tag
&lt;conf&gt;.<br/>
+The accounting system holds it's own DB connection that is not shared with
the connection use dby application programs.<br/>
+Thus, many parameters defines this DB connection.</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2FMachineId%7D%7D"></a><tt>conf/Accounting/MachineId</tt></h4>
+<p>String value. <br/>
+Physical machine name.</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2FTomcatId%7D%7D"></a><tt>conf/Accounting/TomcatId</tt></h4>
+<p>String value. <br/>
+Name of the tomcat instance.</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2FTableName%7D%7D"></a><tt>conf/Accounting/TableName</tt></h4>
+<p>String value. <br/>
+Name of the db table that stores accounting infos.</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2FMaxLevelDepth%7D%7D"></a><tt>conf/Accounting/MaxLevelDepth</tt></h4>
+<p>Integer value.<br/>
+Billing can be set at different levels.<br/>
+Set 0 for storing an account only when starting a new transaction.<br/>
+Set 1 for storing an account when starting a new transaction, or starting
a top level program.<br/>
+Set 2 for storing an account when starting a new transaction, or starting
a top level program, a sub program.<br/>
+Set typically the parameter to "0".</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2Fdburl%7D%7D"></a><tt>conf/Accounting/dburl</tt></h4>
+<p>String value.<br/>
+Gives the jdbc url identifying the database holding the accounting
table.</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2Fdbuser%7D%7D"></a><tt>conf/Accounting/dbuser</tt></h4>
+<p>String value.<br/>
+Database user able to insert record in the accounting table.</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2Fdbpassword%7D%7D"></a><tt>conf/Accounting/dbpassword</tt></h4>
+<p>String value.<br/>
+Database user password able to insert record in the accounting table.</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2FdbConnectionUrlOptionalParams%7D%7D"></a><tt>conf/Accounting/dbConnectionUrlOptionalParams</tt></h4>
+<p>Optional parameter string appended to dburl. It is must be set
to "clientProgramName=$FoundPoolName;"</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2Fdbenvironment%7D%7D"></a><tt>conf/Accounting/dbenvironment</tt></h4>
+<p>Database environment. This is the accounting table prefix.</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2FdriverClass%7D%7D"></a><tt>conf/Accounting/driverClass</tt></h4>
+<p>JDBC driver class name used to connect to the db. Set it
to "com.ibm.db2.jcc.DB2Driver" for DB2 or UDB support.</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2FCloseCursorOnCommit%7D%7D"></a><tt>conf/Accounting/CloseCursorOnCommit</tt></h4>
+<p>Boolean value.<br/>
+DB Connection option that must be set to "true".</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2FAutoCommit%7D%7D"></a><tt>conf/Accounting/AutoCommit</tt></h4>
+<p>Boolean value.<br/>
+DB Connection option that must be set to "true".</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2FvalidationQuery%7D%7D"></a><tt>conf/Accounting/validationQuery</tt></h4>
+<p>SQL clause that must always succeed, used to check the connection
validity. Used to validate the DB connection after opening it.</p>
+
+<h3><a name="Accounting-Connectionpooling"></a>Connection pooling</h3>
+
+<p>All nacaRT DB connections are pooled internally. This includes the
accounting connections.<br/>
+The pooling supports multiple pools. In the case of accounting, there is
only one pool.</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2FPools%2FPool%2FName%7D%7D"></a><tt>conf/Accounting/Pools/Pool/Name</tt></h4>
+<p>Gives the name of the db connection pool used for accounting.<br/>
+Must be set to "Accounting".</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2FPools%2FPool%2FProgramId%7D%7D"></a><tt>conf/Accounting/Pools/Pool/ProgramId</tt></h4>
+<p>Gives the name of the program that can use this connection pool.<br/>
+Must be set to "Accounting".</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2FPools%2FPool%2FMaxConnection%7D%7D"></a><tt>conf/Accounting/Pools/Pool/MaxConnection</tt></h4>
+<p>Integer value. Maximum number of connections that this pool can hold.
When an accounting record must be inserted, a connection is obtained from
the pool, and is SQL statement is issued. Then, the connection returns to
the pool. If at a certain moment all connection are used, then the next
program requesting an accounting insertion must wait until one of the db
connectio nis released.</p>
+
+<h4><a
name="Accounting-%7Bconf%2FAccounting%2FPools%2FPool%2FTimeBeforeRemoveC..."></a><tt>conf/Accounting/Pools/Pool/TimeBeforeRemoveConnection_ms</tt></h4>
+<p>Time in milliseconds during which a connection can stay open without
being used. When the connection is used, it's last usage time is resetted.
When the last usage time is higher than this quantiy of milliseconds, then
the connection and it's prepared statements are closed and removed. This is
done by the GC thread.<br/>
+This value must not be longer than the corresponding database parameter.
In fact, the db engine can pro-activelly close an obsolete connection, and
nacaRT won't be informed of this event. It's best to close the connection
before the db engine.</p>
+
+<h4><a
name="Accounting-%7Bconf%2FAccounting%2FPools%2FPool%2FMaxStatementLiveT..."></a><tt>conf/Accounting/Pools/Pool/MaxStatementLiveTime_ms</tt></h4>
+<p>Time in milliseconds during which a prepared statement can stay open
without being used. If a statement is unused for too long, the DB engine
may close it aggressivelly, and nacaRT has no way to be informed of that
fact. Thus, it's best to close an unsued statement before the db engine own
timout value. This cleanup is done by the GC Thread and when a connection
is returned to it's pool.</p>
+
+<h4><a
name="Accounting-%7B%7Bconf%2FAccounting%2FPools%2FPool%2FUseExplain%7D%7D"></a><tt>conf/Accounting/Pools/Pool/UseExplain</tt></h4>
+<p>Boolean value. Set to false.</p>
+
+
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td><div><a href="index.html">Return to menu</a></div></td>
+ </tr>
+ </table>
+ </body>
+</html>
=======================================
***Additional files exist in this changeset.***
Reply all
Reply to author
Forward
0 new messages