<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-36135014</id><updated>2012-01-26T07:30:37.159-08:00</updated><category term='software quality'/><category term='SNMP'/><category term='Task Editor'/><category term='Windows Vista'/><category term='Linux development'/><category term='IBM Tivoli'/><category term='Solaris development'/><category term='migrating'/><category term='V10'/><category term='Expression Editor'/><category term='eDeveloper MIUG Magic Software Enterprises'/><category term='application development tools'/><category term='eDeveloper'/><category term='v9'/><category term='Unicode applications'/><category term='migration'/><category term='conversion'/><category term='development tools'/><category term='converting'/><category term='AIX development tools'/><category term='application development'/><category term='rapid application development'/><category term='Unicode'/><category term='ISO 9126'/><category term='application monitoring'/><category term='Linux'/><category term='IBM development tools'/><category term='RADD'/><category term='Unicode web development'/><category term='Magic Software'/><category term='Linux development tools'/><category term='Unix development tools'/><category term='Solaris'/><category term='Unix development'/><category term='app dev'/><category term='appdev'/><category term='software testing'/><category term='RAD'/><category term='AIX'/><category term='Unicode application development'/><category term='Magic'/><title type='text'>The Magic of eDeveloper</title><subtitle type='html'>The "Magic of eDeveloper" blog is for people who want to build, composite and integrate applications with an eye to maximum efficiency in the development process and a minimum of programming overhead. In fact, the approach here is code-free rapid-application development (RAD)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://edeveloperv10.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-36135014.post-1595050218174853298</id><published>2011-12-21T00:13:00.001-08:00</published><updated>2012-01-26T07:30:37.171-08:00</updated><title type='text'>More Images</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-rOYQqHLx6RA/TyFxVnkCtuI/AAAAAAAAAUw/k8_uz32B9fY/s1600/Agile+PLM+Wheel+with+iBOLT+no+logos.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="335" src="http://2.bp.blogspot.com/-rOYQqHLx6RA/TyFxVnkCtuI/AAAAAAAAAUw/k8_uz32B9fY/s400/Agile+PLM+Wheel+with+iBOLT+no+logos.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ki08aD8jpYs/TxdfZns1C_I/AAAAAAAAAUc/hRLA-k2vuv8/s1600/Red+Zone+Blog+Graphic.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="265" src="http://2.bp.blogspot.com/-ki08aD8jpYs/TxdfZns1C_I/AAAAAAAAAUc/hRLA-k2vuv8/s400/Red+Zone+Blog+Graphic.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-5pjhMJynN2Q/TvtaRDWaMZI/AAAAAAAAAT4/xpWUrhPqbFw/s1600/SFDC+to+E1+Address+Book+Master+MBF+Data+Map.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-5pjhMJynN2Q/TvtaRDWaMZI/AAAAAAAAAT4/xpWUrhPqbFw/s320/SFDC+to+E1+Address+Book+Master+MBF+Data+Map.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-4vY_wftU2U0/TvtaUu3WZ_I/AAAAAAAAAUA/J9IojDx9w8g/s1600/E1+BSFNs.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-4vY_wftU2U0/TvtaUu3WZ_I/AAAAAAAAAUA/J9IojDx9w8g/s320/E1+BSFNs.jpg" width="273" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/-JtkyuHCM_V4/TvGVKRNTo9I/AAAAAAAAATs/WVThzK-CbOo/s1600/BlogForACause.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-JtkyuHCM_V4/TvGVKRNTo9I/AAAAAAAAATs/WVThzK-CbOo/s1600/BlogForACause.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-JtkyuHCM_V4/TvGVKRNTo9I/AAAAAAAAATs/WVThzK-CbOo/s1600/BlogForACause.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-JtkyuHCM_V4/TvGVKRNTo9I/AAAAAAAAATs/WVThzK-CbOo/s1600/BlogForACause.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-JtkyuHCM_V4/TvGVKRNTo9I/AAAAAAAAATs/WVThzK-CbOo/s1600/BlogForACause.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="277" src="http://4.bp.blogspot.com/-JtkyuHCM_V4/TvGVKRNTo9I/AAAAAAAAATs/WVThzK-CbOo/s400/BlogForACause.jpg" width="158" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-1595050218174853298?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/1595050218174853298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/1595050218174853298'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2011/12/blog-post.html' title='More Images'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-rOYQqHLx6RA/TyFxVnkCtuI/AAAAAAAAAUw/k8_uz32B9fY/s72-c/Agile+PLM+Wheel+with+iBOLT+no+logos.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-6937140442909611536</id><published>2011-12-14T18:32:00.000-08:00</published><updated>2011-12-14T18:32:34.140-08:00</updated><title type='text'>Testing Stuff</title><content type='html'>Test Blog Article with map...  &lt;script src="https://www.google.com/jsapi" type="text/javascript"&gt;&lt;/script&gt;  &lt;script type="text/javascript"&gt;   google.load('visualization', '1', {'packages': ['geomap']});   google.setOnLoadCallback(drawMap);    function drawMap() {      var data = new google.visualization.DataTable();      data.addRows(6);      data.addColumn('string', 'City');      data.addColumn('number', 'Revenue');      data.setValue(0, 0, 'Detroit');      data.setValue(0, 1, 1);      data.setValue(1, 0, 'Albuquerque');      data.setValue(1, 1, 1);      data.setValue(2, 0, 'Boise');      data.setValue(2, 1, 1);      data.setValue(3, 0, 'Oklahoma City');      data.setValue(3, 1, 1);      data.setValue(4, 0, 'Salt Lake City');      data.setValue(4, 1, 1);      data.setValue(5, 0, 'Phoenix');      data.setValue(5, 1, 1);      data.setValue(6, 0, 'Honolulu');      data.setValue(6, 1, 1);      data.setValue(7, 0, Baton Rouge');      data.setValue(7, 1, 1);      data.setValue(8, 0, 'Helena');      data.setValue(8, 1, 1);      data.setValue(9, 0, 'Florence');      data.setValue(9, 1, 1);      data.setValue(10, 0, 'Providence');      data.setValue(10, 1, 1);      data.setValue(11, 0, 'Portland');      data.setValue(11, 1, 1);      var options = {};      options['region'] = 'US';      options['colors'] = [0xFF8747, 0xFFB581, 0xc06000]; //orange colors      options['dataMode'] = 'markers';      var container = document.getElementById('map_canvas');      var geomap = new google.visualization.GeoMap(container);      geomap.draw(data, options);    };  &lt;/script&gt;    &lt;br /&gt;&lt;div id="map_canvas"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-6937140442909611536?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/6937140442909611536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/6937140442909611536'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2011/12/testing-stuff.html' title='Testing Stuff'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-3013753168320079495</id><published>2011-11-28T23:51:00.001-08:00</published><updated>2011-12-05T14:57:33.106-08:00</updated><title type='text'>The Image Blog</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-SSHfL7dPJ9I/TtSO4Y04jeI/AAAAAAAAASs/ggjdcVcPfPQ/s1600/Integrate+JD+Edwards+and+Exchange+Server.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://3.bp.blogspot.com/-SSHfL7dPJ9I/TtSO4Y04jeI/AAAAAAAAASs/ggjdcVcPfPQ/s320/Integrate+JD+Edwards+and+Exchange+Server.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-26JgF8UG53s/TtVf4WWo_SI/AAAAAAAAAS0/oyycG7xSDqY/s1600/IFRS-US-GAAP+Convergence.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="222" src="http://1.bp.blogspot.com/-26JgF8UG53s/TtVf4WWo_SI/AAAAAAAAAS0/oyycG7xSDqY/s320/IFRS-US-GAAP+Convergence.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-C7jUg64EFJg/TtgmV-oWz7I/AAAAAAAAATE/rVs1Lr7u494/s1600/elephant.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="223" src="http://1.bp.blogspot.com/-C7jUg64EFJg/TtgmV-oWz7I/AAAAAAAAATE/rVs1Lr7u494/s320/elephant.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-H45x1G7t1OM/Ttp4wjufqRI/AAAAAAAAATM/IWoL0mWlXIw/s1600/MEAP+Comparison+Points.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-H45x1G7t1OM/Ttp4wjufqRI/AAAAAAAAATM/IWoL0mWlXIw/s1600/MEAP+Comparison+Points.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-yqJ8LjEJaJM/Tt1MVT7Pq2I/AAAAAAAAATU/8E0W7YcDIaY/s1600/FTP.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-yqJ8LjEJaJM/Tt1MVT7Pq2I/AAAAAAAAATU/8E0W7YcDIaY/s320/FTP.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-3013753168320079495?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/3013753168320079495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/3013753168320079495'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2011/11/image-blog.html' title='The Image Blog'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-SSHfL7dPJ9I/TtSO4Y04jeI/AAAAAAAAASs/ggjdcVcPfPQ/s72-c/Integrate+JD+Edwards+and+Exchange+Server.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-3844485748456756114</id><published>2011-11-02T22:51:00.000-07:00</published><updated>2011-11-02T23:06:10.257-07:00</updated><title type='text'>Nothing</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-d3tKYNYpS7s/TrIvPTjOnEI/AAAAAAAAARg/ANOEdZVO75g/s1600/EMS+Integration.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-d3tKYNYpS7s/TrIvPTjOnEI/AAAAAAAAARg/ANOEdZVO75g/s320/EMS+Integration.jpg" width="308" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-3844485748456756114?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/3844485748456756114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/3844485748456756114'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2011/11/nothing.html' title='Nothing'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-d3tKYNYpS7s/TrIvPTjOnEI/AAAAAAAAARg/ANOEdZVO75g/s72-c/EMS+Integration.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-8806602220217520105</id><published>2011-10-24T13:33:00.000-07:00</published><updated>2011-10-25T13:35:31.379-07:00</updated><title type='text'>artwork</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-h1t0UzMueEc/TqXLXZikkqI/AAAAAAAAAQ8/DtV8aaIFYI4/s1600/Julian+Dates.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="312" src="http://2.bp.blogspot.com/-h1t0UzMueEc/TqXLXZikkqI/AAAAAAAAAQ8/DtV8aaIFYI4/s400/Julian+Dates.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-PFcB09gMOOE/TqcdiSFXGBI/AAAAAAAAARE/ihsYmQLRLsE/s1600/Julian+Dates2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="251" src="http://3.bp.blogspot.com/-PFcB09gMOOE/TqcdiSFXGBI/AAAAAAAAARE/ihsYmQLRLsE/s320/Julian+Dates2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-8806602220217520105?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/8806602220217520105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/8806602220217520105'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2011/10/artwork.html' title='artwork'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-h1t0UzMueEc/TqXLXZikkqI/AAAAAAAAAQ8/DtV8aaIFYI4/s72-c/Julian+Dates.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-240382124992420416</id><published>2011-10-03T17:39:00.001-07:00</published><updated>2011-10-03T17:39:48.365-07:00</updated><title type='text'>Visual Appearance</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-VAFR1wlqXoA/TopVugFn9rI/AAAAAAAAAPI/byLqwrOVqc0/s1600/SharePoint+PeopleSoft+Integration.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="219" src="http://3.bp.blogspot.com/-VAFR1wlqXoA/TopVugFn9rI/AAAAAAAAAPI/byLqwrOVqc0/s320/SharePoint+PeopleSoft+Integration.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-240382124992420416?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/240382124992420416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/240382124992420416'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2011/10/visual-appearance.html' title='Visual Appearance'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-VAFR1wlqXoA/TopVugFn9rI/AAAAAAAAAPI/byLqwrOVqc0/s72-c/SharePoint+PeopleSoft+Integration.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-7618106773021722381</id><published>2011-10-02T11:06:00.001-07:00</published><updated>2011-10-04T10:38:01.997-07:00</updated><title type='text'>Image FIle</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Uv2524x9hpw/ToioDI7FTeI/AAAAAAAAAPE/kM3OLvQamDs/s1600/Magic+Integration+CRM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="219" src="http://4.bp.blogspot.com/-Uv2524x9hpw/ToioDI7FTeI/AAAAAAAAAPE/kM3OLvQamDs/s320/Magic+Integration+CRM.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-9G18HGJ4tBI/TotEa99mNzI/AAAAAAAAAPM/D9o7dbcDBVg/s1600/SharePoint+JD+Edwards+Integration.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="219" src="http://4.bp.blogspot.com/-9G18HGJ4tBI/TotEa99mNzI/AAAAAAAAAPM/D9o7dbcDBVg/s320/SharePoint+JD+Edwards+Integration.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-7618106773021722381?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/7618106773021722381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/7618106773021722381'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2011/10/image-file.html' title='Image FIle'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Uv2524x9hpw/ToioDI7FTeI/AAAAAAAAAPE/kM3OLvQamDs/s72-c/Magic+Integration+CRM.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-5563874058927456748</id><published>2011-10-01T10:40:00.001-07:00</published><updated>2011-10-01T10:40:09.157-07:00</updated><title type='text'>Graphic FIle2</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-tseDtExagAQ/TodQa2FB5gI/AAAAAAAAAPA/WrRmSBa8-X4/s1600/Magic+Integration+ERP+Part+Two.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="219" src="http://1.bp.blogspot.com/-tseDtExagAQ/TodQa2FB5gI/AAAAAAAAAPA/WrRmSBa8-X4/s320/Magic+Integration+ERP+Part+Two.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-5563874058927456748?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/5563874058927456748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/5563874058927456748'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2011/10/graphic-file2.html' title='Graphic FIle2'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-tseDtExagAQ/TodQa2FB5gI/AAAAAAAAAPA/WrRmSBa8-X4/s72-c/Magic+Integration+ERP+Part+Two.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-7543162170647878205</id><published>2011-09-30T19:02:00.000-07:00</published><updated>2011-09-30T19:02:15.723-07:00</updated><title type='text'>Graphic File Display</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-DRkWuG7Ua0w/ToZ0hkUjZOI/AAAAAAAAAO8/8c5k0cgdnH8/s1600/Magic+Integration+ERP.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="219" src="http://2.bp.blogspot.com/-DRkWuG7Ua0w/ToZ0hkUjZOI/AAAAAAAAAO8/8c5k0cgdnH8/s320/Magic+Integration+ERP.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-7543162170647878205?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/7543162170647878205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/7543162170647878205'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2011/09/graphic-file-display.html' title='Graphic File Display'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-DRkWuG7Ua0w/ToZ0hkUjZOI/AAAAAAAAAO8/8c5k0cgdnH8/s72-c/Magic+Integration+ERP.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-2098440674599444730</id><published>2011-06-24T12:39:00.000-07:00</published><updated>2011-06-30T17:32:00.883-07:00</updated><title type='text'>Graphics Posts</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-S3Xp3FT4r_U/Tg0VcNbcvUI/AAAAAAAAAMc/jtY2ME-Blc4/s1600/EE%2BExpense%2BTables.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 363px;" src="http://4.bp.blogspot.com/-S3Xp3FT4r_U/Tg0VcNbcvUI/AAAAAAAAAMc/jtY2ME-Blc4/s400/EE%2BExpense%2BTables.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5624175084040928578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/-qDBwKuPTlb4/TgToJOUMieI/AAAAAAAAAMU/aSyFzHWxONs/s1600/ChangeOrder_JD_edwards_SharePoint.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/-qDBwKuPTlb4/TgToJOUMieI/AAAAAAAAAMU/aSyFzHWxONs/s400/ChangeOrder_JD_edwards_SharePoint.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5621873480024492514" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-2098440674599444730?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/2098440674599444730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/2098440674599444730'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2011/06/graphics-posts.html' title='Graphics Posts'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-S3Xp3FT4r_U/Tg0VcNbcvUI/AAAAAAAAAMc/jtY2ME-Blc4/s72-c/EE%2BExpense%2BTables.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-2549104717442992331</id><published>2010-11-23T11:01:00.001-08:00</published><updated>2011-01-05T13:19:52.487-08:00</updated><title type='text'>miscellaneous</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_8YyE9XfhPLw/TSTe7p31htI/AAAAAAAAAKY/gQRVVXLSQtE/s1600/XBRL-SAP-ERP-JDE-Reporting-Integration.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 196px;" src="http://2.bp.blogspot.com/_8YyE9XfhPLw/TSTe7p31htI/AAAAAAAAAKY/gQRVVXLSQtE/s400/XBRL-SAP-ERP-JDE-Reporting-Integration.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5558812956515731154" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_8YyE9XfhPLw/TOwPxc9TXXI/AAAAAAAAAIk/KvEqb-UoXOw/s1600/EDI%2BChart.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 302px;" src="http://3.bp.blogspot.com/_8YyE9XfhPLw/TOwPxc9TXXI/AAAAAAAAAIk/KvEqb-UoXOw/s400/EDI%2BChart.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5542822583647559026" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-2549104717442992331?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/2549104717442992331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/2549104717442992331'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2010/11/miscellaneous.html' title='miscellaneous'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_8YyE9XfhPLw/TSTe7p31htI/AAAAAAAAAKY/gQRVVXLSQtE/s72-c/XBRL-SAP-ERP-JDE-Reporting-Integration.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-657727916492708992</id><published>2010-09-09T11:46:00.001-07:00</published><updated>2010-12-22T12:47:05.648-08:00</updated><title type='text'>iBOLT Graphics</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_8YyE9XfhPLw/TRJjlRUY1uI/AAAAAAAAAJk/41Xjp3Px3-o/s1600/iBOLT%2BResources.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 274px;" src="http://2.bp.blogspot.com/_8YyE9XfhPLw/TRJjlRUY1uI/AAAAAAAAAJk/41Xjp3Px3-o/s320/iBOLT%2BResources.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5553610782456469218" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_8YyE9XfhPLw/TRJjdIB99DI/AAAAAAAAAJc/9yLkVNhuSOM/s1600/iBOLT%2BServices.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 251px;" src="http://2.bp.blogspot.com/_8YyE9XfhPLw/TRJjdIB99DI/AAAAAAAAAJc/9yLkVNhuSOM/s320/iBOLT%2BServices.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5553610642524337202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_8YyE9XfhPLw/TRJjVKCUCDI/AAAAAAAAAJU/M0lFIg1_2sE/s1600/iBOLT%2BComponents.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 278px;" src="http://1.bp.blogspot.com/_8YyE9XfhPLw/TRJjVKCUCDI/AAAAAAAAAJU/M0lFIg1_2sE/s320/iBOLT%2BComponents.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5553610505623701554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_8YyE9XfhPLw/TNsm1TYTuwI/AAAAAAAAAIU/3SKKDp6Q9m4/s1600/core%2Bbankingprocess%2Bintegration.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 193px;" src="http://2.bp.blogspot.com/_8YyE9XfhPLw/TNsm1TYTuwI/AAAAAAAAAIU/3SKKDp6Q9m4/s320/core%2Bbankingprocess%2Bintegration.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5538062863959309058" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_8YyE9XfhPLw/TMHa5diBfdI/AAAAAAAAAHs/hk5V2GbeKoI/s1600/Master+Item+Data.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 195px;" src="http://2.bp.blogspot.com/_8YyE9XfhPLw/TMHa5diBfdI/AAAAAAAAAHs/hk5V2GbeKoI/s320/Master+Item+Data.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5530942498102410706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_8YyE9XfhPLw/TK5jaeQQhAI/AAAAAAAAAHc/P1ahJOkn4uU/s1600/Business+Process+Quadrant.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_8YyE9XfhPLw/TK5jaeQQhAI/AAAAAAAAAHc/P1ahJOkn4uU/s320/Business+Process+Quadrant.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5525463099279180802" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_8YyE9XfhPLw/TKuHktG608I/AAAAAAAAAHU/ULYzZoCTAxg/s1600/Salesforce+Bulk+Jobs.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 291px;" src="http://2.bp.blogspot.com/_8YyE9XfhPLw/TKuHktG608I/AAAAAAAAAHU/ULYzZoCTAxg/s320/Salesforce+Bulk+Jobs.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5524658432553702338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_8YyE9XfhPLw/TKuG9k7XNGI/AAAAAAAAAHE/glCzShfyCfQ/s1600/five+salesforce+fundamentals.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 265px;" src="http://3.bp.blogspot.com/_8YyE9XfhPLw/TKuG9k7XNGI/AAAAAAAAAHE/glCzShfyCfQ/s320/five+salesforce+fundamentals.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5524657760342848610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_8YyE9XfhPLw/TKoal7-ojxI/AAAAAAAAAG8/FVuG93dYFSM/s1600/EHR+Content+Exchange+Standards.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_8YyE9XfhPLw/TKoal7-ojxI/AAAAAAAAAG8/FVuG93dYFSM/s400/EHR+Content+Exchange+Standards.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5524257131981213458" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_8YyE9XfhPLw/TKVdWVsHdAI/AAAAAAAAAG0/9w3ctiC64QE/s1600/ERP+CRM+TouchPoints.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 293px;" src="http://4.bp.blogspot.com/_8YyE9XfhPLw/TKVdWVsHdAI/AAAAAAAAAG0/9w3ctiC64QE/s400/ERP+CRM+TouchPoints.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5522923156400468994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_8YyE9XfhPLw/TIk_r1j0vyI/AAAAAAAAAGs/Z7221SFMyrA/s1600/iBOLT+Components+Services+and+Methods+Groups.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 122px;" src="http://3.bp.blogspot.com/_8YyE9XfhPLw/TIk_r1j0vyI/AAAAAAAAAGs/Z7221SFMyrA/s400/iBOLT+Components+Services+and+Methods+Groups.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5515009241036144418" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-657727916492708992?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/657727916492708992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/657727916492708992'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2010/09/ibolt-graphics.html' title='iBOLT Graphics'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_8YyE9XfhPLw/TRJjlRUY1uI/AAAAAAAAAJk/41Xjp3Px3-o/s72-c/iBOLT%2BResources.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-1812260953445011435</id><published>2009-12-31T14:28:00.001-08:00</published><updated>2010-10-29T12:44:02.839-07:00</updated><title type='text'>Graphic Images</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_8YyE9XfhPLw/TMsj428f-PI/AAAAAAAAAIE/8GynY3e3U5Q/s1600/3+Keys+to+JDE+Integration.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 298px; height: 320px;" src="http://4.bp.blogspot.com/_8YyE9XfhPLw/TMsj428f-PI/AAAAAAAAAIE/8GynY3e3U5Q/s320/3+Keys+to+JDE+Integration.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5533556026883700978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_8YyE9XfhPLw/TG_zn6bOOdI/AAAAAAAAAGM/cTIkye_u-70/s1600/Native+IBM+i+integration.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 283px;" src="http://3.bp.blogspot.com/_8YyE9XfhPLw/TG_zn6bOOdI/AAAAAAAAAGM/cTIkye_u-70/s400/Native+IBM+i+integration.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5507888736321288658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_8YyE9XfhPLw/TGL_sBIJv7I/AAAAAAAAAGE/L8e4bbLhlbY/s1600/CBPM.PNG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_8YyE9XfhPLw/TGL_sBIJv7I/AAAAAAAAAGE/L8e4bbLhlbY/s320/CBPM.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5504242826282123186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_8YyE9XfhPLw/TGL_f8vN5aI/AAAAAAAAAF8/cLBH-xejlcA/s1600/C2E+Integration.PNG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 241px;" src="http://1.bp.blogspot.com/_8YyE9XfhPLw/TGL_f8vN5aI/AAAAAAAAAF8/cLBH-xejlcA/s320/C2E+Integration.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5504242618945365410" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_8YyE9XfhPLw/TGL_W2SVWxI/AAAAAAAAAF0/902hSCg3VF0/s1600/S2E+Integration.PNG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 241px;" src="http://1.bp.blogspot.com/_8YyE9XfhPLw/TGL_W2SVWxI/AAAAAAAAAF0/902hSCg3VF0/s320/S2E+Integration.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5504242462594784018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_8YyE9XfhPLw/TGL_OCiYphI/AAAAAAAAAFs/LpnDP66t76I/s1600/S2S+Integration.PNG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 237px;" src="http://1.bp.blogspot.com/_8YyE9XfhPLw/TGL_OCiYphI/AAAAAAAAAFs/LpnDP66t76I/s320/S2S+Integration.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5504242311264511506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_8YyE9XfhPLw/TE4jiLWmMVI/AAAAAAAAAFk/vV025UjV6fU/s1600/ERP+Integration+Tipping+Point.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 390px;" src="http://3.bp.blogspot.com/_8YyE9XfhPLw/TE4jiLWmMVI/AAAAAAAAAFk/vV025UjV6fU/s400/ERP+Integration+Tipping+Point.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5498371265136046418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_8YyE9XfhPLw/S5_hCV6sMVI/AAAAAAAAAFc/7dX4ADjGrOE/s1600-h/primavera+project.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5449321504500887890" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 273px" alt="" src="http://3.bp.blogspot.com/_8YyE9XfhPLw/S5_hCV6sMVI/AAAAAAAAAFc/7dX4ADjGrOE/s400/primavera+project.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_8YyE9XfhPLw/S2R44uHs62I/AAAAAAAAAFU/w3ArZHu14rU/s1600-h/Microsoft+Dynamics+CRM+Integration+Entities.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5432599966364003170" style="WIDTH: 380px; CURSOR: hand; HEIGHT: 400px" alt="" src="http://1.bp.blogspot.com/_8YyE9XfhPLw/S2R44uHs62I/AAAAAAAAAFU/w3ArZHu14rU/s400/Microsoft+Dynamics+CRM+Integration+Entities.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_8YyE9XfhPLw/S2R4wUFecVI/AAAAAAAAAFM/Y_3mwSJJ0yU/s1600-h/Microsoft+Dynamics+CRM+Integration+Customer+Service.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5432599821936390482" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 261px" alt="" src="http://2.bp.blogspot.com/_8YyE9XfhPLw/S2R4wUFecVI/AAAAAAAAAFM/Y_3mwSJJ0yU/s400/Microsoft+Dynamics+CRM+Integration+Customer+Service.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_8YyE9XfhPLw/S2R4htJsYFI/AAAAAAAAAFE/n4sO-rqDATo/s1600-h/Microsoft+Dynamics+CRM+Integration+Sales.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5432599570966929490" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 277px" alt="" src="http://1.bp.blogspot.com/_8YyE9XfhPLw/S2R4htJsYFI/AAAAAAAAAFE/n4sO-rqDATo/s400/Microsoft+Dynamics+CRM+Integration+Sales.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_8YyE9XfhPLw/S2R4XsKmsNI/AAAAAAAAAE8/m5rgJInMXhA/s1600-h/Micorosoft+Dynamics+CRM+Integration+Marketing.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5432599398903623890" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 277px" alt="" src="http://3.bp.blogspot.com/_8YyE9XfhPLw/S2R4XsKmsNI/AAAAAAAAAE8/m5rgJInMXhA/s400/Micorosoft+Dynamics+CRM+Integration+Marketing.jpg" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_8YyE9XfhPLw/Sz0l7F5n0iI/AAAAAAAAAE0/Q9g6dlz3ftM/s1600-h/2+Web+Services+Component+Configuration.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5421531223550317090" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 210px" alt="" src="http://3.bp.blogspot.com/_8YyE9XfhPLw/Sz0l7F5n0iI/AAAAAAAAAE0/Q9g6dlz3ftM/s400/2+Web+Services+Component+Configuration.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_8YyE9XfhPLw/Sz0l01e2FJI/AAAAAAAAAEs/SS2p9PPFLK8/s1600-h/1+WSDL+Resource+Specification.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5421531116063822994" style="WIDTH: 394px; CURSOR: hand; HEIGHT: 246px" alt="" src="http://1.bp.blogspot.com/_8YyE9XfhPLw/Sz0l01e2FJI/AAAAAAAAAEs/SS2p9PPFLK8/s400/1+WSDL+Resource+Specification.jpg" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_8YyE9XfhPLw/Sz0ltmjDRlI/AAAAAAAAAEk/apxtcVZoiq4/s1600-h/0+PSFT+Integration+Flow+Inbound.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5421530991795848786" style="WIDTH: 161px; CURSOR: hand; HEIGHT: 174px" alt="" src="http://1.bp.blogspot.com/_8YyE9XfhPLw/Sz0ltmjDRlI/AAAAAAAAAEk/apxtcVZoiq4/s400/0+PSFT+Integration+Flow+Inbound.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-1812260953445011435?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/1812260953445011435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/1812260953445011435'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2009/12/graphic-images.html' title='Graphic Images'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_8YyE9XfhPLw/TMsj428f-PI/AAAAAAAAAIE/8GynY3e3U5Q/s72-c/3+Keys+to+JDE+Integration.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-2142815567559770103</id><published>2009-06-08T14:46:00.000-07:00</published><updated>2009-06-08T14:48:47.215-07:00</updated><title type='text'>See The New uniPaaS Blog</title><content type='html'>This blog has been replaced by the Magic of uniPaaS blog to reflect the name change from eDeveloper to uniPaaS. Please see the new &lt;a href="http://unipaas.blogspot.com/"&gt;uniPaaS Blog &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-2142815567559770103?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/2142815567559770103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/2142815567559770103'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2009/06/see-new-unipaas-blog.html' title='See The New uniPaaS Blog'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-5953593562471907220</id><published>2008-04-25T15:46:00.000-07:00</published><updated>2008-04-25T15:53:29.000-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eDeveloper MIUG Magic Software Enterprises'/><title type='text'>MIUG Business Networking Conference 2008</title><content type='html'>Just saw a preview of Avikam Perry's roadmap announcement. Wow! I can't tell you what I saw, but I can tell you it will lead to unprecedented power for developers and huge benefits for business organizations running Magic applications. It is very important that you actually be present for MIUG as this presentation is not likely to be available in any other forum until what is being shown is actually released. You will want to prepare for this and the only way to do so is to be present at &lt;a href="https://www.regonline.com/builder/site/Default.aspx?eventid=134773"&gt;MIUG.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-5953593562471907220?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/5953593562471907220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/5953593562471907220'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2008/04/miug-business-networking-conference.html' title='MIUG Business Networking Conference 2008'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-8894349026247250261</id><published>2008-03-31T13:30:00.000-07:00</published><updated>2008-03-31T13:35:52.323-07:00</updated><title type='text'>Magic Link Interview with Steve Blank</title><content type='html'>&lt;b&gt;Steve Blank&lt;/b&gt; of &lt;b&gt;S.G. Blank Consulting&lt;/b&gt; is no newcomer to eDeveloper™. His experience with, and advocacy of the platform, goes back more than 20 years to his introduction to Magic version 3.5 and it’s been his “tool of choice” ever since. But Steve is more than just a user; he’s an active contributor to the system’s capabilities. One example is the DDF Maker Wizard—a utility provided in eDeveloper V10—that lets developers enhance the eDeveloper studio by making their own utilities and wizards. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Magic Link:&lt;/b&gt; Tell us a little about your business. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Steve Blank:&lt;/b&gt; S.G. Blank Consulting only has one employee—me. I specialize in three different areas. First, I provide training for in-house developers on the latest aspects and features of Magic’s eDeveloper. Second, I speak at conferences and present seminars/classes on different aspects of eDeveloper. Third, I provide custom programming services to a handful of customers who, generally speaking, aren’t big enough to have their own in-house staffs, but who see the benefit of custom applications. It’s in this third area that I spend most of my time. I’ve been working with eDeveloper for about 20 years, since version 3.5, when it became my tool of choice, and I’ve been using it ever since. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;ML:&lt;/b&gt;  What types of training services are you called on to provide? &lt;br /&gt;&lt;br /&gt;&lt;b&gt;SB:&lt;/b&gt;  Most of the companies for which I provide training are small to mid-size businesses with five or fewer developers. They are typically organizations that have developed their entire business system in Magic and, so, have a huge investment in it, and are looking for ways to improve performance or to solve other problems that have arisen as a result of their growth. So I’m usually not training people who are new to eDeveloper, but rather people in companies that have used the product for a long time and are looking for ways to make things better. The areas on which I tend to focus are multi-user concurrency, performance, database design, and data integrity. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;ML:&lt;/b&gt;   Do you typically provide training, then, for the same customers on a repeat basis? &lt;br /&gt;&lt;br /&gt;&lt;b&gt;SB:&lt;/b&gt;  Yes. Often, I will get called in by a company that is experiencing a specific problem and, after helping them to resolve that problem, will then get called back to provide a wider scope of training. For example, a few years back, I received a call from a company in El Salvador that was experiencing increasingly serious locking and performance issues with their eDeveloper application. I went down and, after spending a couple days analyzing their application and database, showed them how to solve their problems and gave them some additional pointers on best practices. Each year since then, they’ve brought me back down for a week to train their development team on what’s new in eDeveloper, and to provide in-depth instruction on topics such as transaction processing and error recovery. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;ML:&lt;/b&gt;  You mentioned that you frequently speak at conferences. What types of things do you speak about? &lt;br /&gt;&lt;br /&gt;&lt;b&gt;SB:&lt;/b&gt;  I tend to address many of the same topics that arise in my consulting and on which I often focus in my training, as well as to explore newer features in eDeveloper such as integrating ActiveX controls and COM objects. I really enjoy attending and presenting at conferences, for a couple of reasons: first, preparing for conferences gives me an excuse to experiment and create demo programs from which I learn something myself; and second, it’s a great way to network and to further my reputation in the business in a way that comes back to me. Plus, it’s just plain fun to meet and talk shop with people literally from all over the world. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;ML:&lt;/b&gt;  What are the kinds of issues that people have with eDeveloper that cause them to contact you? &lt;br /&gt;&lt;br /&gt;&lt;b&gt;SB:&lt;/b&gt;  One of the strengths of eDeveloper is also one of its weaknesses: it’s really, really easy to write complex applications without a lot of formal training. Frankly, one can sit down and crank out some pretty amazing stuff without having any formal training in programming or database design because the tool abstracts the complexities to the point that the developer doesn’t really need to be aware of it. That’s one of its strengths because you can put applications together really quickly. But that also means that it’s very easy for bad habits to creep in. Take database design, for example. A Magic developer isn’t forced to be concerned about the table structures and such things that are underlying; one can just go in there and plunk things down. As a result, a lot of applications tend to have databases that aren’t at all normalized, which is OK when things are small with very few users. But as things grow and the database gets bigger and there are more concurrent users, problems can arise. That’s one example of when I might get called. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;ML:&lt;/b&gt;  What other types of issues do your clients have that you help with? &lt;br /&gt;&lt;br /&gt;&lt;b&gt;SB:&lt;/b&gt;  A client might call up needing new reports or a change in functionality. One of the reasons I like eDeveloper so much is because it’s so much easier and faster to do not only new development, but also this kind of ongoing maintenance. One of the reasons to develop a custom application is so that one can constantly tweak it as one goes along, adding new features and functionality. With eDeveloper, that can happen a lot more quickly, which translates into lower cost (even when the customer is hiring someone like me to do it) than it can in something like Visual Basic. For example, my biggest customer in Massachusetts manufactures and distributes products for the optical industry. For lots of reasons, their software needs to evolve, practically constantly, and I make that happen. I develop a relationship with companies like that such that I’m really just an extension of their staff—almost an employee. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;ML:&lt;/b&gt;  There are some people who, like you, got started with Magic in the early days but then didn’t do much more with it. Why is that? &lt;br /&gt;&lt;br /&gt;&lt;b&gt;SB:&lt;/b&gt;  First, Magic is a small company and suffers from a lack of brand awareness. Not enough people know Magic is out there, but it survives because of those of us who do know it are such zealous adopters that we just can’t see ourselves going anywhere else. More than that however, it often comes down to a political issue in favor of Microsoft. Whoever ever got fired for recommending Microsoft? &lt;br /&gt;&lt;br /&gt;&lt;b&gt;ML:&lt;/b&gt;  Have you been able to observe companies like that? &lt;br /&gt;&lt;br /&gt;&lt;b&gt;SB:&lt;/b&gt;  I knew one company that had developed its entire business system in eDeveloper and had run that way for 12 years, but then dropped it in favor of one of the major ERP vendors. They ended up shooting themselves in the foot. But once those decisions are made, people tend never to go back and revisit them or ask themselves if it turned out to be a good idea. They abandoned a significant investment in one system for another that ended up costing them many times more. But even though Magic has been around almost since the inception of the IBM PC and almost as long as Microsoft, people still ask, “Who’s Magic? Are they going to be around next year? Can we afford to take a chance with them, or should we go with Microsoft?” It’s a shame when a company turns its back on a significant legacy investment that was costing them much less money to maintain and, as a result, giving them a much better return on their investment. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;ML:&lt;/b&gt;  How can Magic go about showing those people what their prior investment in Magic could do for them now? &lt;br /&gt;&lt;br /&gt;&lt;b&gt;SB:&lt;/b&gt;  I see a real opportunity now to speak to people who care about total cost of ownership. There are still people in this world who are willing to look at alternatives and to consider something different from the mainstream. Magic is doing a good job right now by releasing a product like eDeveloper Discovery, and by continuing to add new functionality. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;ML:&lt;/b&gt;  What advice do you have for Magic’s customers—old and new? &lt;br /&gt;&lt;br /&gt;&lt;b&gt;SB:&lt;/b&gt;  Take a look at what Magic has done to improve the product over the years, such as addressing today’s increasing need to consume and serve web services, build and work with composite applications, and integrate with legacy applications and databases. If developers see how fast they can get the job done with eDeveloper and management sees how favorable the TCO is, they should agree that Magic is the answer.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-8894349026247250261?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/8894349026247250261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/8894349026247250261'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2008/03/magic-link-interview-with-steve-blank.html' title='Magic Link Interview with Steve Blank'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-6361335215583993184</id><published>2008-03-09T16:02:00.001-07:00</published><updated>2008-03-09T16:28:51.187-07:00</updated><title type='text'>A Little Magic History</title><content type='html'>I am constantly being asked about Magic's history, about the story of how the amazing technology that we know today evolved. Well, I can only tell you what I know.&lt;br /&gt;&lt;br /&gt;Magic Software was founded in 1983 by Mashov Computers. Magic marketed application development tools and application deployment technology in the boom years of the personal computer craze (a boom that one could argue has not yet subsided).  The programmers at Magic decided that if the computer was going to be perosnal and easy enough for everyone to use, that writing software was going to have to be a whole lot easier. While there had been some initial experimental attempts out of universities to create RAD -- rapid application development tools. None of them were all that useful because they tended to either be too complex or too restrictive and limited. So the developers at Magic set out to find a paradigm that would deliver full functionality and significantly reduce complexity. &lt;br /&gt;&lt;br /&gt;SO there first and easiest decision was what not to do. They decided not to write a new computer programming "language." In fact they avoided traditional computer programming concepts and instead introduced a "table-driven" RAD tool. Today we know about concepts like pseudo-code, but they were really doing a lot of things we talk about in IT today: pseudo-code, services, mashups, etc. before anyone knew what to call them and really before they could be done as elegantly as Magic can do them today.  SO they adopted an approach that required no compiling or linking. Because the pre-compiled sturctures could be employed and tested iteratively, the users of this new tool were able to prototype very quickly and start seeing results in minutes rather than weeks or months. &lt;br /&gt;&lt;br /&gt;Te rest as they say is history, but let's remind ourselves of what that history includes: five years of victories at the Droege International development competiton, including the final year in which Magic's customers swept every prize at the contest, forcing the organizers to give up. Why continue holding programming competitions if the results are a given, Magic is the best and fastest tool. Ah, if only the market dynamics today were that simple. &lt;br /&gt;&lt;br /&gt;Magic has had to try to preserve it ssimple table driven concept despite massive torrents of change in the underlying architecture of the computer. Not only has there been a major shift from text-based DOS environments to newer and arguably improved GUI operating systems, I don't know why I bother to use the plural, we all know I'm talking about Windows. But there was also a major shift from standalone PCs, to networked PCs on a LAN to PCs connected over the Internet -- the "cloud" as we sometimes like to call it. Magic also got a little ambitious too. The world of DOS and Windows in the 1990s was still not where most of the Fortune 2000 companies transacted their IT business. So Magic decided to expand the concept to include VMS, Unix, OS/400 and eventually Linux. The original dos version used Btrieve, these other environments used other databases and ISAM file systems. So the Magic development tool had to be given new "gateways" to deal with these new databases. Magic was able to sell these gateways as seperate products to their customers. Of course that transition to these other environments also meant a difference in architecture for the applications. The original desktop application approach was not a broad enough paradigm for these new distributed architecturess, so Magic's tool added client-server and Internet deployment methodologies. Known today as eDeveloper V10, Magic's development tools can deliver applications over the Internet in a browser-client mode or an HTML merge mode that is similar to PHP in the way it tags the HTML and merges in the results of its processing.&lt;br /&gt;&lt;br /&gt;I'll probably have a lot more to say about this topic in the future, but I'd better get back to the topic of migration before anyone complains that I forgot to deliver my promised final chapter on moving your application to eDeveloper V10.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-6361335215583993184?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/6361335215583993184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/6361335215583993184'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2008/03/little-magic-history.html' title='A Little Magic History'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-401678360174684533</id><published>2008-03-08T04:59:00.000-08:00</published><updated>2008-03-08T05:06:08.675-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='V10'/><category scheme='http://www.blogger.com/atom/ns#' term='conversion'/><category scheme='http://www.blogger.com/atom/ns#' term='migration'/><category scheme='http://www.blogger.com/atom/ns#' term='migrating'/><category scheme='http://www.blogger.com/atom/ns#' term='Magic Software'/><category scheme='http://www.blogger.com/atom/ns#' term='converting'/><category scheme='http://www.blogger.com/atom/ns#' term='v9'/><category scheme='http://www.blogger.com/atom/ns#' term='eDeveloper'/><title type='text'>Converting to eDeveloper V10 (the Migration Story continues)</title><content type='html'>OK, you're probably thinking: I was a convert to the Magic way of developing a long time ago: why do I need to convert? But I'm talking about a more routine kind of conversion here, the conversion utility that automates the move from eDeveloper v9.4 to eDeveloper V10.&lt;br /&gt;Needless to say, (oh don't worry, I know I say needless things all the time anyway), the Conversion Utility feature does not exist in the Discovery version. The discovery version is designed for beginners and beginners only. If you already have a big application, you're not a beginner.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Getting to Know the Conversion Utility &lt;/h4&gt;&lt;br /&gt;If you've gotten very far into this, you probably already know that eDeveloper V10 provides an Application Conversion utility for converting your eDeveloper V9 application into an eDeveloper V10 project. Please remember that this utility is designed only for full applications written in eDeveloper V9.4sp7 and onwards.So, if you have to do something to get your application to eDeveloper v9.4 sp7 (or later) first, then do that before attempting the conversion utility. Be warned.&lt;br /&gt;As the documentation ably illustrates, you can launch the Application Conversion Utility from the Windows &lt;b&gt;Start&lt;/b&gt; menu &gt; &lt;b&gt;(All) Programs &lt;/b&gt;&gt; &lt;b&gt;eDeveloper V10.1&lt;/b&gt; &gt; &lt;b&gt;Migration&lt;/b&gt; &gt; &lt;b&gt;V9 Migration UI. &lt;/b&gt;&lt;br /&gt;After you launch the application conversion utility, aka V9 Migration UI, you will see its Welcome screen. When you click the &lt;b&gt;Next &lt;/b&gt;button, the &lt;b&gt;Version 9.4 Applications Screen &lt;/b&gt;opens, and this is where the fun begins (OK, not really fun but I am trying to make this different from the documentation in tone and style, is it working?).&lt;br /&gt;&lt;h4&gt;Version 9.4 Applications Screen&lt;/h4&gt;&lt;br /&gt;So you may be wondering, &lt;i&gt;why do I have to add everything one by one? &lt;/i&gt;Well, the answer is simply that you may not feel the need to convert all your applications and components, so just choose the ones you truly want ti the new world of eDeveloper V10. (After all, why convert that cool BetaMax Catalog application? So when you convert an application, each application and its component must be added to the &lt;b&gt;Version 9.4 Applications &lt;/b&gt;screen by clicking the &lt;b&gt;Add &lt;/b&gt;button. If your application has references to a component that has already been converted, you should still add that component to the list at this point. That's right, do it again, you are telling the convert utility to make that component available to this application in the new world of eDeveloper V10. So just do it.&lt;br /&gt;Each time you click the &lt;b&gt;Add&lt;/b&gt; button of course, the &lt;b&gt;Conversion Details &lt;/b&gt;screen opens and you have some disambiguation to do.&lt;br /&gt;&lt;h4&gt;So This is How You Use the Conversion Details Screen&lt;/h4&gt;&lt;br /&gt;In addition to the how, I'll try to answer the why, without simply saying "because that's the way it is." Basically, the reason for the conversion details screen is for you to communicate your intent. Do you want to convert all of the application or just part of it? Do you want to convert a new component, or has it already been converted and you just want to reference it? These are the kinds of questions you are answering in this screen. So you simply select whether you are converting an application, part of an application, a component, or keeping the reference for a previously-converted component.&lt;br /&gt;For each export file there are four possibilities (the order entered is not important):&lt;br /&gt;&lt;b&gt;Convert an application&lt;/b&gt; - The utility converts the entire application to V10 (but not its components, you are adding them separately, remember?).&lt;br /&gt;&lt;b&gt;Convert part of an application&lt;/b&gt; – Now it gets a little particular here, because this option cannot be combined with other conversion types in the same process. That doesn'tmean the very next add operation cannot use one of the other selections, it just means that in a single add operation, you are either choosing part of an application, or some combination of the other three options: convert an application, convert a component or keep a component reference. So, all the other options can be added one after another and all of them will be converted in the same conversion run or process. That is why, this option can only be selected if you have not yet selected one of the other options since starting this session of the utility.&lt;br /&gt;You can continue with additional V9 export files using the &lt;b&gt;Add &lt;/b&gt;button.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Convert a component&lt;/b&gt; - The utility converts the application to V10, and finds all of the references to the MCF or MFF in all of the Component repositories in the conversion list (the first screen). Then, the utility changes their references to the newly created ECF.&lt;br /&gt;&lt;b&gt;Keep reference for previously converted component&lt;/b&gt; - The utility points to the references of this component to the previously converted cabinet file. By doing this, we do not have to convert the same application twice. This is useful if we have a component with models, which is used in a number of different applications.&lt;br /&gt;Depending on which option you select, you then fill in the application details and/or project details.&lt;br /&gt;When you convert an application and its components, the utility will take the name of the component (entered in the&lt;b&gt; Component File Name &lt;/b&gt;field) and change any reference to that file name in the Composite Resource Repository with the V10 cabinet file (in the &lt;b&gt;V10 Project Name &lt;/b&gt;field).&lt;br /&gt;The &lt;b&gt;Cabinet file location&lt;/b&gt; field governs where the conversion process creates the cabinet file.&lt;br /&gt;&lt;br /&gt;When you click the &lt;b&gt;Next &lt;/b&gt;button, the &lt;b&gt;General Settings &lt;/b&gt;screen opens.&lt;br /&gt;&lt;h4&gt;Salute the General Settings Screen&lt;/h4&gt;&lt;br /&gt;The &lt;b&gt;General Settings &lt;/b&gt;screen has the following settings:&lt;br /&gt;&lt;b&gt;V9.4 Magic.ini File&lt;/b&gt; – The Magic.ini file used in the V9.4 application.&lt;br /&gt;&lt;b&gt;Log file directory &lt;/b&gt;– A path for the log file directory.&lt;br /&gt;&lt;b&gt;Log Level &lt;/b&gt;– This setting has the following options:&lt;br /&gt;• &lt;b&gt;Full&lt;/b&gt; – Displays the full log.&lt;br /&gt;• &lt;b&gt;Partial&lt;/b&gt; – Displays errors and changes of behavior only.&lt;br /&gt;&lt;b&gt;Convert empty eDeveloper handlers &lt;/b&gt;– This property governs whether the Record Prefix, Record Suffix, Task Prefix, and Task Suffix will be converted if they are empty. In previous versions, these built-in handlers were created automatically even if they were empty. These empty handlers are irrelevant in V10. If you select this check box, the empty handlers will be included in the converted application. If this check box is not selected, the empty handlers will be removed.&lt;br /&gt;&lt;b&gt;"SpecialModalToolWindow" &lt;/b&gt;– In previous versions, the caption of Modal windows was narrow while in V10 it is a full sized caption. Select this check box if you want the Modal window height to be increased in order to fit the contents.&lt;br /&gt;&lt;br /&gt;But as we shall see next, you can also go to directly to the conversion executable file.&lt;br /&gt;&lt;h4&gt;Taking Command with the Command Line Conversion&lt;/h4&gt;&lt;br /&gt;eDeveloper V10 does not support the eDeveloper V9 export file structure, however it does provide a command line conversion utility called v9converter.exe that converts eDeveloper V9.4sp7 export files to a valid V10 application.&lt;br /&gt;The v9converter.exe file is located in the eDeveloper V10 installation directory.&lt;br /&gt;When the export file is executed with no parameters or when you enter /?,the Conversion utility help text will appear on the screen.&lt;br /&gt;When you run the utility, the conversion results are displayed on the screen.&lt;br /&gt;If the conversion process fails, you should verify that the command line syntax is valid and that the application is in a valid version 9 export file format. The utility will create the .edp file in the specified project directory and the project source files in the Source subdirectory.&lt;br /&gt;The conversion log file will be created according to the -LOG parameter. If this parameter is not set, the log file will be created by its default name.&lt;br /&gt;&lt;br /&gt;So remember, if you need to migrate only a partial application, you need to use the Command Line Conversion utility.&lt;br /&gt;&lt;br /&gt;In the final entry on the migration process to eDeveloper V10, we will take a look at what the conversion utility parameters do, try to explain how application behaviors can be changed in the conversion process, and finally, recap some of the troubleshooting issues related to your conversion. Let's hope this whole approach demystifies a lot of this for those of you who have been wondering, &lt;i&gt;what is really involved?&lt;/i&gt; As you can see, it takes about as long to explain it all in detail as it does to perform the actual migration. So much for the blah, blah, blah.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-401678360174684533?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/401678360174684533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/401678360174684533'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2008/03/converting-to-edeveloper-v10-migration.html' title='Converting to eDeveloper V10 (the Migration Story continues)'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-6230888512010525901</id><published>2008-02-12T14:27:00.000-08:00</published><updated>2008-02-12T14:35:20.245-08:00</updated><title type='text'>Crossing the Border to eDeveloper V10</title><content type='html'>&lt;h3&gt;Part One: Preparing Your Application&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;I don't know why exactly, but somebody coined the term "migration" to describe the steps involved in bringing an existing application from an older version of its development/deployment environment to a newer version. When I think of "migration" I picture a flock of birds flying south for the winter or a long line of cars crossing the border at Tijuana. Fortunately, migrating an eDeveloper v9 application to eDeveloper V10 is considerably less exhausting than either of those images might imply. Keep in mind, that eDeveloper applications cannot be converted to eDeveloper Discovery, since the purpose of Discovery is to introduce new developers to the Magic paradigm. Migration is therefore available only to eDeveloper Express and eDeveloper Enterprise. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;eDeveloper V10 offers an entirely new approach to creating, storing and handling your eDeveloper application development projects. One of the things that you will notice is that eDeveloper V10 does not support the previous version's export file structure. But not to worry, a conversion utility is provided.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;So crossing the border to eDeveloper V10 involves three easy steps: prepare your application for export, export the application, and run the conversion utility. It's just that simple, but let's look into each step a little more deeply and then discuss the three utilities available once your application has been migrated.&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;Preparing Your Application for Export&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;Prior to exporting your application, you should modify your application by replacing any unsupported features that you may have used with new approaches. In this fashion, you will ensure that no program information gets lost during the conversion process.&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Unsupported Features&lt;/b&gt;&lt;br /&gt;A number of older features have been removed: DVAL3, ESTR, FLOW3, Pref, ISTR, IVAL, LSTR, WebRef, EVAL, RVAL, RSTR, LVAL, STR3, TSTR3, TVAL3, VAL3, and the Euro functions, EuroCnv, EuroDel, EuroGet, EuroSet, EuroUdp. All of these were deemed unneeded or superfluous for one reason or another. So make sure to remove them from your application if you happened to use them in the past. Chances are you did not use these functions anyway, but you should check. And remember, while you do not have to do anything to prepare for features that have been renamed, about ten functions have new names in eDeveloper V10. So the conversion utility will change these automatically, such as changing ASC to ASCIIVAL, etc.&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Changing Memo Attributes&lt;/b&gt;&lt;br /&gt;You also need to know that any variable with a Memo attribute in your v9 application is going to be changed automatically to an Alpha attribute. Database fields that had Memo attributes will be converted to Alpha attributes with Memo storage. And of course, the VarAttr function will no longer return 'M' for Memo as this is no longer an eDeveloper attribute. But once again, don't worry, the conversion process will not automatically change expressions with the VarAttr function. Nevertheless, you should probably search for the string VarAttr to see where it is equated with 'M'. You will want to adjust your program in these rare situations, because VarAttr will no longer return the value 'M'.&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;A Fond Farewell to Web Online&lt;/b&gt;&lt;br /&gt;"Web Online, we're glad we knew thee, but alas it is time to departeth." Yes, Web Online is that old and it is time to abandon this approach if, tsk, tsk, you hadn't already done so. To be clear: Web Online is not supported in eDeveloper V10. Older forms with the Web Online Response interface type are not supported in eDeveloper V10. The conversion utility simply removes these types of forms from your application. So any existing Form Output operation pointing to these forms will not point to a form in the converted project. Magic recommends that you remove any form of this type before exporting your application.&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;And HTML Forms Must Get the Boot As Well&lt;/b&gt;&lt;br /&gt;As a result of improvements and greater flexibility in the new Merge capabilities, and to prepare the way for even greater enhancements in the future, eDeveloper V10 will not support forms with the HTML interface type. Once again, the conversion utility simply removes these types of forms from your application, and any Form Output operation pointing to these forms will not point to a form in the converted project. So Magic recommends that you remove any form of this type before exporting your application.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;So this change implies a number of changes from the way things used to work: 1) The HTML property has been removed from the Style section of the property sheet of variables, columns and models. 2) The HTML class has been removed from the Model repository. 3) The Internet Development File Root property has been removed from the Project properties. 4)The Internet APG is not supported. 5) The HTML Merge Interface Type is now named Merge. The Conversion utility will convert the HTML Merge values to Merge.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;As you get deeper into eDeveloper V10, you will see this as an enhancement with a more flexible and useful approach to Merge.&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Goodbye to the Old Browse Function&lt;/b&gt;&lt;br /&gt;The browse function was rather single purpose and it is simply more flexible to replace this with an Invoke OS Command operation that gives you the flexibility to do more than just Browse. So, as a result, the Browse operation is not supported in eDeveloper V10. Magic recommends that you remove any Browse operation before exporting your application. Keep in mind, however, that the Conversion utility will replace the operation with an Invoke OS Command operation.&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Other Unsupported and Removed Properties that Will Not Convert&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;li&gt;&lt;b&gt;Environment properties&lt;/b&gt;&lt;br /&gt;The Multi User Access setting has been removed from the Environment dialog box.&lt;br /&gt;&lt;li&gt;&lt;b&gt;Euro-Related properties&lt;/b&gt;&lt;br /&gt;A number of older Euro Support features have been removed because they are simply not needed any longer. First of all, the European Currency Conversion File environment setting was removed from the External tab of the Environment dialog box. The EuroFile environment setting was also removed from the MAGIC_ENV section of the Magic.ini file. Needless to say, the Base Currency and European Currency Conversion File application properties were removed too. And as mentioned above, several Euro functions are no longer supported.&lt;br /&gt;&lt;li&gt;&lt;b&gt;Java Browser Client&lt;/b&gt;&lt;br /&gt;The browser client of old was a Java applet. No more. To reflect changes in the most commonly supported client applet technologies available for Internet Explorer, the Java option has been removed from the Browser client technology setting in the Server tab of the Environment dialog box.&lt;br /&gt;&lt;li&gt;&lt;b&gt;Java Component Generator (JCG)&lt;/b&gt;&lt;br /&gt;We used to have a separate generator called the Java Component Generator. This concept has been significantly expanded upon to allow composite objects of all types to be generated, including your own ability to write composite generators. All of these are now found in the new and exciting Composite Resource Repository in eDeveloper V10.&lt;br /&gt;&lt;li&gt;&lt;b&gt;Out with the Old XML Component Generator (XCG)&lt;/b&gt;&lt;br /&gt;Significant improvements in XML handling have been added in eDeveloper V10. You can learn about these in greater detail in one of the recent XML Webinars in the Magic Software webinar archives. Anyway, the old XML Component Generator has been removed to make way for these enhancements.&lt;br /&gt;&lt;li&gt;&lt;b&gt;Minor Change to Application Properties&lt;/b&gt;&lt;br /&gt;The rather obscure "Internet Development File Root" property was removed from the Application Properties dialog box.&lt;br /&gt;&lt;li&gt;&lt;b&gt;DBMS&lt;/b&gt;&lt;br /&gt;Three columns have been removed from the DBMS repository:&lt;br /&gt;&lt;li&gt;2 Phase&lt;br /&gt;&lt;li&gt;Excl. Trans.&lt;br /&gt;&lt;li&gt;ID&lt;br /&gt;&lt;/li&gt;&lt;p&gt;In corresponding fashion, some Magic.ini settings were removed from the MAGIC_DBMS section: OnePhaseCommit, TwoPhaseCommit, NotTransLockExcl and TransLockExcl.&lt;/p&gt;&lt;li&gt;&lt;b&gt;Databases&lt;/b&gt;&lt;br /&gt;Several columns and properties have also been removed from the Database repository. The Magic Server column was removed from the Database repository. The Common Data Dictionary property was removed from the Options tab of the Database Properties dialog box. And the XA Transactions property was removed from the SQL tab of the Database Properties dialog box.&lt;br /&gt;&lt;li&gt;&lt;b&gt;Internet APG is out the door&lt;/b&gt;&lt;br /&gt;Out the door forever, I should add. The Internet APG for a table or task is no longer supported. The Internet tab was removed from the APG dialog box.&lt;br /&gt;&lt;li&gt;&lt;b&gt;Export Document&lt;/b&gt;&lt;br /&gt;The Export Document option was removed from the Operation list in the Export/Import dialog box.&lt;br /&gt;&lt;li&gt;&lt;b&gt;Studio Rights&lt;/b&gt;&lt;br /&gt;Finally, (well, with blogs, nothing is ever final) the Studio rights have been removed. &lt;/li&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Colors and Fonts&lt;/b&gt;&lt;br /&gt;This next consideration is optional. Some of you may prefer the new eDeveloper V10 color and font settings. Nevertheless, if you want to maintain your application's colors and fonts, you should set the Application color and font definition files and the Internal color and font definition files of the converted project to be directed to the color and font definition files of version 9. This is a onetime setting change for each application and project.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Security File&lt;/b&gt;&lt;br /&gt;You will likely want to use your security file (such as usr_std.eng) from the previous version, but you do not have to. If you decide to convert your existing security file, run the usrupd.exe utility from the command line. The syntax is:&lt;br /&gt;&lt;br /&gt;usrupd      *input*     *output*&lt;br /&gt;&lt;br /&gt;*input* is the name of your current file name and *output* is the name that you want given to the file that is created by the usrupd.exe utility. And you should keep in mind, very importantly that in eDeveloper V10 you can only assign runtime rights.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Terminology has changed too&lt;/b&gt;&lt;br /&gt;I won't get into terminology changes here because I don't think they are relevant to the migration itself. But you should definitely familiarize yourself with the new terminology in eDeveloper V10 as compared to the prior version.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Next time:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In my next blog entry, we'll discuss the export and conversion steps. So stay tuned.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-6230888512010525901?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/6230888512010525901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/6230888512010525901'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2008/02/crossing-border-to-edeveloper-v10.html' title='Crossing the Border to eDeveloper V10'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-5268260854419207317</id><published>2008-01-18T16:11:00.000-08:00</published><updated>2008-01-18T16:17:58.107-08:00</updated><title type='text'>Magic eDeveloper V10 and ROI for Start-Up Businesses</title><content type='html'>The economy has been showing signs of weakness. Despite this, thousands of entrepreneurs will be launching new businesses, even in the midst of a new economy. How does that affect software development?  Building the software systems for these new businesses is a critical process and one that must complete in the least possible amount of time. During slow economic times Return on Investment is on the mind of every entrepreneur who has to sign off on a development budget to get the new business systems in place that will deliver their unique competitive advantage. So in today’s business climate, the emphasis is on &lt;i&gt;rapid&lt;/i&gt; return on investment. The break-even point needs to be achieved at the earliest possible moment. Every cost has to be analyzed against the expected returns to arrive at estimated break even dates. So here’s my claim: “You can achieve ROI in your application development process faster and with greater assurance when using eDeveloper V10.” &lt;br /&gt;&lt;br /&gt;Application development tends to occur in phases. For our purposes, let’s consider these four phases: Design, Build, Test and Deploy. In the harried environment of a new startup business, you need to have all four of these occurring almost simultaneously, but traditional computer programming tools do not allow this. All four of these phases require an investment of time, but if you can execute some of the phases in parallel, then you can get to the final destination faster. So testing isn’t something that happens at the end of a software process, it is an iterative process that occurs throughout the project.  For this reason, it may be more useful to think of &lt;i&gt;Design, Build, Test, Maintain&lt;/i&gt; not as phases, but rather as layers of the development task. The design layer tends to be front-loaded in the project, but some design occurs while maintaining the program. The test layer tends to be back-loaded towards the end of a project, but using sound iterative design principles, testing definitely occurs throughout the life of the project.&lt;i&gt;Time is money&lt;/i&gt; is perhaps a cliché but critical when discussing the ROI of business software development projects for new businesses.&lt;br /&gt;&lt;br /&gt;Application Development ROI calculations must put the emphasis on the investment that goes into dollars paid to the developers on the project; i.e. how many developers will it take and for how long? The sooner the project comes to a successful end, the faster the ROI for the project, and the sooner the new business can deploy their new systems and reap the benefits.&lt;br /&gt;&lt;br /&gt;The time saved - hence the ROI - using Magic eDeveloper V10 is significant: typically from 4 to 6 times faster than that of other development technologies.&lt;br /&gt;The table below is based on extensive market research and compares each of the four phases (layers) of the application development lifecycle for 3GLs (Third Generation Languages), 4GLs (Fourth Generation Languages) and Magic eDeveloper. If X, Y, Z, and W represent the time spent on an average 3GL application for each of the application development phases, research shows that generally 4GLs cut the time in half. With Magic eDeveloper even better time- savings are achieved. The productivity gains shown below are conservative calculations by Magic Software based on interviews with eDeveloper programmers, many of whom are quoted later. &lt;br /&gt;&lt;a href="http://support2000.magic-inc.com/Docs/eDeveloper/new_business_software_ROI.jpg"&gt; &lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand" alt="" src="http://support2000.magic-inc.com/Docs/eDeveloper/new_business_software_ROI.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In order to achieve rapid ROI, each phase of the lifecycle must not only be completed quickly, but must also have the highest reliability to ensure the fastest payback for the investment being made.&lt;br /&gt;In going through the analysis of each of the application development lifecycle phases in future blog entries, I will detail additional aspects of Magic eDeveloper that result in further ROI increases. &lt;br /&gt;&lt;br /&gt;Magic eDeveloper’s progressive development paradigm allows prototype applications to be quickly and easily created. The eDeveloper paradigm is often used to convince venture capitalists and other investors that achievement of a new start-up businesses goals for new business systems is in fact achievable. Without eDeveloper, some businesses might not even “get off the ground.” In addition, the ability to support applications over time despite changing business models, platforms, and standards is inherent in the Magic eDeveloper development technology.&lt;br /&gt;&lt;br /&gt;Rapid ROI remains a key critical measure for every new business and is often the difference between success and failure. I’ll comment more on the savings possible during each phase of the application development cycle in later posts.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-5268260854419207317?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/5268260854419207317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/5268260854419207317'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2008/01/magic-edeveloper-v10-and-roi-for-start.html' title='Magic eDeveloper V10 and ROI for Start-Up Businesses'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-1128539343031125494</id><published>2008-01-17T16:11:00.000-08:00</published><updated>2008-01-17T16:22:52.455-08:00</updated><title type='text'>Top Ten Ways To Gain Approval of Your eDeveloper Upgrade</title><content type='html'>Getting the boss's approval to upgrade important software can be a challenge, particularly when budgets are tight. Here are a few tips on how to get approval to upgrade eDeveloper V10:&lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;strong&gt;PREPARE.&lt;/strong&gt; Go in armed with all the necessary materials to make a good case for your upgrade. Download the “Ten Reasons” brochure and  visit the series of blog entries on reasons to upgrade in Glenn Johnson’s eDeveloper V10 blog.&lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;strong&gt;LEARN.&lt;/strong&gt; Attend the Magic University course “Migration to eDeveloper V10” so that you can speak with authority on the capabilities of eDeveloper V10. Download the &lt;strong&gt;FREE EVALUATION SOFTWARE&lt;/strong&gt; and consult the "What's New in eDeveloper V10" and other documentation.&lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;strong&gt;RELATE.&lt;/strong&gt; Show how specific problems or issues you've recently encountered can be overcome by one of the improvements in eDeveloper V10. Ask for a Magic representative to setup a live web presentation on your upgrade to eDeveloper V10. Invite your opeers and your boss to participate in this information gathering session.&lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;strong&gt;SHARE.&lt;/strong&gt; Point others in your organization towards the new learning resources in eDeveloper V10: the “Mastering eDeveloper” book and the 22 &lt;a href="http://www.magicsoftware.com/bin/en.jsp?enPage=InnerPage&amp;enDisplay=view&amp;enDispWhat=Zone&amp;enDispWho=tech_t_od&amp;enZone=tech_t_od&amp;lNavZ=tech&amp;lNavO=tech^l1^seDeveloper"&gt;online demonstrations.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;strong&gt;SAVE.&lt;/strong&gt; Point out the ROI benefits of migrating to eDeveloper now, before you release a new version of your software based on your current version. Cost savings, productivity enhancements, application improvements, user interface benefits, and much more, are all available immediately, but only if you make the leap to eDeveloper V10. A delayed start to active development using eDeveloper V10 equates to a very real loss of benefits to your company.&lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;strong&gt;TEAM.&lt;/strong&gt; Review the benefits of eDeveloper V10 with other members of your development team. Gain an understanding of how the improvements can enhance efforts across your development team.&lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;strong&gt;CONSULT.&lt;/strong&gt; Magic Professional Services can help to provide you with a migration readiness assessment. This formal consulting process will help you to plan for all aspects of your migration to eDeveloper V10.&lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;strong&gt;LAUNCH.&lt;/strong&gt; Ask for a commitment on a specific launch date for your team’s use of eDeveloper. Come in armed with a launch plan.&lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;strong&gt;MEET.&lt;/strong&gt; Set a specific meeting in which you can present your upgrade request to senior management. Make it clear to everyone that this is an important and needed decision. &lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;strong&gt;DECIDE.&lt;/strong&gt; Give a deadline to make a decision. Present the information and ask for an answer within a specified time frame. Reiterate that procrastination has real expenses and costs associated with it as well as lost business opportunities.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-1128539343031125494?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/1128539343031125494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/1128539343031125494'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2008/01/top-ten-ways-to-gain-approval-of-your.html' title='Top Ten Ways To Gain Approval of Your eDeveloper Upgrade'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-8806507968625230769</id><published>2008-01-04T17:04:00.000-08:00</published><updated>2008-01-04T17:10:28.078-08:00</updated><title type='text'>Developing RFID Applications with eDeveloper V10</title><content type='html'>Last month, I attended the Active RFID Summit held in Dallas, Texas. In addition to enjoying a chance to sample some excellent Tex-Mex dishes, I really appreciated the chance to compare notes with colleagues on the state of the art application of RFID, especially active RFID. Regardless of whether you are developing proprietary applications,  vertical applications for a specific industry or horizontal applications that serve cross-industry needs, RFID is putting a strain on IT resources. Active RFID represents a major paradigm shift in data acquisition and generation creating an onslaught of data that current applications are generally not prepared to handle.&lt;br /&gt;&lt;br /&gt;Stephen Moody, an RFID Program Coordinator for the Combat Feeding Program of the US Army's Natick Soldier Research Development, presented a fascinating case study entitled: "DoD Active RFID Applications for Supply Chain Security and Shelf Life Management." It is easy to underestimate RFID as something akin to a glorified barcode or a "traveling database". But many active RFID tags are far more sophisticated in that they incorporate environmental sensors. The US Army sends tons of rations to the troops in Iraq and elsewhere. These shipments are made in ships holding thousands of standardized shipping containers. How can the US Army be sure the shipments have not been tampered with or exposed to unacceptable environmental conditions? The answer is active RFID tags with sophisticated sensors for a number of environmental events: temperature, radiation, light, chemical agents, biological agents, shock, door sensors, etc. If somebody is doing something to a shipment of food, or if it just gets too hot for too long, the US Army knows when it happened and where it happened. This is simply one of scores of applications for active RFID in an organization like the US Army. But what does one do with all that data? According to Moody, "the greatest barrier to the successful implementation and adoption of RFID is integration to legacy systems."&lt;br /&gt;&lt;br /&gt;One of the other challenges for RFID is the current lack of standards. In some ways this is unavoidable: RFID is not a specific product, technology or protocol. RFID is a family of technologies that incorporate radio frequency and are used to identify "stuff." As Sue Hutchinson, the Director of Industry Adoption for EPCglobal US put it, RFID provides the answer to the question "where's my stuff?" But the type of RFID may involve passive RFID, where the tag has no power source and is a write-once technology, to active RFID, including ultra wide-band (UWB), all the way to GPS and beyond. With such a diversity of technologies, standards become even more important. Lacking these standards, however, flexible development and integration tools become even more important.&lt;br /&gt;&lt;br /&gt;Consider the food safety example above, somewhere in an ERP system the information resides for the supplier name, items ordered, supply date, carrier and so forth. Does this information get integrated to the data on the RFID tag? What happens if food from one supplier is more prone to spoilage or to lose palatability under prolonged high temperatures? How can the US Army, or any organization for that matter, take full advantage of RFID applications if key information sits locked in a silo such as an ERP or supply chain system?&lt;br /&gt;&lt;br /&gt;Information integration is the key. But how does one best handle RFID integration with an ERP or other existing application? To answer that, we first need to consider the RFID system being used. RFID systems involve tags (some with built in sensors), programmers, readers, networks and so on. But most do not include middleware. And the hooks provided are inconsistent. Text files, XML, .NET objects, java objects and Web Services are provided inconsistently.  For an organization to be prepared to integrate the data from a reader, they can benefit from a middleware solution like iBOLT that provides the ability to consume any of these data types and orchestrate them within an overall business process. Or they can create interfaces from directly within an eDeveloper application. Even when dedicated applications are written to take advantage of RFID data, middleware and business process management software is still needed to facilitate integration to legacy systems. Ideally, these middleware systems are service-oriented including event driven capabilities, discoverable web services and more.&lt;br /&gt;&lt;br /&gt;Unfortunately, too many RFID early adopters are resorting to hefty J2EE or.Net based programming projects rather than utilizing a development tool like eDeveloper V10 or a simplified visually-oriented business process design tools like iBOLT. As the world begins to find more and more uses for RFID, it will be useful for serious organizations to incorporate eDeveloper and iBOLT for integration to RFID data, whether it comes in raw text or XML format or is served up by a Web Service or programming object like .NET or XML.&lt;br /&gt;&lt;br /&gt;With RFID, the emergence of integration file standards is far from certain. The Auto ID Center has proposed an XML format known as PML as a standard. You can read about it on the &lt;a href="http://xml.coverpages.org/pml-ons.html"&gt;XML CoverPages&lt;/a&gt; hosted by OASIS. But the adoption of the standard is far from ubiquitous, especially in the Active RFID world which tends to look at organizations like EPCglobal with at least some degree of suspicion.&lt;br /&gt;&lt;br /&gt;The good news for eDeveloper programmers is that since PML is just a flavor of XML, you can access RFID data with standard eDeveloper XML tools. To see what you’re avoiding, take a look at the PM example below. For more information on RFID and iBOLT, you can access Magic Software’s &lt;a href="http://www.magicsoftware.com"&gt;RFID related webinars.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Using PML in eDeveloper V10&lt;/strong&gt;&lt;br /&gt;eDeveloper V10 includes a new capability called XML Integration. This approach makes PML’s use within eDeveloper much easier. In fact, you can now develop applications using eDeveloper with no database at all and simply use XML files, including PML for RFID and other Auto ID related applications.&lt;br /&gt;&lt;br /&gt;When using a PML data source containing RFID data, you can create eDeveloper tasks (batch and online) that use the PML files as their view (main files and linked files). You can define an PML data source in the Data repository (remember PML is XML) and define a task to manipulate and handle the PML. You can check that the XML task is compatible with the XML schema by using the XMLValidate and XMLValidationError functions. Namespaces are automatically handled by eDeveloper.&lt;br /&gt;&lt;br /&gt;There are two XML development methodologies to choose from. You can develop applications using XML in the data repository or you can develop using XML with BLOBs. If you use both methods, then the BLOB takes precedence.&lt;br /&gt;&lt;br /&gt;With eDeveloper V10, a task that uses XML (such as PML) will first open the entire XML file (if it is not already open) and then populate the tables. It then executes the defined task, whether that be query, insert, update or delete. Finally, when closing the task, if the data has changed, then eDeveloper V10 writes the XML BLOB or file back over the original XML source.&lt;br /&gt;&lt;br /&gt;eDeveloper V10's XML Integration feature provides two functions that allow you to verify that the XML is compatible with the XML schema.&lt;br /&gt;&lt;br /&gt;The functions are XMLValidate,  which validates an XML document against its schema; and XMLValidationError, a function that returns the errors of the last XMLValidate. This will help you to determine whether your PML file is valid based on the PML schema, which of course is found in the .xsd file.&lt;br /&gt;&lt;br /&gt;With eDeveloper V10, you can use the Get Definition function to discover the properties of a PML file that contains RFID data and map them to an eDeveloper table. Like all XML files, PML files are described by .xsd metadata that contains the XML schema definition. During a Get Definition, if an element’s/attribute’s type is defined using a SimpleType or as a reference to a Global element, it will be converted to the appropriate Primitive xsd data type from which it is derived.&lt;br /&gt;&lt;br /&gt;Primitive xsd data types are mapped to corresponding eDeveloper attributes. Once this occurs, the field attributes can be changed without restriction. A default picture (most of the time you can think of this as length) will be assigned (as specified in the table). When the type is based on a SimpleType, which defines length, the picture will be updated with the length specified for the SimpleType.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support2000.magic-inc.com/docs/RFID/RFIDPMLScreen.jpg "&gt; &lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand" alt="" src="http://support2000.magic-inc.com/docs/RFID/RFIDPMLScreen.jpg " border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What About Other RFID Data Integration Types&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;To be sure, RFID vendors are not uniform or universal in their support of RFID data via PML or XML. Fortunately, eDeveloper has built in functions for the other common methodologies as well. Some vendors supply RFID Web Services, which means you can use the eDeveloper V10 Web Services wizard. That’s even easier than dealing directly with PML or other forms of XML.&lt;br /&gt;&lt;br /&gt;Occasionally, programming objects such as java objects or COM objects are provided, in which case eDeveloper can call and pass information to these objects. Keep in mind that Active RFID enables two-way data communication and write-many read-many (WMRM) storage with an RFID tag, whereas, generally speaking passive RFID is a write-once read many (WORM) technology. That means your eDeveloper applications need Active RFID if they are going to do any of the more sophisticated RFID applications.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ways to Apply RFID Technology in eDeveloper Applications&lt;/strong&gt;&lt;br /&gt;Going back to Sue Hutchinson’s comment, RFID helps to answer the question: “where’s my stuff?” One way to determine this is to sense the immediate presence of an FID tag next to a reader. This approach works well, with say, tagged parts that are passing along an assembly line. The parts are always within range of the reader. Another example of good stationary reader approaches might be warehouse doors. Some work has even been done to create “smart shelves” that sense the RFID tag of products as they are pulled on or off the shelf. For these close proximity applications, passive RFID may be satisfactory.&lt;br /&gt;But the real world does not always have these convenient thresholds.&lt;br /&gt;&lt;br /&gt;One of the technologies developing around RFID are Real-Time Locating Systems (RLTS). These systems measure the wave properties of an RFID signal to determine the location of an RFID tag. The readers are generally placed in a grid and then tuned to a room or outdoor location. Since waves travel inconsistently through and around walls, etc., bandwidth is a consideration with RLTS. In cramped spaces, UWB is often preferred and it may offer energy saving advantages as well. Battery life in an RFID tag is another important consideration. Beacons that emit constant signals use more energy and have shorter battery life than systems that simply “chirp” at an established interval.&lt;br /&gt;&lt;br /&gt;Software algorithms that calculate the location of a tag by comparing signal strengths on a grid of sensors are quite sophisticated. But they aren’t always accurate. Practical field applications show that errant readings are fairly common. When possible, a location should be calculated based on the average of several readings and not just a single reading. This approach leads to a great deal of accuracy.&lt;br /&gt;&lt;br /&gt;RLTS can be used in applications such as worker safety systems. Companies like BP use active RFID in their employee badges so that if disaster strikes at a refinery or other hazardous work location, systems can be used to pinpoint the locations of workers and visitors. Needless to say, the RFID readers in these systems have to be “hardened” to withstand violent environmental conditions such as fire and explosion.&lt;br /&gt;&lt;br /&gt;Another common use of RLTS is in asset management software systems. These often take on specialized use in various industries. Nurses need to know which room an IV cart or other mobile medical equipment was left in. Newspapers need to know where the paper stock rolls are in their automated factory. Truckyard operators need to know which spot particular trailers are located in, etc.  &lt;br /&gt;&lt;br /&gt;Glorified barcodes? Perhaps. But when was the last time a barcode could tell you whether the product it tagged has been kept at safe temperatures or automatically report its location? Sure we know we scanned it into inventory six months ago, but don’t ask us to actually find it in the store or warehouse.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-8806507968625230769?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/8806507968625230769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/8806507968625230769'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2008/01/developing-rfid-applications-with.html' title='Developing RFID Applications with eDeveloper V10'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-3620466503579069323</id><published>2007-11-26T15:47:00.000-08:00</published><updated>2007-11-26T17:14:33.566-08:00</updated><title type='text'>A Little Thanksgiving Housekeeping for eDeveloper v9.4</title><content type='html'>I know I usually write about the latest version of eDeveloper: &lt;span style="color:#3333ff;"&gt;&lt;strong&gt;eDeveloper V10&lt;/strong&gt;&lt;/span&gt;, but last week's service pack release gives me a chance to mention the latest service pack release for our older development tool version: &lt;strong&gt;&lt;span style="color:#3333ff;"&gt;eDeveloper v9.4&lt;/span&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;On Thanksgiving Day (US), November 22, 2007 Magic Software Enterprises released &lt;span style="color:#3333ff;"&gt;&lt;strong&gt;SP8&lt;/strong&gt;&lt;/span&gt;.  As always, you can install eDeveloper 9.4 Service Pack 8 using the installation wizard’s Upgrade option, the wizard automatically replaces the files that were modified since your previously-installed version. By the way, if you haven't looked at the samples for v9.4, be sure to look at the samples at:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3333ff;"&gt;ftp://ftp.magicsoftware.com/v9product/94Samples/&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Hopefully, that gives you something to be thankful for. The Service Pack only includes fixed problems, commonly known as bug fixes, which are shown here in alphabeical order, by name, and with a reference to the relevant QCR:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. ActiveX – CDO Library&lt;/strong&gt; (QCR # 249783) eDeveloper failed to show the methods or properties of the Microsoft CDO type library.&lt;br /&gt;&lt;strong&gt;2. ActiveX – MgItemSequential&lt;/strong&gt; (QCR # 755479) The first item in a collection was not retrieved when using the MgItemSequential method of a COM object.&lt;br /&gt;&lt;strong&gt;3. ActiveX – Return Value&lt;/strong&gt; (QCR # 529387) The values were not properly returned when using an ActiveX control defined as "FileSystemObject" of type library "Microsoft Scripting Runtime (Ver 1.0)".&lt;br /&gt;&lt;strong&gt;4. Application List – INIPut()&lt;/strong&gt; (QCR # 916180) A change to the application name via the Settings menu was not saved when an INIPut() function was previously used to add entries to the [MAGIC_SYSTEMS] section of the magic.ini file.&lt;br /&gt;&lt;strong&gt;5. AS400 – Get Definition&lt;/strong&gt; (QCR # 931792) Performing Get Definition on a table with indexes from a database whose name was defined in small letters added the library name as a prefix to the table and indexes’ names.&lt;br /&gt;&lt;strong&gt;6. Authorization – LDAP&lt;/strong&gt; (QCR # 750937) Specifying the wrong password when using LDAP closed the login screen and showed the previous username as the connected user.&lt;br /&gt;&lt;strong&gt;7. Authorization – LDAP&lt;/strong&gt; (QCR # 751594) eDeveloper failed to use Active Directory user accounts that were defined with a comma character in their name.&lt;br /&gt;&lt;strong&gt;8. Broker – Monitor&lt;/strong&gt; (QCR # 769359) The Broker monitor showed a threads peak value greater than the threads maximum value.&lt;br /&gt;&lt;strong&gt;9. Browser Client – .NET CLR 2&lt;/strong&gt; (QCR # 227844) Executing a Browser Client program on a machine without CLR 1.1 installed did not return the proper error message. *&lt;br /&gt;&lt;strong&gt;10. Browser Client – Check Box Control&lt;/strong&gt; (QCR # 914074) A Check Box control did not show the updated value in Browser Client display when a Verify statement was executed immediately after changing the value.&lt;br /&gt;&lt;strong&gt;11. Browser Client – Context Unload&lt;/strong&gt; (QCR # 976397) An error appeared in the mgerror log file after closing a page with a javascript function when the Context Unload Timeout environment setting was set to zero.&lt;br /&gt;&lt;strong&gt;12. Browser Client – Contexts&lt;/strong&gt; (QCR # 985850) A running context could close another context from another IE session when both contexts ran the same program.&lt;br /&gt;&lt;strong&gt;13. Browser Client – Copy and Paste&lt;/strong&gt; (QCR # 777060) The Copy and Paste options did not work in a Browser Client program that was in Query mode.&lt;br /&gt;&lt;strong&gt;14. Browser Client – Cross-site Scripting&lt;/strong&gt; (QCR # 988306) The eDeveloper requester (CGI /ISPI) had Cross-site scripting (XSS) flaws when using DefHtml Parameter settings in the Mgreq.ini file and writing direct scripts in front of the Arguments parameter in the URL.&lt;br /&gt;&lt;strong&gt;15. Browser Client – Field Range&lt;/strong&gt; (QCR # 287294) Value range on a Date field failed to work in Browser Client when the range contained spaces.&lt;br /&gt;&lt;strong&gt;16. Browser Client – Incremental Update&lt;/strong&gt; (QCR # 900738) Incremental updates did not work correctly in a Browser Client task when a Link Write was used.&lt;br /&gt;&lt;strong&gt;17. Browser Client – Screen Refresh&lt;/strong&gt; (QCR # 917684) The screen was not refreshed correctly when browsing memory tables in certain scenarios.&lt;br /&gt;&lt;strong&gt;18. Browser Client – Signed MSI&lt;/strong&gt; (QCR # 101633) The MSI file that installs the CAB files required for Browser Client execution was not signed, thus it could not be executed on sites using a strict security policy. *&lt;br /&gt;&lt;strong&gt;19. Browser Client – Transaction Cache&lt;/strong&gt; (QCR # 785229) The eDeveloper engine crashed in some specific scenarios depending on the transaction cache when running a Browser Client program.&lt;br /&gt;&lt;strong&gt;20. Builders – Components&lt;/strong&gt; (QCR # 939733) An error was returned when adding new tables to an existing component that already had some tables defined.&lt;br /&gt;&lt;strong&gt;21. Builders – WSDL&lt;/strong&gt; (QCR # 934669) The WSDL builder returned an error when tying to get the schemas from an XSD file with a URL path.&lt;br /&gt;&lt;strong&gt;22. Builders – XML&lt;/strong&gt; (QCR # 987568) The data was not read from the XML file through the "Read XML" program created in the XML component.&lt;br /&gt;&lt;strong&gt;23. Cache – Changing Modes&lt;/strong&gt; (QCR # 966543) eDeveloper switched to Create mode upon changing the mode to Modify on a screen mode program defined with no main table and the Cache Strategy set to "Position".&lt;br /&gt;&lt;strong&gt;24. Cache Strategy – Memory Gateway&lt;/strong&gt; (QCR # 254280) Scrolling using the PgDn and PgUp keys did not work properly when browsing a table whose Cache strategy was set to None and performing Sort by clicking on the table column's title.&lt;br /&gt;&lt;strong&gt;25. Cache Strategy – Memory Gateway&lt;/strong&gt; (QCR # 769691) Scrolling in a backward direction did not refresh the data properly when browsing a memory table whose Cache strategy was set to None and the column sort was used.&lt;br /&gt;&lt;strong&gt;26. Call Remote – Performance&lt;/strong&gt; (QCR # 248012) A performance problem occurred when using the "call remote" mechanism with a large user file. *&lt;br /&gt;&lt;strong&gt;27. Checker – ExpCalc()&lt;/strong&gt; (QCR # 771447) An error was shown when executing the Checker on an expression that had a nested ExpCalc function in it.&lt;br /&gt;&lt;strong&gt;28. Checker – Missing Variable&lt;/strong&gt; (QCR # 681399) The Checker failed to report on a missing variable that was defined in an expression of the "DB SQL Where" property.&lt;br /&gt;&lt;strong&gt;29. Components – CallProg()&lt;/strong&gt; (QCR # 929773) The CallProg() function executed in a component called a program from the host application instead of the program from the component application.&lt;br /&gt;&lt;strong&gt;30. Components – Load Immediate&lt;/strong&gt; (QCR # 915478) eDeveloper crashed when a model in the host application had a select program from a component that was defined with Load Immediate=No.&lt;br /&gt;&lt;strong&gt;31. Components – Orphan Tasks&lt;/strong&gt; (QCR # 991046) eDeveloper crashed upon executing a component program from a host application with orphan tasks during some scenarios.&lt;br /&gt;&lt;strong&gt;32. Confirm Update – Nested Tasks&lt;/strong&gt; (QCR # 929259) Updates made in a subtask were saved even when Confirm update was set to No by the end-user when exiting the subtask and immediately exiting the parent task.&lt;br /&gt;&lt;strong&gt;33. Controls – Border Style&lt;/strong&gt; (QCR # 974253) It was not possible to change the Border style property when selecting multiple controls and changing their style to 2D.&lt;br /&gt;&lt;strong&gt;34. Controls – Combo Box&lt;/strong&gt; (QCR # 937702) The wrong value was displayed in a combo box after creating a record when an expression was attached to both the Item List and Display List properties of the combo box.&lt;br /&gt;&lt;strong&gt;35. Controls – Image&lt;/strong&gt; (QCR # 740281) The tooltip was not displayed for Image controls when the screen resolution was changed to 1280*768.&lt;br /&gt;&lt;strong&gt;36. Controls – Image Button&lt;/strong&gt; (QCR # 985613) The 3D effect of an Image button in SP6c and above was different than previous versions.&lt;br /&gt;&lt;strong&gt;37. Controls – Line&lt;/strong&gt; (QCR # 756240) The cursor was not moved to an Edit control when there was a Line control under the Edit control and the area of the Line control was clicked on.&lt;br /&gt;&lt;strong&gt;38. Controls – Slider&lt;/strong&gt; (QCR # 602655) The Mouse Over/Out event did not work on Slider controls.&lt;br /&gt;&lt;strong&gt;39. Controls – Slider&lt;/strong&gt; (QCR # 656280) The Control Hit event handler for Slider controls was executed twice.&lt;br /&gt;&lt;strong&gt;40. Controls – Tab&lt;/strong&gt; (QCR # 992568) The screen flickered upon scrolling through the records when the form had a Tab control set with expressions on the tab’s Display list and Items list properties.&lt;br /&gt;&lt;strong&gt;41. Controls – Table&lt;/strong&gt; (QCR # 743617) It was not possible to drag and drop the table field's data when the table was wider than the MDI and the caret was positioned on the right side of the table.&lt;br /&gt;&lt;strong&gt;42. Controls – Table&lt;/strong&gt; (QCR # 777255) Records in a table were not correctly displayed when opening a table in create mode, inserting some records and then adding a new record in the middle of them.&lt;br /&gt;&lt;strong&gt;43. DB2 – Decimal Value&lt;/strong&gt; (QCR # 293057) eDeveloper did not display the decimal part of number values on a DB2 9.1 database.&lt;br /&gt;&lt;strong&gt;44. DB2 – Expand Form&lt;/strong&gt; (QCR # 781109) eDeveloper rounded the data when reading data from a DB2 table having a field with data type = DOUBLE.&lt;br /&gt;&lt;strong&gt;45. DB2 – Order By Clause&lt;/strong&gt; (QCR # 777372) The position key segments were also included in the Order By clause created for a linked table locating a non_unique index when using the DB2 and ODBC gateways.&lt;br /&gt;&lt;strong&gt;46. Debugger – Flow Monitor&lt;/strong&gt; (QCR # 728280) The CPU usage was sometimes increased to 100% when reaching a breakpoint.&lt;br /&gt;&lt;strong&gt;47. Edit Control – Multi-Line&lt;/strong&gt; (QCR # 774769) It was not possible to park on a multi-line Edit control by pressing the mouse when a 'click' event existed in the program and the Edit control had an expression on the Enable property.&lt;br /&gt;&lt;strong&gt;48. Environment – INIPut()&lt;/strong&gt; (QCR # 991880) Setting the value of RangePopTime and TempPopTime using the INIPut() function did not work when using it with Force write = False.&lt;br /&gt;&lt;strong&gt;49. Events – Control Level&lt;/strong&gt; (QCR # 915413) The control’s event handlers were not executed when modifying the field’s value, pressing Cancel, and selecting ‘No’ in the confirmation box.&lt;br /&gt;&lt;strong&gt;50. Events – Page Header&lt;/strong&gt; (QCR # 779133) The Page Header event was executed only once even when more than one output forms were outputted.&lt;br /&gt;&lt;strong&gt;51. Execution – DEP&lt;/strong&gt; (QCR # 240904) eDeveloper terminated abnormally during startup when DEP (Data Execution Prevention) was enabled for all programs. *&lt;br /&gt;&lt;strong&gt;52. Exit Operation – Background Mode&lt;/strong&gt; (QCR # 281614) An 'Exit' Operation command executing a batch file in background mode returned an error code (-1) as the return value.&lt;br /&gt;&lt;strong&gt;53. Export – Document&lt;/strong&gt; (QCR # 767712) The contents of the eDeveloper SQL Range was not written to the Export Document file when both the SQL Range and DB SQL Where Expressions were defined in the program.&lt;br /&gt;&lt;strong&gt;54. Expression Editor – Repeat Shortcut&lt;/strong&gt; (QCR # 288555) The repeat shortcut (@) was limited to a 3-digit expression number.&lt;br /&gt;&lt;strong&gt;55. Flow Monitor – Variable Window&lt;/strong&gt; (QCR # 288396) Variables that started and ended with the % (percentage) character were not displayed in the value column of the Variable window in the Flow Monitor.&lt;br /&gt;&lt;strong&gt;56. Force Record Suffix – Add Record&lt;/strong&gt; (QCR # 286131) A new record that was created in an online task defined with Cycle record main = No and Force record suffix = Yes, was not saved when skipping to the next record by pressing tab from the last field.&lt;br /&gt;&lt;strong&gt;57. Form Editor – ActiveX&lt;/strong&gt; (QCR # 764514) eDeveloper crashed when exiting a subtask with an ActiveX control on its form.&lt;br /&gt;&lt;strong&gt;58. Forms – Tooltip&lt;/strong&gt; (QCR # 768929) The tooltip was not displayed if it was defined as an expression that uses a variable from a Link operation when the main display form was other than the default form.&lt;br /&gt;&lt;strong&gt;59. Functions – CtrlGoto()&lt;/strong&gt; (QCR # 764538) eDeveloper did not respond after scrolling through the table using the scroll wheel of the mouse when CtrlGoto() was used in the Record Prefix.&lt;br /&gt;&lt;strong&gt;60. Functions – CtxSize()&lt;/strong&gt; (QCR # 778885) The CtxSize() function refreshed the last used context information when it was used.&lt;br /&gt;&lt;strong&gt;61. Functions – CurRow()&lt;/strong&gt; (QCR # 741409) The CurRow()function returned wrong results if the Resident Task property of the task was set to "Yes" and when the task range was changed so that there were no records in the range.&lt;br /&gt;&lt;strong&gt;62. Functions – IOSize()&lt;/strong&gt; (QCR # 997160) The IOSize()function returned negative values for files larger than 2 GB.&lt;br /&gt;&lt;strong&gt;63. Functions – KbGet()&lt;/strong&gt; (QCR # 772271) The KbGet() function returned a wrong value when used in the Record Main compatible logic unit.&lt;br /&gt;&lt;strong&gt;64. Functions – VarSet()&lt;/strong&gt; (QCR # 300356) eDeveloper crashed when a numeric expression was set to an alpha variable using the VarSet() function.&lt;br /&gt;&lt;strong&gt;65. HTML Form – Hyperlink&lt;/strong&gt; (QCR # 967502) An HTML form defined with Input=Yes and set with a Hyperlink that referred to an eDeveloper program, did not dynamically add the three hidden arguments, Application, Prgname, and Arguments, to the form tags that are generated at runtime when the called child task/program also output an HTML form.&lt;br /&gt;&lt;strong&gt;66. Image – Resolution&lt;/strong&gt; (QCR # 910920) An image was not displayed properly in some resolutions.&lt;br /&gt;&lt;strong&gt;67. Import – Special Characters&lt;/strong&gt; (QCR # 939169) eDeveloper could not import an export of a program that contained special characters in some of its properties.&lt;br /&gt;&lt;strong&gt;68. Interface Builder – Web Services&lt;/strong&gt; (QCR # 334866) When creating a Web Service using the Web Service Interface builder and clicking the Verify Structure button, an error was sometimes received.&lt;br /&gt;&lt;strong&gt;69. LDAP – Binding&lt;/strong&gt; (QCR # 998962) Using OU did not work when entered in the Connection String property.&lt;br /&gt;&lt;strong&gt;70. Memo – Tab Display&lt;/strong&gt; (QCR # 774357) Memo fields that contained the Tab character were not displayed properly when leaving the field.&lt;br /&gt;&lt;strong&gt;71. Memory Leak – Link Write&lt;/strong&gt; (QCR # 911077) A memory leak occurred after executing a batch program having a Link Write operation in background mode when the MaxConcurrentRequests were reached.&lt;br /&gt;&lt;strong&gt;72. Merge – Performance&lt;/strong&gt; (QCR # 775792) Performing a merge operation on a template that had rows and columns took a very long time when there were a lot of rows to merge.&lt;br /&gt;&lt;strong&gt;73. MSSQL – Browser Client&lt;/strong&gt; (QCR # 303363) Link Query defined in the main program was executed after every record execution in any task even when there was a fixed value in the Link Locate expression.&lt;br /&gt;&lt;strong&gt;74. MSSQL – Error Handlers&lt;/strong&gt; (QCR # 728381) eDeveloper crashed while browsing records on an MSSQL database when some rows were deleted from another session.&lt;br /&gt;&lt;strong&gt;75. MSSQL – Hint&lt;/strong&gt; (QCR # 910662) An error was obtained when ‘FORCE_INDEX’ was used as a hint on SQL Server 2005.&lt;br /&gt;&lt;strong&gt;76. MSSQL – Locate&lt;/strong&gt; (QCR # 757582) eDeveloper did not perform the incremental locate properly when typing fast.&lt;br /&gt;&lt;strong&gt;77. MSSQL – Numeric Field&lt;/strong&gt; (QCR # 248887) A numeric field stored as a signed integer with SQL type set to bit displayed as 1 in eDeveloper when the numeric field's picture was larger than 1 and included the N character. *&lt;br /&gt;&lt;strong&gt;78. MSSQL – Sort&lt;/strong&gt; (QCR # 998843) eDeveloper did not send a sort command to the RDBMS when the sort was done by the user on columns from the Main table and Link Joined table.&lt;br /&gt;&lt;strong&gt;79. MSSQL – Stored Procedure&lt;/strong&gt; (QCR # 784462) eDeveloper crashed when running a program that calls a generated stored procedure where a Locate is performed on a field that was moved.&lt;br /&gt;&lt;strong&gt;80. MSSQL&lt;/strong&gt; – View Refresh (QCR # 970880) eDeveloper crashed upon closing a DSQL task after performing a view refresh operation when the result database was MSSQL.&lt;br /&gt;&lt;strong&gt;81. Multilingual – Trim&lt;/strong&gt; (QCR # 912733) The MlsTrans() function returned a trimmed string when no matching translation string was found.&lt;br /&gt;&lt;strong&gt;82. OLE – Instantiation&lt;/strong&gt; (QCR # 782361) An OLE object was not instantiated correctly when it was part of a collection.&lt;br /&gt;&lt;strong&gt;83. Operations – Block&lt;/strong&gt; (QCR # 778724) The 'Block Else' condition was executed even though the 'Block If ' condition evaluated to True.&lt;br /&gt;&lt;strong&gt;84. Oracle – Charset&lt;/strong&gt; (QCR # 756467) The correct row was not retrieved when ranging a value using Picture on an Oracle table and using "NLS_CHARACTERSET=WE8MSWIN1252".&lt;br /&gt;&lt;strong&gt;85. Pervasive – Deferred Transactions&lt;/strong&gt; (QCR # 982443) eDeveloper returned an error when deleting records from a Deferred Transaction program that had a Link Inner Join operation.&lt;br /&gt;&lt;strong&gt;86. Pervasive – Duplicate Index&lt;/strong&gt; (QCR # 774018) eDeveloper did not show the "Duplicate Index" error message when creating records using "Link Create" in a batch program that did not use a Pervasive database transaction.&lt;br /&gt;&lt;strong&gt;87. Pervasive – New Table&lt;/strong&gt; (QCR # 15457) A Unique Identifier error appeared when creating a new table with a float (4) field on Pervasive 9.5 database.&lt;br /&gt;&lt;strong&gt;88. Pervasive – ODBC&lt;/strong&gt; (QCR # 926120) An error appeared when using the Pervasive ODBC Client Interface and executing a program with a certain index definition.&lt;br /&gt;&lt;strong&gt;89. Pervasive – SQL Range&lt;/strong&gt; (QCR # 913959) eDeveloper crashed when performing view refresh on a program with a Pervasive table that was once an SQL table and had an SQL range defined.&lt;br /&gt;&lt;strong&gt;90. Print Preview – Expand Form&lt;/strong&gt; (QCR # 780319) Table data was not displayed correctly in the Print Preview when the Expand Form option was used.&lt;br /&gt;&lt;strong&gt;91. Print Preview – Images&lt;/strong&gt; (QCR # 993173) The Image control on print preview had a different size and display colors compared with image controls in versions prior to SP5.&lt;br /&gt;&lt;strong&gt;92. Printers – Number of Copies&lt;/strong&gt; (QCR # 979100) The Copies property value defined in the default printer settings of the operating system was not shown in eDeveloper.&lt;br /&gt;&lt;strong&gt;93. Printing – Multi- line Edit&lt;/strong&gt; (QCR # 989830) The printed header lines of the second page and onwards were corrupted when printing a report that prints multi-line edit fields.&lt;br /&gt;&lt;strong&gt;94. Printing – Tasks&lt;/strong&gt; (QCR # 777828) eDeveloper sometimes crashed while printing the forms from two tasks into the same printer when headers and footers were defined.&lt;br /&gt;&lt;strong&gt;95. Range – Cache&lt;/strong&gt; (QCR # 994246) Records were not displayed properly when updating them from a batch task and displaying them according to range when not all the variables from the table were selected.&lt;br /&gt;&lt;strong&gt;96. Record Suffix – Mouse Click&lt;/strong&gt; (QCR # 770744) The Record Suffix was not executed when clicking on an Edit control in a child task in certain scenarios.&lt;br /&gt;&lt;strong&gt;97. Records Display – No Index&lt;/strong&gt; (QCR # 759564) Records were not displayed properly when selecting a table that does not have an index and selecting only some of the variables in the task.&lt;br /&gt;&lt;strong&gt;98. Requester – HTTPVars&lt;/strong&gt; (QCR # 996861) Error (-103) occurred when the HTTPVars parameter string in the Mgreq.ini file was too long.&lt;br /&gt;&lt;strong&gt;99. Rights – Components&lt;/strong&gt; (QCR # 765845) eDeveloper sometimes showed controls on a form defined in a component even if the user that was logged on did not have rights for them.&lt;br /&gt;&lt;strong&gt;100. SQL – Range&lt;/strong&gt; (QCR # 755614) An error was received when ranging on a virtual variable that was defined with Null allowed=Yes in certain scenarios.&lt;br /&gt;&lt;strong&gt;101. Table – HitZOrder()&lt;/strong&gt; (QCR # 996362) The HitZOrder() function returned a unique value for the controls in each row in a table instead of returning the same value for all the controls in the same column.&lt;br /&gt;&lt;strong&gt;102. Table – Logical Names&lt;/strong&gt; (QCR # 996418) A gateway error was returned when altering a table that was defined with a logical name in its name and had a foreign key.&lt;br /&gt;&lt;strong&gt;103. Table – Width Recompute&lt;/strong&gt; (QCR # 913114) The table width was recomputed every record after a window resize was done when the Table control had a placement and expression on its Width property.&lt;br /&gt;&lt;strong&gt;104. Team Development – ACS&lt;/strong&gt; (QCR # 292564) eDeveloper crashed on checking out a program when using ACS file for the same database as the MCF.&lt;br /&gt;&lt;strong&gt;105. Team Development – Components&lt;/strong&gt; (QCR # 932448) eDeveloper crashed when activating Team development for components in a specific scenario.&lt;br /&gt;&lt;strong&gt;106. Text-based Forms – Horizontal Alignment&lt;/strong&gt; (QCR # 931771) The Horizontal Alignment property of a variable pasted on a Text-based form could not be changed if the Text control of the variable was pasted near any of the variables on the form.&lt;br /&gt;&lt;strong&gt;107. Tools – Export&lt;/strong&gt; (QCR # 923487) eDeveloper crashed when trying to export an application that has a component using the Tools infrastructure in Background mode.&lt;br /&gt;&lt;strong&gt;108. Tree Control – Drop&lt;/strong&gt; (QCR # 941906) The Drop event did not work properly when performed on a Tree control.&lt;br /&gt;&lt;strong&gt;109. Version Control – Folders&lt;/strong&gt; (QCR # 765202) eDeveloper crashed after performing the version control sync operation on an application with folders.&lt;br /&gt;&lt;strong&gt;110. Web Service – Call Operation&lt;/strong&gt; (QCR # 773587) eDeveloper hanged when loading some WSDL files into a Call Web Service operation.&lt;br /&gt;&lt;strong&gt;111. WSDL – Call Web Service&lt;/strong&gt; (QCR # 996400) Some methods in a WSDL file could not be loaded using the Call Web Service operation.&lt;br /&gt;&lt;br /&gt;Please feel free to contact us at anytime with suggestions for improvements to eDeveloper.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;color:#cc9933;"&gt;Happy Thanksgiving!&lt;/span&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-3620466503579069323?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/3620466503579069323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/3620466503579069323'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2007/11/little-thanksgiving-housekeeping-for.html' title='A Little Thanksgiving Housekeeping for eDeveloper v9.4'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-6395479770358413598</id><published>2007-10-05T15:38:00.000-07:00</published><updated>2007-10-05T15:46:34.573-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unicode web development'/><category scheme='http://www.blogger.com/atom/ns#' term='Magic'/><category scheme='http://www.blogger.com/atom/ns#' term='Unicode applications'/><category scheme='http://www.blogger.com/atom/ns#' term='Unicode application development'/><category scheme='http://www.blogger.com/atom/ns#' term='eDeveloper'/><category scheme='http://www.blogger.com/atom/ns#' term='Unicode'/><title type='text'>Unicode Makes Multiple Languages Easier In Your eDeveloper V10 Applications</title><content type='html'>One of the important enhancements to eDeveloper V10 is the addition of full support for Unicode. This FAQ is designed to answer some of the high-level questions you may have regarding Unicode and its use in eDeveloper V10.  &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Q. What is Unicode? &lt;br /&gt;&lt;br /&gt;A. The official definition can be found on the Unicode Consortium website in their glossary:&lt;br /&gt;&lt;br /&gt;“Unicode. The universal character encoding, maintained by the Unicode Consortium (http://www.unicode.org/). This encoding standard provides the basis for processing, storage and interchange of text data in any language in all modern software and information technology protocols.”&lt;br /&gt;&lt;br /&gt;Q. What are the benefits of Unicode?&lt;br /&gt;&lt;br /&gt;A. Once again we turn to the Unicode Consortium for an answer:&lt;br /&gt;&lt;br /&gt;“Unicode provides a unique number for every character, no matter what the platform, no matter what the program, no matter what the language. The Unicode Standard has been adopted by such industry leaders as Apple, HP, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase, Unisys and many others. Unicode is required by modern standards such as XML, Java, ECMAScript (JavaScript), LDAP, CORBA 3.0, WML, etc., and is the official way to implement ISO/IEC 10646. It is supported in many operating systems, all modern browsers, and many other products. The emergence of the Unicode Standard, and the availability of tools supporting it, are among the most significant recent global software technology trends.”&lt;br /&gt;&lt;br /&gt;“Incorporating Unicode into client-server or multi-tiered applications and websites offers significant cost savings over the use of legacy character sets. Unicode enables a single software product or a single website to be targeted across multiple platforms, languages and countries without re-engineering. It allows data to be transported through many different systems without corruption.”&lt;br /&gt;&lt;br /&gt;Q. How extensively does eDeveloper V10 support Unicode?&lt;br /&gt;&lt;br /&gt;A. eDeveloper V10 now includes across-the-board Unicode support within the product. Support for Unicode is provided in addition to existing support for both the ANSI and OEM standards.&lt;br /&gt;&lt;br /&gt;Q. What specific Unicode capabilities are included in eDeveloper V10?&lt;br /&gt;&lt;br /&gt;A. Unicode support in eDeveloper V10 includes the ability to read from and write to Unicode database fields; capability to input and output Unicode data to various Input and Output files; options to create program logic for Unicode data; techniques to perform read and write operations on Unicode files; capacity to send and receive Unicode data to and from external systems; and power to use Unicode definitions in expressions, functions, and form properties.&lt;br /&gt;&lt;br /&gt;Q. What capabilities are there for Unicode Conversion?&lt;br /&gt;&lt;br /&gt;A. eDeveloper V10’s implicit casting mechanism lets you select the code pages you&lt;br /&gt;want to use for conversion to and from Unicode. If you don’t select the code&lt;br /&gt;pages, eDeveloper V10 will use its own default code page. For purposes of explicit casting, there are two new functions:&lt;br /&gt;• UnicodeFromANSI&lt;br /&gt;• UnicodeToANSI&lt;br /&gt;&lt;br /&gt;Q. Is it true that Unicode functions have been added to eDeveloper V10?&lt;br /&gt;&lt;br /&gt;A. Yes, to complement the Unicode support, two new Unicode-related functions have&lt;br /&gt;been added.&lt;br /&gt;• UnicodeCHR - Converts a numeric value to a corresponding Unicode&lt;br /&gt;character&lt;br /&gt;• UnicodeVal - Converts a Unicode character to a corresponding numeric&lt;br /&gt;value&lt;br /&gt;&lt;br /&gt;Q. Are there utilities for Unicode Conversion?&lt;br /&gt;&lt;br /&gt;A. Absolutely. eDeveloper V10 includes utilities that help you convert data from Unicode to ANSI and from ANSI to Unicode. The utilities let you define the input and output files as well as the code page to use, if you don’t want to use the default code page.&lt;br /&gt;&lt;br /&gt;Q. Are there resources on the web to help us learn more about Unicode?&lt;br /&gt;&lt;br /&gt;A. Of course. Start, of course with Unicode.org at http://www.unicode.org/&lt;br /&gt;&lt;br /&gt;While I am sure you can google on your own, here are a couple more interesting pages to get you started on a nice long surfing expedition:&lt;br /&gt;&lt;br /&gt;Alan Wood’s Page&lt;br /&gt;http://www.alanwood.net/unicode/&lt;br /&gt;This is a good resource page with links to many other useful sites.&lt;br /&gt;&lt;br /&gt;W3C Page&lt;br /&gt;And of course, W3C could not possibly be silent on a subject as important as Unicode, here is the XML/Unicode page:&lt;br /&gt;http://www.w3.org/TR/unicode-xml/&lt;br /&gt;&lt;br /&gt;Q. What character sets are supported by Unicode?&lt;br /&gt;&lt;br /&gt;A. “More than you will ever need” is probably the shortest answer.&lt;br /&gt;&lt;br /&gt;Specifically, Unicode 2.0 supports scripts for Arabic, Armenian, Bengali, Bopomofo, Cyrillic, Devanagari (the script employed by Hindi and Sanskrit), Georgian, Greek, Gujarati, Gurmukhi, Han, Hangul, Hebrew, Hiragana, Kannada, Katakana, Latin (including the international phonetic alphabet IPA), Lao, Malayalam, Oriya, Tamil, Telugu, Thai, and Tibetan scripts. These scripts are all written horizontally. Hebrew and Arabic are of course written right to left. Indic scripts are written variously and in ways that are sometimes described as a circular motion. Arabic and the Indic scripts must use intelligent ligature selection. &lt;br /&gt;&lt;br /&gt;Unicode 3.0 expands some existing scripts and adds Braille, Canadian Aboriginal, Cherokee, Ethiopic, Khmer, Mongolian, Myanmar, Ogham, Runic, Sinhala, Syriac, Thaana, and Yi. Mongolian is the first script that can only be written in vertical rows. &lt;br /&gt;&lt;br /&gt;Besides the characters for writing the world's major languages, there is a whole set of typographic, technical, graphical, mathematical, astrological and other scientific symbols and geometrical shapes in Unicode.&lt;br /&gt;&lt;br /&gt;Q. I heard Unicode has limited support for Chinese, Japanese and Korean. Is that true?&lt;br /&gt;&lt;br /&gt;A. Unicode supports Han scripts such as those used in Chinese, Japanese and Korean (often called CJK). Unfortunately some urban legends or myths have developed  about the support of CJK characters in Unicode. According to unicode.org, “The Unicode Standard supports all of the CJK characters from JIS X 0208, JIS X 0212, JIS X 0221, or JIS X 0213, for example, and many more. This is true no matter which encoding form of Unicode is used: UTF-8, UTF-16, or UTF-32.”&lt;br /&gt;&lt;br /&gt;In fact, Unicode supports more than 70,000 CJK characters.  More will undoubtedly be added, but you can be assured that the support is comprehensive already and goes above and beyond what is expected. Unicode.org reports that “the International Standard ISO/IEC 10646 and the Unicode Standard are completely synchronized in repertoire and content. And that means that Unicode has the same repertoire as GB 18030, since that also is synchronized with ISO 10646 — although with a different ordering and byte format.” Rather a mouthful for those that do not follow these things in detail. And in the final analysis, that is the beauty of eDeveloper 10 – as with all previous versions of Magic, you do not need to get bogged down in the underlying technical details. With eDeveloper 10, just sit back, relax and enjoy full Unicode support.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-6395479770358413598?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/6395479770358413598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/6395479770358413598'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2007/10/one-of-important-enhancements-to.html' title='Unicode Makes Multiple Languages Easier In Your eDeveloper V10 Applications'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-7301322979885331404</id><published>2007-10-05T13:40:00.000-07:00</published><updated>2010-08-28T08:30:00.441-07:00</updated><title type='text'>Compliance Requirements Strain IT Resources</title><content type='html'>For those of you keeping track of Magic Software's entry into the podcast age, here is a link to the interview on the subject of compliance with Carol Woodbury, Founder and President of Skyview Partners.&lt;br /&gt;&lt;br /&gt;Learn more about the webinar &lt;a href="http://www.magicsoftware.com/bin/en.jsp?enVersion=0&amp;lNavZ=root&amp;enDispWhat=object&amp;type=misc&amp;branch=hq&amp;enZone=misc&amp;enDispWho=misc%5El147&amp;enPage=InnerPage&amp;enDisplay=view"&gt;here&lt;/a&gt; on Magic's website.&lt;br /&gt;&lt;br /&gt;For information on &lt;a href="http://it.toolbox.com/blogs/integrate-my-jde/erp-integration-patterns-and-best-practices-40133"&gt;ERP Integration&lt;/a&gt;, please look at the Integrate My JDE blog. You will find information on ERP and accounting interfaces and integration with CRM systems, enterprise portals, eCommerce, social media, and other business applications and software.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-7301322979885331404?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/7301322979885331404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/7301322979885331404'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2007/10/compliance-requirements-strain-it.html' title='Compliance Requirements Strain IT Resources'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-5432692099722298816</id><published>2007-05-10T13:46:00.000-07:00</published><updated>2007-05-10T17:35:51.968-07:00</updated><title type='text'>Thanks for the Memories: MIUG 2007</title><content type='html'>What a great MIUG 2007! Thanks to everyone who participated in and attended this year's MIUG 2007. I hope that you will agree that this event provided an excellent foundation for members of the Magic community looking to advance and grow their businesses using the greatest development tool on the market today.&lt;br /&gt;&lt;br /&gt;The key word at this year's event seems to have been "transparency." Thank you WIRED magazine for placing this concept top of mind for everyone. You probably noticed a few things that were different at this year's conference:&lt;br /&gt;&lt;br /&gt;1. We started by showing our imminent built-in support for PDF. I am thinking that since it took us 6+ years of MIUG to release this feature, we should start each conference for the next six years by doing a PDF demo. :) The reason this is an evidence of transparency is that it showed that we listened to the input from last year, admitted our mistakes, and moved on.&lt;br /&gt;&lt;br /&gt;2. The demonstration of he Rich Internet Client is also an evidence of transparency, in that we are showing that the input received during the CAPP migration process of last year has also influenced heavily on our development decisions.&lt;br /&gt;&lt;br /&gt;3. Two years ago at MIUG, you may remember that we discussed the need for lower cost licensing models. It took us a little over a year to implement our solution, but we have also responded in a big way with the Discovery/Xpress/Enterprise Edition structure to answer the needs for seeding, affordability and power, respectively.&lt;br /&gt;&lt;br /&gt;4. The focus roup sessions were invaluable. I am sure that you will see great things coming from Avishai Shafir as the lead person directing our Magic community programs and marketing. &lt;br /&gt;&lt;br /&gt;5. Once again, we were delighted to be able to provide knowledgeable presenters from our R&amp;D, technical support and professional services teams. We also love all of the presentations by each of you in the user community. The depth of your knowledge is invaluable.&lt;br /&gt;&lt;br /&gt;6. Having our chairman, David Assia, present with us at MIUG was the icing on the cake this year. David's passion and vision are obvious and I hope that you can see that the future of eDeveloper is bright.&lt;br /&gt;&lt;br /&gt;I want to take this opportunity to once again thank Dale and Heidi Schuppenauer and Cabrita Software for organizing the conference as well as SUmmer Remmert for her assistance.&lt;br /&gt;&lt;br /&gt;See you all in 2008!&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-5432692099722298816?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/5432692099722298816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/5432692099722298816'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2007/05/thanks-for-memories-miug-2007.html' title='Thanks for the Memories: MIUG 2007'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-4270931063520698108</id><published>2007-03-03T12:18:00.000-08:00</published><updated>2007-03-03T12:20:08.840-08:00</updated><title type='text'>eDeveloper V10 Advanced Features Webinar</title><content type='html'>&lt;h3&gt;eDeveloper V10 -- Advanced Features&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Topic&lt;/b&gt;:  eDeveloper V10 -- Advanced Features &lt;br /&gt;&lt;b&gt;Date&lt;/b&gt;:   Wednesday, March 21, 2007 &lt;br /&gt;&lt;b&gt;Time&lt;/b&gt;:  11:00 am, Pacific Daylight Time (GMT -07:00, San Francisco) &lt;br /&gt;&lt;br /&gt;Join Roberto Ramirez, a Senior Consultant in the Professional Services Department at Magic Software Enterprises, Inc. in Laguna Hills, California, who will present three important advanced features in eDeveloper V10:&lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;b&gt;Report Generator&lt;/b&gt;. End users seek applications that allow them to build their own reports on the fly. The powerful new runtime report generator in eDeveloper V10 Enterprise Edition is better than ever and will be explored from both the developers' and the end users' perspective. &lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;b&gt;Team Development&lt;/b&gt;. It's hard enough for a solo programmer to keep track of revisions and versions of their software. When you add one or more additional developers, then team development solutions are vital. With eDeveloper V10 Enterprise Edition you can use the source code control software of your choice, including the bundled CVS software. &lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;b&gt;Graphical User Interface Enhancements&lt;/b&gt;. Your users will absolutely love the enhanced usability and improved aesthetics of the new applications you create with eDeveloper V10. Learn what you can do now to create immediate raves from your customers and end users. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Registration.&lt;/b&gt; To attend this meeting, you must first register for it. Please click &lt;a href=https://magicsoftware.webex.com/magicsoftware/j.php?ED=91988332&amp;RG=1&gt;here&lt;/a&gt; to see more information about and &lt;a href=https://magicsoftware.webex.com/magicsoftware/j.php?ED=91988332&amp;RG=1&gt;register for this meeting&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;Once you have registered for the meeting, you will receive an email message confirming your registration. This message will provide the information that you need to join the meeting.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-4270931063520698108?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/4270931063520698108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/4270931063520698108'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2007/03/edeveloper-v10-advanced-features.html' title='eDeveloper V10 Advanced Features Webinar'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-6334420296359467738</id><published>2007-02-26T15:50:00.000-08:00</published><updated>2007-02-26T16:04:39.896-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software quality'/><category scheme='http://www.blogger.com/atom/ns#' term='RADD'/><category scheme='http://www.blogger.com/atom/ns#' term='application development'/><category scheme='http://www.blogger.com/atom/ns#' term='RAD'/><category scheme='http://www.blogger.com/atom/ns#' term='ISO 9126'/><category scheme='http://www.blogger.com/atom/ns#' term='software testing'/><category scheme='http://www.blogger.com/atom/ns#' term='rapid application development'/><category scheme='http://www.blogger.com/atom/ns#' term='eDeveloper'/><title type='text'>How do you define software quality?</title><content type='html'>&lt;b&gt;ISO 9126&lt;/b&gt; provides a standardized way to evaluate software quality by defining six sets of attributes by which we can evaluate software. These attribute sets are functionality, reliability, usability, efficiency, maintainability, and portability. What do they mean by these standards?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Functionality&lt;/b&gt; refers to the &lt;i&gt;existence&lt;/i&gt; of a set of functions and their associated properties. Functionality gets to the fundamental ability of a software application to perform the required tasks necessary to satisfy user and organizational needs. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Reliability&lt;/b&gt; refers to the stable performance of these functions under a variety of conditions across time.  &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Usability&lt;/b&gt; as approached by ISO 9126 deals with the effort needed for use, and user assessment and acceptance. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Efficiency&lt;/b&gt; is all about performance issues and the resources required to perform the software functions under various conditions over time.&lt;br /&gt; &lt;br /&gt;Functionality, reliability, usability and efficiency are all characteristics observable by users or operators. The other two criteria for measuring software quality that are contained in ISO 9126 relate to the developers ability to interact with a given software application. It isn't only an assessment of the tools used, but also how well the tools were used to accomplish the need for these next criteria:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Maintainability&lt;/b&gt; looks at the effort required to make specific modifications. We all know that some applications are easier to maintain than others due to variations in documentation, organization and software architecture.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Portability&lt;/b&gt;, or the ability to run applications in new environments, can also be impacted by the developer, and not simply by the tools she uses. For example, an application that utilizes many environment specific utilities may be more difficult to port to a new environment where those utilities may be unavailable or handled in a different manner.&lt;br /&gt;&lt;br /&gt;With eDeveloper V10, you gain a software development environment for application development, testing, and deployment that enhances software quality in all of these areas for a number of reasons. In future posts, will look at all of these areas in detail.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-6334420296359467738?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/6334420296359467738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/6334420296359467738'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2007/02/how-do-you-define-software-quality.html' title='How do you define software quality?'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-4113751182482570313</id><published>2007-02-22T09:18:00.000-08:00</published><updated>2007-02-22T09:21:11.342-08:00</updated><title type='text'>Magic eDeveloper Enters the Podcast Age</title><content type='html'>Well folks, here it is the long awaited and much ballyhooed eDeveloper Contest podcast. Please click &lt;a href=http://prwebpodcast.com/releases/pod505458.htm&gt;here&lt;/a&gt; and enjoy the first ever (and definitely not the last) Magic eDeveloper podcast.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-4113751182482570313?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/4113751182482570313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/4113751182482570313'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2007/02/magic-edeveloper-enters-podcast-age.html' title='Magic eDeveloper Enters the Podcast Age'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-663745228606332950</id><published>2007-02-07T16:06:00.000-08:00</published><updated>2007-02-07T16:39:37.920-08:00</updated><title type='text'>Get Ready for Daylight Savings Time 2007</title><content type='html'>Does your application use a table that lists the date and time of the switch to/from Daylight Savings time? If so, be forwarned: Congress has changed the dates in the United States beginning in 2007! Canada and many Carribean countries have changed their DST timetables as well.&lt;br /&gt;&lt;br /&gt;Previous start to DST: First Sunday of April (1 April 2007)&lt;br /&gt;New start of DST: Second Sunday of March (11 March 2007)&lt;br /&gt;Previous end of DST: last Sunday of October (28 October 2007)&lt;br /&gt;New end of DST: first Sunday of November (4 November 2007)&lt;br /&gt;&lt;br /&gt;What types of applications could be afected? &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Scheduling Applications. &lt;/b&gt;The most obvious are calendaring or scheduling applications, especially those that accomodate multiple international time zones. One example might be an international air freight scheduling system. Another example would be CRM scheduling systems that send email notices that localize the time of a scheduled appointment.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Applications with Time Calculations.&lt;/b&gt; An application that performs calculations using minutes or hours could be thrown off. For example, piece workers who are paid bonuses based on exceeding a certain number of pieces in a given time period. The calculations could be off by 60 minutes or 1 hour. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Data Synchronization Batch Jobs&lt;/b&gt; Suppose one data center is scheduled to synchronize data at a given local time, say 2 am, and another data center is normally completing its batch jobs prior to that so that the synched data center has current information -- or at least they should have, but the foreign data center does not know that it is synchronizing to data that has not yet updated because of the time change. Since it is a batch job that has not completed, the information could be off by a complete 24 hours or more. Any reports generated against that information, or supply chain orders dependent on that information, could be seriously off. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Planes Will Not Fall Out of the Sky&lt;/b&gt; I talked to my colleagues about this and they reminded me that planes will not fall out of the sky. But it is worth considering now, whether any of your applications are dependent on accurate update of daylight savings time.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-663745228606332950?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/663745228606332950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/663745228606332950'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2007/02/get-ready-for-daylight-savings-time.html' title='Get Ready for Daylight Savings Time 2007'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-5601763604106381803</id><published>2007-02-05T22:00:00.000-08:00</published><updated>2008-12-09T01:07:13.063-08:00</updated><title type='text'>The New Report Generator</title><content type='html'>&lt;strong&gt;Important: The New Report Generator is Here&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;1. What is it good for? &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Many years ago eDeveloper (then named Magic) used to come bundled with a report generator. This was an amazing tool, basically allowing end users to create their own reports by letting them run existing reports, create new reports, delete reports, duplicate reports, load reports created by others, view the results of an existing report, or print a report, based on warehouse type views created by developers. Some of you may have missed the new report generator that was slipped into eDeveloper V10.1. It sort of snuck in the side door with the 10.1 version and very little noise has been made about it to date. So let's correct that now: the report generator is back and its more powerful than ever. There are two other ways to deal with report generation that are documented in the Help files for eDeveloper. But the new Report Generator has its own help files from which I will summarize.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. So, how do I use it?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;2.1. Loading &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a component and then zoom to select the ReportingGenerator.eci application from the Add_On directory. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;In the task you want to work with, set the Print Data property in the Options tab of the Task Properties dialog box to Yes. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Run the program that you want to print data from. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Press CTRL+P to open the Report Generator. The Select Report screen opens.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;strong&gt;2.2. Using the Generator &lt;/strong&gt;&lt;br /&gt;The Select Report screen helps you manage reports with the following options (available as buttons or options in the File menu):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;New - Opens the Report Creation wizard where you can create a new report. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Edit - Lets you edit the report that you have selected.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Delete - Deletes the report that you have selected. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Duplicate - Copies the report that you have selected. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Load - Lets you use reports created by others for the same eDeveloper program. You do this by moving reports to a visible place on your computer and then clicking the Load icon. This enables you to select the required report. This option is in the File menu. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Preview - Provides a preview of the report that you have selected. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Print - Prints the report that you have selected. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;2.2.1. Report Creation Wizard &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;The Report Generator is equipped with a wizard that helps you create your report easily, step by step. Click New in the Select Report screen to activate the Report Creation wizard.&lt;br /&gt;The Report Creation wizard contains six simple steps, but you do not have to complete all six steps to create a report. You may complete your report and exit the wizard at any time by clicking Finish or Close.&lt;br /&gt;If you click Finish, the wizard closes, the Design screen opens, and the information you have entered in the wizard screens is automatically saved.&lt;br /&gt;If you click Close, the wizard closes, the Design screen opens, but the information you have entered will not be saved unless you click Save.&lt;br /&gt;The six steps of the Report Generation Wizard are:&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;2.2.1.1. Setting&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The Setting step lets you define your report name and layout.&lt;br /&gt;The report default name is the name of the eDeveloper program where the Report Generator is activated&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2.2.1.2. &lt;/strong&gt;&lt;strong&gt;Columns&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The Columns step lets you select the variables you want to display, and their order, in the report table.&lt;br /&gt;The left part of the screen shows the available columns, which includes all the fields selected in the eDeveloper program. The right part of the screen shows the columns you selected to be included in your report.&lt;br /&gt;On the Columns screen you can perform the operations listed below:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Rename a column by clicking on the column, and then clicking the &lt;a href="http://4.bp.blogspot.com/_f__2kWMDw70/Rcgo5LJhIuI/AAAAAAAAABw/ZfJMDuQHwy0/s1600-h/image001.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028313946669523682" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_f__2kWMDw70/Rcgo5LJhIuI/AAAAAAAAABw/ZfJMDuQHwy0/s320/image001.gif" border="0" /&gt;&lt;/a&gt;button&lt;a href="http://1.bp.blogspot.com/_f__2kWMDw70/RcglrbJhIrI/AAAAAAAAABM/MnM-cpv97nM/s1600-h/image001.gif"&gt;&lt;/a&gt;. Enter a new name in the Column Properties dialog box and click OK.Note: This only changes the column name for the current report. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Change the Date Format by marking a Date column you would like to change and pressing the &lt;a href="http://4.bp.blogspot.com/_f__2kWMDw70/Rcgo5LJhIuI/AAAAAAAAABw/ZfJMDuQHwy0/s1600-h/image001.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028313946669523682" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_f__2kWMDw70/Rcgo5LJhIuI/AAAAAAAAABw/ZfJMDuQHwy0/s320/image001.gif" border="0" /&gt;&lt;/a&gt;button. You can edit the column name and change its date format in the Column Properties dialog box and click OK.Note: The default format for Date columns is dd/mm/yyyy. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select all columns by pressing&lt;a href="http://1.bp.blogspot.com/_f__2kWMDw70/Rcgo5bJhIvI/AAAAAAAAAB4/Ro8d2Bc0_n4/s1600-h/image002.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028313950964490994" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_f__2kWMDw70/Rcgo5bJhIvI/AAAAAAAAAB4/Ro8d2Bc0_n4/s320/image002.jpg" border="0" /&gt;&lt;/a&gt; the button. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select a variable by using one of the following methods:&lt;br /&gt;Drag a variable from the Available Items list to the Selected Items list.&lt;br /&gt;Select a variable and click the&lt;a href="http://1.bp.blogspot.com/_f__2kWMDw70/Rcgo5bJhIwI/AAAAAAAAACA/bcA5vYWMb5g/s1600-h/image003.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028313950964491010" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_f__2kWMDw70/Rcgo5bJhIwI/AAAAAAAAACA/bcA5vYWMb5g/s320/image003.jpg" border="0" /&gt;&lt;/a&gt; button.&lt;br /&gt;Double-click on a variable in the Available Items list. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Unselect all columns by pressing the &lt;a href="http://1.bp.blogspot.com/_f__2kWMDw70/Rcgo5bJhIxI/AAAAAAAAACI/PRE0gFZs2M8/s1600-h/image004.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028313950964491026" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_f__2kWMDw70/Rcgo5bJhIxI/AAAAAAAAACI/PRE0gFZs2M8/s320/image004.gif" border="0" /&gt;&lt;/a&gt;button. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Unselect a column by marking the column and pressing the&lt;a href="http://2.bp.blogspot.com/_f__2kWMDw70/Rcgo5rJhIyI/AAAAAAAAACQ/g6gWbNkA7Fk/s1600-h/image005.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028313955259458338" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_f__2kWMDw70/Rcgo5rJhIyI/AAAAAAAAACQ/g6gWbNkA7Fk/s320/image005.gif" border="0" /&gt;&lt;/a&gt; button. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Move a column up by marking it and clicking the &lt;a href="http://3.bp.blogspot.com/_f__2kWMDw70/RcgqM7JhIzI/AAAAAAAAACY/jRZcH47PU3A/s1600-h/image006.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028315385483567922" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_f__2kWMDw70/RcgqM7JhIzI/AAAAAAAAACY/jRZcH47PU3A/s320/image006.jpg" border="0" /&gt;&lt;/a&gt;button. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Move a column down by marking it and clicking the &lt;a href="http://4.bp.blogspot.com/_f__2kWMDw70/RcgqNLJhI0I/AAAAAAAAACg/LJ8p5rtckMI/s1600-h/image007.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028315389778535234" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_f__2kWMDw70/RcgqNLJhI0I/AAAAAAAAACg/LJ8p5rtckMI/s320/image007.gif" border="0" /&gt;&lt;/a&gt;button &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;2.2.1.3. &lt;/strong&gt;&lt;strong&gt;Sections&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;The Sections step lets you divide your report into subsections that are similar to the grouping in eDeveloper.&lt;br /&gt;On the Sections screen you can perform the operations listed below:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Define Section Properties – Click on the section whose properties you want to define, and then click the button to:&lt;br /&gt;- Change the title of a section.&lt;br /&gt;- Choose if you want to start the section on a new page.&lt;br /&gt;- Choose if you want to print the section title on every page.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select a column by using one of the following methods:&lt;br /&gt;- Drag a variable from the Available Items list to the Selected Items list.&lt;br /&gt;- Select a variable and click the button.&lt;br /&gt;- Double-click on a variable in the Available Items list. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Unselect all columns by pressing the button. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Unselect a column by marking the column and pressing the button. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Move a column up by marking it and clicking the button. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Move a column down by marking it and clicking the button. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;2.2.1.4. &lt;/strong&gt;&lt;strong&gt;Sorting&lt;/strong&gt;&lt;br /&gt;The Sorting step lets you define the sort order of the report.&lt;br /&gt;On the Sorting screen you can perform the operations listed below:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Change the Sort order by selecting a column and pressing the button to open the Sort Properties dialog box and select the change.Note: The default sort order of a column is ascending. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select the columns by using one of the following methods:&lt;br /&gt;- Drag a column from the Available Items list to the Selected Items list.&lt;br /&gt;- Select a column and click the button.&lt;br /&gt;- Double-click on a column in the Available items list. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Unselect all columns by pressing the button. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Unselect a column by marking the column and pressing the button. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Move a column up by marking it and clicking the button. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Move a column down by marking it and clicking the button.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;2.2.1.5. &lt;/strong&gt;&lt;strong&gt;Filtering&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br /&gt;The Filtering step lets you define an expression that will filter the report result.&lt;br /&gt;Create a filtering expression by dragging and dropping Functions, Operations, or Variables (variable names are preceded by ~) from the right list to the left working area.&lt;br /&gt;Click Test to check if the expression you created is valid. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;2.2.1.6. &lt;/strong&gt;&lt;strong&gt;Accumulators&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;The Accumulators step lets you create Accumulators for your report, such as the total salaries amount or employee count.&lt;br /&gt;Create a new Accumulator by selecting a column from the Available Items list on the left and moving it to the Selected Items list on the right.&lt;br /&gt;On the Accumulators screen you can perform the operations listed below:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Define the Accumulator type by selecting an accumulator and clicking the button.Note: The default type for numeric data is SUM, and the default type for all other data is Count. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select the Accumulators by using one of the following methods:&lt;br /&gt;- Drag a column from the Available Items list to the Selected Items list.&lt;br /&gt;- Select a column and click the button.&lt;br /&gt;- Double-click on a column in the Available items list. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Unselect all Accumulators by pressing the button. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Unselect an Accumulator by marking the column and pressing the button. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Move an Accumulator up by marking it and clicking the button. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Move an Accumulator down by marking it and clicking the button.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;2.2.2. The Design Screen &lt;/strong&gt;&lt;br /&gt;The main screen of the Report Generator is the design screen, which lets you graphically design and save the report.&lt;br /&gt;To help you create a better report with less effort, the Design screen contains the tools listed below:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2.2.2.1. &lt;/strong&gt;&lt;strong&gt;Drawing Aids Palette&lt;/strong&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;The Drawing Aids palette helps you arrange the Elements and Variables you have added to the report. The buttons on this palette identify the available operations, and a ToolTip describes each operation.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;2.2.2.2. &lt;/strong&gt;&lt;strong&gt;Elements List Palette&lt;/strong&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;The Elements List palette lets you add elements to your report. There are three types of Elements:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Variables – All the fields you selected in the invoking eDeveloper program with the names you gave them. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Added Variables – The variables you added to the report using the Variables Management Tool. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Internal Elements that help you design your report properly, including:&lt;br /&gt;Rectangle&lt;br /&gt;Image&lt;br /&gt;Line&lt;br /&gt;Simple Text&lt;br /&gt;Report Title&lt;br /&gt;Date&lt;br /&gt;Page Number&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;2.2.2.3. Report Generation Design Toolbar&lt;br /&gt;&lt;/strong&gt;The Report Generator Design toolbar lets you perform the operations needed to create your report. The toolbar buttons include:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://4.bp.blogspot.com/_f__2kWMDw70/RcgmVLJhIsI/AAAAAAAAABU/NlCkYRcYIOM/s1600-h/image008.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028311129170977474" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_f__2kWMDw70/RcgmVLJhIsI/AAAAAAAAABU/NlCkYRcYIOM/s320/image008.jpg" border="0" /&gt;&lt;/a&gt; Saves your report with the changes you made. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://3.bp.blogspot.com/_f__2kWMDw70/Rcgm_7JhItI/AAAAAAAAABc/hTEmJ-xXW-s/s1600-h/image009.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028311863610385106" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_f__2kWMDw70/Rcgm_7JhItI/AAAAAAAAABc/hTEmJ-xXW-s/s320/image009.jpg" border="0" /&gt;&lt;/a&gt;Displays the report you created. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://4.bp.blogspot.com/_f__2kWMDw70/RcgqNLJhI1I/AAAAAAAAACo/cxZzOaa3gzc/s1600-h/image010.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028315389778535250" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_f__2kWMDw70/RcgqNLJhI1I/AAAAAAAAACo/cxZzOaa3gzc/s320/image010.jpg" border="0" /&gt;&lt;/a&gt;Print the report. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://4.bp.blogspot.com/_f__2kWMDw70/RcgqNLJhI2I/AAAAAAAAACw/fM2EeoSC54M/s1600-h/image011.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028315389778535266" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_f__2kWMDw70/RcgqNLJhI2I/AAAAAAAAACw/fM2EeoSC54M/s320/image011.jpg" border="0" /&gt;&lt;/a&gt;Similar to the Wizard’s Setting screen. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://1.bp.blogspot.com/_f__2kWMDw70/RcgqNbJhI3I/AAAAAAAAAC4/Epw29neWCqc/s1600-h/image012.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028315394073502578" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_f__2kWMDw70/RcgqNbJhI3I/AAAAAAAAAC4/Epw29neWCqc/s320/image012.jpg" border="0" /&gt;&lt;/a&gt;See Variables Management Tool. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://1.bp.blogspot.com/_f__2kWMDw70/RcgrZbJhI4I/AAAAAAAAADo/5AWmCmidkI8/s1600-h/image013.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028316699743560578" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_f__2kWMDw70/RcgrZbJhI4I/AAAAAAAAADo/5AWmCmidkI8/s320/image013.jpg" border="0" /&gt;&lt;/a&gt;Similar to the Wizard’s Columns screen. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://2.bp.blogspot.com/_f__2kWMDw70/RcgrZrJhI5I/AAAAAAAAADw/3LPfAdwJFN8/s1600-h/image014.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028316704038527890" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_f__2kWMDw70/RcgrZrJhI5I/AAAAAAAAADw/3LPfAdwJFN8/s320/image014.jpg" border="0" /&gt;&lt;/a&gt;Similar to the Wizard’s Sections screen. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://2.bp.blogspot.com/_f__2kWMDw70/RcgrZrJhI6I/AAAAAAAAAD4/ecDdMqhholk/s1600-h/image015.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028316704038527906" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_f__2kWMDw70/RcgrZrJhI6I/AAAAAAAAAD4/ecDdMqhholk/s320/image015.jpg" border="0" /&gt;&lt;/a&gt;Similar to the Wizard’s Sorting screen. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://2.bp.blogspot.com/_f__2kWMDw70/RcgrZrJhI7I/AAAAAAAAAEA/nmKh-SxHOGU/s1600-h/image016.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028316704038527922" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_f__2kWMDw70/RcgrZrJhI7I/AAAAAAAAAEA/nmKh-SxHOGU/s320/image016.jpg" border="0" /&gt;&lt;/a&gt;Similar to the Wizard’s Filtering screen. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://3.bp.blogspot.com/_f__2kWMDw70/RcgrZ7JhI8I/AAAAAAAAAEI/l-0810mRf6E/s1600-h/image017.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028316708333495234" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_f__2kWMDw70/RcgrZ7JhI8I/AAAAAAAAAEI/l-0810mRf6E/s320/image017.jpg" border="0" /&gt;&lt;/a&gt;Similar to the Wizard’s Accumulators screen. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://3.bp.blogspot.com/_f__2kWMDw70/Rcgrg7JhI-I/AAAAAAAAAEY/BX0PltjRUvE/s1600-h/image020.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028316828592579554" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_f__2kWMDw70/Rcgrg7JhI-I/AAAAAAAAAEY/BX0PltjRUvE/s320/image020.jpg" border="0" /&gt;&lt;/a&gt;Lets you redesign the screen according to the default values. When you press this button, all the changes you made will be lost &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://3.bp.blogspot.com/_f__2kWMDw70/Rcgrg7JhI9I/AAAAAAAAAEQ/QFsVbKoOFjA/s1600-h/image019.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5028316828592579538" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_f__2kWMDw70/Rcgrg7JhI9I/AAAAAAAAAEQ/QFsVbKoOFjA/s320/image019.jpg" border="0" /&gt;&lt;/a&gt;Displays the Elements List Palette. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Displays the Drawing Aides Palette. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;2.2.2.4. Variables Management Tool&lt;/strong&gt;&lt;br /&gt;Click on the Report Generator Design Toolbar to add and remove Variables and User Questions to your report.&lt;br /&gt;Adding Variables:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;To add a new variable, press the Add Variable button, enter the variable name, select the variable type, and click OK to open a Column Properties dialog box. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Create an expression by dragging and dropping Functions, Operations, or Variables (variable names are preceded by ~) from the right list to the left working area. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Click Test to check if the expression you created is valid. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Click OK to complete the new variable creation.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Adding User Questions&lt;br /&gt;The User Questions mechanism lets you ask the user who will run the report questions that will influence the report result data. Click the Add User Question button, enter the Name and Question type in the Add New Variable dialog box, and click OK to continue. You can later find your question by this name in the Expression Editor.&lt;br /&gt;In the User Question dialog box, enter the question you want the user to see and the default value of the answer.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Removing Variables and User Questions&lt;br /&gt;To remove a variable or user question you added to the report, select the variable you want to remove, and click the Remove variable button.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The Remove variable button is only applicable for variables and user questions you created in the Report Generator.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;2.3. Summary &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;No more simple reports hustle. The new report generator allows developers to create a view using main application entities linked to each other. The column names can be changed to user friendly names in the Dataview tab. Users can then create simple reports based on that view, allowing developers to concentrate on what they do best.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-5601763604106381803?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/5601763604106381803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/5601763604106381803'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2007/02/new-report-generator.html' title='The New Report Generator'/><author><name>Michael Singer</name><uri>http://www.blogger.com/profile/01289304703473217803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_f__2kWMDw70/Rcgo5LJhIuI/AAAAAAAAABw/ZfJMDuQHwy0/s72-c/image001.gif' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-919332992431643869</id><published>2007-01-30T10:20:00.000-08:00</published><updated>2007-01-30T10:23:09.081-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RADD'/><category scheme='http://www.blogger.com/atom/ns#' term='app dev'/><category scheme='http://www.blogger.com/atom/ns#' term='AIX development tools'/><category scheme='http://www.blogger.com/atom/ns#' term='RAD'/><category scheme='http://www.blogger.com/atom/ns#' term='application development tools'/><category scheme='http://www.blogger.com/atom/ns#' term='appdev'/><title type='text'>Quote of the Day -- David James</title><content type='html'>&lt;i&gt;"eDeveloper V10 does a great job in handling XML, parallel processing, debugging, and web services. It's a straight forward tool that helps us save time and money, while reacting quickly to our customers' changing business needs." &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;David James &lt;br /&gt;Senior Developer, &lt;br /&gt;Warren-Board &lt;/b&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-919332992431643869?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/919332992431643869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/919332992431643869'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2007/01/quote-of-day-david-james.html' title='Quote of the Day -- David James'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-5089069696897053912</id><published>2007-01-30T10:14:00.000-08:00</published><updated>2007-01-30T10:17:36.689-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='application development tools'/><category scheme='http://www.blogger.com/atom/ns#' term='eDeveloper'/><title type='text'>Windows Vista</title><content type='html'>The much delayed Windows Vista operating system is now shipping from Microsoft. &lt;br /&gt;&lt;br /&gt;The official statement from Magic Software Enteprises is that &lt;br /&gt;&lt;br /&gt;"eDeveloper 10.1 SP2 and higher will be supported for "Windows Vista". &lt;br /&gt;&lt;br /&gt;Previous releases of Magic (including 9.4) are not supported and were never qualified."&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-5089069696897053912?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/5089069696897053912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/5089069696897053912'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2007/01/windows-vista.html' title='Windows Vista'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-7379961371685215754</id><published>2007-01-22T12:16:00.000-08:00</published><updated>2007-01-22T12:23:23.033-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IBM development tools'/><category scheme='http://www.blogger.com/atom/ns#' term='AIX development tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris development'/><category scheme='http://www.blogger.com/atom/ns#' term='AIX'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Unix development'/><category scheme='http://www.blogger.com/atom/ns#' term='Unix development tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux development tools'/><category scheme='http://www.blogger.com/atom/ns#' term='development tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux development'/><title type='text'>New eDeveloper V10 OS Releases Announced</title><content type='html'>Magic Software has added new operating system versions of eDeveloper V10 to the Downloads Area. These are available for download by customers with an eService account at http://downloads.magicsoftware.com&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The new versions posted last week are:&lt;br /&gt;&lt;br /&gt;&lt;li&gt;eDeveloper Server 10.1 SP1 for IBM AIX&lt;br /&gt;&lt;li&gt;eDeveloper Server 10.1 SP1 for Sun Solaris&lt;br /&gt;&lt;li&gt;eDeveloper Server 10.1 SP1 for Linux&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-7379961371685215754?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/7379961371685215754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/7379961371685215754'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2007/01/new-edeveloper-v10-os-releases.html' title='New eDeveloper V10 OS Releases Announced'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-3949816325134974116</id><published>2007-01-22T12:11:00.000-08:00</published><updated>2007-01-22T12:13:20.651-08:00</updated><title type='text'>Quote of the Day -- David Schmukler</title><content type='html'>&lt;b&gt;XML enhancements and an upgraded RAD&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;"...as an IT professional I am very impressed with eDeveloper 10's XML enhancements and the upgraded RAD. As to user experience, eDeveloper 10 allows multiple contacts, permitting two active windows to be open at the same time. This is a significant improvement to the user experience". &lt;br /&gt;&lt;br /&gt;&lt;b&gt;David Schmukler&lt;br /&gt;Chief Technology Officer, &lt;br /&gt;New Era Solutions &lt;/b&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-3949816325134974116?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/3949816325134974116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/3949816325134974116'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2007/01/quote-of-day-david-schmukler.html' title='Quote of the Day -- David Schmukler'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-6314479777935831384</id><published>2006-12-21T12:58:00.000-08:00</published><updated>2006-12-21T13:08:35.817-08:00</updated><title type='text'>My Magical Christmas Wish List</title><content type='html'>&lt;b&gt;A Christmas Wish List &lt;i&gt;Powered By Magic Software&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;So many wonderful things are backed up behind the scenes by Magic Software. Here are ten things I'd love to get in my Christmas stocking that are "powered by Magic."&lt;br /&gt;&lt;br /&gt;1. &lt;b&gt;Lakers Tickets&lt;/b&gt; – The Staples Center uses ABI MasterMind, an application written in eDeveloper. So my number one wish is for Lakers Tickets.&lt;br /&gt;2. &lt;b&gt;A Subscription to the Orange County Register.&lt;/b&gt; – The Orange County Register uses Burt Technologies software for newspaper insert management, so I'd like a subscription to the paper, please.&lt;br /&gt;3. &lt;b&gt;Dinner at Outback Steakhouse.&lt;/b&gt; – Wow, this is already becoming the greatest Christmas Stocking ever and I'm only at number 3.&lt;br /&gt;4. &lt;b&gt;Weekend Rental of a Chrysler Sebring Convertible from Advantage Rent A Car.&lt;/b&gt; – Nothing like a weekend cruising Pacific Coast Highway.&lt;br /&gt;5. &lt;b&gt;Casino Upgrades at the Orleans Casino.&lt;/b&gt; – That's right. Orleans Casino is one of 16 casinos operated by Boyd Gaming, a Magic customer.&lt;br /&gt;6. &lt;b&gt;A Bottle of Kenneth Cole Signature, Men's Fragrance.&lt;/b&gt; – One of many designer brands carried by Coty, another Magic customer.&lt;br /&gt;7. &lt;b&gt;A Pair of adidas Climawarm Herm shoes, Size 13.&lt;/b&gt; – OK, I know my Christmas Stocking is getting full, but it’s a big stocking. :)&lt;br /&gt;8. &lt;b&gt;Club Med Vacation&lt;/b&gt; – Uh huh, Club Meds worldwide are powered by Magic applications. &lt;br /&gt;9. &lt;b&gt;World Peace&lt;/b&gt; I can too get World Peace delivered by a Magic application for Christmas! You see, the United Nations General Assembly wrote a special Magic application to manage its resolutions and amendments in the five official languages of the UN (English, French, Chinese, Russian and Arabic). Pretty cool, huh?&lt;br /&gt;10. &lt;b&gt;A Lump of Coal&lt;/b&gt; Unfortunately, I may only get and deserve this last item, which could be delivered by Magic customer Wabush Mines up in Quebec and Labrador, Canada.&lt;br /&gt;&lt;br /&gt;Here's hoping you all get the things that you are wishing for next year. Please join me in adding number 9 to your list. Happy Hanukkah! Merry Christmas! Happy New Year!&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-6314479777935831384?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/6314479777935831384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/6314479777935831384'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2006/12/my-magical-christmas-wish-list.html' title='My Magical Christmas Wish List'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-2700820133714575020</id><published>2006-11-29T16:30:00.000-08:00</published><updated>2006-12-05T11:26:42.861-08:00</updated><title type='text'>WS-* At Your Service With eDeveloper V10</title><content type='html'>&lt;b&gt;A Little Magic for Web Services&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;The World Wide Web Consortium (W3C) defines a Web service as "a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards."&lt;br /&gt;&lt;br /&gt;eDeveloper V10 provides powerful capabilities for creating and integrating applications that utilize Web services. Internally, eDeveloper V10 uses the Systinet Web Services framework (specifically  "Systinet Server for Java") for providing and consuming Web Services. Fortunately, you don't have to do any Java programming in order to develop programs that take advantage of this foundation.&lt;br /&gt;&lt;br /&gt;The WS standards supported by eDeveloper include SOAP 1.1 and SOAP 1.2; WSDL 1.1; SOAP Attachments; WS-I conformance; transport level security; and WS-Security for authentication, encryption and digital signing of SOAP messages. For reference, SOAP is Simple Object Access Protocol, WSDL is Web Services Description Language, UDDI is Universal Description Discovery and Integration, and WS signifies Web Services. WS-* refers to any of several enhancements or extensions to the basic SOAP, WSDL and UDDI standards, including WS-Interoperability and WS-Security. &lt;br /&gt;&lt;br /&gt;I like to think of Web services as shared application logic (and associated data). For example, a Web service might be used to provide access to changing data such as stock ticker symbols (companies are listed and delisted). A service is said to be finely grained when it performs a narrow function, for example, a service that returns the range between the minimum and maximum value in a series of numbers. A coarsely grained web service might contain fairly complex functionality, such as a Web service that processes an order, calculates shipping charges and sends confirmation emails – in a single web service. The object of the game is to create fine grained services, but not too finely grained, so as to avoid the inflexibility of coarsely grained services on the one hand and the complex orchestration of finely grained services on the other. &lt;br /&gt;&lt;br /&gt;To use eDeveloper as a Web Services consumer you can either use the Web Service Composite Generator or the Invoke Web Service operation. &lt;br /&gt;&lt;br /&gt;To use eDeveloper as a Web Services provider, you should generate a service using the Web Service Interface Builder. To deploy and use the service you should make sure the following Windows OS service is started – “Systinet Server for Java”.&lt;br /&gt;For information about how eDeveloper V10 deals with migration of Web Services from eDeveloper 9.4 applications, see Conversion Process Modifications. &lt;br /&gt;&lt;br /&gt;The &lt;b&gt;Web Service Composite Generator&lt;/b&gt; is a wizard used to generate a component that accesses a Web Service. &lt;br /&gt;&lt;br /&gt;The How-to is fairly straightforward. First, you access the composite generators by following the Main Wizard Module steps. In the Web Service Location screen, click the WSDL URL or UDDI Search option. If you selected WSDL URL, enter the location of the WSDL. You can enter up to 256 characters in the WSDL URL field. You can click the Browse button to search for the WSDL file on the disk. The you click Next and eDeveloper will access and parse the WSDL file. If a WSDL file is not found or if the WSDL file is invalid, an error message will appear.&lt;br /&gt;&lt;br /&gt;If you selected the UDDI Search option, the UDDI Server and Search String screen will appear. If you selected the WSDL URL option, the Operation Selection screen will appear. But we won't get into those details here (you can find more information in  the documentation). &lt;br /&gt;&lt;br /&gt;To see what happens once you finish using the Web Service wizard, see the Generated Web Service Component topic in the documentation. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Invoke Web Service&lt;/b&gt; lets you call a Web Service by using the SOAP protocol. When you select the Invoke Web S (Service) operation, you select a service that has been defined in the Service repository as a SOAP type. Zoom from the space to the right of Web S to open the Web Service dialog box, where you can define the Service, Operation, and Fault properties.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Web Service Interface Builder lets you provide Web Services using eDeveloper by exposing public batch programs. The builder will generate a service JAR file and optionally deploy it on a Systinet™ server (which is installed as part of the eDeveloper installation, identified as a Web Services framework).&lt;br /&gt;&lt;br /&gt;To successfully generate and deploy the Web Service, you should make sure that the following Windows service is started: "Systinet Server for Java". The Web Service Interface Builder is not available in the &lt;b&gt;eDeveloper Discovery&lt;/b&gt; version.&lt;br /&gt;&lt;br /&gt;With eDeveloper V10, you can also easily see the available Web services that you have created. The Available Web Services screen is a list of previously created Web Services as well as additional details. You can view and delete the available Web Services from the list, but you cannot modify the data in this screen.&lt;br /&gt;As those who have published and subscribed to Web Services in eDeveloper 9.4 will tell you, this is a much more elegant and straightforward implementation and has the great advantage of being compliant with WS-Interoperability and WS-Security : &lt;b&gt;two more great reasons to upgrade to eDeveloper V10&lt;/b&gt;. For all the details, see the user documentation online at &lt;a href="www.magicsoftware.com/edeveloper"&gt;www.magicsoftware.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-2700820133714575020?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/2700820133714575020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/2700820133714575020'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2006/11/ws-at-your-service-with-edeveloper-v10.html' title='WS-* At Your Service With eDeveloper V10'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-1628577371109263138</id><published>2006-11-07T09:54:00.000-08:00</published><updated>2006-11-07T10:16:30.344-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IBM Tivoli'/><category scheme='http://www.blogger.com/atom/ns#' term='SNMP'/><category scheme='http://www.blogger.com/atom/ns#' term='eDeveloper'/><category scheme='http://www.blogger.com/atom/ns#' term='application monitoring'/><title type='text'>eDeveloper and SNMP: Part Two – Making it Happen</title><content type='html'>&lt;b&gt;Using eDeveloper and SNMP&lt;/b&gt;&lt;br /&gt;eDeveloper applications and various components or modules can send trap messages to a pre-configured Network Management Station (NMS), also referred to as an SNMP monitor, which lets the system administrator query and control the eDeveloper  application or module when alarms, failures, or other exceptional events occur.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The SNMP DLL&lt;/b&gt;&lt;br /&gt;Needless to say, the SNMP agent must be present on the operating system and the eDeveloper SNMP extension, the Mgsnmp.dll file, must be placed in the eDeveloper root during installation. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;The MIB files&lt;/b&gt;&lt;br /&gt;eDeveloper supplies two Management Information Base (MIB) files, Magic.mib and Magic_trap.mib. These are located in the eDeveloper Support directory. The MIB files are compiled according to the NMS version installed. You should copy the MIB files to the NMS server.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Overview of SNMP Use in Magic&lt;/b&gt;&lt;br /&gt;You can set various values for the SNMP parameters, defined in the Mgreq.ini and Mgrb.ini files, to specify when the Magic Requester and Magic Requester Broker will send trap messages.&lt;br /&gt;&lt;br /&gt;The &lt;b&gt;SNMPNotify&lt;/b&gt; function is utilized to issue SNMP messages with the available parameters of &lt;i&gt;message, severity&lt;/i&gt;. &lt;br /&gt;&lt;br /&gt;When an alarm or error occurs outside of the application development process, SNMP trap messages are sent to the Network Management Station (NMS). &lt;br /&gt;&lt;br /&gt;Examples of the types of trap messages sent are:&lt;br /&gt;&lt;br /&gt;&lt;li&gt; A thread crash or fatal error of eDeveloper or the eDeveloper gateway.&lt;br /&gt;&lt;li&gt; Termination due to the license limit.&lt;br /&gt;&lt;li&gt; Unable to connect to a specified DBMS.&lt;br /&gt;&lt;li&gt; Database connection threshold exceeded.&lt;br /&gt;&lt;li&gt; An enterprise server was stopped and started. The trap message contains the address of the enterprise server.&lt;br /&gt;&lt;li&gt; An enterprise server aborted its connection to the Magic Request Broker. The trap message contains the address of the enterprise server.&lt;br /&gt;&lt;br /&gt;Anyway, this is an overview of SNMP and eDeveloper. If you are not familiar with SNMP applications, such as &lt;a href="http://www.ibm.com/tivoli/"&gt;IBM Tivoli&lt;/a&gt;, then some of this discussion may seem like a foreign language discussion. For more information on SNMP, try the official &lt;a href="http://tools.ietf.org/"&gt;Internet Engineering Task Force&lt;/a&gt; website for official information contained in the Request for Comments (RFC) documents. But for those familiar with SNMP for application monitoring, you can see from this overview that eDeveloper "plays well" with SNMP application monitors and other SNMP oriented software.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-1628577371109263138?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/1628577371109263138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/1628577371109263138'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2006/11/edeveloper-and-snmp-part-two-making-it.html' title='eDeveloper and SNMP: Part Two – Making it Happen'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-498399791381402060</id><published>2006-11-06T11:09:00.000-08:00</published><updated>2006-11-06T12:19:21.992-08:00</updated><title type='text'>SNMP and eDeveloper: Part 1 – Theory and Use</title><content type='html'>&lt;b&gt;eDeveloper&lt;/b&gt; supports Simple Network Management Protocol (SNMP) and works with Microsoft Windows SNMP Agent, the Net-SNMP Agent in UNIX environments, and the Native SNMP Agent in the i5OS (OS/400) environment for IBM System i (iSeries).&lt;br /&gt;&lt;br /&gt;SNMP is a standard in the application layer of the Internet protocol suite for management of various nodes on an IP network. SNMP enables network administrators to manage network performance, find and solve network problems, and plan for network growth. For developers, SNMP is the standard that you can use to communicate with application monitoring and other monitoring tools.&lt;br /&gt;&lt;br /&gt;The SNMP architectural model involves a set of network management stations and network elements.  The purpose of the network management stations is to host management applications that control and monitor network elements.  The network elements are devices that serve as gateways, hosts, terminal servers, etc. These various network elements have management agents that execute management functions requested by the network management stations.  SNMP, as a protocol, includes the message format used to communicate between the stations and the elements.&lt;br /&gt;&lt;br /&gt;In general, application monitoring can be applied for any of these five broad requirements: &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Fault&lt;/b&gt;&lt;br /&gt;The most obvious use of application monitoring is to detect faults which can be major errors related to one or more elements within the architecture. eDeveloper can be configured to send only specific error codes to the monitor, or the entire range of errors. Normally, you would want to report only significant error conditions that affect the operational integrity of the application or quality of the users' application experience.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Performance&lt;/b&gt;&lt;br /&gt;External monitors may want to track application performance. Performance monitoring is useful in detecting sub-optimal software performance, as measured by average wait time, number of pending requests, number of currently processing requests, and so on. Performance problems usually correlate to increased user requests. When the load outstrips the ability of the application and systems to perform the required function within expected response times, a degraded quality of user experience occurs. Application monitoring can provide us with useful metrics for performance optimization related to both applications and the network itself. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Security&lt;/b&gt;&lt;br /&gt;You may want to employ SNMP for certain types of security monitoring such as authentication failures. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Configuration&lt;/b&gt;&lt;br /&gt;By monitoring certain configuration settings, you can ensure that key configuration variables affecting application performance and stability stay within specified limits. For example, if the Maximum Connection property is set to 10 for a specified DBMS and the SNMP Database Connections Utilization Threshold is set to 50, eDeveloper sends a trap message to the Network Management Station (NMS) when 5 connections (50% of 10) to the DBMS have been opened. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Accounting&lt;/b&gt;&lt;br /&gt;Another application for application monitoring is accounting, for administration of things like usage fees and maintenance fees. SNMP is used when a third party application tracking these fees utilizes SNMP to monitor the activity to be accounted for. Since an eDeveloper can easily track these elements within the application itself or through another eDeveloper application, SNMP is only likely to be used in rare instances where an enterprise wide IT policy has introduced SNMP as an accounting standard, especially in environments where there is a mix of eDeveloper and non-eDeveloper applications being accounted for. &lt;br /&gt;&lt;br /&gt;Application monitoring via SNMP can be implemented using applications such as IBM Tivoli. For example, IBM Tivoli Business Application Management (BAM) products help ensure the availability and performance of your business-critical applications, including portal and Service Oriented Architecture (SOA)-based technologies. In Part Two, we'll look at some of the how-to required to support SNMP monitoring of an eDeveloper application.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-498399791381402060?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/498399791381402060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/498399791381402060'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2006/11/snmp-and-edeveloper-part-1-theory-and.html' title='SNMP and eDeveloper: Part 1 – Theory and Use'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-6994855975310976055</id><published>2006-11-03T09:56:00.000-08:00</published><updated>2006-11-03T10:14:00.948-08:00</updated><title type='text'>Quote of the Day -- Mark Bailey</title><content type='html'>As seen on the &lt;a href="http://tech.groups.yahoo.com/group/magicu-l/?yguid=67225048"&gt;Magic List &lt;/a&gt; at Yahoo! Groups.&lt;br /&gt;&lt;br /&gt;"I am currently converting ALL of my apps to eDeveloper V10.&lt;br /&gt;&lt;br /&gt;Everything I have converted so far works and the extra effort I am putting in is just to take advantage of the new features.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The more I use it, the more I love it.&lt;/strong&gt; Never ceases to amaze me how many programs I have with no logic and it takes a bit of getting used to, opening a program and &lt;em&gt;not &lt;/em&gt;seeing the Task or Record levels sitting there empty.&lt;br /&gt;&lt;br /&gt;And, man o man. The Subforms and User Functions are &lt;strong&gt;Brilliant!!!!&lt;/strong&gt;"&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mark Bailey, Australia&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Thanks, Mark! Glad to hear it. I'll have to buy you a Foster's at the next MIUG in Vegas. [emphasis added].&lt;a href="http://tech.groups.yahoo.com/group/magicu-l/?yguid=67225048"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-6994855975310976055?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/6994855975310976055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/6994855975310976055'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2006/11/quote-of-day-mark-bailey.html' title='Quote of the Day -- Mark Bailey'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-7155132984912316830</id><published>2006-11-02T18:12:00.000-08:00</published><updated>2006-11-02T18:18:49.784-08:00</updated><title type='text'>What's in the Kitchen Sink, Anyway?</title><content type='html'>&lt;strong&gt;With eDeveloper V10, the feature list goes on an on.&lt;/strong&gt; 51 reasons clearly are not enough as this review misses major enhancements like full Unicode support, superior XML handling, the new report writer and much more. But before we look at the bonuses and extras not included in Magic's list of reasons, let's look at the general enhancements they do mention in the list of 51.&lt;br /&gt; &lt;br /&gt;In the &lt;strong&gt;list of 51 reasons to upgrade to eDeveloper V10, reasons 47 through 51 are dedicated to an assortment of improvements&lt;/strong&gt;, this where Magic's R&amp;D department has "thrown in the kitchen sink" and now I get to describe it. No snoring! There actually is some good stuff in here!&lt;br /&gt;&lt;br /&gt;&lt;b&gt; 47. Preload View &lt;/b&gt; – &lt;i&gt;  Have every data-view fully loaded upon task execution for improved scrolling and for retrieval full view related information. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I think this advantage could have been expressed more clearly. Have you ever loaded a really large file and noticed that your scrollbar slider adjusted its size to the number of records. Well that's what we're talking about here. Now eDeveloper programmers don't have to come up with tricks and schemes to &lt;strong&gt;size the thumb on the scrollbar slider&lt;/strong&gt;, it's built-in. &lt;br /&gt;&lt;br /&gt;The scrollbar thumb reflects the size of the table content according to the number of records that are fetched while the task is running. When opening a task, the table reads the first set of records and the thumb size is based on that first set. Then, as an end-user scrolls through the records, the thumb is progressively updated.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; 48. Dynamic Menus &lt;/b&gt; – &lt;i&gt;  Construct modular menu structures based on menu subsets that can be automatically added or removed from the pulldown menu. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;eDeveloper V10's new menu-related functions let you &lt;strong&gt;dynamically add and remove menus to the menu structure&lt;/strong&gt;. The functions allowed are MnuAdd and MnuRemove which enable the programmer to dynamically add or remove a menu structure to the current runtime pulldown menu structure. There is also a MnuReset function that restores the default pulldown menu structure. This gives you some very sophisticated contextual control over the user experience that can streamline and enhance the user experience.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; 49. Windows Menu &lt;/b&gt; – &lt;i&gt;  Easily set the application menu system to cascade all selected open windows for easier end-user window navigation. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;To quote on of my favorite lines from the movie &lt;i&gt;Joe Versus the Volcano&lt;/i&gt;, &lt;strong&gt;"I have no response to that."&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt; 50. DateTime Support &lt;/b&gt; – &lt;i&gt;  Simplify the retrieval and storage of DateTime data types by letting the Magic Rules Engine automatically map them into simplified and separated Date and Time units. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;While many of you may have developed workarounds for this in the past, I am sure it will be nice to have automated conversion between DateTime and Date and Time.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt; 51. Standard Keyboard Mapping &lt;/b&gt; – &lt;i&gt;  Easily adopt a new Keyboard mapping scheme that corresponds to the accepted keyboard mapping standards. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Keyboard shortcut standards seem to change all the time. I've also found that certain user communities have differing expectations. eDeveloper users expect F5 to "zoom" of course, but what if your end users have a completely different map in their head because of some other application pervasive throughout their organization? Wouldn't it be better to change the keyboard mapping used in your eDeveloper application, rather than try to force all your users to learn a new set of keystrokes? Probably, so eDeveloper V10 gives you that option. You can map eDeveloper's studio keyboard map as well as the map used in your application at runtime. &lt;br /&gt;&lt;br /&gt;The Keyboard Mapping settings you edit are kept in a special file. The file eDeveloper uses is named in the Keyboard Mapping File setting in the Options/Settings/Environment dialog box. By default this file is ACT_STD.ENG. You can create and use different mapping files. On conclusion of an editing session of the Keyboard Mapping repository, eDeveloper prompts you to save the changes with the File Save dialog box. You can save these changes to a file different from the one currently used by eDeveloper, by specifying a different name in the Save As... property. &lt;br /&gt;&lt;br /&gt;This concludes our analysis of the original list of 51 "numerous reasons to migrate to eDeveloper V10." But don't worry, here in blogland, we've come up with some important reasons of our own. So stay tuned.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-7155132984912316830?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/7155132984912316830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/7155132984912316830'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2006/11/whats-in-kitchen-sink-anyway.html' title='What&apos;s in the Kitchen Sink, Anyway?'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-2191542138116662571</id><published>2006-11-01T09:29:00.000-08:00</published><updated>2006-11-01T09:40:12.017-08:00</updated><title type='text'>Parallel Parking and Other eDeveloper V10 Tricks</title><content type='html'>The &lt;strong&gt;eDeveloper enterprise server supports parallel execution &lt;/strong&gt;of tasks or multithreading. Whether your tasks are truly executed in parallel or are conducted in pseudo-parallel mode through a technique called time slicing is dependent on your hardware and operating system.  With traditional programming tools, the programmer must carefully design the program in such a way that all the threads can run at the same time without interfering with each other. With eDeveloper, multiple contexts are maintained automatically and controlling contexts is simplified tremendously compared to unnecessarily complex 4GL and 3GL development systems. &lt;br /&gt;&lt;br /&gt;And the good news, no the great news, is that &lt;strong&gt;multiple document interface (MDI) &lt;/strong&gt;and single document interface support is now built-in to eDeveloper, further simplifying development of applications that meet the needs and demands of your users. &lt;br /&gt;&lt;br /&gt;In the list of &lt;strong&gt;51 reasons to upgrade to eDeveloper V10, reasons 42 through 46 are dedicated to parallel execution&lt;/strong&gt;, i.e., multithreading. Let's take a closer look at each claim to better understand what's behind it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt; 42. Concurrent Task Execution &lt;/b&gt; – &lt;i&gt;  Provide a greater application productivity level by enabling the end-user to run several processes - online and batch - simultaneously. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;In eDeveloper v9.x, multithreading was available for background processing only. Now with eDeveloper V10, background enterprise servers &lt;i&gt;and&lt;/i&gt; Online programs are multi-threaded. This gives you the ability to have parallel task execution in your projects for both batch and online tasks.&lt;br /&gt;&lt;br /&gt;Each thread accesses a different Runtime context, and does not interact with other threads, in other words, it is &lt;i&gt;stateless&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;To work with multiple threads in Online programs, eDeveloper V10 provides you with powerful new Multiple Document Interface (MDI) and Single Document Interface (SDI) functionality.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt; 43. Single Instance &lt;/b&gt; – &lt;i&gt;   Easily control concurrently running tasks to keep a single instance for proper implementation of console screens, palettes, and property sheets. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;When you are using parallel tasks, and you call a program again, a new instance of the program opens. To better illustrate what we mean, consider what happens with a well-known application like Internet Explorer. The first time you open Internet Explorer, one instance of it opens to your default home page. When that instance is open and you open Internet Explorer again, a second instance opens to the default home page regardless of the context, i.e., the current URL of the already open browser window. However, sometimes you want the same context to open, such as when you use the "New Window" option in Internet Explorer and you get a second window with the same context as the previous window. A third option is that you do not want multiple windows and contexts. You want the new instance with its new URL to open in the already open window. Internet Explorer allows the user or the developer to control this kind of functionality. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;eDeveloper V10 now supports both multiple document interfaces and single document interfaces &lt;/strong&gt;and gives you as the developer, control over the way contexts are handled. In those situations where you want the second call to return to the original instance, this is what eDeveloper's Single Instance task property does. When you select this property, when a program is called for a second time, the focus will be set on the already running instance. However, there will be no initialization steps (such as preparing the data view).&lt;br /&gt;&lt;br /&gt;&lt;b&gt; 44. Event Posting  &lt;/b&gt; – &lt;i&gt;   Enable full interaction between all concurrent processes using the inter-context event posting mechanism. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Most of the time, you will probably want instances to execute independently, but there are some events that may require you to enable events to be sent between contexts. Using eDeveloper V10's event posting functionality is accomplished via the Destination Context Name property of the Raise Event operation. The mechanism allows for synchronous and asynchronous events. If a synchronous event was raised, the context waits until the receiving handler ends. I like the fact that eDeveloper V10 gives the developer all of these options and doesn't restrict the developer to stateless contexts without interaction.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; 45. Single &amp; Multiple Document Interface &lt;/b&gt; – &lt;i&gt;   You now have the freedom to choose the layout by which your parallel tasks will be presented. You can have a parallel task be displayed as yet another MDI child window or an independent SDI window. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;This is another new eDeveloper V10 feature that standing completely on its own will justify the upgrade in the minds of many developers.&lt;/strong&gt; eDeveloper lets you define a Multiple Document Interface (MDI) as well as a Single Document Interface (SDI). &lt;br /&gt;&lt;br /&gt;In the most basic of terms: the MDI and SDI functionality allows an application to open and concurrently run several tasks. That is, it enables a program to be opened concurrently without the need to open a new instance of eDeveloper.&lt;br /&gt;The eDeveloper engine can maintain multiple concurrent instances, executing programs within the same application and within the same eDeveloper instance. &lt;br /&gt;In eDeveloper, concurrent execution is implemented using contexts. When a program is run concurrently and a new context is opened, the new context will have its own Main Program. This Main Program and context are independent of the other contexts running under this process. Read up on the MDI and start using it, your users will applaud.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; 46. Window Focus Management &lt;/b&gt; – &lt;i&gt;   Using a simple set of functions and events eDeveloper gives you a full control over the focus management of all your windows. Easily handle lost-focus events and easily instruct a window to get focus. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The default behavior for contect management is pretty much as you would expect: When focusing on a window in a different context, eDeveloper will not lose track of the control in the current context. In this fashion, when focus is passed back to this original window, it will pass back to the same control. Similarly, if there is a window that is not in focus, and a dialog box appears, such as a Verify operation or the window's own form with a Window Type property of Modal, the focus will pass to the dialog box. If a different context opens a window, the focus will pass to that window. Using the expression editor, you can utlilize the SetWindowFocus function to determine the particular window in the Window list that will be in focus. During runtime, if the window does not exist (the name does not exist or the name is blank or Null), focus will remain on the current window and the function will return False.&lt;br /&gt;&lt;br /&gt;So all in all, parallel execution is another &lt;i&gt;&lt;strong&gt;home run&lt;/strong&gt;&lt;/i&gt; for eDeveloper V10, if you will forgive the baseball metaphor. The multi-threaded architecture of eDeveloper can now be enjoyed in both online and batch mode. Just in time, I think, as &lt;strong&gt;duo core and quad core processors are becoming commonplace &lt;/strong&gt;on client desktops. You'd better get ready now as  the world of parallel processing has entered the mind of the everyday user and they will demand the functionality that eDeveloper V10 delivers.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-2191542138116662571?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/2191542138116662571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/2191542138116662571'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2006/11/parallel-parking-and-other-edeveloper.html' title='Parallel Parking and Other eDeveloper V10 Tricks'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-158850210151699197</id><published>2006-10-31T16:15:00.000-08:00</published><updated>2006-11-01T12:14:08.222-08:00</updated><title type='text'>Fewer Bugs and Better Bug Spray</title><content type='html'>&lt;em&gt;Terrence Parr&lt;/em&gt;, a University of San Francisco Professor of Computer Science, suggests that there are six essential elements in the debugging process:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Reproduce the error.&lt;/strong&gt; By finding a way to reproduce an error, you can often see the cause of the error. Parr says, "A bug that appears randomly is essentially unsolvable unless you have a leap of insight." &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Reduce problems to their essence.&lt;/strong&gt; Once you have discovered how to reproduce a problem, you should attempt to isolate an error to its smallest constituents. Parr suggest slicing data inputs, for example, to see which part of a file causes the problem.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Use your powers of deduction to find causality.&lt;/strong&gt; This involves forming a hypothesis that can be tested. Follow the path of the data and watch for factors that can contribute to an error.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Test your hypothesis. &lt;/strong&gt;Change various elements in the environment, the data and the logic to test your hypothesis. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Draw on experience.&lt;/strong&gt; If you are an experienced developer, you will look for problems similar to those you have seen before in like situations. If you are a new developer, then you may want to consult another developer (Magic eDeveloper discussions are available on Yahoo! groups at magicu-l, for example.  &lt;br /&gt;Never give up. By taking a systematic approach, you will first test the hypotheses that seem most likely based on logic and past experience. Be patient, communicate with others and the solutions will become apparent.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Never give up.&lt;/strong&gt; Parr sees tenacity as the final essential ingredient.Fortunately for users of eDeveloper V10, a new debugger has been introduced that makes extermination of bugs much easier than before.&lt;br /&gt;&lt;br /&gt;Let's continue our review of &lt;strong&gt;Magic Software's 51 reasons to upgrade to eDeveloper V10&lt;/strong&gt;. Reasons 36 through 41 all deal with enhancements to the debugger:&lt;br /&gt;&lt;br /&gt;&lt;b&gt; 36. Visual Debugging&lt;/b&gt; – &lt;i&gt;   Follow the exact logic definition within the studio as you progress step-by-step in debug mode. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This feature can help you pinpoint problems that you are having in an application by stepping through an application with pauses at pre-defined breakpoints. &lt;br /&gt;&lt;br /&gt;When you are in Debug mode (you selected Debug Mode from the Debug menu), you can run a program in Runtime mode and the Debugger will "park" on the Studio read-only screen at the exact location of where you are in the program (when a breakpoint is reached).  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt; 37. Manageable Break Points &lt;/b&gt; – &lt;i&gt;   Have full control on every break point defined in the application using the fully functional break points palette. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Obviously, breakpoints are a helpful tool for debugging. As Parr suggests in his point regarding the use of deduction, you need to follow the path of your data through an application in order to deduce any flaws in your logic. Breakpoints allow you to pause the logic at any point and determine exactly where things stand. Breakpoints let you halt execution of the program at a specific location in the Studio screen, so the debugger parallels the design of your program, which also gives you a clearer ability to see where problems may be introducuing themselves.&lt;br /&gt;&lt;br /&gt;The how-to of breakpoints is quite straightforward, when you select Breakpoints from the View menu, the Breakpoint repository appears. You should remember that when you add a breakpoint to the Logic Editor, the default Condition is Always.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; 38. Conditional Break Points &lt;/b&gt; – &lt;i&gt;   Reduce your debugging efforts by conditioning your set breakpoints for accurate and focus debugging. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Within the Debugger, you can define a conditional breakpoint if the Enable check box is selected. The condition will be evaluated each time the breakpoint is reached. If the condition evaluates to False, the breakpoint will be ignored. &lt;br /&gt;&lt;br /&gt;The valid options for breakpoint conditions are Always, Count and Condition. With count, the breakpoint is only activated once the specified count has been reached. And of course, with a condition, the breakpoint will only be executed if the condition is True.&lt;br /&gt;&lt;br /&gt;Condition: Execution will break only when the condition evaluates to True. This option is only enabled if the task in which the condition is defined is in focus. You can use variables from the current task tree.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt; 39. Watch points &lt;/b&gt; – &lt;i&gt;   Easily collect all variables that require your attention in the debugging process for efficient monitoring over the progress of your logic. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The watch points are very handy and make it easy to focus in on the variables that your experience suggests are most important. The Watch Variable list displays the variables currently being watched. This allows you to see how the value of the watched variable changes. You control which variables are displayed on the Watch variable list from the Variable list itself and the Variable declaration(s).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;   40. Modifiable Variables &lt;/b&gt; – &lt;i&gt; Manipulate the execution of a debugged execution by directly modifying the value of any variable. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The context menu gives you control over modification of variables in the debugging process. This is useful in pursuing various "what-if" scenarios as you test various hypotheses. The context menu allows you to add and delete  variables from the watch list, go to the source for the variable, edit the current value of the data in the variable, set the variable value to NULL, and expand or collapse the index size of vector variables with a cell index &gt;0.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;   41. Call Stack View &lt;/b&gt; – &lt;i&gt; Get clear information pertaining the exact stack of calls at any given time. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;As you might expect, the Runtime Call Stack repository displays the state of the programs that are in the current runtime task tree and the handler (aka logic unit) that called the new program. You can get to this repository by selecting Call Stack from the View menu. Naturally, the tasks are displayed in the order in which they were executed. In other words, the Main Program of the host application will be the first task in the list and the current task will be the last one listed. &lt;br /&gt;&lt;br /&gt;The information in the Runtime Call Stack repository is displayed in five columns. &lt;br /&gt;The indicator column simply shows the current line. The module column will display the component name, if any. The task column shows the task name and the handler column show the Handler (logic unit) in that task. Finally, the line column shows the line number of the current operation.&lt;br /&gt;&lt;br /&gt;Keep in mind that you can also view the flow of the logic within your eDeveloper application from the Activity Monitor. A whole article could be dedicated to this. It is also important to note that while you can only debug one context at a time, you can switch between contexts while debugging. You can also now dynamically change what information gets entered into the log with the dynamic logging function. You can change the logging filter on the fly, and this &lt;i&gt;does not&lt;/i&gt; require a change to the &lt;i&gt;magic.ini&lt;/i&gt; file. Sweet.&lt;br /&gt;&lt;br /&gt;All in all, the new eDeveloper debugger is a huge improvement and benefit to the developer that just makes your life easier. Here again, it is worth the price of admission.&lt;br /&gt;&lt;br /&gt;In the past, eDeveloper was known as an IDE that generally produced programs with fewer bugs and less need for debugging. But the debugging procedures available were weak in the past. With eDeveloper V10, you now have both advantages: fewer bugs and a faster way to isolate them and test your hypotheses.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-158850210151699197?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/158850210151699197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/158850210151699197'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2006/10/fewer-bugs-and-better-bug-spray.html' title='Fewer Bugs &lt;i&gt;and&lt;/i&gt; Better Bug Spray'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-5555220421031686137</id><published>2006-10-19T20:21:00.000-07:00</published><updated>2006-10-19T20:28:43.427-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RAD'/><category scheme='http://www.blogger.com/atom/ns#' term='Expression Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='eDeveloper'/><title type='text'>Express Yourself      With eDeveloper V10</title><content type='html'>Developers express themselves with logic, and that is what the expression editor is all about. eDeveloper has always been strong when it comes to creating the logic that comprises your business rules. Some have even gone so far as to call eDeveloper a &lt;i&gt;business rules engine&lt;/i&gt;. Who besides Magic, you ask? Well, Gartner, for one.&lt;br /&gt;&lt;br /&gt;There have been a few improvements worth noting, which Magic did in reasons 32 to 35 of the reasons to upgrade to eDeveloper V10. Let's take a look at each claim and see what's under the hood.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; 32. Quick Expressions&lt;/b&gt; – &lt;i&gt;   rapidly set expressions on spot by directly typing the expression syntax in the expression placeholder. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This quick editor provides a quick way to enter simple expressions without opening the Expression Editor. Sometimes when things get big and powerful, they get a little clunky. So this brings us back to the lightweight feeling of the early RAD days, so to speak. How, you ask? Well, when you park on a property in the Logic or Data View editors that require an expression (such as the Init or Cnd properties), you can press the equal sign (=), which opens a text box where you can enter an expression. Then you just enter your expression, no fuss, no muss.&lt;br /&gt;&lt;br /&gt;You need to press ENTER to save your expression and close the Quick Expression Editor. Esc or F2 closes the Quick Expression Editor &lt;i&gt;without&lt;/i&gt; saving the expression. Any other navigation action (such as arrows, tabbing, paging up or down, mouse clicks outside the edit box) saves the entered expression. So, in this reason to upgrade, less is more.&lt;b&gt; &lt;br /&gt;&lt;br /&gt;33. Auto Complete&lt;/b&gt; – &lt;i&gt;   Have eDeveloper automatically complete function names in the expression editor by requesting its automatic completion. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This is another one of those really nice improvements that is just designed as a timesaver. Function Auto Complete is available for functions and operators that begin with a letter. How does it work&gt; Simply type the function or operator prefix and then press CTRL+Space. For example, if you enter ab, the function list opens and the cursor parks on the ABS () function.&lt;br /&gt;&lt;br /&gt;When there is only one matching option, the text will be completed automatically.&lt;br /&gt;If there is more than one matching option, a list box with the matching options is displayed. Click to select.&lt;br /&gt;&lt;br /&gt;You won't find this &lt;a href="http://edeveloperv10.blogspot.com/2006/10/auto-complete-cheat-sheet.html"&gt;Auto Completion Cheat Sheet&lt;/a&gt; in the manual. &lt;i&gt;Now, if I could only find a way to auto complete my blog…&lt;/i&gt;&lt;b&gt; &lt;br /&gt;&lt;br /&gt;34. Expression Formatting&lt;/b&gt; – &lt;i&gt;   Freely format your expression and make them more readable. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;White space? Wrapping? Multiple lines? Oh my.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; 35. Colored Display&lt;/b&gt; – &lt;i&gt;   Enjoy the enhanced expression editor full display highlighting each element of the expression in customizable colors. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;To customize colors in the studio, access the Color Settings from the Options/Settings/Colors menu option and then choose the Studio tab to modify the colors used for any of the listed color uses.&lt;br /&gt;&lt;br /&gt;Go ahead. &lt;i&gt;Express Yourself&lt;/i&gt; as Madonna would say.&lt;br /&gt;&lt;br /&gt;As for me, I'll have to wait till the next blog entry for that.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-5555220421031686137?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/5555220421031686137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/5555220421031686137'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2006/10/express-yourself-with-edeveloper-v10.html' title='&lt;i&gt;Express Yourself&lt;/i&gt;      With eDeveloper V10'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-6632883390684091775</id><published>2006-10-19T18:46:00.000-07:00</published><updated>2006-10-19T19:28:34.175-07:00</updated><title type='text'>Auto Complete Cheat Sheet</title><content type='html'>&lt;table border="0" width="100%" cellpadding="10"&gt;&lt;tr&gt;&lt;br /&gt;&lt;td width="35%" valign="top"&gt;&lt;br /&gt;ABS&lt;br /&gt;ACOS&lt;br /&gt;AddDate&lt;br /&gt;AddDateTime&lt;br /&gt;AddTime&lt;br /&gt;ANSI2OEM&lt;br /&gt;AppName&lt;br /&gt;ASCIIChr&lt;br /&gt;ASCIIVal&lt;br /&gt;ASIN&lt;br /&gt;AStr&lt;br /&gt;ATAN&lt;br /&gt;Blb2File&lt;br /&gt;Blob2Req&lt;br /&gt;BlobFromBase64&lt;br /&gt;BlobSize&lt;br /&gt;BlobToBase64&lt;br /&gt;BOM&lt;br /&gt;BOY&lt;br /&gt;BufGetAlpha&lt;br /&gt;BufGetBit&lt;br /&gt;BufGetBlob&lt;br /&gt;BufGetDate&lt;br /&gt;BufGetLog&lt;br /&gt;BufGetNum&lt;br /&gt;BufGetTime&lt;br /&gt;BufGetUnicode&lt;br /&gt;BufGetVariant&lt;br /&gt;BufGetVector&lt;br /&gt;BufSetAlpha&lt;br /&gt;BufSetBit&lt;br /&gt;BufSetBlob&lt;br /&gt;BufSetDate&lt;br /&gt;BufSetLog&lt;br /&gt;BufSetNum&lt;br /&gt;BufSetTime&lt;br /&gt;BufSetUnicode&lt;br /&gt;BufSetVariant&lt;br /&gt;BufSetVector&lt;br /&gt;CallDLL&lt;br /&gt;CallDLLF&lt;br /&gt;CallDLLS&lt;br /&gt;CallJS&lt;br /&gt;CallOBJ&lt;br /&gt;CallProg&lt;br /&gt;CallProgURL&lt;br /&gt;CallURL&lt;br /&gt;CaretPosGet&lt;br /&gt;CASE&lt;br /&gt;CDOW&lt;br /&gt;CHeight&lt;br /&gt;ChkDgt&lt;br /&gt;Cipher&lt;br /&gt;CLeft&lt;br /&gt;CLeftMDI&lt;br /&gt;ClickCX&lt;br /&gt;ClickCY&lt;br /&gt;ClickWX&lt;br /&gt;ClickWY&lt;br /&gt;ClientCertificateAdd&lt;br /&gt;ClientCertificateDiscard&lt;br /&gt;ClipAdd&lt;br /&gt;ClipRead&lt;br /&gt;ClipWrite&lt;br /&gt;ClrCache&lt;br /&gt;CMonth&lt;br /&gt;CndRange&lt;br /&gt;CodePage&lt;br /&gt;COMError&lt;br /&gt;COMHandleGet&lt;br /&gt;COMHandleSet&lt;br /&gt;COMObjCreate&lt;br /&gt;COMObjRelease&lt;br /&gt;COS&lt;br /&gt;Counter&lt;br /&gt;CRC&lt;br /&gt;CTop&lt;br /&gt;CTopMDI&lt;br /&gt;CtrlGoto&lt;br /&gt;CtrlHWND&lt;br /&gt;CtxClose&lt;br /&gt;CtxGetAllNames&lt;br /&gt;CtxGetId&lt;br /&gt;CtxGetName&lt;br /&gt;CtxKill&lt;br /&gt;CtxLstUse&lt;br /&gt;CtxNum&lt;br /&gt;CtxProg&lt;br /&gt;CtxSetName&lt;br /&gt;CtxSize&lt;br /&gt;CtxStat&lt;br /&gt;CurRow&lt;br /&gt;CurrPosition&lt;br /&gt;CWidth&lt;br /&gt;DataViewToHTML&lt;br /&gt;DataViewToText&lt;br /&gt;DataViewToXML&lt;br /&gt;DataViewVars&lt;br /&gt;Date&lt;br /&gt;Day&lt;br /&gt;DbCache&lt;br /&gt;DbCopy&lt;br /&gt;DbDel&lt;br /&gt;DbDiscnt&lt;br /&gt;DbERR&lt;br /&gt;DbExist&lt;br /&gt;DbName&lt;br /&gt;DbRecs&lt;br /&gt;DbReload&lt;br /&gt;DbRound&lt;br /&gt;DbSize&lt;br /&gt;DbViewRowIdx&lt;br /&gt;DbViewSize&lt;br /&gt;DbXmlMixedGet&lt;br /&gt;DbXmlMixedSet&lt;br /&gt;DDEBegin&lt;br /&gt;DDEEnd&lt;br /&gt;DDEGet&lt;br /&gt;DDEPoke&lt;br /&gt;DDERR&lt;br /&gt;DDExec&lt;br /&gt;DeCipher&lt;br /&gt;Del&lt;br /&gt;Delay&lt;br /&gt;DifDateTime&lt;br /&gt;DirDlg&lt;br /&gt;DiscSrvr&lt;br /&gt;DOW&lt;br /&gt;DragSetCrsr&lt;br /&gt;DragSetData&lt;br /&gt;DropFormat&lt;br /&gt;DropGetData&lt;br /&gt;DropMouseX&lt;br /&gt;DropMouseY&lt;br /&gt;DStr&lt;br /&gt;DVal&lt;br /&gt;EditGet&lt;br /&gt;EditSet&lt;br /&gt;EJBCreate&lt;br /&gt;EJBExplore&lt;br /&gt;EncryptionError&lt;br /&gt;EOF&lt;br /&gt;EOM&lt;br /&gt;EOP&lt;br /&gt;EOY&lt;br /&gt;ErrDatabaseName&lt;br /&gt;ErrDbmsCode&lt;br /&gt;ErrDbmsMessage&lt;br /&gt;ErrMagicName&lt;br /&gt;ErrPosition&lt;br /&gt;ErrTableName&lt;br /&gt;EvalStr&lt;br /&gt;EvalStrInfo&lt;br /&gt;EXP&lt;br /&gt;ExpCalc&lt;br /&gt;File2Blb&lt;br /&gt;File2Ole&lt;br /&gt;File2Req&lt;br /&gt;FileCopy&lt;br /&gt;FileDelete&lt;br /&gt;FileDlg&lt;br /&gt;FileExist&lt;br /&gt;FileListGet&lt;br /&gt;FileRename&lt;br /&gt;FileSize&lt;br /&gt;Fill&lt;br /&gt;Fix&lt;br /&gt;Flip&lt;br /&gt;Flow&lt;br /&gt;FlwMtr&lt;br /&gt;FlwMtrVars&lt;br /&gt;FormStateClear&lt;br /&gt;GetComponentName&lt;br /&gt;GetGUID&lt;br /&gt;GetLang&lt;br /&gt;GetParam&lt;br /&gt;GroupAdd&lt;br /&gt;HandledCtrl&lt;br /&gt;HitZOrdr&lt;br /&gt;Hour&lt;br /&gt;HStr&lt;br /&gt;HTTPGet&lt;br /&gt;HTTPLastHeader&lt;br /&gt;HTTPPost&lt;br /&gt;HVal&lt;br /&gt;Idle&lt;br /&gt;IF&lt;br /&gt;IN&lt;br /&gt;INIGet&lt;br /&gt;INIGetLn&lt;br /&gt;INIPut&lt;br /&gt;Ins&lt;br /&gt;InStr&lt;br /&gt;InTrans&lt;br /&gt;IOCurr&lt;br /&gt;IsComponent&lt;br /&gt;IsDefault&lt;br /&gt;IsFirstRecordCycle&lt;br /&gt;ISNULL&lt;br /&gt;JCall&lt;br /&gt;JCallStatic&lt;br /&gt;JCreate&lt;br /&gt;JException&lt;br /&gt;JExceptionOccurred&lt;br /&gt;JExceptionText&lt;br /&gt;JExplore&lt;br /&gt;JGet&lt;br /&gt;JGetStatic&lt;br /&gt;JInstanceOf&lt;br /&gt;JSet&lt;br /&gt;JSetStatic&lt;br /&gt;KbGet&lt;br /&gt;KbPut&lt;br /&gt;LastClicked&lt;br /&gt;LastPark&lt;br /&gt;LDAPError&lt;br /&gt;LDAPGet&lt;br /&gt;Left&lt;br /&gt;Len&lt;br /&gt;Level&lt;br /&gt;LIKE&lt;br /&gt;Line&lt;br /&gt;LMChkIn&lt;br /&gt;LMChkOut&lt;br /&gt;LMUVStr&lt;br /&gt;LMVStr&lt;br /&gt;Lock&lt;br /&gt;LOG&lt;br /&gt;Logging&lt;br /&gt;Logical&lt;br /&gt;Logon&lt;br /&gt;LoopCounter&lt;br /&gt;Lower&lt;br /&gt;LTrim&lt;br /&gt;MailBoxSet&lt;br /&gt;MailConnect&lt;br /&gt;MailDisconnect&lt;br /&gt;MailError&lt;br /&gt;MailFileSave&lt;br /&gt;MailLastRC&lt;br /&gt;MailMsgBCC&lt;br /&gt;MailMsgCC&lt;br /&gt;MailMsgDate&lt;br /&gt;MailMsgDel&lt;br /&gt;MailMsgFile&lt;br /&gt;MailMsgFiles&lt;br /&gt;MailMsgFrom&lt;br /&gt;MailMsgHeader&lt;br /&gt;MailMsgId&lt;br /&gt;MailMsgReplyTo&lt;br /&gt;MailMsgSubj&lt;br /&gt;MailMsgText&lt;br /&gt;MailMsgTo&lt;br /&gt;MailSend&lt;br /&gt;MainDisplay&lt;br /&gt;MainLevel&lt;br /&gt;MarkedTextGet&lt;br /&gt;MarkedTextSet&lt;br /&gt;MarkText&lt;br /&gt;MAX&lt;br /&gt;MDate&lt;br /&gt;Menu&lt;br /&gt;MenuIdx&lt;br /&gt;MID&lt;br /&gt;MIN&lt;br /&gt;Minute&lt;br /&gt;MlsTrans&lt;br /&gt;MMClear&lt;br /&gt;MMCount&lt;br /&gt;MMCurr&lt;br /&gt;MMStop&lt;br /&gt;MnuAdd&lt;br /&gt;MnuCheck&lt;br /&gt;MnuEnabl&lt;br /&gt;MnuName&lt;br /&gt;MnuRemove&lt;br /&gt;MnuReset&lt;br /&gt;MnuShow&lt;br /&gt;Month&lt;br /&gt;MStr&lt;br /&gt;MTblGet&lt;br /&gt;MTblSet&lt;br /&gt;mTime&lt;br /&gt;mTStr&lt;br /&gt;mTVal&lt;br /&gt;MVal&lt;br /&gt;NDOW&lt;br /&gt;NMonth&lt;br /&gt;NULL&lt;br /&gt;OEM2ANSI&lt;br /&gt;OSEnvGet&lt;br /&gt;OSEnvSet&lt;br /&gt;Owner&lt;br /&gt;Page&lt;br /&gt;ParamsPack&lt;br /&gt;ParamsUnPack&lt;br /&gt;PPD&lt;br /&gt;Prog&lt;br /&gt;ProgIdx&lt;br /&gt;ProjectDir&lt;br /&gt;RAND&lt;br /&gt;Range&lt;br /&gt;Rep&lt;br /&gt;RepStr&lt;br /&gt;Right&lt;br /&gt;RightAdd&lt;br /&gt;Rights&lt;br /&gt;Rollback&lt;br /&gt;Round&lt;br /&gt;RqCtxInf&lt;br /&gt;RqCtxTrm&lt;br /&gt;RqExe&lt;br /&gt;RqHTTPHeader&lt;br /&gt;RqLoad&lt;br /&gt;RqQueDel&lt;br /&gt;RqQueLst&lt;br /&gt;RqQuePri&lt;br /&gt;RqReqInf&lt;br /&gt;RqReqLst&lt;br /&gt;RqRtApp&lt;br /&gt;RqRtApps&lt;br /&gt;RqRtCtx&lt;br /&gt;RqRtCtxs&lt;br /&gt;RqRtInf&lt;br /&gt;RqRts&lt;br /&gt;RqRtTrm&lt;br /&gt;RqRtTrmEx&lt;br /&gt;RqStat&lt;br /&gt;RqTrmTimeout&lt;br /&gt;RTrim&lt;br /&gt;RunMode&lt;br /&gt;Second&lt;br /&gt;SetBufCnvParam&lt;br /&gt;SetContextFocus&lt;br /&gt;SetCrsr&lt;br /&gt;SetLang&lt;br /&gt;SetParam&lt;br /&gt;SetWindowFocus&lt;br /&gt;SharedValGet&lt;br /&gt;SharedValPack&lt;br /&gt;SharedValSet&lt;br /&gt;SharedValUnpack&lt;br /&gt;SIN&lt;br /&gt;SNMPNotify&lt;br /&gt;SoundX&lt;br /&gt;SplitterOffset&lt;br /&gt;Stat&lt;br /&gt;Str&lt;br /&gt;StrBuild&lt;br /&gt;StrToken&lt;br /&gt;StrTokenCnt&lt;br /&gt;StrTokenIdx&lt;br /&gt;SubformExecMode&lt;br /&gt;TAN&lt;br /&gt;TDepth&lt;br /&gt;Term&lt;br /&gt;Text&lt;br /&gt;THIS&lt;br /&gt;Time&lt;br /&gt;Translate&lt;br /&gt;TranslateNR&lt;br /&gt;TransMode&lt;br /&gt;TreeLevel&lt;br /&gt;TreeNodeGoto&lt;br /&gt;TreeValue&lt;br /&gt;Trim&lt;br /&gt;TStr&lt;br /&gt;TVal&lt;br /&gt;UDF&lt;br /&gt;UDFF&lt;br /&gt;UDFS&lt;br /&gt;UnicodeChr&lt;br /&gt;UnicodeFromANSI&lt;br /&gt;UnicodeToANSI&lt;br /&gt;UnicodeVal&lt;br /&gt;UnLock&lt;br /&gt;Upper&lt;br /&gt;User&lt;br /&gt;UserAdd&lt;br /&gt;UserDel&lt;br /&gt;UTF8FromAnsi&lt;br /&gt;UTF8ToAnsi&lt;br /&gt;Val&lt;br /&gt;VarAttr&lt;br /&gt;VarCurr&lt;br /&gt;VarCurrN&lt;br /&gt;VarDbName&lt;br /&gt;VariantAttr&lt;br /&gt;VariantCreate&lt;br /&gt;VariantGet&lt;br /&gt;VariantGetVector&lt;br /&gt;VariantType&lt;br /&gt;VarIndex&lt;br /&gt;VarInp&lt;br /&gt;VarMod&lt;br /&gt;VarName&lt;br /&gt;VarPic&lt;br /&gt;VarPrev&lt;br /&gt;VarSet&lt;br /&gt;VecCellAttr&lt;br /&gt;VecGet&lt;br /&gt;VecSet&lt;br /&gt;VecSize&lt;br /&gt;ViewMod&lt;br /&gt;Visual&lt;br /&gt;WinBox&lt;br /&gt;WinHelp&lt;br /&gt;WinHWND&lt;br /&gt;WinMaximize&lt;br /&gt;WinMinimize&lt;br /&gt;WinRestore&lt;br /&gt;WSConsumerAttachmentAdd&lt;br /&gt;WSConsumerAttachmentGet&lt;br /&gt;WSProviderAttachmentAdd&lt;br /&gt;WSProviderAttachmentGet&lt;br /&gt;WsSetIdentity&lt;br /&gt;XMLBlobGet&lt;br /&gt;XMLCnt&lt;br /&gt;XMLDelete&lt;br /&gt;XMLExist&lt;br /&gt;XMLFind&lt;br /&gt;XMLGet&lt;br /&gt;XMLGetAlias&lt;br /&gt;XMLGetEncoding&lt;br /&gt;XMLInsert&lt;br /&gt;XMLModify&lt;br /&gt;XMLSetEncoding&lt;br /&gt;XMLSetNS&lt;br /&gt;XMLStr&lt;br /&gt;XMLVal&lt;br /&gt;XMLValidate&lt;br /&gt;XMLValidationError&lt;br /&gt;Year&lt;/td&gt;&lt;br /&gt;&lt;td width="65%" valign="top"&gt;&lt;br /&gt;ab&lt;br /&gt;ac&lt;br /&gt;&lt;br /&gt;adddatet&lt;br /&gt;addt&lt;br /&gt;an&lt;br /&gt;ap&lt;br /&gt;asciic&lt;br /&gt;asciiv&lt;br /&gt;asi&lt;br /&gt;ast&lt;br /&gt;at&lt;br /&gt;blb&lt;br /&gt;blob2&lt;br /&gt;blobf&lt;br /&gt;blobs&lt;br /&gt;blobt&lt;br /&gt;bom&lt;br /&gt;boy&lt;br /&gt;bufgeta&lt;br /&gt;bufgetbi&lt;br /&gt;bufgetbl&lt;br /&gt;bufgetd&lt;br /&gt;bufgetl&lt;br /&gt;bufgetn&lt;br /&gt;bufgett&lt;br /&gt;bufgetu&lt;br /&gt;bufgetva&lt;br /&gt;bufgetve&lt;br /&gt;bufseta&lt;br /&gt;bufsetbi&lt;br /&gt;bufsetbl&lt;br /&gt;bufsetd&lt;br /&gt;bufsetl&lt;br /&gt;bufsetn&lt;br /&gt;bufsett&lt;br /&gt;bufsetu&lt;br /&gt;bufsetva&lt;br /&gt;bufsetve&lt;br /&gt;&lt;br /&gt;calldllf&lt;br /&gt;calldlls&lt;br /&gt;callj&lt;br /&gt;callo&lt;br /&gt;&lt;br /&gt;callprogu&lt;br /&gt;callu&lt;br /&gt;car&lt;br /&gt;cas&lt;br /&gt;cd&lt;br /&gt;che&lt;br /&gt;chk&lt;br /&gt;ci&lt;br /&gt;&lt;br /&gt;cleftm&lt;br /&gt;clickcx&lt;br /&gt;clickcy&lt;br /&gt;clickwx&lt;br /&gt;clickwy&lt;br /&gt;clientcertificatea&lt;br /&gt;clientcertificated&lt;br /&gt;clipa&lt;br /&gt;clipr&lt;br /&gt;clipw&lt;br /&gt;clr&lt;br /&gt;cm&lt;br /&gt;cn&lt;br /&gt;cod&lt;br /&gt;come&lt;br /&gt;comhandleg&lt;br /&gt;comhandles&lt;br /&gt;comobjc&lt;br /&gt;comobjr&lt;br /&gt;cos&lt;br /&gt;cou&lt;br /&gt;cr&lt;br /&gt;&lt;br /&gt;ctopm&lt;br /&gt;ctrlg&lt;br /&gt;ctrlh&lt;br /&gt;ctxc&lt;br /&gt;ctxgeta&lt;br /&gt;ctxgeti&lt;br /&gt;ctxgetn&lt;br /&gt;ctxk&lt;br /&gt;ctxl&lt;br /&gt;ctxn&lt;br /&gt;ctxp&lt;br /&gt;ctxse&lt;br /&gt;ctxsi&lt;br /&gt;ctxst&lt;br /&gt;curro&lt;br /&gt;currp&lt;br /&gt;cw&lt;br /&gt;dataviewtoh&lt;br /&gt;dataviewtot&lt;br /&gt;dataviewtox&lt;br /&gt;dataviewv&lt;br /&gt;date&lt;br /&gt;day&lt;br /&gt;dbca&lt;br /&gt;dbco&lt;br /&gt;dbde&lt;br /&gt;dbdi&lt;br /&gt;dber&lt;br /&gt;dbex&lt;br /&gt;dbn&lt;br /&gt;dbrec&lt;br /&gt;dbrel&lt;br /&gt;dbro&lt;br /&gt;dbs&lt;br /&gt;dbviewr&lt;br /&gt;dbviews&lt;br /&gt;dbxmlmixedg&lt;br /&gt;dbxmlmixeds&lt;br /&gt;ddbe&lt;br /&gt;ddee&lt;br /&gt;ddeg&lt;br /&gt;ddep&lt;br /&gt;dder&lt;br /&gt;ddex&lt;br /&gt;dec&lt;br /&gt;&lt;br /&gt;dela&lt;br /&gt;dif&lt;br /&gt;dir&lt;br /&gt;dis&lt;br /&gt;do&lt;br /&gt;dragsetc&lt;br /&gt;dragsetd&lt;br /&gt;dropf&lt;br /&gt;dropg&lt;br /&gt;dropmousex&lt;br /&gt;dropmousey&lt;br /&gt;ds&lt;br /&gt;dv&lt;br /&gt;editg&lt;br /&gt;edits&lt;br /&gt;ejbc&lt;br /&gt;ejbe&lt;br /&gt;en&lt;br /&gt;eof&lt;br /&gt;eom&lt;br /&gt;eop&lt;br /&gt;eoy&lt;br /&gt;errda&lt;br /&gt;errdbmsc&lt;br /&gt;errdbmsm&lt;br /&gt;errm&lt;br /&gt;errp&lt;br /&gt;errt&lt;br /&gt;&lt;br /&gt;evalstri&lt;br /&gt;&lt;br /&gt;expc&lt;br /&gt;file2b&lt;br /&gt;file2o&lt;br /&gt;file2r&lt;br /&gt;filec&lt;br /&gt;filede&lt;br /&gt;filedl&lt;br /&gt;filee&lt;br /&gt;filel&lt;br /&gt;filer&lt;br /&gt;files&lt;br /&gt;fill&lt;br /&gt;fix&lt;br /&gt;fli&lt;br /&gt;flo&lt;br /&gt;&lt;br /&gt;flwmtrv&lt;br /&gt;fo&lt;br /&gt;getc&lt;br /&gt;getg&lt;br /&gt;getl&lt;br /&gt;getp&lt;br /&gt;gr&lt;br /&gt;ha&lt;br /&gt;hi&lt;br /&gt;ho&lt;br /&gt;hs&lt;br /&gt;httpg&lt;br /&gt;httpl&lt;br /&gt;httpp&lt;br /&gt;hv&lt;br /&gt;id&lt;br /&gt;if&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;inigetl&lt;br /&gt;inip&lt;br /&gt;&lt;br /&gt;inst&lt;br /&gt;int&lt;br /&gt;io&lt;br /&gt;isc&lt;br /&gt;isd&lt;br /&gt;isf&lt;br /&gt;isn&lt;br /&gt;&lt;br /&gt;jcalls&lt;br /&gt;jc&lt;br /&gt;&lt;br /&gt;jexceptiono&lt;br /&gt;jexceptiont&lt;br /&gt;jexp&lt;br /&gt;&lt;br /&gt;jgets&lt;br /&gt;ji&lt;br /&gt;&lt;br /&gt;jsets&lt;br /&gt;kbg&lt;br /&gt;kbp&lt;br /&gt;lastc&lt;br /&gt;lastp&lt;br /&gt;ldape&lt;br /&gt;ldapg&lt;br /&gt;lef&lt;br /&gt;len&lt;br /&gt;lev&lt;br /&gt;lik&lt;br /&gt;lin&lt;br /&gt;lmchki&lt;br /&gt;lmchko&lt;br /&gt;lmu&lt;br /&gt;lmv&lt;br /&gt;loc&lt;br /&gt;&lt;br /&gt;logg&lt;br /&gt;logi&lt;br /&gt;logo&lt;br /&gt;loo&lt;br /&gt;low&lt;br /&gt;lt&lt;br /&gt;mailb&lt;br /&gt;mailc&lt;br /&gt;maild&lt;br /&gt;maile&lt;br /&gt;mailf&lt;br /&gt;maill&lt;br /&gt;mailmsgb&lt;br /&gt;mailmsgc&lt;br /&gt;mailmsgda&lt;br /&gt;mailmsgde&lt;br /&gt;&lt;br /&gt;mailmsgfiles&lt;br /&gt;mailmsgfr&lt;br /&gt;mailmsgh&lt;br /&gt;mailmsgi&lt;br /&gt;mailmsgr&lt;br /&gt;mailmsgs&lt;br /&gt;mailmsgt&lt;br /&gt;mailmsgt&lt;br /&gt;mails&lt;br /&gt;maind&lt;br /&gt;mainl&lt;br /&gt;markedtextg&lt;br /&gt;markedtexts&lt;br /&gt;markt&lt;br /&gt;max&lt;br /&gt;md&lt;br /&gt;&lt;br /&gt;menul&lt;br /&gt;mid&lt;br /&gt;&lt;br /&gt;minu&lt;br /&gt;ml&lt;br /&gt;mmcl&lt;br /&gt;mmco&lt;br /&gt;mmcu&lt;br /&gt;mms&lt;br /&gt;mnua&lt;br /&gt;mnuc&lt;br /&gt;mnue&lt;br /&gt;mnun&lt;br /&gt;mnurem&lt;br /&gt;mnures&lt;br /&gt;mnus&lt;br /&gt;mo&lt;br /&gt;ms&lt;br /&gt;mtblg&lt;br /&gt;mtbls&lt;br /&gt;mti&lt;br /&gt;mts&lt;br /&gt;mtv&lt;br /&gt;mv&lt;br /&gt;nd&lt;br /&gt;nm&lt;br /&gt;nu&lt;br /&gt;oe&lt;br /&gt;oseenvg&lt;br /&gt;oseenvs&lt;br /&gt;ow&lt;br /&gt;pag&lt;br /&gt;paramsp&lt;br /&gt;paramsu&lt;br /&gt;pp&lt;br /&gt;&lt;br /&gt;progi&lt;br /&gt;proj&lt;br /&gt;rand&lt;br /&gt;rang&lt;br /&gt;&lt;br /&gt;reps&lt;br /&gt;&lt;br /&gt;righta&lt;br /&gt;rights&lt;br /&gt;rol&lt;br /&gt;rou&lt;br /&gt;rqctxl&lt;br /&gt;rqctxt&lt;br /&gt;rqe&lt;br /&gt;rqh&lt;br /&gt;rql&lt;br /&gt;rqqued&lt;br /&gt;rqquel&lt;br /&gt;rqquep&lt;br /&gt;rqreqi&lt;br /&gt;rqreql&lt;br /&gt;&lt;br /&gt;rqrtapps&lt;br /&gt;&lt;br /&gt;rqrtctxs&lt;br /&gt;rqrti&lt;br /&gt;rgrts&lt;br /&gt;&lt;br /&gt;rqrttrme&lt;br /&gt;rqs&lt;br /&gt;rqt&lt;br /&gt;rt&lt;br /&gt;ru&lt;br /&gt;sec&lt;br /&gt;setb&lt;br /&gt;setco&lt;br /&gt;setcr&lt;br /&gt;setl&lt;br /&gt;setp&lt;br /&gt;setw&lt;br /&gt;sharedvalg&lt;br /&gt;sharedvalp&lt;br /&gt;sharedvals&lt;br /&gt;sharedvalu&lt;br /&gt;si&lt;br /&gt;sn&lt;br /&gt;so&lt;br /&gt;sp&lt;br /&gt;sta&lt;br /&gt;&lt;br /&gt;strb&lt;br /&gt;&lt;br /&gt;strtokenc&lt;br /&gt;strtokeni&lt;br /&gt;su&lt;br /&gt;ta&lt;br /&gt;td&lt;br /&gt;ter&lt;br /&gt;tex&lt;br /&gt;th&lt;br /&gt;ti&lt;br /&gt;&lt;br /&gt;translaten&lt;br /&gt;transm&lt;br /&gt;treel&lt;br /&gt;treen&lt;br /&gt;treev&lt;br /&gt;tri&lt;br /&gt;ts&lt;br /&gt;tv&lt;br /&gt;&lt;br /&gt;udff&lt;br /&gt;udfs&lt;br /&gt;unicodec&lt;br /&gt;unicodef&lt;br /&gt;unicodet&lt;br /&gt;unicodev&lt;br /&gt;unl&lt;br /&gt;up&lt;br /&gt;&lt;br /&gt;usera&lt;br /&gt;userd&lt;br /&gt;utf8f&lt;br /&gt;utf8t&lt;br /&gt;val&lt;br /&gt;vara&lt;br /&gt;&lt;br /&gt;varcurrn&lt;br /&gt;vard&lt;br /&gt;varianta&lt;br /&gt;variantc&lt;br /&gt;&lt;br /&gt;variantgetv&lt;br /&gt;variantt&lt;br /&gt;varind&lt;br /&gt;varinp&lt;br /&gt;narm&lt;br /&gt;varn&lt;br /&gt;varp&lt;br /&gt;varpr&lt;br /&gt;vars&lt;br /&gt;vecc&lt;br /&gt;vecg&lt;br /&gt;vecse&lt;br /&gt;vecsi&lt;br /&gt;vie&lt;br /&gt;vis&lt;br /&gt;winb&lt;br /&gt;winhe&lt;br /&gt;winhw&lt;br /&gt;winma&lt;br /&gt;winmi&lt;br /&gt;winr&lt;br /&gt;wsconsumerattachmenta&lt;br /&gt;wsconsumerattachmentg&lt;br /&gt;wsproviderattachmenta&lt;br /&gt;wsproviderattachmentg&lt;br /&gt;wss&lt;br /&gt;xmlb&lt;br /&gt;xmlc&lt;br /&gt;xmld&lt;br /&gt;xmle&lt;br /&gt;xmlf&lt;br /&gt;&lt;br /&gt;xmlgeta&lt;br /&gt;xmlgete&lt;br /&gt;xmli&lt;br /&gt;xmlm&lt;br /&gt;xmlsete&lt;br /&gt;xmlsetn&lt;br /&gt;xmlst&lt;br /&gt;&lt;br /&gt;xmlvalidate&lt;br /&gt;xmlvalidati&lt;br /&gt;y&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-6632883390684091775?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/6632883390684091775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/6632883390684091775'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2006/10/auto-complete-cheat-sheet.html' title='Auto Complete Cheat Sheet'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-1851381905325532386</id><published>2006-10-19T16:14:00.000-07:00</published><updated>2006-10-19T16:19:20.030-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RAD'/><category scheme='http://www.blogger.com/atom/ns#' term='Task Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='eDeveloper'/><title type='text'>Is eDeveloper V10 Up to the Task?</title><content type='html'>The newly refreshed developers toolkit in eDeveloper V10 presents a very fresh, clean development interface with an easy-to-use task editor and powerful expression editor. In our continuing series evaluating the 51 reasons to upgrade to eDeveloper V10, we will now focus on fourteen enhancements made to the &lt;b&gt;task editor.&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;17. Task Layers&lt;/b&gt; – &lt;i&gt; Easily distinguish between Data View, Logic, and Forms definitions using the clear separation between these three main pillars of a task. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I know some of you who are currently using eDeveloper are worried about replacing Record Main. But the migration process preserves your Record Main logic as is. You don't have to change things over unless you want to – and, you can do it incrementally (which is recommended). So once you get past the usual resistance to change that comes with any minor shift in a paradigm, you will actually grow to love the new layout of your application and its visibility in the three layers of the task editor: the Data View Editor, the Logic Editor, and the Form Editor. &lt;br /&gt;&lt;br /&gt;The Data View Editor lets you define the task's data view interface as part of the task definition. The Data View elements include source tables, fields, and range. This window replaces the Record Main and DB Table repositories from previous eDeveloper versions.&lt;br /&gt;&lt;br /&gt;You can enter Header Rows and Detail Rows in the Data View. The Header Row data view lets you specify the data source type, define links to the data source, and declare a data source open. The property sheet shows the properties for each of these options.&lt;br /&gt;&lt;br /&gt;Then the detail row displays the Remark, Column (when a main source is selected), Virtual and Parameter. So it provides a fairly compact view that is human readable.&lt;br /&gt;&lt;br /&gt;The Logic Editor is used to define the task’s logical segments. Keep in mind that the header line is basically a handler and the detail line is an operation. Again very clean and compact.&lt;br /&gt;&lt;br /&gt;The Form Editor populates an initial entry automatically for each specific task. New entries are entered automatically for each subtask. Forms let the end-user interact with the application. They contain controls that either display data options or let the end-user enter data. The Form Editor displays the form’s frame and content. You can then easily design a form by assigning form properties and selecting controls and defining their properties.&lt;br /&gt;&lt;br /&gt;So all in all, the three layer approach to Data, Logic and Presentation (Forms) is quite coherent and neat. I like it and hears a tip: you can press CTRL+TAB to move between the three editors (but you won't be able to leave the editor if you haven't created a valid entry.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;18. Hierarchical Display&lt;/b&gt; – &lt;i&gt; Easily navigate through the data-view and logic definitions of every task using the clear hierarchical display of the new task editor. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Part of the ease-of-use then comes from the hierarchical display of your logic. Use + to expand a hierarchy and – to collapse it. You can also use the "Go To Match" function which is pretty nifty and is explained &lt;a href=http://ftp.magicsoftware.com/www/help/eDeveloper10/logic_editor/Logic_Editor_Events.htm&gt;here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;19. Task Properties&lt;/b&gt; – &lt;i&gt; View and handle all properties of a task from a single task properties dialog. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Remember, the Task Properties dialog box is going to open automatically when you first zoom into a task and can be opened again later with CTRL+P while in the Task Editor. They've packed tons of power and control in here, so spend some time to re-familiarize yourself with all the available properties settings. They are organized into these tabs: General, Behavior, Interface, Data, Options and Advanced.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;20. Relevant Only Information&lt;/b&gt; – &lt;i&gt; For efficient reading of data-view and logic the task editor hides trivial information to maintain the information relevant and concise. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Rather than just listing all information in columns, the detailed information for a row is shown when you are parked on that row. In some cases this means a combo box type of display and in others it just means the column information is only displayed when selected. This allows you to navigate based on the important identifiers and then see the details when you want them. It really unclutters the data view and logic view allowing you to work more efficiently.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;21. Range Settings&lt;/b&gt; – &lt;i&gt; Obtain a full overview of all the Range criteria defined for the task's data-view from a single Range\Locate dialog. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The range window allows you to choose from a standard eDeveloper range, a SQL Where Clause and Range Expressions. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;22. Default Logic Units&lt;/b&gt; – &lt;i&gt; Customize your studio to automatically create basic logic units for every new task. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This is an .ini setting that can save you loads of time, so pay attention. This environment setting lets you automatically create a default schema, such as Task Prefix and Suffix, Record Prefix or Suffix.&lt;br /&gt;&lt;br /&gt;Specifically, the values for this are set in the Magic.ini with the Command Line Name:  AutoCreateTaskLogicUnits The available settings are:&lt;br /&gt;No (which is the default), Task (Task Prefix and Suffix logic units are entered), Record (Record Prefix and Suffix logic units are entered), or Task and Record (Task Prefix and Suffix, and Record Prefix and Suffix logic units are entered). So this is a great way to jump start the logic units in the task editor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;23. Save Program&lt;/b&gt; – &lt;i&gt; Instantly save changes of any program while editing the program. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Nice. Can you think of a time when you really, really wanted that? How about when the nasty Microsoft Updates dialog rears its ugly head to tell you your machine will reboot in 5 minutes? I hate that. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;24. Developer Functions&lt;/b&gt; – &lt;i&gt; Create your own functions to implement simple or complex procedures that involve composite resources. These function logic units will be available to you throughout the project as a built-in function. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I think the &lt;a href=http://www.magic-iug.com&gt; Magic International User Group&lt;/a&gt; should sponsor a contest for the most creative user defined function. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;25. Flexible Control Handling&lt;/b&gt; – &lt;i&gt; Handle controls by name and achieve greater flexibility by defining the control specific logic units before the form design, utilizing the same logic unit for a control in various forms and setting global control specific logic units. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;One of the control's properties is its name. This enables a robust method to refer to controls in a  Class 0 form, and to refer to them in functions. The LastClicked function will return the control name. Keep in mind that the Control Name property is limited to 30 characters and trailing blanks are not allowed. Duplicate control names are not allowed, so the Copy operation for controls in the Form Editor does not copy this property.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;26. Variable Change&lt;/b&gt; – &lt;i&gt; Set super responsive logic that can respond to any manual or automatic modification of any variable in a task. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The Variable Change logic unit lets you handle the change of a variable's value. And of course it is triggered whenever the variable value is changed. You can define a Variable Change logic unit for BLOBs, vectors, and ActiveXs, but not, incidentally, for OLEs. Don't ask why. I don't know. Some things just are, right?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;27. Event Parameters&lt;/b&gt; – &lt;i&gt; Improve handling and raising events by clearly declaring the parameters that are expected by the event. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;In each task you can define events to be handled in your project whenever they occur. For example, you can define an event called ‘Add Customer’. Events have &lt;br /&gt;Descriptions, Trigger Types, Triggers, Parameters, Force Exit and in a &lt;i&gt;Main Program&lt;/i&gt; they have Public Name and Expose settings. There are four parameters available: Name, Model, Attribute, and Picture. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;28. Post Record Update Force Level&lt;/b&gt; – &lt;i&gt; Easily define event handlers to be executed only after all modifications of a record are updated within a transaction. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This makes it easier to ensure transactional integrity. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;29. Direct Logic Access&lt;/b&gt; – &lt;i&gt; Quickly access and create control level logic directly from any control defined in the form editor of a task. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Simply right click on the control and choose the option to create logic. Nice.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;30. Tabbing order&lt;/b&gt; – &lt;i&gt; Set the tabbing order of controls independently from the order of the fields in the data view definition. The value of each element can be set as fixed or dynamic. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Okay, you may begin the applause. Whenever Magic shows this, developers get very happy. It's the little things in life that make the difference, you know.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;31. Subforms&lt;/b&gt; – &lt;i&gt; Implement Parent-Child displays quickly and easily at the click of a button by simply declaring the participating child task on the parent's form using the new Subform control. &lt;/i&gt; &lt;br /&gt;&lt;br /&gt;One thing to remember here is that a Subform control works only with an online program, which means that the Subform will not be active for a Main or Batch program.&lt;br /&gt;&lt;br /&gt;With that in mind, you can use the Subform control to integrate a task form into the form of another task, while maintaining the subform‘s task data handling and record cycle activities independently from the parent task. But you cannot define a Control logic unit or an Event logic unit for a Subform control.&lt;br /&gt;&lt;br /&gt;Nevertheless, a subform offers several advantages: 1) you can park on the line of a parent task and see the details from the subtask, for a one-to-many task relation, 2) eDeveloper automatically refreshes the Subform data view according to the parent task only when passing parameters, 3) eDeveloper retains your last position in the Subform data view when you leave and reenter., and 4) a tab cycle is provided for the Subform task.&lt;br /&gt;&lt;br /&gt;Okay, well that is probably about as much &lt;i&gt;&lt;b&gt;Joy of eDeveloper V10&lt;/i&gt;&lt;/b&gt; as you can process in one sitting. So we will blog on about eDeveloper V10 in our next entry, where we will evaluate the improvements to the expression editor.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-1851381905325532386?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/1851381905325532386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/1851381905325532386'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2006/10/is-edeveloper-v10-up-to-task.html' title='Is eDeveloper V10 Up to the Task?'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-2119836553391503336</id><published>2006-10-17T13:26:00.000-07:00</published><updated>2006-10-17T13:33:34.184-07:00</updated><title type='text'>Go! Team! Go!</title><content type='html'>The next set of enhancements that Magic Software Enterprises talks about for eDeveloper V10 relate to Version Control, which is important for team development. Team development maintains concurrency among developers when working in a multi-developer environment. It allows you to be able to synchronize the developers work, keep track of changes made to the project, and be able to retrieve previous versions of the project. In eDeveloper V10, team development is made possible by the Version Control feature.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;10. Version Control Facilitator of Your Choice&lt;/b&gt; - &lt;i&gt;eDeveloper supports any version control product that implements the SCC API V1.01, such as Visual SourceSafe® and PVCS®. &lt;/i&gt; You can add to this list IBM Rational ClearCase and numerous other source code control programs compliant with .scc extensions. Please keep in mind that you will be able to access the version control features from within eDeveloper V10. Some aspects of the presentation may vary depending on which source code control system you are utilizing.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;11. Out-Of-The-Box Version Control Software&lt;/b&gt;  - &lt;i&gt;You can immediately start working using a complementary version control software available as part of the eDeveloper installation. &lt;/i&gt; The included software is CVSNT. You can get more information at http://www.cvsnt.org including the online manual at http://www.cvsnt.org/manual/html Keep in mind, this is &lt;i&gt;complimentary&lt;/i&gt; software. I don't know if the aphorism, "you get what you pay for applies," but there have been at least some reports that getting it to work with very large numbers of programs may be extremely resource intensive. So if you have an industrial-strength code base, you may want to utilize a third-party version control system. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;12. Integrated Support&lt;/b&gt; - &lt;i&gt;Utilize every version control activity directly from the eDeveloper Studio. &lt;/i&gt; This is a great convenience to be able to access the features of the enterprise version control system from within eDeveloper V10 itself. So even though you are working with a SCC tool in the background, it is fairly transparent &lt;i&gt;after installation&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;13. Rollback Support&lt;/b&gt; - &lt;i&gt;Revert to a previous checked-in version of any atomic project module by rolling back to a selected version. &lt;/i&gt; In fact, you have a wide variety of features allowing you to: Check objects in and out, undo object checkout, get the latest version, get the latest project version, see the differences between versions, see a history of revisions, see a list of objects that have been checked out, add items to the version control server, exclude projects from version control, work offline with objects, and see a list of objects that are being worked with offline. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;14. Revisions History&lt;/b&gt; - &lt;i&gt;Easily view the history of all modifications done to every atomic project module. &lt;/i&gt; Not all SCC applications support the ability to see the revisions history. PVCS and Visual SourceSafe do provide that capability. It is from within the history, that you can click to see the differences.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;15. Offline Development&lt;/b&gt;  - &lt;i&gt;You can keep on developing your version controlled projects even if you are disconnected from the version control server. &lt;/i&gt; When you do this, a backup copy is created. When you go back online, you then have the ability to compare the different versions. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;16. Conflict Resolving&lt;/b&gt;  - &lt;i&gt;Get a clear and concise view of potential conflicts deriving from external or offline modifications. &lt;/i&gt; The list simply shows you which objects have been changed. However, by clicking on the object history button, you will be able to see the history and select to see differences between versions.&lt;br /&gt;&lt;br /&gt;So there you have it: online and offline source code control that tracks revisions in a team development environment using industry standard SCC 1.01 compliant software. Due to the built-in efficiency of the eDeveloper paradigm, programming teams will tend to be smaller than with other IDEs for older language based coding paradigms such as C++, PHP5, or RPGIV. Nevertheless, the use of revision control methodologies is a great aid to team development in eDeveloper V10 by managing revisions and source code for each element of a project.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-2119836553391503336?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/2119836553391503336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/2119836553391503336'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2006/10/go-team-go.html' title='Go! Team! Go!'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-116102784089329790</id><published>2006-10-16T12:41:00.000-07:00</published><updated>2006-10-17T13:34:15.700-07:00</updated><title type='text'>WYSIBTB: What You See Is Better Than Before</title><content type='html'>OK, you've been asking about the new features in eDeveloper V10. So I'll start with the GUI improvements. Future posts will get into the nitty gritty of other aspects of the latest version.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Windows XP Style&lt;/b&gt; - &lt;i&gt;Provide your end-users a standard-looking application that adheres to the Windows XP style. &lt;/i&gt; For most developers, this single enhancement is worth the price of admission to the whole eDeveloper V10 upgrade show. Let's face it, a well designed, fresh looking user interface is 90% of the battle in user satisfaction and user acceptance. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Shifting Table Columns&lt;/b&gt;  - &lt;i&gt;Enable your end user to freely re-order the columns of any table style display. &lt;/i&gt; This is a runtime feature and I love it. Just click, drag release and the column is moved. As a developer, you can disable it if you want to, but in most cases this is just grease. Love it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. Improved Tab Control&lt;/b&gt; - &lt;i&gt;The new Tab control style enables you to set as many tabs as you need to be easily viewed using a vertical scroll or using multi line display. &lt;/i&gt; And let's not forget, customize the tab order. That's been a pretty highly requested feature and should make most magicians very happy.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. Tab, Radio, and Check Box Icons&lt;/b&gt;  - &lt;i&gt;Enrich your application's UI by adding a relevant icon for every tab in a tab control, for every option in a radio button, and for check boxes. &lt;/i&gt; These new icons are clean and easy to use. The GUI editor is, well, really a GUI editor now. Cool.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. Manageable Radio Buttons&lt;/b&gt;  - &lt;i&gt;Get better control on Radio Buttons option by freely laying out any Radio Button option. &lt;/i&gt; And this means you can put the radio button where you want it for best use of application white space, etc.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6. 3 States Check Box&lt;/b&gt;  - &lt;i&gt;Provide a proper visualization for NULL values of logical fields by using the 3 State support of the Check box control. &lt;/i&gt; The NULL value is the indeterminate state and it looks like a square filling the check box. Basically letting the user know that in this instant, the check box is not relevant to be checked or unchecked.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. Box Style for Radio button and Check box &lt;/b&gt; - &lt;i&gt;You can choose between common display of radio button options &amp; check boxes and a button style of appearance. &lt;/i&gt; Some people prefer this box around the radio buttons and check boxes, I personally think it makes the user interface a bit too busy and less Web-like. But hey, one of these days the CEO is gonna say, "Can't you put a box around that?" and it will be nice to be able to do it in a second rather than writing some ActiveX or whatnot.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8. Automatic Wide Mode &lt;/b&gt; - &lt;i&gt;Set edit controls to automatically open the Wide view screen whenever the end-user reaches the end of the edit control. &lt;/i&gt; Is anybody using this yet? If so, please comment.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;9. Form State Persistency &lt;/b&gt; - &lt;i&gt;Easily configure each screen to keep the end-user's customizable state. &lt;/i&gt; So we also end on a "wroth the price of admission" type feature. Do you remember what kind of machinations we used to have to go through to retain all this? Sure is easy now. Check. Done.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;10. Report Generator &lt;/b&gt; - &lt;i&gt; Does this qualify as a user interface improvement? &lt;/i&gt; Not sure. I'll save this one for another post. Blog you later.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-116102784089329790?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/116102784089329790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/116102784089329790'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2006/10/wysibtb-what-you-see-is-better-than.html' title='WYSIBTB: What You See Is Better Than Before'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36135014.post-116102616386211187</id><published>2006-10-16T12:09:00.000-07:00</published><updated>2006-10-16T13:54:36.727-07:00</updated><title type='text'>Welcome to The Magic of eDeveloper</title><content type='html'>Welcome to the Magic of eDeveloper, a blog for anyone who wants more information, more tutorials, more tips and more news related to Magic Software Enterprises eDeveloper V10 -- a great tool for building, compositing and integrating application software. Since there is a fair amount of material on prior versions of eDeveloper, I will of course focus on eDeveloper V10. Check here for comments on new features, tutorial information, and pretty much anything else that I can think of, borrow or umm, "steal with permission" from the R&amp;D teams to make available to you here. &lt;br /&gt;&lt;br /&gt;I hope that you find this both useful and enjoyable.&lt;div class="blogger-post-footer"&gt;See the Magic of eDeveloper blog at http://www.edeveloperv10.blogspot.com to view the full archives.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36135014-116102616386211187?l=edeveloperv10.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/116102616386211187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36135014/posts/default/116102616386211187'/><link rel='alternate' type='text/html' href='http://edeveloperv10.blogspot.com/2006/10/welcome-to-magic-of-edeveloper.html' title='Welcome to The Magic of eDeveloper'/><author><name>Glenn Johnson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
