<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>HIDEN.org &#187; AwareIM</title>
	<atom:link href="http://www.hiden.org/category/awareim/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hiden.org</link>
	<description>EDV mit System</description>
	<lastBuildDate>Fri, 19 Aug 2011 16:37:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Setting up AwareIM with SSL</title>
		<link>http://www.hiden.org/awareim/setting-up-awareim-with-ssl/</link>
		<comments>http://www.hiden.org/awareim/setting-up-awareim-with-ssl/#comments</comments>
		<pubDate>Mon, 04 Jun 2007 17:27:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AwareIM]]></category>

		<guid isPermaLink="false">http://hiserver/hiden.org/?p=42</guid>
		<description><![CDATA[A description on how to setup SSL with AwareIM comes from GregK, Kaplan Design. Although this describes the steps required on Windows it should basically work on Linux and Mac too. First you need to create a local keystore file, it contains your private key and you add to it your registered certificate. Fortunately AwareIM [...]]]></description>
			<content:encoded><![CDATA[<p>A description on how to setup SSL with AwareIM comes from GregK, Kaplan Design.</p>
<p>Although this describes the steps required on Windows it should basically work on Linux and Mac too.<span id="more-42"></span></p>
<p>First you need to create a local keystore file, it contains your private key and you add to it your registered certificate. Fortunately AwareIM comes with Java environment.</p>
<address> <span style="color: #008000;"><br />
C:\AwareIM\JDK\bin&gt;keytool -genkey -alias tomcat -keyalg RSA</span></address>
<address> </address>
<p>changit is a standard password expected by Tomcat and unless you want to tell Tomcat explicitly that the password is different, I would stick with this one. It creates file . keystore in your home directory, in my case it was C:\Documents and Settings\Administrator.</p>
<p>Next you need to adjust Tomcat settings. Open file server.xml in AwareIM\Tomcat\conf directory and remove comment tags around the element on SSL connector</p>
<address> <span style="color: #008000;">&lt;Connector port=&#8221;8443&#8243;<br />
maxThreads=&#8221;150&#8243; minSpareThreads=&#8221;25&#8243; maxSpareThreads=&#8221;75&#8243;<br />
enableLookups=&#8221;false&#8221; disableUploadTimeout=&#8221;true&#8221;<br />
acceptCount=&#8221;100&#8243; debug=&#8221;0&#8243; scheme=&#8221;https&#8221; secure=&#8221;true&#8221;<br />
clientAuth=&#8221;false&#8221; sslProtocol=&#8221;TLS&#8221; /&gt;</span></address>
<address> </address>
<p>Needless to mention that AwareIM should not be running. That is all you need to use secure connection on <a title="https://www.yourserver.com:8443/AwareIM/" href="https://www.yourserver.com:8443/AwareIM/">https://www.yourserver.com:8443/AwareIM/</a>. You do not have to get a certificate signed by a recognised CA if your site is not for external customers who may be scared away by the browser&#8217;s security message it displays if a certificate is not signed.</p>
<p>If you do need a signed certificate you have to create a certificate request. Use you private key in the .keystore file to create a request and run this line:</p>
<address> <span style="color: #008000;"><br />
C:\AwareIM\JDK\bin&gt;keytool -certreq -alias tomcat -file certreq.csr</span></address>
<address> </address>
<p>You have to enter certain information like names and contacts in your organisation. For most CA&#8217;s you need to enter your site URL as the name. Check your CA instructions for details.</p>
<p>Some CA&#8217;s send only one certificate which makes the process slightly easier while many send you the web certificate and require you to download a root or chain certificate. You need to load both certificates to the same .keystore file that you used to create the certificate request. Be aware that some CA&#8217;s send certificates as text and you need to convert them to binaries with openSSL; check openssl.org and find a link to an installation package.</p>
<p>You have to load a root (chain) certificate to the keystore first:</p>
<address> <span style="color: #008000;"><br />
C:\Documents and Settings\Administrator&gt;C:\AwareIM\JDK\bin\keytool -import -alias yourCA -keystore .keystore -file path-to-your-certificate\certificate</span></address>
<address> </address>
<p>Then do the web certificate with</p>
<address> <span style="color: #008000;"><br />
C:\Documents and Settings\Administrator&gt; C:\AwareIM\JDK\bin\keytool -import -alias tomcat -keystore .keystore -trustcacerts -file path-to-your-certificate\certificate</span></address>
<address> </address>
<p>Restart AwareIM and it should work on <a title="https://www.yourserver.com:8443/AwareIM/" href="https://www.yourserver.com:8443/AwareIM/">https://www.yourserver.com:8443/AwareIM/</a>&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/awareim/setting-up-awareim-with-ssl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Execution Context of AwareIM</title>
		<link>http://www.hiden.org/awareim/the-execution-context-of-awareim/</link>
		<comments>http://www.hiden.org/awareim/the-execution-context-of-awareim/#comments</comments>
		<pubDate>Sat, 14 Apr 2007 17:26:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AwareIM]]></category>

		<guid isPermaLink="false">http://hiserver/hiden.org/?p=40</guid>
		<description><![CDATA[One of the most exciting features of AwareIM is it&#8217;s execution Context. Once you&#8217;ver understood how this magic &#8220;Execution Context&#8221; is formedÂ  most data processing is a snap. I assume that you&#8217;ve read and (mostly) understood the section &#8220;How Context is Formed&#8221; from the AwareIM documentation. For example you can run a process that says [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most exciting features of AwareIM is it&#8217;s execution Context.<br />
Once you&#8217;ver understood how this magic &#8220;Execution Context&#8221; is formedÂ  most data processing is a snap. I assume that you&#8217;ve read and (mostly) understood the section &#8220;How Context is Formed&#8221; from the AwareIM documentation.<span id="more-40"></span></p>
<p>For example you can run a process that says</p>
<blockquote><address> <span style="color: #008000;"><br />
FIND BOExample WHERE BOExample.Attribute1=&#8217;Yes&#8217;<br />
UPDATE BOExample </span></address>
</blockquote>
<p>This is a simple process that causes rules attached to BOExample to execute.<br />
For example such a rule could contain:</p>
<blockquote><address> <span style="color: #008000;"><br />
BOExample.Attribut2=CURRENT_TIMESTAMP</span></address>
</blockquote>
<p>What&#8217;s happening isÂ  a SQL statement like</p>
<blockquote><address> UPDATE BOExample SET Attribute2=CURRENT_DATE WHERE Attribute1=&#8217;Yes&#8217;</address>
</blockquote>
<p>OK, 3 lines of AwareIM code compared to 1 SQL statement. But let&#8217;s take a look on how we could manage this in MS-Access code. (I just typed the code here &#8211; so I don&#8217;t know if the syntax is 100% correct)</p>
<blockquote><address> <span style="color: #800000;"><br />
set rs=currentdb.openrecordset(&#8220;select * from BOExample where Attribute1=&#8217;Yes&#8217;)<br />
do until rs.eof<br />
rs.edit<br />
rs!Attribute2=current_timestamp<br />
rs.update<br />
rs.movenext<br />
loop</span></address>
</blockquote>
<p>You might ask what Access code has to do with AwareIM &#8211; well I&#8217;d like to explain AwareIM&#8217;s execution context based on a quite common and easy understandable language&#8230;</p>
<p><span style="color: #008000;">FIND BOExample &#8230;.</span> does what <span style="color: #800000;">set rs = currentdb&#8230; / do until rs.eof </span>does. It finds all desired records and puts all of them into the context. Afterwards it executes <span style="color: #008000;">UPDATE BOExample</span> for every BOExample in context. Just like my <span style="color: #800000;">do/loop</span> construction above. Calling<span style="color: #008000;"> UPDATE BOExample</span> triggers the execution of the rules attached to BOExample. This rule now has it&#8217;s own execution context with only 1 instance in it.</p>
<p>Now let&#8217;s assume that we don&#8217;t want a simple assignment of CURRENT_TIMESTAMP to Attribute1. Now we want to find data from some other Business Object. Our rule could read like</p>
<blockquote><address> <span style="color: #008000;">FIND BOTest WHERE BOTest.Attribute1 = &#8216;abc&#8217;<br />
BOExample.Attribute2=BOTest.Attribute2 </span><br />
</address>
</blockquote>
<p>When the rule gets executed then there&#8217;s the 1 instance of BOExample in it&#8217;s context. Now we find a BOTest and this BOTest also gets put into the context. Afterwards it gets assigned to BOExample</p>
<p>One drawback of this approach ist that the rule doesn&#8217;t only get executed when the process gets called. It also gets executed every time BOExample is updated. Either by user interaction or by some other Process that modifies BOExample.</p>
<p>Well, so I change the process to:</p>
<blockquote><address> <span style="color: #008000;"><br />
FIND BOExample WHERE BOExample.Attribute1=&#8217;Yes&#8217;</span></address>
<address> <span style="color: #008000;">FIND BOTest WHERE BOTest.Attribute1 = &#8216;abc&#8217;<br />
BOExample.Attribute2=BOTest.Attribute2 </span><br />
</address>
</blockquote>
<p>If you think that we&#8217;re now done then you are wrong ! The process above will modify only the first BOExample ! Why ? Read on&#8230;.</p>
<p>FIND BOExample places several instances into the context. After that AwareIM starts to call FIND BOTest for every BOExample, but FIND BOTest destroys the context created from FIND BOExample !<br />
In case you are a little bit familiar with coding in Access then take a look at the following code:</p>
<blockquote><address> <span style="color: #800000;">set rs=currentdb.openrecordset(&#8220;select * from BOExample where Attribute1=&#8217;Yes&#8217;)<br />
do until rs.eof<br />
set rs=currentdb.openrecordset(&#8220;select * from BOTest where Attribute1=&#8217;abc&#8217;)<br />
do until rs.eof<br />
rs.edit<br />
rs!Attribute2=rs!Attribute2<br />
rs.update<br />
rs.movenext<br />
loop<br />
loop</span></address>
</blockquote>
<p>This code won&#8217;t work too ! If you take a close look then you&#8217;ll note that I&#8217;ve assigned the variable rs twice. The second &#8220;select * from &#8230;.&#8221; gets assigned to the same variable and destroys the previous content. In Access it would be easy to solve. I&#8217;d just change it to</p>
<blockquote><address> <span style="color: #800000;">set rs=currentdb.openrecordset(&#8220;select * from BOExample where Attribute1=&#8217;Yes&#8217;)<br />
do until rs.eof<br />
set rs2=currentdb.openrecordset(&#8220;select * from BOTest where Attribute1=&#8217;abc&#8217;)<br />
do until rs2.eof<br />
rs.edit<br />
rs!Attribute2=rs2!Attribute2<br />
rs.update<br />
rs.movenext<br />
loop<br />
loop</span></address>
</blockquote>
<p>I only changed the second set rs=&#8230; to set rs2=&#8230;<br />
In AwareIM it&#8217;s a little bit more tricky.</p>
<p><strong>Process1</strong></p>
<blockquote><p><span style="color: #008000;"><br />
FIND BOExample WHERE BOExample.Attribute1=&#8217;Yes&#8217;</span><br />
<span style="color: #008000;">Process2</span></p></blockquote>
<p><strong>Process2 </strong>with BOExample defined as process input</p>
<blockquote><p><span style="color: #008000;">FIND BOTest WHERE BOTest.Attribute1 = &#8216;abc&#8217;<br />
</span><span style="color: #008000;">BOExample.Attribute2=BOTest.Attribute2<br />
</span></p></blockquote>
<p>Now I have 2 processes. The first finds the desired BOExamples and puts them into the context. For every instance in context it executes Process2 and passes the current instance of BOExample over to Process2. That&#8217;s why we need BOExample as input for Process2. Since there&#8217;s now only one instance of BOExample in the context of Process2 finding instances of BOTest doesn&#8217;t destroy the other instances in context.</p>
<p>I hope that I could shed some light on how AwareIM forms its context. Please feel free to register yourself on this site and post comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/awareim/the-execution-context-of-awareim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making Tables Inline Editable in AwareIM</title>
		<link>http://www.hiden.org/awareim/making-tables-inline-editable-in-awareim/</link>
		<comments>http://www.hiden.org/awareim/making-tables-inline-editable-in-awareim/#comments</comments>
		<pubDate>Tue, 27 Mar 2007 17:34:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AwareIM]]></category>

		<guid isPermaLink="false">http://hiserver/hiden.org/?p=56</guid>
		<description><![CDATA[Inline editing objects is a nice feature. The only limitation is that the current version of AwareIM (2.2 at the time of this writing) has no direct way to enable this for top level objects. But with some tweaking it can be accomplished easily as show in the following screen. I&#8217;ve created 2 Business Objects [...]]]></description>
			<content:encoded><![CDATA[<p>Inline editing objects is a nice feature. The only limitation is that the current version of AwareIM (2.2 at the time of this writing) has no direct way to enable this for top level objects. But with some tweaking it can be accomplished easily as show in the following screen.<span id="more-56"></span></p>
<div style="text-align: center;"><img src="http://hiden.org/files/u1/inlineedit.png" alt="InlineEdit" width="500" height="225" /></div>
<ul>
<li>I&#8217;ve created 2 Business Objects called Object1 and Object2 as usually.</li>
<li>The magic comes from a 3rd Object called InlineEdit. This Object contains a dummy field and the fields Object1 an Object2. Object1|2 are defined as PEER and Multiple Allowed.</li>
<li>InlineEdit contains 2 forms. Again Object1 and Object2 containing only 1 field with the respective object. This is the place where inline editing is activated.</li>
</ul>
<ul>
<li>Because Object1|2 don&#8217;t know anything about their parent it&#8217;s up to us to tell the parent about its children. (And I don&#8217;t want to tell the children about their parent because this should work without changing the database structure when used on existing solutions).</li>
<li>A rule in Object1|2 says<br />
FIND InlineEdit WHERE InlineEdit.Dummy=1<br />
INSERT Object1 IN InlineEdit.Object1<br />
InlineEdit contains 1 record that gets created by a initailization process. And all added Object1|2 get added to this one.</li>
<li>Since the standard &#8220;Delete&#8221; operation would only remove the items from the list I&#8217;ve created a process DeleteObject1|2 that&#8217;s responsible for actually deleting the objects.</li>
<li>Editing Object1|2 is done by the process EditObject1|2 that contains<br />
FIND InlineEdit WHERE InlineEdit.Dummy=1<br />
VIEW InlineEdit USING Object1<br />
and brings up the form defined in object InlineEdit.</li>
</ul>
<p>A .bsv file of the above is available <a href="http://hiden.org/files/u1/inlineedit.bsv">here.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/awareim/making-tables-inline-editable-in-awareim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Importing Data From Another Database into AwareIM</title>
		<link>http://www.hiden.org/awareim/importing-data-from-another-database-into-awareim/</link>
		<comments>http://www.hiden.org/awareim/importing-data-from-another-database-into-awareim/#comments</comments>
		<pubDate>Thu, 15 Mar 2007 17:36:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AwareIM]]></category>

		<guid isPermaLink="false">http://hiserver/hiden.org/?p=61</guid>
		<description><![CDATA[AwareIM contains the ability to import data using a .csv file. However this approach is sometimes a little bit annoying. This because the .csv has to follow several rules so that AwareIM can recognise everything.Â  For example you need to have a headline in the form BusinessObject.Attribute which most systems (at least those I know [...]]]></description>
			<content:encoded><![CDATA[<p>AwareIM contains the ability to import data using a .csv file. However this approach is sometimes a little bit annoying. <span id="more-61"></span><br />
This because the .csv has to follow several rules so that AwareIM can recognise everything.Â  For example you need to have a headline in the form <em>BusinessObject.Attribute</em> which most systems (at least those I know about) can&#8217;t create without interaction. But if the data comes from another databse which AwareIM can read then there&#8217;s (IMHO) a better approach.</p>
<p>The following solution has been tested (and used successfully) against another MySQL database but I don&#8217;t see any reason why this shouldn&#8217;t work with the other supported DBMS like MS-SQL, Derby or any other ODBC DB.</p>
<ol>
<li>Create the Business Object with all required attributes in AwareIM where you want to store your data after importing. Lets call this <em>BODestination</em></li>
<li>Create a new Business Object (lets call it <em>BOexternal</em>) and choose <em>&#8220;Database: existing external&#8221;</em> from the Persistence Drop Down.Â  The button [Settings] now brings you to a window where you can specify the desired database connection. From this table you&#8217;ll be importing the data.</li>
<li>Once you have established the connection you can hitÂ  [Discover attributes] and the fields from your database table should be published as attributes of your <em>BOexternal.</em></li>
<li>Now create a Process that executes:<br />
<em>FIND ALL BOexternal  UPDATE BOexternal</em><br />
This process doesn&#8217;t make any changes to your data but allows the following rule to be executed.</li>
<li>Attach a rule to <em>BOexternal</em><br />
<em>CREATE BODestination WITH<br />
BODestination.Attribute1=BOexternal.Attribut1<br />
BODestination.Attribute2=BOexternal.Attribut2 </em><br />
and so on.</li>
</ol>
<p>That&#8217;s it. Now start the process from Step 4 and all your data will be moved from <em>BOexternal </em>to<em> </em><em>BODestination</em></p>
<p align="center">If you should use this approach then please don&#8217;t try this on any valuable productive data but use a backup copy !<br />
I am not responsible for any data loss or damage that might occur !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/awareim/importing-data-from-another-database-into-awareim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AwareIM Functions Quick Reference</title>
		<link>http://www.hiden.org/awareim/awareim-functions-quick-reference/</link>
		<comments>http://www.hiden.org/awareim/awareim-functions-quick-reference/#comments</comments>
		<pubDate>Sat, 03 Mar 2007 17:38:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AwareIM]]></category>

		<guid isPermaLink="false">http://hiserver/hiden.org/?p=68</guid>
		<description><![CDATA[I&#8217;ve put together a short reference folder containing all AwareIM functions. It&#8217;s meant for double sided printing on A4. It doesn&#8217;t contain detailed descriptions on how to use a function. There&#8217;s only the name, an example of usage and somethimes a short note. The data comes from the AwareIM Help System. PDF-Version OpenOffice Version]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve put together a short reference folder containing all AwareIM functions. It&#8217;s meant for double sided printing on A4.</p>
<p>It doesn&#8217;t contain detailed descriptions on how to use a function. There&#8217;s only the name, an example of usage and somethimes a short note. The data comes from the AwareIM Help System.</p>
<p><a href="http://hiden.org/files/u1/AwareIM-Functions-Reference.pdf">PDF-Version</a> <a href="http://hiden.org/files/u1/AwareIM-Functions-Reference.odt">OpenOffice Version </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/awareim/awareim-functions-quick-reference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keeping AwareIM data in sync with data from a MS-SQL Server</title>
		<link>http://www.hiden.org/awareim/keeping-awareim-data-in-sync-with-data-from-a-ms-sql-server/</link>
		<comments>http://www.hiden.org/awareim/keeping-awareim-data-in-sync-with-data-from-a-ms-sql-server/#comments</comments>
		<pubDate>Tue, 13 Feb 2007 17:34:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AwareIM]]></category>

		<guid isPermaLink="false">http://hiserver/hiden.org/?p=58</guid>
		<description><![CDATA[Looks like a common scenario, but there are some pitfalls &#8230; Scenario We have about 2000 customer records in a MSSql database that are required in a AwareIM solution. Updates don&#8217;t happen very often (almost never) but a few customers might be added every day. So the plan is to export the data from the [...]]]></description>
			<content:encoded><![CDATA[<p>Looks like a common scenario, but there are some pitfalls &#8230;<span id="more-58"></span></p>
<p><strong>Scenario</strong></p>
<ul>
<li>We have about 2000 customer records in a MSSql database that are required in a AwareIM solution. Updates don&#8217;t happen very often (almost never) but a few customers might be added every day.</li>
<li>So the plan is to export the data from the MSSql server using a scheduled task and to import them into AwareIM by a process that gets called by the user when required.</li>
</ul>
<p><strong>Problems</strong></p>
<ol>
<li>AwareIM&#8217;s IMPORT function doesn&#8217;t support adding AND updating data from the same file (correct me if I&#8217;m wrong)</li>
<li>We need to do some field assignments like Customer.Name1 to Customer.Company</li>
<li>AwareIM needs the header in the form Table.Field which causes troubles to Microsoft Software because they don&#8217;t like periods in field names at all.</li>
</ol>
<p><strong>The MSSql Server Part</strong></p>
<p>dataexport.cmd (gets executed every 15 minutes)</p>
<blockquote><p><em><br />
&#8220;C:\Programs\Microsoft SQL Server\80\Tools\Binn\DTSRun&#8221; /~Z0x7A&#8230;&#8230;54134EFA </em><em><br />
cd \data\export</em><em><br />
type header.txt &gt; dataexport.txt</em><em><br />
type data.txt &gt;&gt; dataexport.txt</em><em><br />
pscp -pw xxxxx dataexport.txt admin@appsrv.local:awareim/importexport/dataexport.txt</em></p></blockquote>
<ol>
<li>Using the Data Export Wizard on or MSSql 7.0 server I created a package that writes the whole table to data.txt</li>
<li>Creating a scheduled task on the SQL server&#8217;s Enterprise Manager that starts this package worked but every scheduled run ended in an obscure error message telling me that a file can&#8217;t be found. So I used the command line from the scheduled task and put it into a .cmd file that executes fine using Windows&#8217; own task scheduler %-)</li>
<li>As stated above the data file needs a header line in the form table.field that can&#8217;t be produced by Microsoft. So the export must only contain the data with no headers. The headers come from a manually created additional file called header.txt.</li>
<li>Copy could also be used to join these 2 files together but after that the last line contained a strange character that stopped AwareIM&#8217;s process. Type works fine&#8230;</li>
<li>pscpÂ  is used to copy the file via SSH to our linux appsrv</li>
</ol>
<p><strong>The AwareIM Part</strong></p>
<ol>
<li>Create a table (or Business Object) dataimport that contains the same attributes than the data.txt</li>
<li>Now it&#8217;s time to create a process that:</li>
<li>Imports data.txt into dataimport</li>
<li>Activates a rule in dataimport that:</li>
<li>checks if the record is new in this case a new customer has to be created</li>
<li>checks if the record is changed in this case the customer gets updated</li>
<li>clears dataimport</li>
</ol>
<p>That&#8217;s what the following process does</p>
<blockquote><p><em>IMPORT dataimport FROM SystemSettings.importfile</em><br />
<em>FIND ALL dataimport</em><br />
<em>UPDATE dataimport</em></p></blockquote>
<p>First it imports the data. After that it finds every record an executes an update on this record. And UPDATE causes the rules of dataimport to get active.</p>
<p>The rule of dataimport contains:</p>
<blockquote><p><em>If NOT(EXISTS customer WHERE (customer.KHKID=Thisdataimport.ID)) Then </em><br />
<em>CREATE customer WITH customer.company=Thisdataimport.Name1,customer.KHKID=Thisdataimport.ID, &#8230;&#8230;.</em></p></blockquote>
<p>which checks if the current imported record already exists in customer. If not then the customer is created</p>
<p>If you say that the process could also be made like<br />
<em>IMPORT dataimport FROM SystemSettings.importfile WITH VALIDATION</em><br />
then be warned ! On a P4 2,4GHz with 1 Gig Ram the whole process ran about 1 hour ! Whereas the solution shown above finished it&#8217;s work after about 30 seconds. And yes, the data is the same !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/awareim/keeping-awareim-data-in-sync-with-data-from-a-ms-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disabling Browser Buttons in AwareIM</title>
		<link>http://www.hiden.org/awareim/disabling-browser-buttons-in-awareim/</link>
		<comments>http://www.hiden.org/awareim/disabling-browser-buttons-in-awareim/#comments</comments>
		<pubDate>Thu, 18 Jan 2007 17:37:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AwareIM]]></category>

		<guid isPermaLink="false">http://hiserver/hiden.org/?p=63</guid>
		<description><![CDATA[In order to prevent the users from using the browser&#8217;s back button use this login page. Simply replace &#8230;/AwareIM/Tomcat/webapps/AwareIM/index.html with the following. &#60;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&#62; &#60;html&#62; &#60;head&#62; &#60;script language="JavaScript"&#62; function doSubmit() {displayWindow = window.open('', "newWin","scrollbars=1,menubar=0,toolbar=0,resizable=1,location=0,status=0"); document.submitForm.submit();document.submitForm.reset();} &#60;/script&#62; &#60;/head&#62; &#60;body&#62; &#60;div align="center"&#62; &#60;form name="submitForm" method="post" action="http://localhost:8080/AwareIM/logon.do?actionMethod=commit&#38;amp;domain=CRM" target="newWin"&#62;&#38;nbsp; Username&#60;span&#62;:&#60;/span&#62; &#38;nbsp; &#60;input name="username" size="17" [...]]]></description>
			<content:encoded><![CDATA[<p>In order to prevent the users from using the browser&#8217;s back button use this login page.</p>
<p>Simply replace &#8230;/AwareIM/Tomcat/webapps/AwareIM/index.html with the following.<span id="more-63"></span></p>
<pre>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;
&lt;html&gt;
&lt;head&gt;
&lt;script language="JavaScript"&gt;
function doSubmit() {displayWindow = window.open('', "newWin","scrollbars=1,menubar=0,toolbar=0,resizable=1,location=0,status=0");
document.submitForm.submit();<span>document.submitForm.reset();</span>}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div align="center"&gt;
&lt;form name="submitForm" method="post" action="http://localhost:8080/AwareIM/logon.do?actionMethod=commit&amp;amp;domain=CRM" target="newWin"&gt;&amp;nbsp; Username&lt;span&gt;:&lt;/span&gt; &amp;nbsp;
&lt;input name="username" size="17" type="text"&gt;&lt;br&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Password&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;
&lt;input name="password" size="17" type="password"&gt;&lt;label&gt;&lt;/label&gt;&lt;p&gt; &amp;nbsp;
&lt;input name="button" value="Logon" onclick="doSubmit()" type="button"&gt;&lt;/p&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<hr size="2" />Please note that you have to modify the hostname and domain.</p>
<p>Also note that when running AwareIM on Linux the path names are case sensitive.</p>
<p>The above is a slightly modification from brad&#8217;s original posting on the <a href="http://www.awareim.com/phpBB2/viewtopic.php?t=1077">AwareIM Forum</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/awareim/disabling-browser-buttons-in-awareim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running AwareIM against MySQL 4.1</title>
		<link>http://www.hiden.org/awareim/running-awareim-against-mysql-4-1/</link>
		<comments>http://www.hiden.org/awareim/running-awareim-against-mysql-4-1/#comments</comments>
		<pubDate>Thu, 18 Jan 2007 17:28:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AwareIM]]></category>

		<guid isPermaLink="false">http://hiserver/hiden.org/?p=45</guid>
		<description><![CDATA[using MySQL &#8220;almost&#8221; works out of the box but not with MySQL 4.1 on linux If you want to connect AwareIM to a MySQL database you have to make some adjustments to BASServer.props file in awareim/bin. This is well documented in the user&#8217;s guide. But in case you have an MySQL 4.1 db (I don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>using MySQL &#8220;almost&#8221; works out of the box but not with MySQL 4.1 on linux<span id="more-45"></span></p>
<p>If you want to connect AwareIM to a MySQL database you have to make some adjustments to BASServer.props file in awareim/bin. This is well documented in the user&#8217;s guide.</p>
<p>But in case you have an MySQL 4.1 db (I don&#8217;t know if this applies to older versions too) then you need to add <strong>useServerPrepStmts=false</strong> to the 3 lines dealing with you MySQL connection.<br />
<em><br />
DriverURL=jdbc:mysql://localhost/BASDB?user=root&amp;password=idontremember<strong>&amp;useServerPrepStmts=false</strong><br />
DriverTestURL=jdbc:mysql://localhost/BASDBTEST?user=root&amp;password=idontremember<strong>&amp;useServerPrepStmts=false</strong><br />
BootstrapURL=jdbc:mysql://localhost/?user=root&amp;password=idontremember</em><strong><em>&amp;useServerPrepStmts=false</em></strong></p>
<p>This has also been discussed on the <span><a href="http://www.awareim.com/phpBB2/viewtopic.php?t=601" target="_self">AwareIM Forum</a></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/awareim/running-awareim-against-mysql-4-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AwareIM&#039;s Session Timeout</title>
		<link>http://www.hiden.org/awareim/awareims-session-timeout/</link>
		<comments>http://www.hiden.org/awareim/awareims-session-timeout/#comments</comments>
		<pubDate>Tue, 16 Jan 2007 17:38:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AwareIM]]></category>

		<guid isPermaLink="false">http://hiserver/hiden.org/?p=66</guid>
		<description><![CDATA[Setting a longer session timeout value requires to change 2 files These are $awareimroot$/bin/BASServer.props and $awareimroot$/Tomcat/webapps/AwareIM/webapp.props. SessionTimeout is a value given in milliseconds. This means that SessionTimeout=3600000 gives a timeout of 3600 seconds or 1 hour.]]></description>
			<content:encoded><![CDATA[<p>Setting a longer session timeout value requires to change 2 files<br />
These are $awareimroot$/bin/BASServer.props and $awareimroot$/Tomcat/webapps/AwareIM/webapp.props.<br />
SessionTimeout is a value given in milliseconds. This means that<br />
SessionTimeout=3600000<br />
gives a timeout of 3600 seconds or 1 hour.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/awareim/awareims-session-timeout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modification on Tomcat Config for AwareIM</title>
		<link>http://www.hiden.org/awareim/modification-on-tomcat-config-for-awareim/</link>
		<comments>http://www.hiden.org/awareim/modification-on-tomcat-config-for-awareim/#comments</comments>
		<pubDate>Tue, 16 Jan 2007 17:33:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AwareIM]]></category>

		<guid isPermaLink="false">http://hiserver/hiden.org/?p=54</guid>
		<description><![CDATA[When calling the http://localhost:8080/AwareIM without logon.do, logon.jsp or whatever a directory listing is shown to the user. To avoid this go to $AwareIMroot$/Tomcat/webapps/AwareIM/WEB-INF open web.xml in any text editor search for &#60;welcome-file-list&#62; &#60;welcome-file&#62;index.jsp&#60;/welcome-file&#62; &#60;/welcome-file-list&#62; now change this to &#60;welcome-file-list&#62; &#60;welcome-file&#62;index.jsp&#60;/welcome-file&#62; &#60;welcome-file&#62;index.html&#60;/welcome-file&#62; &#60;/welcome-file-list&#62; In order to make these changes active you have to restart Tomcat. Since [...]]]></description>
			<content:encoded><![CDATA[<p>When calling the <a title="http://localhost:8080/AwareIM" href="http://localhost:8080/AwareIM">http://localhost:8080/AwareIM</a> without logon.do, logon.jsp or whatever a directory listing is shown to the user.<span id="more-54"></span></p>
<p>To avoid this go to<br />
$AwareIMroot$/Tomcat/webapps/AwareIM/WEB-INF<br />
open web.xml in any text editor<br />
search for</p>
<p><em>&lt;welcome-file-list&gt;<br />
&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;<br />
&lt;/welcome-file-list&gt;</em></p>
<p>now change this to</p>
<p><em>&lt;welcome-file-list&gt;<br />
&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;<br />
<strong>&lt;welcome-file&gt;index.html&lt;/welcome-file&gt;</strong><br />
&lt;/welcome-file-list&gt;</em></p>
<p>In order to make these changes active you have to restart Tomcat.</p>
<p>Since the default index.html shows the message &#8220;Loading&#8230;.Please Wait&#8221; it&#8217;s likely that you&#8217;d like to change this into a starting page for you application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/awareim/modification-on-tomcat-config-for-awareim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

