Congratulations!

[Valid RSS] This is a valid RSS feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: http://blog.altova.com/feed/

  1. <?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
  2. xmlns:content="http://purl.org/rss/1.0/modules/content/"
  3. xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  4. xmlns:dc="http://purl.org/dc/elements/1.1/"
  5. xmlns:atom="http://www.w3.org/2005/Atom"
  6. xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  7. xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  8. >
  9.  
  10. <channel>
  11. <title>Altova Blog</title>
  12. <atom:link href="https://www.altova.com/blog/feed/" rel="self" type="application/rss+xml" />
  13. <link>https://www.altova.com/blog/</link>
  14. <description>News from Altova, including XMLSpy XML Editor, SQL, UML, Data Integration, and Mobile Tools</description>
  15. <lastBuildDate>Mon, 06 May 2024 17:20:25 +0000</lastBuildDate>
  16. <language>en-US</language>
  17. <sy:updatePeriod>
  18. hourly </sy:updatePeriod>
  19. <sy:updateFrequency>
  20. 1 </sy:updateFrequency>
  21. <item>
  22. <title>YAML Editing Tools</title>
  23. <link>https://www.altova.com/blog/yaml-editing-tools/</link>
  24. <comments>https://www.altova.com/blog/yaml-editing-tools/#respond</comments>
  25. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  26. <pubDate>Thu, 02 May 2024 14:06:34 +0000</pubDate>
  27. <category><![CDATA[Development]]></category>
  28. <category><![CDATA[JSON]]></category>
  29. <category><![CDATA[Tools]]></category>
  30. <category><![CDATA[XML]]></category>
  31. <category><![CDATA[XMLSpy]]></category>
  32. <category><![CDATA[YAML]]></category>
  33. <guid isPermaLink="false">https://www.altova.com/blog/?p=27442</guid>
  34.  
  35. <description><![CDATA[<p>YAML is increasing in popularity due to its combination of human readability, simplicity, and versatility. Often used in configuration files and for data serialization, YAML can be used alongside JSON and XML in modern systems. It makes sense, then, for developers to choose an IDE that supports all three standards. New YAML tools in XMLSpy [&#8230;]</p>
  36. <p>The post <a href="https://www.altova.com/blog/yaml-editing-tools/">YAML Editing Tools</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  37. ]]></description>
  38. <content:encoded><![CDATA[
  39. <p>YAML is increasing in popularity due to its combination of human readability, simplicity, and versatility. Often used in configuration files and for data serialization, YAML can be used alongside JSON and XML in modern systems. It makes sense, then, for developers to choose an IDE that supports all three standards.</p>
  40.  
  41.  
  42.  
  43. <p>New YAML tools in XMLSpy add to comprehensive support for XML and JSON development, giving users the flexibility to choose the most suitable serialization format for their specific use cases and preferences.</p>
  44.  
  45.  
  46.  
  47. <p>Let’s take a look at YAML support in the XML and JSON editor.</p>
  48.  
  49.  
  50.  
  51. <figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/image_1171172626.jpg" alt="decorative image: software developer working on code" class="wp-image-26730" srcset="https://www.altova.com/blog/wp-content/uploads/image_1171172626.jpg 700w, https://www.altova.com/blog/wp-content/uploads/image_1171172626-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  52.  
  53.  
  54.  
  55. <span id="more-27442"></span>
  56.  
  57.  
  58.  
  59. <div style="height:29px" aria-hidden="true" class="wp-block-spacer"></div>
  60.  
  61.  
  62.  
  63. <h2 class="wp-block-heading" id="h-why-yaml">Why YAML?</h2>
  64.  
  65.  
  66.  
  67. <p><a href="https://yaml.com">YAML</a> is a lightweight, human-readable data serialization format designed to be simple and easy to understand. This way, it can be consumed by both people and computers.</p>
  68.  
  69.  
  70.  
  71. <p>Advantages of YAML include:</p>
  72.  
  73.  
  74.  
  75. <ul>
  76. <li><strong>Human readability</strong>: YAML is designed to be easily readable by humans, using Python-style indentation to denote structure instead of brackets or other symbols. This makes it especially popular for configuration files where readability is important.</li>
  77.  
  78.  
  79.  
  80. <li><strong>Simplicity</strong>: <a href="https://xmlaficionado.com/XML+Aficionado/YAML#Basic+Syntax">YAML syntax</a> is straightforward and concise, making it easy to write and understand compared to other data serialization formats.</li>
  81.  
  82.  
  83.  
  84. <li><strong>Language agnostic</strong>: YAML is not tied to any particular programming language, making it versatile and widely applicable across different environments and technologies.</li>
  85.  
  86.  
  87.  
  88. <li><strong>Versatility</strong>: YAML can represent complex data structures, making it suitable for a wide range of use cases including configuration files, data serialization, and even markup languages.</li>
  89.  
  90.  
  91.  
  92. <li><strong>Community support</strong>: YAML has a growing community of users and contributors who provide support, tools, and libraries for working with YAML in various programming languages and frameworks.</li>
  93.  
  94.  
  95.  
  96. <li><strong>Integration with DevOps</strong>: YAML&#8217;s simplicity and readability make it a popular choice for defining configurations in DevOps tools like Docker, Kubernetes, and Ansible.</li>
  97.  
  98.  
  99.  
  100. <li><strong>Standardization</strong>: YAML has been adopted as a standard by many organizations and projects, leading to increased adoption and support across different ecosystems.</li>
  101. </ul>
  102.  
  103.  
  104.  
  105. <p>YAML (.yaml) is case-sensitive and supports a variety of data types, including scalars (strings, numbers, Booleans), sequences (lists), and mappings (key-value pairs). It also supports anchors and aliases, which allow for data reuse and enable complex data structures to be represented efficiently.</p>
  106.  
  107.  
  108.  
  109. <h2 class="wp-block-heading" id="h-intelligent-yaml-editor">Intelligent YAML Editor</h2>
  110.  
  111.  
  112.  
  113. <p>Though YAML syntax is designed to be simple, using an intelligent editor makes composing it much easier. Tools like XMLSpy can reduce time spent on manual tasks like conversion to or from other formats, can help with troubleshooting, and provide a more user-friendly editing experience.</p>
  114.  
  115.  
  116.  
  117. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  118.  
  119.  
  120.  
  121. <figure data-wp-context="{ &quot;core&quot;:
  122. { &quot;image&quot;:
  123. {   &quot;imageLoaded&quot;: false,
  124. &quot;initialized&quot;: false,
  125. &quot;lightboxEnabled&quot;: false,
  126. &quot;hideAnimationEnabled&quot;: false,
  127. &quot;preloadInitialized&quot;: false,
  128. &quot;lightboxAnimation&quot;: &quot;zoom&quot;,
  129. &quot;imageUploadedSrc&quot;: &quot;https://www.altova.com/blog/wp-content/uploads/yaml-editor-2.png&quot;,
  130. &quot;imageCurrentSrc&quot;: &quot;&quot;,
  131. &quot;targetWidth&quot;: &quot;700&quot;,
  132. &quot;targetHeight&quot;: &quot;690&quot;,
  133. &quot;scaleAttr&quot;: &quot;&quot;,
  134. &quot;dialogLabel&quot;: &quot;Enlarged image&quot;
  135. }
  136. }
  137. }" data-wp-interactive class="wp-block-image size-featured_large wp-lightbox-container"><img decoding="async" width="700" height="630" data-wp-effect--setStylesOnResize="effects.core.image.setStylesOnResize" data-wp-effect="effects.core.image.setButtonStyles" data-wp-init="effects.core.image.initOriginImage" data-wp-on--click="actions.core.image.showLightbox" data-wp-on--load="actions.core.image.handleLoad" src="https://www.altova.com/blog/wp-content/uploads/yaml-editor-2-700x630.png" alt="YAML editor in XMLSpy" class="wp-image-27449"/><button
  138. class="lightbox-trigger"
  139. type="button"
  140. aria-haspopup="dialog"
  141. aria-label="Enlarge image: YAML editor in XMLSpy"
  142. data-wp-on--click="actions.core.image.showLightbox"
  143. data-wp-style--right="context.core.image.imageButtonRight"
  144. data-wp-style--top="context.core.image.imageButtonTop"
  145. >
  146. <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
  147. <path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
  148. </svg>
  149. </button>        <div data-wp-body="" class="wp-lightbox-overlay zoom"
  150.            data-wp-bind--role="selectors.core.image.roleAttribute"
  151.            data-wp-bind--aria-label="selectors.core.image.dialogLabel"
  152.            data-wp-class--initialized="context.core.image.initialized"
  153.            data-wp-class--active="context.core.image.lightboxEnabled"
  154.            data-wp-class--hideAnimationEnabled="context.core.image.hideAnimationEnabled"
  155.            data-wp-bind--aria-modal="selectors.core.image.ariaModal"
  156.            data-wp-effect="effects.core.image.initLightbox"
  157.            data-wp-on--keydown="actions.core.image.handleKeydown"
  158.            data-wp-on--touchstart="actions.core.image.handleTouchStart"
  159.            data-wp-on--touchmove="actions.core.image.handleTouchMove"
  160.            data-wp-on--touchend="actions.core.image.handleTouchEnd"
  161.            data-wp-on--click="actions.core.image.hideLightbox"
  162.            tabindex="-1"
  163.            >
  164.                <button type="button" aria-label="Close" style="fill: #000" class="close-button" data-wp-on--click="actions.core.image.hideLightbox">
  165.                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" focusable="false"><path d="M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"></path></svg>
  166.                </button>
  167.                <div class="lightbox-image-container">
  168. <figure class="wp-block-image size-featured_large responsive-image"><img decoding="async" data-wp-bind--src="context.core.image.imageCurrentSrc" data-wp-style--object-fit="selectors.core.image.lightboxObjectFit" src="" alt="YAML editor in XMLSpy" class="wp-image-27449"/></figure>
  169. </div>
  170.                <div class="lightbox-image-container">
  171. <figure class="wp-block-image size-featured_large enlarged-image"><img decoding="async" data-wp-bind--src="selectors.core.image.enlargedImgSrc" data-wp-style--object-fit="selectors.core.image.lightboxObjectFit" src="" alt="YAML editor in XMLSpy" class="wp-image-27449"/></figure>
  172. </div>
  173.                <div class="scrim" style="background-color: #fff" aria-hidden="true"></div>
  174.        </div></figure>
  175.  
  176.  
  177.  
  178. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  179.  
  180.  
  181.  
  182. <p>XMLSpy includes a <a href="https://www.altova.com/xmlspy-xml-editor/yaml-editor">YAML editor</a> in its intelligent Text View that supports the following features.</p>
  183.  
  184.  
  185.  
  186. <ul>
  187. <li>An integrated <strong>AI Assistant </strong>gives developers a head start by, for example, generating a YAML document for a particular application based on a natural language prompt.</li>
  188.  
  189.  
  190.  
  191. <li><strong>Syntax highlighting </strong>and<strong> pretty printing </strong>make it easier to visually distinguish between different elements such as keys, values, comments, and indentation levels. This helps improve readability and reduces the likelihood of syntax errors.</li>
  192.  
  193.  
  194.  
  195. <li><strong>Well-formedness checking</strong> automatically detects syntax errors and inconsistencies in YAML files. It highlights issues such as indentation errors, missing brackets, or invalid syntax, so you can identify and fix problems quickly.</li>
  196.  
  197.  
  198.  
  199. <li><strong>Source folding</strong> is especially useful for navigating large or complex files.</li>
  200.  
  201.  
  202.  
  203. <li><strong>Validation</strong> ensures a doc meets the requirements of the application or system it is designed for. Since YAML does not include a schema spec, XMLSpy supports validation against JSON Schema. You can even generate a JSON Schema based on an existing YAML document.<br /><br />For automated, server-based validation, Altova <a href="https://www.altova.com/raptorxml">RaptorXML Server</a> also supports YAML.</li>
  204.  
  205.  
  206.  
  207. <li><strong>Advanced IDE features </strong>such as project management, source control integration, and support for related technologies including XML, JSON, HTML, Web services, etc., make XMLSpy a one-stop development tool.</li>
  208.  
  209.  
  210.  
  211. <li><strong>Sample YAML documents </strong>that ship with the softwaredemonstrate configurations for web applications, Docker, Kubernetes, etc.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li>
  212.  
  213.  
  214.  
  215. <li>A<strong> built-in YAML tutorial </strong>helps developers new to the language.</li>
  216. </ul>
  217.  
  218.  
  219.  
  220. <h2 class="wp-block-heading" id="h-convert-and-generate-yaml">Convert and Generate YAML</h2>
  221.  
  222.  
  223.  
  224. <p>In addition to editing, XMLSpy includes one-click conversion tools that generate YAML and convert between YAML, XML, and JSON.</p>
  225.  
  226.  
  227.  
  228. <p>Different projects and systems often use different data formats. Having the ability to seamlessly convert between JSON, XML, and YAML allows developers to work with various data formats without having to switch between different tools or manually convert data.</p>
  229.  
  230.  
  231.  
  232. <p>Functionality includes:</p>
  233.  
  234.  
  235.  
  236. <ul>
  237. <li>Converting YAML to JSON or XML</li>
  238.  
  239.  
  240.  
  241. <li>Converting JSON to YAML</li>
  242.  
  243.  
  244.  
  245. <li>Converting XML to YAML</li>
  246.  
  247.  
  248.  
  249. <li>Generating a JSON Schema from YAML</li>
  250.  
  251.  
  252.  
  253. <li>Generating a YAML instance from JSON Schema</li>
  254. </ul>
  255.  
  256.  
  257.  
  258. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  259.  
  260.  
  261.  
  262. <figure class="wp-block-image size-full"><img decoding="async" width="696" height="420" src="https://www.altova.com/blog/wp-content/uploads/yaml-converter.png" alt="Convert or generate YAML in XMLSpy" class="wp-image-27445" srcset="https://www.altova.com/blog/wp-content/uploads//yaml-converter.png 696w, https://www.altova.com/blog/wp-content/uploads//yaml-converter-300x181.png 300w" sizes="(max-width: 696px) 100vw, 696px" /></figure>
  263.  
  264.  
  265.  
  266. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  267.  
  268.  
  269.  
  270. <p>These flexible conversion tools save time and let developers focus on more critical development tasks.</p>
  271.  
  272.  
  273.  
  274. <p>YAML functionality is available in XMLSpy Version 2024 Release 2 or higher. Try it now with a <a href="https://www.altova.com/xmlspy-xml-editor/download">free, 30-day trial</a>.</p>
  275. <p>The post <a href="https://www.altova.com/blog/yaml-editing-tools/">YAML Editing Tools</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  276. ]]></content:encoded>
  277. <wfw:commentRss>https://www.altova.com/blog/yaml-editing-tools/feed/</wfw:commentRss>
  278. <slash:comments>0</slash:comments>
  279. </item>
  280. <item>
  281. <title>Version 2024r2 Introduces Support for YAML, FORTRAS EDI, and More</title>
  282. <link>https://www.altova.com/blog/new-version-2024r2/</link>
  283. <comments>https://www.altova.com/blog/new-version-2024r2/#respond</comments>
  284. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  285. <pubDate>Tue, 23 Apr 2024 12:07:00 +0000</pubDate>
  286. <category><![CDATA[Software]]></category>
  287. <category><![CDATA[Tools]]></category>
  288. <category><![CDATA[XML]]></category>
  289. <category><![CDATA[EDI]]></category>
  290. <category><![CDATA[MapForce]]></category>
  291. <category><![CDATA[new features]]></category>
  292. <category><![CDATA[XBRL]]></category>
  293. <category><![CDATA[XMLSpy]]></category>
  294. <category><![CDATA[YAML]]></category>
  295. <guid isPermaLink="false">https://www.altova.com/blog/?p=27434</guid>
  296.  
  297. <description><![CDATA[<p>The latest release in Altova’s line of desktop developer tools and server software products includes support for new industry standards, updated database support, and performance optimizations. With each new product version, we aim to provide customers with a mix of developer-requested features, support for emerging standards, and performance improvements. Version 2024r2 is no different, with [&#8230;]</p>
  298. <p>The post <a href="https://www.altova.com/blog/new-version-2024r2/">Version 2024r2 Introduces Support for YAML, FORTRAS EDI, and More</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  299. ]]></description>
  300. <content:encoded><![CDATA[
  301. <p>The latest release in Altova’s line of desktop developer tools and server software products includes support for new industry standards, updated database support, and performance optimizations.</p>
  302.  
  303.  
  304.  
  305. <p>With each new product version, we aim to provide customers with a mix of developer-requested features, support for emerging standards, and performance improvements. Version 2024r2 is no different, with tools introduced for working with YAML, FORTRAS EDI, and XBRL Report Packages as well as multiple performance and usability enhancements across the product line.</p>
  306.  
  307.  
  308.  
  309. <p>Here’s a look at the highlights.</p>
  310.  
  311.  
  312.  
  313. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/v2024r2_blog.jpg" alt="Decorative image: laptop with YAML code in the background " class="wp-image-27438" srcset="https://www.altova.com/blog/wp-content/uploads//v2024r2_blog.jpg 700w, https://www.altova.com/blog/wp-content/uploads//v2024r2_blog-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  314.  
  315.  
  316.  
  317. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  318.  
  319.  
  320.  
  321. <span id="more-27434"></span>
  322.  
  323.  
  324.  
  325. <h2 class="wp-block-heading" id="h-yaml-validation-editing-amp-conversion">YAML Validation, Editing, &amp; Conversion</h2>
  326.  
  327.  
  328.  
  329. <p>YAML is a human-readable data serialization format that is commonly used for configuration files, data exchange, and API payloads. Its syntax is designed to be intuitive and easy to read, using indentation and whitespace to represent data structures. YAML supports numerous data types, including lists, dictionaries, scalars, and nested structures, making it versatile for representing complex data hierarchies.</p>
  330.  
  331.  
  332.  
  333. <p>YAML&#8217;s simplicity, readability, and interoperability make it a preferred choice for developers working with configuration data and exchanging information between systems.</p>
  334.  
  335.  
  336.  
  337. <p>That said, many modern applications and systems use a combination of XML, JSON, and YAML for data handling. New support for YAML in XMLSpy gives developers a full-featured editing environment with full support for all three.</p>
  338.  
  339.  
  340.  
  341. <p>In addition to comprehensive XML and JSON tools, starting with v2024r2, XMLSpy includes:</p>
  342.  
  343.  
  344.  
  345. <ul>
  346. <li><a href="https://www.altova.com/xmlspy-xml-editor/yaml-editor">YAML editor</a></li>
  347.  
  348.  
  349.  
  350. <li>Syntax highlighting, source folding, and well-formedness checking</li>
  351.  
  352.  
  353.  
  354. <li>YAML validation against JSON Schema</li>
  355.  
  356.  
  357.  
  358. <li>One-click conversion between XML, JSON, and YAML</li>
  359. </ul>
  360.  
  361.  
  362.  
  363. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  364.  
  365.  
  366.  
  367. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="636" height="547" src="https://www.altova.com/blog/wp-content/uploads/yaml-editor.png" alt="YAML editor, validator, and converter in XMLSpy" class="wp-image-27435" srcset="https://www.altova.com/blog/wp-content/uploads//yaml-editor.png 636w, https://www.altova.com/blog/wp-content/uploads//yaml-editor-300x258.png 300w" sizes="(max-width: 636px) 100vw, 636px" /></figure>
  368.  
  369.  
  370.  
  371. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  372.  
  373.  
  374.  
  375. <p>For a <a href="https://www.altova.com/raptorxml">hyper-performance YAML validator</a>, RaptorXML Server now also supports YAML in addition to XML, JSON, and XBRL standards.</p>
  376.  
  377.  
  378.  
  379. <h2 class="wp-block-heading" id="h-xbrl-report-packages-support">XBRL Report Packages Support</h2>
  380.  
  381.  
  382.  
  383. <p>XBRL reports are usually made of multiple files (XBRL instance document, XBRL Taxonomies, linkbase files, etc.) that must be consumed together. A relatively new standard, <a href="https://www.xbrl.org/guidance/report-packages/">XBRL Report Packages</a> provide a standardized way for combining XBRL report instances and all their dependencies for efficient distribution and consumption.</p>
  384.  
  385.  
  386.  
  387. <p>An XBRL Report Package is an archive that contains an XBRL or iXBRL report together with its supporting documents.</p>
  388.  
  389.  
  390.  
  391. <p>As part of its comprehensive XBRL support, XMLSpy now supports XBRL Report Packages 1.0. Report packages can be validated, and users can open them to view the contained reports in Browser View.</p>
  392.  
  393.  
  394.  
  395. <figure data-wp-context="{ &quot;core&quot;:
  396. { &quot;image&quot;:
  397. {   &quot;imageLoaded&quot;: false,
  398. &quot;initialized&quot;: false,
  399. &quot;lightboxEnabled&quot;: false,
  400. &quot;hideAnimationEnabled&quot;: false,
  401. &quot;preloadInitialized&quot;: false,
  402. &quot;lightboxAnimation&quot;: &quot;zoom&quot;,
  403. &quot;imageUploadedSrc&quot;: &quot;https://www.altova.com/blog/wp-content/uploads/xbrl-report-package-viewer.png&quot;,
  404. &quot;imageCurrentSrc&quot;: &quot;&quot;,
  405. &quot;targetWidth&quot;: &quot;895&quot;,
  406. &quot;targetHeight&quot;: &quot;673&quot;,
  407. &quot;scaleAttr&quot;: &quot;&quot;,
  408. &quot;dialogLabel&quot;: &quot;Enlarged image&quot;
  409. }
  410. }
  411. }" data-wp-interactive class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="895" height="673" data-wp-effect--setStylesOnResize="effects.core.image.setStylesOnResize" data-wp-effect="effects.core.image.setButtonStyles" data-wp-init="effects.core.image.initOriginImage" data-wp-on--click="actions.core.image.showLightbox" data-wp-on--load="actions.core.image.handleLoad" src="https://www.altova.com/blog/wp-content/uploads/xbrl-report-package-viewer.png" alt="XBRL Report Packages viewer in XMLSpy" class="wp-image-27436" srcset="https://www.altova.com/blog/wp-content/uploads//xbrl-report-package-viewer.png 895w, https://www.altova.com/blog/wp-content/uploads//xbrl-report-package-viewer-300x226.png 300w, https://www.altova.com/blog/wp-content/uploads//xbrl-report-package-viewer-768x578.png 768w, https://www.altova.com/blog/wp-content/uploads//xbrl-report-package-viewer-705x530.png 705w" sizes="(max-width: 895px) 100vw, 895px" /><button
  412. class="lightbox-trigger"
  413. type="button"
  414. aria-haspopup="dialog"
  415. aria-label="Enlarge image: XBRL Report Packages viewer in XMLSpy"
  416. data-wp-on--click="actions.core.image.showLightbox"
  417. data-wp-style--right="context.core.image.imageButtonRight"
  418. data-wp-style--top="context.core.image.imageButtonTop"
  419. >
  420. <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
  421. <path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
  422. </svg>
  423. </button>        <div data-wp-body="" class="wp-lightbox-overlay zoom"
  424.            data-wp-bind--role="selectors.core.image.roleAttribute"
  425.            data-wp-bind--aria-label="selectors.core.image.dialogLabel"
  426.            data-wp-class--initialized="context.core.image.initialized"
  427.            data-wp-class--active="context.core.image.lightboxEnabled"
  428.            data-wp-class--hideAnimationEnabled="context.core.image.hideAnimationEnabled"
  429.            data-wp-bind--aria-modal="selectors.core.image.ariaModal"
  430.            data-wp-effect="effects.core.image.initLightbox"
  431.            data-wp-on--keydown="actions.core.image.handleKeydown"
  432.            data-wp-on--touchstart="actions.core.image.handleTouchStart"
  433.            data-wp-on--touchmove="actions.core.image.handleTouchMove"
  434.            data-wp-on--touchend="actions.core.image.handleTouchEnd"
  435.            data-wp-on--click="actions.core.image.hideLightbox"
  436.            tabindex="-1"
  437.            >
  438.                <button type="button" aria-label="Close" style="fill: #000" class="close-button" data-wp-on--click="actions.core.image.hideLightbox">
  439.                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" focusable="false"><path d="M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"></path></svg>
  440.                </button>
  441.                <div class="lightbox-image-container">
  442. <figure class="wp-block-image size-full responsive-image"><img decoding="async" data-wp-bind--src="context.core.image.imageCurrentSrc" data-wp-style--object-fit="selectors.core.image.lightboxObjectFit" src="" alt="XBRL Report Packages viewer in XMLSpy" class="wp-image-27436"/></figure>
  443. </div>
  444.                <div class="lightbox-image-container">
  445. <figure class="wp-block-image size-full enlarged-image"><img decoding="async" data-wp-bind--src="selectors.core.image.enlargedImgSrc" data-wp-style--object-fit="selectors.core.image.lightboxObjectFit" src="" alt="XBRL Report Packages viewer in XMLSpy" class="wp-image-27436"/></figure>
  446. </div>
  447.                <div class="scrim" style="background-color: #fff" aria-hidden="true"></div>
  448.        </div></figure>
  449.  
  450.  
  451.  
  452. <p>RaptorXML+XBRL Server has also added XBRL Report Packages to the long list of XBRL standards it supports for high-volume, high-performance validation and processing.</p>
  453.  
  454.  
  455.  
  456. <h2 class="wp-block-heading" id="h-fortras-edi-data-mapping">FORTRAS EDI Data Mapping</h2>
  457.  
  458.  
  459.  
  460. <p>MapForce supports numerous popular EDI formats (EDIFACT, HL7, iDOC, PADIS, SWIFT, VDA, and others) for any-to-any data mapping. This makes it easy to convert EDI messages to other data formats like XML, JSON, and databases, as well as to transform one EDI message format to another.</p>
  461.  
  462.  
  463.  
  464. <p>In the latest version, Altova has added support for FORTRAS EDI to MapForce.</p>
  465.  
  466.  
  467.  
  468. <p>FORTRAS messages are used to exchange information among freight hauling companies, and support for this popular standard has been requested by MapForce customers working on <a href="https://www.altova.com/mapforce/edi-mapping">EDI data integration</a>.</p>
  469.  
  470.  
  471.  
  472. <p>FORTRAS is also now supported by MapForce Server for high-performance, server-based automation of data integration and ETL projects.</p>
  473.  
  474.  
  475.  
  476. <h2 class="wp-block-heading" id="h-performance-amp-usability-enhancements">Performance &amp;Usability Enhancements</h2>
  477.  
  478.  
  479.  
  480. <p>As with all releases, numerous updates to improve performance and offer users flexible implementation options have been added.</p>
  481.  
  482.  
  483.  
  484. <p><strong>Assigning prepackaged schemas to XML instances</strong></p>
  485.  
  486.  
  487.  
  488. <p>XMLSpy includes a <a href="https://www.altova.com/blog/benefits-of-an-xml-schema-manager/">convenient XML Schema Manager</a> that provides a centralized way to install and manage industry-standard DTDs and XSDs. This makes it easy to download and install schemas and their versions without ever leaving the XML editor.</p>
  489.  
  490.  
  491.  
  492. <p>Now users can assign an industry schema automatically when creating or working with an XML instance. If the specified schema is not already installed on the user’s machine, the XML Schema Manager will download it automatically after it is selected.</p>
  493.  
  494.  
  495.  
  496. <p><strong>Optimized performance for Joins</strong></p>
  497.  
  498.  
  499.  
  500. <p>MapForce Server offers affordable, high-performance <a href="https://www.altova.com/mapforce-server">automation of data integration and ETL</a> jobs created in MapForce. The server software features <em>join optimization</em>, which accelerates execution of data mappings in which large sets of data are being filtered or joined.</p>
  501.  
  502.  
  503.  
  504. <p>The latest version introduces significant performance improvements to further enhance join optimization.</p>
  505.  
  506.  
  507.  
  508. <p><strong>Streamlined, flexible setup for FlowForce Server</strong></p>
  509.  
  510.  
  511.  
  512. <p>A key component of the <a href="https://www.altova.com/data-platform">Altova Data Platform,</a> FlowForce Server is a highly-customizable workflow engine for <a href="https://www.altova.com/flowforceserver">automating enterprise-level data processing</a> and data integration tasks such as those executed by MapForce Server, RaptorXML Server, and StyleVision Server. It includes easy tools to implement, manage, and monitor multi-step jobs with comprehensive access control options.</p>
  513.  
  514.  
  515.  
  516. <p>To make setting up and upgrading FlowForce Server more user-friendly, the Setup page has been optimized to be more flexible and user-friendly. The new Setup page makes it easy to configure service ports, create or upgrade the instance data directory, and install and manage services.</p>
  517.  
  518.  
  519.  
  520. <p>This convenient UI-driven setup is now also supported on Linux and macOS in addition to Windows.</p>
  521.  
  522.  
  523.  
  524. <h2 class="wp-block-heading" id="h-learn-more-and-update-your-software">Learn More and Update Your Software</h2>
  525.  
  526.  
  527.  
  528. <p>Version 2024 Release 2 includes numerous other updates across the product line. Check out the <a href="https://www.altova.com/whatsnew">What’s New page</a> to learn about new features in each product.</p>
  529.  
  530.  
  531.  
  532. <p>Existing customers can <a href="https://www.altova.com/download">update</a> to the latest version. All these products are also available for a free, 30-day trial at the same link. <strong></strong></p>
  533. <p>The post <a href="https://www.altova.com/blog/new-version-2024r2/">Version 2024r2 Introduces Support for YAML, FORTRAS EDI, and More</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  534. ]]></content:encoded>
  535. <wfw:commentRss>https://www.altova.com/blog/new-version-2024r2/feed/</wfw:commentRss>
  536. <slash:comments>0</slash:comments>
  537. </item>
  538. <item>
  539. <title>Configuring MobileTogether Server to Work With Your Network</title>
  540. <link>https://www.altova.com/blog/configuring-mobiletogether-server-to-work-with-your-network/</link>
  541. <dc:creator><![CDATA[Ty Shuff]]></dc:creator>
  542. <pubDate>Mon, 01 Apr 2024 15:29:12 +0000</pubDate>
  543. <category><![CDATA[App Development]]></category>
  544. <category><![CDATA[mobile development]]></category>
  545. <category><![CDATA[MobileTogether]]></category>
  546. <category><![CDATA[Altova Online Training]]></category>
  547. <category><![CDATA[Database]]></category>
  548. <category><![CDATA[MobileTogether Server]]></category>
  549. <guid isPermaLink="false">https://www.altova.com/blog/?p=4167</guid>
  550.  
  551. <description><![CDATA[<p>Configuring MobileTogether Server to work properly on your network will require some changes to be made. MobileTogether Server is designed to sit within your network’s DMZ, and enabling it to accept connections from clients both inside and outside your network will require your network administrator to open a collection of ports. This video tutorial will [&#8230;]</p>
  552. <p>The post <a href="https://www.altova.com/blog/configuring-mobiletogether-server-to-work-with-your-network/">Configuring MobileTogether Server to Work With Your Network</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  553. ]]></description>
  554. <content:encoded><![CDATA[
  555. <p>Configuring <a href="https://www.altova.com/mobiletogether-server">MobileTogether Server</a> to work properly on your network will require some changes to be made.  MobileTogether Server is designed to sit within your network’s DMZ, and enabling it to accept connections from clients both inside and outside your network will require your network administrator to open a collection of ports.</p>
  556.  
  557.  
  558.  
  559. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  560. <div class='avia-iframe-wrap'><iframe loading="lazy" title="Configuring MobileTogether Server Part 2 - Networking" width="1500" height="844" src="https://www.youtube.com/embed/8VvPH90KY0o?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
  561. </div></figure>
  562.  
  563.  
  564.  
  565. <p>This <a href="https://www.youtube.com/watch?v=8VvPH90KY0o">video tutorial</a> will walk you through the ports required to make <a href="https://www.altova.com/mobiletogether">MobileTogether </a>function. It provides you with a baseline setup that will work inside most corporate networks. Please note, however, that every network is different and some configuration changes may be required. To support this, every port MobileTogether Server uses can be customized; all the ports listed in this tutorial are default and can be changed.</p>
  566.  
  567.  
  568.  
  569. <p>The image below outlines the network ports required by <a href="https://www.altova.com/licenseserver">Altova LicenseServer</a> to properly validate files.</p>
  570.  
  571.  
  572.  
  573. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/LicenseServer_Ports.png" alt="" class="wp-image-4169" srcset="https://www.altova.com/blog/wp-content/uploads/LicenseServer_Ports.png 700w, https://www.altova.com/blog/wp-content/uploads/LicenseServer_Ports-300x144.png 300w, https://www.altova.com/blog/wp-content/uploads/LicenseServer_Ports-450x215.png 450w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  574.  
  575.  
  576.  
  577. <p>Clients will need to be able to connect both internally and externally. We recommend using the default MobileTogether ports, and remapping them to 80 and 443 at each of your firewalls. This is discussed in greater detail in the video.</p>
  578.  
  579.  
  580.  
  581. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/MT_Server_Client_Ports.png" alt="" class="wp-image-4171" srcset="https://www.altova.com/blog/wp-content/uploads/MT_Server_Client_Ports.png 700w, https://www.altova.com/blog/wp-content/uploads/MT_Server_Client_Ports-300x144.png 300w, https://www.altova.com/blog/wp-content/uploads/MT_Server_Client_Ports-450x215.png 450w" sizes="(max-width: 700px) 100vw, 700px" /><figcaption class="wp-element-caption"><br /></figcaption></figure>
  582.  
  583.  
  584.  
  585. <p>Finally, a set of ports will need to be opened for administrator purposes. These ports should be limited to your internal network only.</p>
  586.  
  587.  
  588.  
  589. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/MT_Server_Admin_Ports.png" alt="" class="wp-image-4170" srcset="https://www.altova.com/blog/wp-content/uploads/MT_Server_Admin_Ports.png 700w, https://www.altova.com/blog/wp-content/uploads/MT_Server_Admin_Ports-300x144.png 300w, https://www.altova.com/blog/wp-content/uploads/MT_Server_Admin_Ports-450x215.png 450w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  590.  
  591.  
  592.  
  593. <div style="height:67px" aria-hidden="true" class="wp-block-spacer"></div>
  594.  
  595.  
  596.  
  597. <h2 class="wp-block-heading" id="h-using-a-reverse-proxy-server">Using a Reverse Proxy Server </h2>
  598.  
  599.  
  600.  
  601. <p>When setting up a MobileTogether Server for a public-facing app that will be accessed via URL in a web browser (in addition to from MobileTogether client apps), it may be helpful to hide the precise URL that is being used on the server to start the solution. </p>
  602.  
  603.  
  604.  
  605. <p>Solution URLs follow this convention: https://server.name/run?d=/public/SolutionName. You can customize the URL to hide the &#8220;run?d&#8230;&#8221; portion by <a href="https://xmlaficionado.com/XML+Aficionado/2024/03/Setting+up+a+Reverse+Proxy+for+a+MobileTogether+Server+Solution">deploying a reverse proxy server in front of the MobileTogether Server</a>.</p>
  606. <p>The post <a href="https://www.altova.com/blog/configuring-mobiletogether-server-to-work-with-your-network/">Configuring MobileTogether Server to Work With Your Network</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  607. ]]></content:encoded>
  608. </item>
  609. <item>
  610. <title>Refactoring Mobile Apps</title>
  611. <link>https://www.altova.com/blog/refactoring-mobile-apps/</link>
  612. <dc:creator><![CDATA[David McGahey]]></dc:creator>
  613. <pubDate>Wed, 06 Mar 2024 18:57:42 +0000</pubDate>
  614. <category><![CDATA[App Development]]></category>
  615. <category><![CDATA[Mobile]]></category>
  616. <category><![CDATA[MobileTogether]]></category>
  617. <category><![CDATA[app development]]></category>
  618. <category><![CDATA[Mobile Apps]]></category>
  619. <category><![CDATA[refactoring]]></category>
  620. <guid isPermaLink="false">https://www.altova.com/blog/?p=27294</guid>
  621.  
  622. <description><![CDATA[<p>The best ideas for new features and other improvements to existing software apps often come from enthusiastic users. Implementing new features creates opportunities for refactoring mobile apps. After several years using the MobileTogether Solar Data Tracking app to monitor the performance of a rooftop solar system, my friend Casey had a suggestion. The app displayed [&#8230;]</p>
  623. <p>The post <a href="https://www.altova.com/blog/refactoring-mobile-apps/">Refactoring Mobile Apps</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  624. ]]></description>
  625. <content:encoded><![CDATA[
  626. <p>The best ideas for new features and other improvements to existing software apps often come from enthusiastic users. Implementing new features creates opportunities for refactoring mobile apps. After several years using the MobileTogether Solar Data Tracking app to monitor the performance of a rooftop solar system, my friend Casey had a suggestion.</p>
  627.  
  628.  
  629.  
  630. <p>The app displayed one page of charts and tables to report production by month over a year and another page to report daily production for the last 30 days. Navigation buttons on each page enabled easy switching between views. Casey’s suggestion was to revise the app to place all the charts and tables on a single page. Over time mobile users have become accustomed to mobile apps that present data in long pages that scroll with a quick one-finger swipe motion. A one-page app would feel smooth and more up-to-date.</p>
  631.  
  632.  
  633.  
  634. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/Blog_MT_control_templates_2.jpg" alt="" class="wp-image-27295" srcset="https://www.altova.com/blog/wp-content/uploads//Blog_MT_control_templates_2.jpg 700w, https://www.altova.com/blog/wp-content/uploads//Blog_MT_control_templates_2-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  635.  
  636.  
  637.  
  638. <span id="more-27294"></span>
  639.  
  640.  
  641.  
  642. <p>The Solar Data Tracker is a cross-platform Android, iOS, and Windows app <a href="https://www.altova.com/mobiletogether">created from a single source</a> using the Altova MobileTogether Designer. Combining the reports into one page also offered an opportunity to refactor the implementation to simplify the app. The MobileTogether Designer is a drag and drop tool with copy and paste support for app controls and tools for refactoring mobile apps by identifying usages of local and global variables, functions, action groups, style sheets, external data sources, and more. These features all greatly simplified the revision.</p>
  643.  
  644.  
  645.  
  646. <p>Here is a side-by-side view of the Monthly Solar Production report page and the Daily report page as seen on an Android phone:</p>
  647.  
  648.  
  649.  
  650. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/two-page-view.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" width="1030" height="981" src="https://www.altova.com/blog/wp-content/uploads/two-page-view-1030x981.png" alt="Side by side view of two ap pages before refactoring" class="wp-image-27296" style="width:480px" srcset="https://www.altova.com/blog/wp-content/uploads//two-page-view-1030x981.png 1030w, https://www.altova.com/blog/wp-content/uploads//two-page-view-300x286.png 300w, https://www.altova.com/blog/wp-content/uploads//two-page-view-768x732.png 768w, https://www.altova.com/blog/wp-content/uploads//two-page-view-1536x1463.png 1536w, https://www.altova.com/blog/wp-content/uploads//two-page-view-1500x1429.png 1500w, https://www.altova.com/blog/wp-content/uploads//two-page-view-705x672.png 705w, https://www.altova.com/blog/wp-content/uploads//two-page-view.png 1600w" sizes="(max-width: 1030px) 100vw, 1030px" /></a></figure>
  651.  
  652.  
  653.  
  654. <p>And here is the new single-page version with all the data on one page as seen with scrolling on an iPhone:</p>
  655.  
  656.  
  657.  
  658. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/one-page-view.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" width="907" height="1030" src="https://www.altova.com/blog/wp-content/uploads/one-page-view-907x1030.png" alt="Refactoring mobile apps can improve the user experience." class="wp-image-27298" style="width:480px" srcset="https://www.altova.com/blog/wp-content/uploads//one-page-view-907x1030.png 907w, https://www.altova.com/blog/wp-content/uploads//one-page-view-264x300.png 264w, https://www.altova.com/blog/wp-content/uploads//one-page-view-768x872.png 768w, https://www.altova.com/blog/wp-content/uploads//one-page-view-1352x1536.png 1352w, https://www.altova.com/blog/wp-content/uploads//one-page-view-1803x2048.png 1803w, https://www.altova.com/blog/wp-content/uploads//one-page-view-1320x1500.png 1320w, https://www.altova.com/blog/wp-content/uploads//one-page-view-621x705.png 621w, https://www.altova.com/blog/wp-content/uploads//one-page-view.png 2000w" sizes="(max-width: 907px) 100vw, 907px" /></a></figure>
  659.  
  660.  
  661.  
  662. <p>The Add new bill button in the center above was formerly the end of the monthly report page. Now the report flows continuously into the daily history data. We added a rule at the bottom to signal the end of the page.</p>
  663.  
  664.  
  665.  
  666. <p>The steps to create the new version in the MobileTogether Designer were straightforward:</p>
  667.  
  668.  
  669.  
  670. <ul>
  671. <li>Copy the design elements from the daily report page and paste them at the end of the monthly page</li>
  672.  
  673.  
  674.  
  675. <li>Remove the unneeded page navigation buttons</li>
  676.  
  677.  
  678.  
  679. <li>Revise and simplify the header labels</li>
  680.  
  681.  
  682.  
  683. <li>Redefine the table of daily data to remove the scrollable property</li>
  684.  
  685.  
  686.  
  687. <li>Delete the old daily report page from the workflow hierarchy</li>
  688. </ul>
  689.  
  690.  
  691.  
  692. <p>The MobileTogether Designer includes a Validate tool to check for logic errors or warnings and an Undo button to step backwards through each revision to locate exactly which change might have introduced an issue.</p>
  693.  
  694.  
  695.  
  696. <p>We also need to revise one action group. When the user adds a new daily reading or information reported on an electric company bill, the charts also need to be updated from the new data tables. The original implementation used separate action groups to update the charts on each page. We can open the action group dialog and add actions to an existing action group to update the daily charts too.</p>
  697.  
  698.  
  699.  
  700. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/action-group-1.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" width="436" height="282" src="https://www.altova.com/blog/wp-content/uploads/action-group-1.png" alt="Refactoring mobile apps offers opportunities to improve internal efficiency." class="wp-image-27300" srcset="https://www.altova.com/blog/wp-content/uploads//action-group-1.png 436w, https://www.altova.com/blog/wp-content/uploads//action-group-1-300x194.png 300w" sizes="(max-width: 436px) 100vw, 436px" /></a></figure>
  701.  
  702.  
  703.  
  704. <p>We also renamed the action group to better describe its operations. When we rename the action group in the Action Groups dialog, the Designer automatically updates the name in each location where the action group is called.</p>
  705.  
  706.  
  707.  
  708. <p>The built-in MobileTogether Simulator window instantly executes the solution to let us test logic, view the UI as it will appear on a variety of Android, iOS, Windows, and other devices, and examine changes in workflow data during execution. The Simulator also includes extensive debugging functionality for detailed observation and tracing of execution behavior.</p>
  709.  
  710.  
  711.  
  712. <p>The Refactor menu contains commands that list usages of various design components or items that aren’t used anywhere in the app.</p>
  713.  
  714.  
  715.  
  716. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/refactor-menu.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" width="510" height="382" src="https://www.altova.com/blog/wp-content/uploads/refactor-menu.png" alt="The MobileTogether Designer Refactor menu options for refactoring mobile apps" class="wp-image-27302" srcset="https://www.altova.com/blog/wp-content/uploads//refactor-menu.png 510w, https://www.altova.com/blog/wp-content/uploads//refactor-menu-300x225.png 300w" sizes="(max-width: 510px) 100vw, 510px" /></a></figure>
  717.  
  718.  
  719.  
  720. <p>The list for Action groups includes the original group that updated the daily production charts. Since the daily report page is no longer part of the app, that action group will never be needed and can also be deleted.</p>
  721.  
  722.  
  723.  
  724. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/refactor-listing-1.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" width="480" height="254" src="https://www.altova.com/blog/wp-content/uploads/refactor-listing-1.png" alt="Refactor listing showing unused action group." class="wp-image-27306" style="object-fit:cover" srcset="https://www.altova.com/blog/wp-content/uploads//refactor-listing-1.png 480w, https://www.altova.com/blog/wp-content/uploads//refactor-listing-1-300x159.png 300w" sizes="(max-width: 480px) 100vw, 480px" /></a></figure>
  725.  
  726.  
  727.  
  728. <p>We deployed the new Mobile Data Tracker and Casey enthusiastically showed it off at an EV car show in a park with weak cell phone connectivity and no WIFI.</p>
  729.  
  730.  
  731.  
  732. <p>Try all the MobileTogether features for refactoring mobile apps by downloading the free to use <a href="https://www.altova.com/mobiletogether/download">MobileTogether Designer</a>.</p>
  733. <p>The post <a href="https://www.altova.com/blog/refactoring-mobile-apps/">Refactoring Mobile Apps</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  734. ]]></content:encoded>
  735. </item>
  736. <item>
  737. <title>AI Tools for Instant App Creation</title>
  738. <link>https://www.altova.com/blog/ai-tools-for-instant-app-creation/</link>
  739. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  740. <pubDate>Tue, 06 Feb 2024 18:56:37 +0000</pubDate>
  741. <category><![CDATA[AI]]></category>
  742. <category><![CDATA[App Development]]></category>
  743. <category><![CDATA[Database]]></category>
  744. <category><![CDATA[No Code]]></category>
  745. <category><![CDATA[AI Assistants]]></category>
  746. <category><![CDATA[database apps]]></category>
  747. <category><![CDATA[No code]]></category>
  748. <category><![CDATA[RecordsManager]]></category>
  749. <guid isPermaLink="false">https://www.altova.com/blog/?p=27413</guid>
  750.  
  751. <description><![CDATA[<p>Visual, no code tools like Altova RecordsManager have revolutionized the field of data-centric app creation, making it faster and more accessible. But now imagine expressing your database vision in a single sentence, and having it created automatically – including not just the database structure and tables, but forms and reports as well. That’s exactly what [&#8230;]</p>
  752. <p>The post <a href="https://www.altova.com/blog/ai-tools-for-instant-app-creation/">AI Tools for Instant App Creation</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  753. ]]></description>
  754. <content:encoded><![CDATA[
  755. <p>Visual, no code tools like Altova RecordsManager have revolutionized the field of data-centric app creation, making it faster and more accessible. But now imagine expressing your database vision <em>in a single sentence</em>, and having it created automatically – including not just the database structure and tables, but forms and reports as well. That’s exactly what the new AI Assistant in RecordsManager does.</p>
  756.  
  757.  
  758.  
  759. <p><strong>With a single AI prompt</strong>, users of all skill levels can turn their ideas into functional database solutions without any coding or database design expertise required. RecordsManager lets you skip the manual work of database design so you can focus more on the higher-level aspects of your project.</p>
  760.  
  761.  
  762.  
  763. <p>Let’s see how it works.</p>
  764.  
  765.  
  766.  
  767. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/RM3_1_blog.jpg" alt="decorative image" class="wp-image-27415" srcset="https://www.altova.com/blog/wp-content/uploads//RM3_1_blog.jpg 700w, https://www.altova.com/blog/wp-content/uploads//RM3_1_blog-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  768.  
  769.  
  770.  
  771. <div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
  772.  
  773.  
  774.  
  775. <span id="more-27413"></span>
  776.  
  777.  
  778.  
  779. <h2 class="wp-block-heading" id="h-ai-database-creation">AI Database Creation</h2>
  780.  
  781.  
  782.  
  783. <p>Business apps and enterprise solutions typically require a database backend, and developers are all too familiar with the need to meticulously plan and design the database structure. This includes hours spent on creating tables, defining fields, setting up relationships, and ensuring normalization. It&#8217;s a crucial but time-consuming task that requires a deep understanding of database architecture and SQL.</p>
  784.  
  785.  
  786.  
  787. <p>Altova RecordsManager can now automate this entire process for you. Instead of starting from scratch and carefully mapping out every detail, you can simply provide a high-level prompt to the <a href="https://www.altova.com/recordsmanager/ai">RecordsManager AI Assistant</a>. It then acts as an intelligent assistant, instantly generating a complete database structure based on your prompt.</p>
  788.  
  789.  
  790.  
  791. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  792. <div class='avia-iframe-wrap'><iframe loading="lazy" title="AI-Powered Database Creation with Altova RecordsManager" width="1500" height="844" src="https://www.youtube.com/embed/KgkHegixrpw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>
  793. </div></figure>
  794.  
  795.  
  796.  
  797. <h2 class="wp-block-heading" id="h-go-from-idea-to-database-in-seconds">Go From Idea to Database – In Seconds</h2>
  798.  
  799.  
  800.  
  801. <p>AI tools for creating online databases in RecordsManager make it easy to:</p>
  802.  
  803.  
  804.  
  805. <ul>
  806. <li>Create a database-driven app or enterprise solution with a single AI prompt</li>
  807.  
  808.  
  809.  
  810. <li>Eliminate the complexities of database design</li>
  811.  
  812.  
  813.  
  814. <li>Start with simple or complex natural language prompts</li>
  815.  
  816.  
  817.  
  818. <li>Modify existing database structure with AI</li>
  819.  
  820.  
  821.  
  822. <li>Deliver a full-feature app for desktop &amp; mobile in record time</li>
  823. </ul>
  824.  
  825.  
  826.  
  827. <p>After reviewing your AI-created solution, you can modify its structure with subsequent AI prompts or using the <a href="https://www.altova.com/recordsmanager#demos">straightforward visual tools</a> in RecordsManager. Then, if desired, you can optimize the app start page, play with the layout and display properties, add in-app reminders, manage roles and permissions, define business logic validation rules, and much more.&nbsp;</p>
  828.  
  829.  
  830.  
  831. <p>Skipping the tedious work of database design gives you the flexibility to instead channel your energy and expertise into refining the system, improving functionality, and enhancing user experience.</p>
  832.  
  833.  
  834.  
  835. <h2 class="wp-block-heading" id="h-publish-your-database-app">Publish Your Database App</h2>
  836.  
  837.  
  838.  
  839. <p>Once you are happy with the design, layout, and functionality of your RecordsManager online database solution, you can publish it to iOS, Android, Windows, and other devices based on this single design. Your app can be <a href="https://www.altova.com/recordsmanager#deploy">hosted</a> on premises, in a private or public cloud environment, or in the Altova Cloud.</p>
  840.  
  841.  
  842.  
  843. <h2 class="wp-block-heading" id="h-try-the-cloud-based-demo">Try the Cloud-based Demo</h2>
  844.  
  845.  
  846.  
  847. <p>You can experiment with the AI tools in RecordsManager using our&nbsp;<a href="https://recordsmanager.ai.altova.com/">cloud-based demo</a>. You won&#8217;t need to sign in or create an account; you can simply try some AI prompts to see how the functionality works.</p>
  848.  
  849.  
  850.  
  851. <p>Then, when you’re ready to create and save your own solution to deploy to desktop and mobile users, <a href="https://www.altova.com/mobiletogether/download">download the free MobileTogether Designer</a> to use RecordsManager. The RecordsManager AI Assistant is available in MobileTogether 9.1 or higher. &nbsp;&nbsp;</p>
  852. <p>The post <a href="https://www.altova.com/blog/ai-tools-for-instant-app-creation/">AI Tools for Instant App Creation</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  853. ]]></content:encoded>
  854. </item>
  855. <item>
  856. <title>Build an MQTT-enabled App</title>
  857. <link>https://www.altova.com/blog/build-an-mqtt-enabled-app/</link>
  858. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  859. <pubDate>Tue, 23 Jan 2024 14:01:42 +0000</pubDate>
  860. <category><![CDATA[App Development]]></category>
  861. <category><![CDATA[Low Code]]></category>
  862. <category><![CDATA[MQTT]]></category>
  863. <category><![CDATA[mobile development]]></category>
  864. <guid isPermaLink="false">https://www.altova.com/blog/?p=27395</guid>
  865.  
  866. <description><![CDATA[<p>As IoT adoption continues, smart devices are driving efficient automation in our homes, in offices, and at scale in myriad industrial applications. Communication protocols play an increasingly pivotal role in ensuring seamless connectivity between devices used in these scenarios. One such protocol that has gained widespread adoption for its efficiency and lightweight nature is MQTT. [&#8230;]</p>
  867. <p>The post <a href="https://www.altova.com/blog/build-an-mqtt-enabled-app/">Build an MQTT-enabled App</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  868. ]]></description>
  869. <content:encoded><![CDATA[
  870. <p>As IoT adoption continues, smart devices are driving efficient automation in our homes, in offices, and at scale in myriad industrial applications. Communication protocols play an increasingly pivotal role in ensuring seamless connectivity between devices used in these scenarios. One such protocol that has gained widespread adoption for its efficiency and lightweight nature is MQTT.</p>
  871.  
  872.  
  873.  
  874. <p>MQTT&#8217;s flexibility allows app developers to implement it in various scenarios, from small-scale projects to enterprise-level applications. Whether it&#8217;s a simple office automation system or a complex industrial network, MQTT provides reliable, efficient communication between smart devices in real time.</p>
  875.  
  876.  
  877.  
  878. <p>Altova MobileTogether includes comprehensive support for building MQTT-enabled apps for iOS, Android, and Windows devices. Its low-code, RMAD approach to cross-platform app development gets those apps out the door in record time. </p>
  879.  
  880.  
  881.  
  882. <p>Let’s see how it works.</p>
  883.  
  884.  
  885.  
  886. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/MQTT_blog.jpg" alt="MQTT in an industrial automation scenario" class="wp-image-27396" srcset="https://www.altova.com/blog/wp-content/uploads//MQTT_blog.jpg 700w, https://www.altova.com/blog/wp-content/uploads//MQTT_blog-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  887.  
  888.  
  889.  
  890. <div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>
  891.  
  892.  
  893.  
  894. <span id="more-27395"></span>
  895.  
  896.  
  897.  
  898. <h2 class="wp-block-heading" id="h-mqtt-messaging-protocol">MQTT Messaging Protocol</h2>
  899.  
  900.  
  901.  
  902. <p>An OASIS standard messaging protocol, MQTT (<a href="https://mqtt.org/mqtt-specification/">Message Queuing Telemetry Transport</a>) enables device-to-device <a href="https://www.techtarget.com/whatis/definition/telemetry">telemetry</a> in scenarios where low bandwidth, high latency, or an unreliable network connection is prevalent. This lightweight protocol has a publish/subscribe architecture designed for reliable communication among devices, making it ideal for IoT scenarios.</p>
  903.  
  904.  
  905.  
  906. <p>MQTT’s decentralized model of communication allows devices to publish information to a central broker and subscribe to topics of interest. The broker filters messages based on their topic. Clients subscribe to one or more topics and receive the corresponding messages from the broker. Clients can both publish and subscribe to topics.</p>
  907.  
  908.  
  909.  
  910. <div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
  911.  
  912.  
  913.  
  914. <div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
  915.  
  916.  
  917.  
  918. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/how-mqtt-works-1.png"><img loading="lazy" decoding="async" width="653" height="179" src="https://www.altova.com/blog/wp-content/uploads/how-mqtt-works-1.png" alt="How MQTT publish/subscribe architecture works" class="wp-image-27401" srcset="https://www.altova.com/blog/wp-content/uploads//how-mqtt-works-1.png 653w, https://www.altova.com/blog/wp-content/uploads//how-mqtt-works-1-300x82.png 300w" sizes="(max-width: 653px) 100vw, 653px" /></a></figure>
  919.  
  920.  
  921.  
  922. <div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
  923.  
  924.  
  925.  
  926. <p>Its lightweight nature ensures minimal bandwidth usage and low latency, making MQTT a good choice for resource-constrained environments, such as those running IoT devices with limited processing power and bandwidth. At the same time, MQTT is highly scalable and can support connections among millions of smart devices.</p>
  927.  
  928.  
  929.  
  930. <p>MQTT is used in scenarios including smart home, <a href="https://www.businessnewsdaily.com/9463-smart-office-responsive-workplace.html">smart office</a>, and smart city systems. <strong>Today, the protocol is especially critical in industrial automation.</strong></p>
  931.  
  932.  
  933.  
  934. <h2 class="wp-block-heading" id="h-automating-industrial-iot">Automating Industrial IoT</h2>
  935.  
  936.  
  937.  
  938. <p>Industrial IoT (IIOT) applications using MQTT for communication between smart devices are wide ranging across verticals from manufacturing to healthcare to oil and gas and beyond. For instance, in a smart factory utilizing MQTT, sensors on the production line publish real-time data on machine status and quality metrics to a central broker. Utilizing an app that subscribes to these topics allows plant managers to make instant decisions, optimize processes, and enhance overall efficiency.</p>
  939.  
  940.  
  941.  
  942. <p>Here are some common benefits of using MQTT in industrial automation:</p>
  943.  
  944.  
  945.  
  946. <div class="wp-block-columns is-layout-flex wp-container-core-columns-layout-1 wp-block-columns-is-layout-flex">
  947. <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
  948. <p><strong>Efficient and Lightweight Communication</strong></p>
  949. </div>
  950.  
  951.  
  952.  
  953. <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
  954. <p>IIoT environments often involve numerous sensors, actuators, and devices dispersed across industrial facilities. The lightweight nature and minimal overhead of the MQTT protocol are helpful for optimizing data transfer in large-scale industrial deployments.</p>
  955. </div>
  956. </div>
  957.  
  958.  
  959.  
  960. <div class="wp-block-columns is-layout-flex wp-container-core-columns-layout-2 wp-block-columns-is-layout-flex">
  961. <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
  962. <p><strong>Real-Time Monitoring, Alerts, and Control</strong></p>
  963. </div>
  964.  
  965.  
  966.  
  967. <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
  968. <p>MQTT&#8217;s publish/subscribe model enables real-time monitoring and control of industrial processes. IIoT applications built on MQTT can transmit important data, such as sensor readings and equipment status, in real time. This allows prompt decision-making and responsive control over industrial systems.</p>
  969. </div>
  970. </div>
  971.  
  972.  
  973.  
  974. <div class="wp-block-columns is-layout-flex wp-container-core-columns-layout-3 wp-block-columns-is-layout-flex">
  975. <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
  976. <p><strong>Scalability for Large-Scale Deployments</strong></p>
  977. </div>
  978.  
  979.  
  980.  
  981. <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
  982. <p>MQTT&#8217;s scalability makes it well-suited for handling large-scale deployments, ensuring that communication remains efficient as the number of connected devices increases.</p>
  983. </div>
  984. </div>
  985.  
  986.  
  987.  
  988. <div class="wp-block-columns is-layout-flex wp-container-core-columns-layout-4 wp-block-columns-is-layout-flex">
  989. <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
  990. <p><strong>Machine-to-Machine (M2M) Communication</strong></p>
  991. </div>
  992.  
  993.  
  994.  
  995. <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
  996. <p>IIoT relies heavily on M2M communication, where machines and devices need to exchange data autonomously. MQTT&#8217;s asynchronous communication model supports M2M communication, allowing devices to publish information and others to subscribe for updates, promoting interoperability.</p>
  997. </div>
  998. </div>
  999.  
  1000.  
  1001.  
  1002. <div class="wp-block-columns is-layout-flex wp-container-core-columns-layout-5 wp-block-columns-is-layout-flex">
  1003. <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
  1004. <p><strong>Remote Monitoring and Maintenance</strong></p>
  1005. </div>
  1006.  
  1007.  
  1008.  
  1009. <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
  1010. <p>Using MQTT makes remote monitoring and maintenance of industrial equipment easier. Maintenance teams can receive real-time updates on equipment status, perform diagnostics, and even initiate remote actions, reducing downtime and improving overall efficiency.</p>
  1011. </div>
  1012. </div>
  1013.  
  1014.  
  1015.  
  1016. <div class="wp-block-columns is-layout-flex wp-container-core-columns-layout-6 wp-block-columns-is-layout-flex">
  1017. <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
  1018. <p><strong>Energy Efficiency</strong></p>
  1019. </div>
  1020.  
  1021.  
  1022.  
  1023. <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
  1024. <p>The protocol&#8217;s lightweight nature contributes to energy efficiency in industrial IoT deployments. Devices can transmit data with minimal energy consumption, making it ideal for battery-powered sensors and devices commonly found in industrial settings.</p>
  1025. </div>
  1026. </div>
  1027.  
  1028.  
  1029.  
  1030. <div class="wp-block-columns is-layout-flex wp-container-core-columns-layout-7 wp-block-columns-is-layout-flex">
  1031. <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
  1032. <p><strong>Interoperability and Standardization</strong></p>
  1033. </div>
  1034.  
  1035.  
  1036.  
  1037. <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
  1038. <p>Using a standards-based protocol ensures interoperability among different devices and systems. This standardization simplifies integration efforts and allows devices from different manufacturers to communicate.</p>
  1039. </div>
  1040. </div>
  1041.  
  1042.  
  1043.  
  1044. <p>Of course, these benefits apply equally to scenarios outside industry such as smart office and smart city systems.</p>
  1045.  
  1046.  
  1047.  
  1048. <p>What organizations need are easy-to-use client applications for managing and monitoring automation facilitated through MQTT. That’s where Altova MobileTogether comes in.</p>
  1049.  
  1050.  
  1051.  
  1052. <h2 class="wp-block-heading" id="h-how-to-build-mqtt-enabled-apps">How to Build MQTT-enabled Apps</h2>
  1053.  
  1054.  
  1055.  
  1056. <p>Altova MobileTogether is a low-code, highly affordable solution for <a href="https://www.altova.com/mobiletogether/mqtt-app-development">building MQTT-enabled apps</a> for monitoring and managing communications among smart devices. Whether you need to build a dashboard for remote monitoring or a client for real-time operations management, MobileTogether can get your MQTT solution out the door in record time.</p>
  1057.  
  1058.  
  1059.  
  1060. <p>With MobileTogether, you build once to generate apps for iOS, Android, and Windows devices as well as an HTML5 browser-based client (write once, deploy everywhere).</p>
  1061.  
  1062.  
  1063.  
  1064. <p>Take a look at a quick example of an app we created to demonstrate this functionality in a smart home automation scenario:</p>
  1065.  
  1066.  
  1067.  
  1068. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1069.  
  1070.  
  1071.  
  1072. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  1073. <div class='avia-iframe-wrap'><iframe loading="lazy" title="Building an App with MQTT Functionality in MobileTogether" width="1500" height="844" src="https://www.youtube.com/embed/Q9upPKY2qrQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>
  1074. </div></figure>
  1075.  
  1076.  
  1077.  
  1078. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1079.  
  1080.  
  1081.  
  1082. <p>MQTT support in MobileTogether allows apps to join an MQTT network as a publisher, a subscriber, or both.</p>
  1083.  
  1084.  
  1085.  
  1086. <p>The development environment uses a combination of drag-and-drop UI design, the powerful&nbsp;<a href="https://www.altova.com/mobiletogether/app-development#action-tree">Action Tree visual programming language</a>&nbsp;for event handling, and standardized functional programming for data selection and processing. This unique, low-code approach makes it easy to define and test the various aspects of an MQTT-enabled app:</p>
  1087.  
  1088.  
  1089.  
  1090. <ul>
  1091. <li>Set up a solution that can subscribe and unsubscribe to topics, publish messages, and disconnect from a broker</li>
  1092.  
  1093.  
  1094.  
  1095. <li>Integrate rich charts, graphs, and dashboards</li>
  1096.  
  1097.  
  1098.  
  1099. <li>Specify the actions to perform when the solution receives an MQTT message</li>
  1100.  
  1101.  
  1102.  
  1103. <li>Set up an MQTT service</li>
  1104.  
  1105.  
  1106.  
  1107. <li>Simulate and debug app behavior during development using recorded, real-world input</li>
  1108. </ul>
  1109.  
  1110.  
  1111.  
  1112. <div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>
  1113.  
  1114.  
  1115.  
  1116. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/mqtt-actions-1.png"><img loading="lazy" decoding="async" width="1030" height="583" src="https://www.altova.com/blog/wp-content/uploads/mqtt-actions-1-1030x583.png" alt="" class="wp-image-27398" srcset="https://www.altova.com/blog/wp-content/uploads//mqtt-actions-1-1030x583.png 1030w, https://www.altova.com/blog/wp-content/uploads//mqtt-actions-1-300x170.png 300w, https://www.altova.com/blog/wp-content/uploads//mqtt-actions-1-768x435.png 768w, https://www.altova.com/blog/wp-content/uploads//mqtt-actions-1-705x399.png 705w, https://www.altova.com/blog/wp-content/uploads//mqtt-actions-1.png 1046w" sizes="(max-width: 1030px) 100vw, 1030px" /></a></figure>
  1117.  
  1118.  
  1119.  
  1120. <div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>
  1121.  
  1122.  
  1123.  
  1124. <p>The comprehensive and easy-to-implement MQTT support in MobileTogether gives developers the flexibility to build a wide range of apps for industrial automation and other smart device systems. </p>
  1125.  
  1126.  
  1127.  
  1128. <p></p>
  1129.  
  1130.  
  1131.  
  1132. <p>It’s easy to get started building your first MQTT-enabled app in MobileTogether, which includes comprehensive documentation on MQTT app development in the Help file accessible when you <a href="https://www.altova.com/mobiletogether/download">download the free MobileTogether Designer</a>.</p>
  1133.  
  1134.  
  1135.  
  1136. <div style="height:56px" aria-hidden="true" class="wp-block-spacer"></div>
  1137. <p>The post <a href="https://www.altova.com/blog/build-an-mqtt-enabled-app/">Build an MQTT-enabled App</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  1138. ]]></content:encoded>
  1139. </item>
  1140. <item>
  1141. <title>MobileTogether 9.0 with MQTT Support and More</title>
  1142. <link>https://www.altova.com/blog/new-mobiletogether-9-0/</link>
  1143. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  1144. <pubDate>Tue, 16 Jan 2024 15:45:53 +0000</pubDate>
  1145. <category><![CDATA[App Development]]></category>
  1146. <category><![CDATA[Low Code]]></category>
  1147. <category><![CDATA[Mobile]]></category>
  1148. <category><![CDATA[low code]]></category>
  1149. <category><![CDATA[MobileTogether]]></category>
  1150. <category><![CDATA[MQTT]]></category>
  1151. <category><![CDATA[new features]]></category>
  1152. <category><![CDATA[RMAD]]></category>
  1153. <guid isPermaLink="false">https://www.altova.com/blog/?p=27383</guid>
  1154.  
  1155. <description><![CDATA[<p>Version 9.0 of MobileTogether, Altova’s low code app development framework, is now available with new features including comprehensive MQTT support, support for new gestures, drawing barcodes and QR codes, dark mode, and much more. Here’s a look at all the highlights. MQTT Support MQTT (Message Queuing Telemetry Transport) is a lightweight messaging protocol used for [&#8230;]</p>
  1156. <p>The post <a href="https://www.altova.com/blog/new-mobiletogether-9-0/">MobileTogether 9.0 with MQTT Support and More</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  1157. ]]></description>
  1158. <content:encoded><![CDATA[
  1159. <p>Version 9.0 of MobileTogether, Altova’s low code app development framework, is now available with new features including comprehensive MQTT support, support for new gestures, drawing barcodes and QR codes, dark mode, and much more.</p>
  1160.  
  1161.  
  1162.  
  1163. <p>Here’s a look at all the highlights.</p>
  1164.  
  1165.  
  1166.  
  1167. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/MT9.0_blog.jpg" alt="Image showing a drawing of a factory setting using MQTT messages " class="wp-image-27385" srcset="https://www.altova.com/blog/wp-content/uploads//MT9.0_blog.jpg 700w, https://www.altova.com/blog/wp-content/uploads//MT9.0_blog-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  1168.  
  1169.  
  1170.  
  1171. <span id="more-27383"></span>
  1172.  
  1173.  
  1174.  
  1175. <h2 class="wp-block-heading" id="h-mqtt-support">MQTT Support</h2>
  1176.  
  1177.  
  1178.  
  1179. <p>MQTT (Message Queuing Telemetry Transport) is a lightweight messaging protocol used for communication by smart devices in both industrial automation and smart home / smart office scenarios.</p>
  1180.  
  1181.  
  1182.  
  1183. <p>MQTT uses a subscribe / publish architecture that is intermediated by a broker. In this way, the protocol enables monitoring, control, and automation of IoT devices from different manufacturers as well as integration of such devices into a centralized control and monitoring solution.</p>
  1184.  
  1185.  
  1186.  
  1187. <p>MobileTogether now includes comprehensive support for <a href="https://www.altova.com/mobiletogether/mqtt-app-development">building MQTT-enabled apps</a> using its unique low code approach to rapid mobile application development (<a href="https://www.altova.com/blog/top-5-requirements-rmad-tools/">RMAD</a>). MQTT support in MobileTogether allows apps to join an MQTT network as a publisher, as a subscriber, or as both.</p>
  1188.  
  1189.  
  1190.  
  1191. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1192.  
  1193.  
  1194.  
  1195. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="441" height="405" src="https://www.altova.com/blog/wp-content/uploads/build-mqtt-app.png" alt="MobileTogether MQTT actions" class="wp-image-27387" srcset="https://www.altova.com/blog/wp-content/uploads//build-mqtt-app.png 441w, https://www.altova.com/blog/wp-content/uploads//build-mqtt-app-300x276.png 300w" sizes="(max-width: 441px) 100vw, 441px" /></figure>
  1196.  
  1197.  
  1198.  
  1199. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1200.  
  1201.  
  1202.  
  1203. <p>New MQTT support in MobileTogether&nbsp;gives developers the flexibility to implement a wide range of IoT automation apps, from smart office and smart city to large-scale industrial automation applications and beyond.</p>
  1204.  
  1205.  
  1206.  
  1207. <h2 class="wp-block-heading" id="h-ux-features">UX Features</h2>
  1208.  
  1209.  
  1210.  
  1211. <p>MobileTogether offers a unique approach to <a href="https://www.altova.com/mobiletogether/app-development#time">designing one app</a> that is then simultaneously available on multiple OSes and a variety of form factors. With each release, we endeavor to improve the UX of apps built in MobileTogether by introducing new options. This release includes:</p>
  1212.  
  1213.  
  1214.  
  1215. <ul>
  1216. <li><strong>Additional gesture support</strong>: End users may now drag and/or swipe table rows to perform specific actions, such as moving or deleting content.</li>
  1217.  
  1218.  
  1219.  
  1220. <li><strong>Chart generation on clients</strong>: It is now possible to enable charts to be rendered directly on the client device without making a round trip to the server, which makes chart generation much faster and smoother.</li>
  1221.  
  1222.  
  1223.  
  1224. <li><strong>New button looks</strong>: Developers have access to an ever-growing library of icons for enabling familiar functionality. This release includes new button images for select, link/unlink, close, save, photo/gallery, and others.&nbsp;</li>
  1225.  
  1226.  
  1227.  
  1228. <li><strong>Drawing barcodes and QR codes</strong>: Now, in addition to reading barcodes/QR codes via the device camera, apps built in MobileTogether can be configured to draw them for applications such as inventory management, POS discounting, etc. A variety of barcode types are supported, including UPC, EAN, QR, and others.</li>
  1229. </ul>
  1230.  
  1231.  
  1232.  
  1233. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1234.  
  1235.  
  1236.  
  1237. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="435" height="561" src="https://www.altova.com/blog/wp-content/uploads/app-qr-code.png" alt="" class="wp-image-27388" srcset="https://www.altova.com/blog/wp-content/uploads//app-qr-code.png 435w, https://www.altova.com/blog/wp-content/uploads//app-qr-code-233x300.png 233w" sizes="(max-width: 435px) 100vw, 435px" /></figure>
  1238.  
  1239.  
  1240.  
  1241. <h2 class="wp-block-heading" id="h-developer-tools">Developer Tools</h2>
  1242.  
  1243.  
  1244.  
  1245. <p>New features to enhance developer productivity include:</p>
  1246.  
  1247.  
  1248.  
  1249. <ul>
  1250. <li><strong>Dark and Light modes for design environment:</strong> The long awaited dark mode for MobileTogether Designer is here. Now developers can choose dark mode, a crisp new light mode, or continue using classic mode. (Dark and light modes for client apps have been available for some time.)</li>
  1251.  
  1252.  
  1253.  
  1254. <li><strong>Page source tree editing during simulation: </strong>During app simulation in MobileTogether Designer, the page source structure and data itself may now be modified in the Page Sources Pane. This allows developers to simulate real world situations, e.g., to test a specific value or condition during simulation without needing to access or modify the actual source data.</li>
  1255.  
  1256.  
  1257.  
  1258. <li><strong>Native support for MySQL and MariaDB: </strong>MobileTogether has long provided support for connecting to MySQL and MariaDB (and numerous other databases) via generic ADO/ODBC/JDBC connections. Now, the framework supports native connections to MySQL and MariaDB without the need for external drivers, which is much faster and more convenient.</li>
  1259.  
  1260.  
  1261.  
  1262. <li><strong>Solution aliases on the server: </strong>A single solution can now appear multiple times on a MobileTogether Server via the use of aliases. This allows developers to replicate an app and customize certain parameters, for instance with one alias connected to a test database and one to a production database.</li>
  1263. </ul>
  1264.  
  1265.  
  1266.  
  1267. <h3 class="wp-block-heading" id="h-get-the-latest-version-of-mobiletogether-now">Get the Latest Version of MobileTogether Now</h3>
  1268.  
  1269.  
  1270.  
  1271. <p>All these features and more are available now in MobileTogether 9.0. The MobileTogether Designer is free to use, so you can <a href="https://www.altova.com/mobiletogether/download">download</a> it and get started immediately.</p>
  1272.  
  1273.  
  1274.  
  1275. <p>Existing customers may <a href="https://www.altova.com/mobiletogether/download">update</a> their MobileTogether Designer software and request a new license for free.&nbsp;</p>
  1276. <p>The post <a href="https://www.altova.com/blog/new-mobiletogether-9-0/">MobileTogether 9.0 with MQTT Support and More</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  1277. ]]></content:encoded>
  1278. </item>
  1279. <item>
  1280. <title>How to Create Batch Data Mapping Projects</title>
  1281. <link>https://www.altova.com/blog/how-to-create-batch-data-mapping-projects/</link>
  1282. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  1283. <pubDate>Mon, 08 Jan 2024 23:46:49 +0000</pubDate>
  1284. <category><![CDATA[Data Integration]]></category>
  1285. <category><![CDATA[ETL]]></category>
  1286. <category><![CDATA[data integration]]></category>
  1287. <category><![CDATA[data mapping]]></category>
  1288. <category><![CDATA[demo videos]]></category>
  1289. <category><![CDATA[MapForce]]></category>
  1290. <category><![CDATA[videos]]></category>
  1291. <guid isPermaLink="false">https://www.altova.com/blog/?p=27379</guid>
  1292.  
  1293. <description><![CDATA[<p>Batch-to-batch and batch-to-one are common scenarios in data integration &#038; ETL projects. Check out these batch data mapping how-to videos.</p>
  1294. <p>The post <a href="https://www.altova.com/blog/how-to-create-batch-data-mapping-projects/">How to Create Batch Data Mapping Projects</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  1295. ]]></description>
  1296. <content:encoded><![CDATA[
  1297. <p>A common requirement in data processing is batch data mapping, especially in the context of data transformation and integration. It involves converting data in batches rather than processing individual data points one at a time. Batch data mapping is often required in data integration scenarios where input from multiple sources needs to be aligned or transformed together. Two common scenarios are “batch to batch” and “batch to one.”</p>
  1298.  
  1299.  
  1300.  
  1301. <p>In our latest series of MapForce demo videos, we explore these common data mapping challenges.</p>
  1302.  
  1303.  
  1304.  
  1305. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/shutterstock_5778442.jpg" alt="Decorative image: yellow piping in a factory setting" class="wp-image-1966" srcset="https://www.altova.com/blog/wp-content/uploads/shutterstock_5778442.jpg 700w, https://www.altova.com/blog/wp-content/uploads/shutterstock_5778442-300x144.jpg 300w, https://www.altova.com/blog/wp-content/uploads/shutterstock_5778442-450x215.jpg 450w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  1306.  
  1307.  
  1308.  
  1309. <h2 class="wp-block-heading">BATCH TO BATCH DATA MAPPING</h2>
  1310.  
  1311.  
  1312.  
  1313. <p>Batch to batch data mapping is helpful in scenarios where you have data updates or changes coming in batches, and you need to synchronize or transform these batches together. This could be to convert them to a different format, perform some type of sort or calculation, or a combination of these.</p>
  1314.  
  1315.  
  1316.  
  1317. <p>In this demo, we create a data mapping project that reads files from a directory and uses wildcards to set up a mapping that will process data from multiple files at once. Then, we explore another option for defining batch conversion using dynamic file names supplied by the mapping. This demo also shows how to add calculations and comments to your data mapping projects.</p>
  1318.  
  1319.  
  1320.  
  1321. <p>While this video highlights a batch to batch transformation of JSON files to XML files, MapForce supports conversion and transformation for any combination of XML, JSON, PDF, database, text, Protobuf, Excel, XBRL, and so on, for advanced data integration and&nbsp;<a href="https://www.altova.com/mapforce/etl-tool">ETL processes</a>.</p>
  1322.  
  1323.  
  1324.  
  1325. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  1326. <div class='avia-iframe-wrap'><iframe loading="lazy" title="Batch to Batch Data Mapping with MapForce" width="1500" height="844" src="https://www.youtube.com/embed/Frewtfnrfgk?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>
  1327. </div></figure>
  1328.  
  1329.  
  1330.  
  1331. <h2 class="wp-block-heading">BATCH TO ONE DATA TRANSFORMATION</h2>
  1332.  
  1333.  
  1334.  
  1335. <p>Batch to one&nbsp;<a href="https://www.altova.com/mapforce">data transformation</a>&nbsp;is another common requirement, for example, when you want to merge or combine multiple files into a single consolidated document and perform some data transformation, conversion, or calculation operations in between.</p>
  1336.  
  1337.  
  1338.  
  1339. <p>This example also explores multiple approaches to defining the batch process, which will be applicable in different scenarios:</p>
  1340.  
  1341.  
  1342.  
  1343. <ol start="1">
  1344. <li>Specifying a collection of files in the same directory using a wildcard</li>
  1345.  
  1346.  
  1347.  
  1348. <li>Selecting batch files based on a list of file names stored in a different directory</li>
  1349. </ol>
  1350.  
  1351.  
  1352.  
  1353. <p>This demo also shows how to sort the data merged from multiple files before writing it to the target.</p>
  1354.  
  1355.  
  1356.  
  1357. <p>After watching these quick demos, you can download a&nbsp;<a href="https://www.altova.com/mapforce/download">free trial of MapForce</a>&nbsp;to try batch mapping, conversion, and transformation for yourself.</p>
  1358.  
  1359.  
  1360.  
  1361. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  1362. <div class='avia-iframe-wrap'><iframe loading="lazy" title="Batch-to-One Data Mapping" width="1500" height="844" src="https://www.youtube.com/embed/3H6XMj1CgBU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>
  1363. </div></figure>
  1364.  
  1365.  
  1366.  
  1367. <h2 class="wp-block-heading">MORE MAPFORCE DEMOS</h2>
  1368.  
  1369.  
  1370.  
  1371. <p>If you liked these videos, check out the rest of the&nbsp;<a href="https://www.altova.com/mapforce/demos">MapForce demo series</a>, which covers everything from mapping XML and JSON to databases to configuring data processing functions and extracting data from PDF documents.</p>
  1372. <p>The post <a href="https://www.altova.com/blog/how-to-create-batch-data-mapping-projects/">How to Create Batch Data Mapping Projects</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  1373. ]]></content:encoded>
  1374. </item>
  1375. <item>
  1376. <title>AI-Ready Database Tool</title>
  1377. <link>https://www.altova.com/blog/ai-ready-database-tool/</link>
  1378. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  1379. <pubDate>Fri, 08 Dec 2023 21:57:43 +0000</pubDate>
  1380. <category><![CDATA[AI]]></category>
  1381. <category><![CDATA[Database]]></category>
  1382. <category><![CDATA[AI SQL tools]]></category>
  1383. <category><![CDATA[DatabaseSpy]]></category>
  1384. <category><![CDATA[SQL editor]]></category>
  1385. <guid isPermaLink="false">https://www.altova.com/blog/?p=27357</guid>
  1386.  
  1387. <description><![CDATA[<p>AI is a great productivity booster for IT projects, and working with databases is one area where AI is really making inroads for improving efficiency. By leveraging AI in database tools, DBAs and database developers of any skill level can save time and effort with AI-generated SQL scripts and sample data, for instance, as well [&#8230;]</p>
  1388. <p>The post <a href="https://www.altova.com/blog/ai-ready-database-tool/">AI-Ready Database Tool</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  1389. ]]></description>
  1390. <content:encoded><![CDATA[
  1391. <p>AI is a great productivity booster for IT projects, and working with databases is one area where AI is really making inroads for improving efficiency. By leveraging AI in database tools, DBAs and database developers of any skill level can save time and effort with AI-generated SQL scripts and sample data, for instance, as well as query optimization and troubleshooting.</p>
  1392.  
  1393.  
  1394.  
  1395. <p>Altova offers an <strong>integrated AI Assistant in DatabaseSpy</strong> to help with SQL script creation, data modeling, SQL and error explanations, and even SQL pretty-printing. This makes the multi-database tool, which supports all major databases in a single UI, even more useful.</p>
  1396.  
  1397.  
  1398.  
  1399. <p>Let’s take a look at how it works.</p>
  1400.  
  1401.  
  1402.  
  1403. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/DatabaseSpy_AI_blog.jpg" alt="" class="wp-image-27359" srcset="https://www.altova.com/blog/wp-content/uploads//DatabaseSpy_AI_blog.jpg 700w, https://www.altova.com/blog/wp-content/uploads//DatabaseSpy_AI_blog-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  1404.  
  1405.  
  1406.  
  1407. <span id="more-27357"></span>
  1408.  
  1409.  
  1410.  
  1411. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1412.  
  1413.  
  1414.  
  1415. <h2 class="wp-block-heading" id="h-sql-editor-with-ai-assistant">SQL Editor with AI Assistant</h2>
  1416.  
  1417.  
  1418.  
  1419. <p></p>
  1420.  
  1421.  
  1422.  
  1423. <p>It’s easy to enable AI functionality in the DatabaseSpy SQL editor using your current <a href="https://openai.com/">OpenAI</a> key, which give you access to several versions of ChatGPT. This includes the most recent iteration, which is the<strong> GPT-4 Turbo preview</strong> announced November 6, 2023. Newer models will automatically be accessible in DatabaseSpy when they are released by OpenAI.</p>
  1424.  
  1425.  
  1426.  
  1427. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1428.  
  1429.  
  1430.  
  1431. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="697" height="760" src="https://www.altova.com/blog/wp-content/uploads/databasespy-AI-assistant-1.png" alt="Database AI Assistant" class="wp-image-27360" srcset="https://www.altova.com/blog/wp-content/uploads//databasespy-AI-assistant-1.png 697w, https://www.altova.com/blog/wp-content/uploads//databasespy-AI-assistant-1-275x300.png 275w, https://www.altova.com/blog/wp-content/uploads//databasespy-AI-assistant-1-647x705.png 647w" sizes="(max-width: 697px) 100vw, 697px" /></figure>
  1432.  
  1433.  
  1434.  
  1435. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1436.  
  1437.  
  1438.  
  1439. <p>Once enabled, there are multiple ways to use the <a href="https://www.altova.com/databasespy/ai-assistant">AI Assistant in DatabaseSpy</a>:</p>
  1440.  
  1441.  
  1442.  
  1443. <ul>
  1444. <li>AI Chat Dialog</li>
  1445.  
  1446.  
  1447.  
  1448. <li>AI Extensions</li>
  1449. </ul>
  1450.  
  1451.  
  1452.  
  1453. <h3 class="wp-block-heading">AI Chat Dialog</h3>
  1454.  
  1455.  
  1456.  
  1457. <p>The AI Chat Dialog allows you to send prompts to ChatGPT for a natural language SQL interface that can create SQL statements, generate sample data for a given table structure, create relations between tables, and so on. Once you send a request and receive the response, you can copy and paste the returned SQL into an existing file or create a new SQL file with the response.</p>
  1458.  
  1459.  
  1460.  
  1461. <p>In this example, we use the AI Chat Dialog to generate a sample sabermetrics (data for analyzing baseball stats) database. We’ll specify tables and columns to include and then finally ask AI to generate some sample records using real world data.</p>
  1462.  
  1463.  
  1464.  
  1465. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1466.  
  1467.  
  1468.  
  1469. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="623" height="268" src="https://www.altova.com/blog/wp-content/uploads/ChatGPT-SQL.png" alt="Natural language prompt to generate SQL in DatabaseSpy" class="wp-image-27361" srcset="https://www.altova.com/blog/wp-content/uploads//ChatGPT-SQL.png 623w, https://www.altova.com/blog/wp-content/uploads//ChatGPT-SQL-300x129.png 300w" sizes="(max-width: 623px) 100vw, 623px" /></figure>
  1470.  
  1471.  
  1472.  
  1473. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1474.  
  1475.  
  1476.  
  1477. <p>The AI Assistant returns the required SQL script for creating the database and then inserting the sample records.</p>
  1478.  
  1479.  
  1480.  
  1481. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1482.  
  1483.  
  1484.  
  1485. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="553" height="595" src="https://www.altova.com/blog/wp-content/uploads/AI-text-to-sql.png" alt="Text to SQL using AI in DatabaseSpy" class="wp-image-27362" srcset="https://www.altova.com/blog/wp-content/uploads//AI-text-to-sql.png 553w, https://www.altova.com/blog/wp-content/uploads//AI-text-to-sql-279x300.png 279w" sizes="(max-width: 553px) 100vw, 553px" /></figure>
  1486.  
  1487.  
  1488.  
  1489. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1490.  
  1491.  
  1492.  
  1493. <p>Next, we can use the New SQL button at the top of the AI Assistant window to create a SQL file with the AI response, review it, make any necessary changes, and then execute it. Let’s have DatabaseSpy generate the tables:</p>
  1494.  
  1495.  
  1496.  
  1497. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1498.  
  1499.  
  1500.  
  1501. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="615" height="392" src="https://www.altova.com/blog/wp-content/uploads/AI-generate-database-tables.png" alt="Executing AI-generated SQL scripts to create tables " class="wp-image-27363" srcset="https://www.altova.com/blog/wp-content/uploads//AI-generate-database-tables.png 615w, https://www.altova.com/blog/wp-content/uploads//AI-generate-database-tables-300x191.png 300w" sizes="(max-width: 615px) 100vw, 615px" /></figure>
  1502.  
  1503.  
  1504.  
  1505. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1506.  
  1507.  
  1508.  
  1509. <p>And then insert the sample data.</p>
  1510.  
  1511.  
  1512.  
  1513. <div style="height:11px" aria-hidden="true" class="wp-block-spacer"></div>
  1514.  
  1515.  
  1516.  
  1517. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1518.  
  1519.  
  1520.  
  1521. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="609" height="399" src="https://www.altova.com/blog/wp-content/uploads/AI-generated-data-1.png" alt="Inserting AI-generated data in a SQL database " class="wp-image-27373" srcset="https://www.altova.com/blog/wp-content/uploads//AI-generated-data-1.png 609w, https://www.altova.com/blog/wp-content/uploads//AI-generated-data-1-300x197.png 300w" sizes="(max-width: 609px) 100vw, 609px" /></figure>
  1522.  
  1523.  
  1524.  
  1525. <div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>
  1526.  
  1527.  
  1528.  
  1529. <p>We can continue to refine the structure and add more data, but the AI Assistant has given us a big jumpstart on creating this database without having to write a line of SQL.</p>
  1530.  
  1531.  
  1532.  
  1533. <p>Next, let’s call on AI to query some data in the database we just created.</p>
  1534.  
  1535.  
  1536.  
  1537. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1538.  
  1539.  
  1540.  
  1541. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="602" height="120" src="https://www.altova.com/blog/wp-content/uploads/AI-sql-query.png" alt="AI prompt for generating SQL query" class="wp-image-27366" srcset="https://www.altova.com/blog/wp-content/uploads//AI-sql-query.png 602w, https://www.altova.com/blog/wp-content/uploads//AI-sql-query-300x60.png 300w" sizes="(max-width: 602px) 100vw, 602px" /></figure>
  1542.  
  1543.  
  1544.  
  1545. <div style="height:11px" aria-hidden="true" class="wp-block-spacer"></div>
  1546.  
  1547.  
  1548.  
  1549. <p>AI returns the corresponding query, and we can execute it in the SQL editor to view the results.</p>
  1550.  
  1551.  
  1552.  
  1553. <div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>
  1554.  
  1555.  
  1556.  
  1557. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="580" height="493" src="https://www.altova.com/blog/wp-content/uploads/sql-query-results.png" alt="viewing SQL query results" class="wp-image-27367" srcset="https://www.altova.com/blog/wp-content/uploads//sql-query-results.png 580w, https://www.altova.com/blog/wp-content/uploads//sql-query-results-300x255.png 300w" sizes="(max-width: 580px) 100vw, 580px" /></figure>
  1558.  
  1559.  
  1560.  
  1561. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1562.  
  1563.  
  1564.  
  1565. <h3 class="wp-block-heading">AI Extensions</h3>
  1566.  
  1567.  
  1568.  
  1569. <p>In addition to the AI Chat Dialog for generate new queries, the AI Assistant is available when you’re working on an existing file the DatabaseSpy SQL Editor. Here, we can utilize AI Extensions including:</p>
  1570.  
  1571.  
  1572.  
  1573. <ul>
  1574. <li><strong>AI-Complete</strong>: will send a request to complete a SQL statement</li>
  1575.  
  1576.  
  1577.  
  1578. <li><strong>AI-Explain</strong>: requests a textual explanation of a statement</li>
  1579.  
  1580.  
  1581.  
  1582. <li><strong>AI-Explain Error</strong>: request details about an error and possibilities for solving it</li>
  1583.  
  1584.  
  1585.  
  1586. <li><strong>AI-Pretty Print</strong>: formats the current statement in a more readable format</li>
  1587. </ul>
  1588.  
  1589.  
  1590.  
  1591. <p>Let’s take advantage of the AI-Explain extension to look at a query that somebody else has written for our sample database and ask the AI to explain it to us:</p>
  1592.  
  1593.  
  1594.  
  1595. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1596.  
  1597.  
  1598.  
  1599. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="534" height="415" src="https://www.altova.com/blog/wp-content/uploads/AI-explain-DatabaseSpy-1.png" alt="Explaining a SQL query using ChatGPT" class="wp-image-27371" srcset="https://www.altova.com/blog/wp-content/uploads//AI-explain-DatabaseSpy-1.png 534w, https://www.altova.com/blog/wp-content/uploads//AI-explain-DatabaseSpy-1-300x233.png 300w" sizes="(max-width: 534px) 100vw, 534px" /></figure>
  1600.  
  1601.  
  1602.  
  1603. <div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>
  1604.  
  1605.  
  1606.  
  1607. <p>And the response from AI is:</p>
  1608.  
  1609.  
  1610.  
  1611. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1612.  
  1613.  
  1614.  
  1615. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="553" height="567" src="https://www.altova.com/blog/wp-content/uploads/AI-explain-SQL-1.png" alt="Using ChatGPT in DatabaseSpy to explain a SQL query " class="wp-image-27370" srcset="https://www.altova.com/blog/wp-content/uploads//AI-explain-SQL-1.png 553w, https://www.altova.com/blog/wp-content/uploads//AI-explain-SQL-1-293x300.png 293w, https://www.altova.com/blog/wp-content/uploads//AI-explain-SQL-1-36x36.png 36w" sizes="(max-width: 553px) 100vw, 553px" /></figure>
  1616.  
  1617.  
  1618.  
  1619. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1620.  
  1621.  
  1622.  
  1623. <p>Now, in just a few seconds, we have an explanation of a SQL query, which can be really helpful when we are faced with even more complex queries in real life.</p>
  1624.  
  1625.  
  1626.  
  1627. <h2 class="wp-block-heading">Try AI for SQL and Database Tasks</h2>
  1628.  
  1629.  
  1630.  
  1631. <p>By incorporating these AI-ready features, DatabaseSpy becomes a more powerful and user-friendly platform, boosting productivity for both novice and experienced users. Using the integrated AI Assistant to automate and optimize various tasks frees them to focus on more complex aspects of database management and development.</p>
  1632.  
  1633.  
  1634.  
  1635. <p>Try the DatabaseSpy AI Assistant today with a fully functional <a href="https://www.altova.com/databasespy/download">free trial</a> of the software. &nbsp;</p>
  1636. <p>The post <a href="https://www.altova.com/blog/ai-ready-database-tool/">AI-Ready Database Tool</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  1637. ]]></content:encoded>
  1638. </item>
  1639. <item>
  1640. <title>AI Tools for XML and JSON Development</title>
  1641. <link>https://www.altova.com/blog/ai-tools-for-xml-and-json/</link>
  1642. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  1643. <pubDate>Mon, 13 Nov 2023 16:40:00 +0000</pubDate>
  1644. <category><![CDATA[AI]]></category>
  1645. <category><![CDATA[JSON]]></category>
  1646. <category><![CDATA[XML]]></category>
  1647. <category><![CDATA[AI Assistants]]></category>
  1648. <category><![CDATA[JSON editor]]></category>
  1649. <category><![CDATA[XML Editor]]></category>
  1650. <category><![CDATA[XMLSpy]]></category>
  1651. <guid isPermaLink="false">https://www.altova.com/blog/?p=27333</guid>
  1652.  
  1653. <description><![CDATA[<p>The explosion of AI tools has made a significant impact on the field of software development – not by replacing software engineers as some have predicted – but by actually increasing their value by freeing them to focus on higher-level tasks. By automating low-level code generation, for instance, AI increases development speed and opens the [&#8230;]</p>
  1654. <p>The post <a href="https://www.altova.com/blog/ai-tools-for-xml-and-json/">AI Tools for XML and JSON Development</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  1655. ]]></description>
  1656. <content:encoded><![CDATA[
  1657. <p>The explosion of AI tools has made a significant impact on the field of software development – not by replacing software engineers as some have predicted – but by actually increasing their value by freeing them to focus on higher-level tasks. By automating low-level code generation, for instance, AI increases development speed and opens the doors to deeper innovation. </p>
  1658.  
  1659.  
  1660.  
  1661. <p>To give developers the AI tools they need to realize these productivity and creativity gains, Altova has integrated AI functionality in XMLSpy for XML and JSON editing tasks.</p>
  1662.  
  1663.  
  1664.  
  1665. <p>Here’s how the XMLSpy AI Assistant works.</p>
  1666.  
  1667.  
  1668.  
  1669. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/XMLSpy_AI_blog.jpg" alt="" class="wp-image-27335" srcset="https://www.altova.com/blog/wp-content/uploads//XMLSpy_AI_blog.jpg 700w, https://www.altova.com/blog/wp-content/uploads//XMLSpy_AI_blog-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  1670.  
  1671.  
  1672.  
  1673. <span id="more-27333"></span>
  1674.  
  1675.  
  1676.  
  1677. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1678.  
  1679.  
  1680.  
  1681. <h2 class="wp-block-heading" id="h-ai-for-xml-editing">AI for XML Editing</h2>
  1682.  
  1683.  
  1684.  
  1685. <p>Accessing the AI Assistant in XMLSpy is as easy entering your current <a href="https://openai.com/" target="_blank" rel="noreferrer noopener">Open AI</a> key using the Options dialog. This enables ChatGPT functionality directly in XMLSpy.</p>
  1686.  
  1687.  
  1688.  
  1689. <p>Since the API is accessed directly by the editor, you’ll immediately have access to the latest available model (as well as previous models). Today that includes the new GPT-4 Turbo preview announced at <a href="https://openai.com/blog/new-models-and-developer-products-announced-at-devday" target="_blank" rel="noreferrer noopener">Open AI Dev Day</a> on November 6, 2023. GPT-4 Turbo offers several advantages, including a 128K context window, knowledge data up to April 2023, and optimized performance that allows a lower price tag compared to GPT 4. The current GPT-4 Turbo preview is accessed by passing <code>gpt-4-1106-preview</code> in the API. In XMLSpy, simply select it from the Default Model drop-down. When the production version is released in the coming weeks, it will be immediately available in the XMLSpy AI Assistant.</p>
  1690.  
  1691.  
  1692.  
  1693. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1694.  
  1695.  
  1696.  
  1697. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="697" height="810" src="https://www.altova.com/blog/wp-content/uploads/XMLSpy-AI-Assistant-dialog.png" alt="Enabling AI integration in XMLSpy " class="wp-image-27336" srcset="https://www.altova.com/blog/wp-content/uploads//XMLSpy-AI-Assistant-dialog.png 697w, https://www.altova.com/blog/wp-content/uploads//XMLSpy-AI-Assistant-dialog-258x300.png 258w, https://www.altova.com/blog/wp-content/uploads//XMLSpy-AI-Assistant-dialog-607x705.png 607w" sizes="(max-width: 697px) 100vw, 697px" /></figure>
  1698.  
  1699.  
  1700.  
  1701. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1702.  
  1703.  
  1704.  
  1705. <p>With a default model selected, now you’re ready to select AI Assistant from the Windows menu and start composing a prompt.</p>
  1706.  
  1707.  
  1708.  
  1709. <p>The possibilities are endless, but some example ways to use the AI Assistant include:</p>
  1710.  
  1711.  
  1712.  
  1713. <ul>
  1714. <li>Create an XSD for storing human resources data</li>
  1715.  
  1716.  
  1717.  
  1718. <li>Create an instance with example financial transactions</li>
  1719.  
  1720.  
  1721.  
  1722. <li>Create a sample instance for the active XML Schema document</li>
  1723.  
  1724.  
  1725.  
  1726. <li>Create an XSL transformation that lists all root elements from the active file</li>
  1727. </ul>
  1728.  
  1729.  
  1730.  
  1731. <p>Here we’ve asked the <a href="https://www.altova.com/xmlspy-xml-editor/ai-assistant">XML AI Assistant</a> to generate an XSD for an expense report.</p>
  1732.  
  1733.  
  1734.  
  1735. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1736.  
  1737.  
  1738.  
  1739. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="705" height="620" src="https://www.altova.com/blog/wp-content/uploads/AI-generate-xml.png" alt="Using AI to generate XML in XMLSpy" class="wp-image-27337" srcset="https://www.altova.com/blog/wp-content/uploads//AI-generate-xml.png 705w, https://www.altova.com/blog/wp-content/uploads//AI-generate-xml-300x264.png 300w" sizes="(max-width: 705px) 100vw, 705px" /></figure>
  1740.  
  1741.  
  1742.  
  1743. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1744.  
  1745.  
  1746.  
  1747. <p>Once the response is returned, we can copy it to the clipboard or create a new document with the generated code.</p>
  1748.  
  1749.  
  1750.  
  1751. <p>Below is the AI-generated XSD opened in the graphical XML Schema editor, where we can review and edit it as necessary.</p>
  1752.  
  1753.  
  1754.  
  1755. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="658" height="623" src="https://www.altova.com/blog/wp-content/uploads/XSD-generated-ChatGPT.png" alt="XSD generated by ChatGPT OpenAI " class="wp-image-27338" srcset="https://www.altova.com/blog/wp-content/uploads//XSD-generated-ChatGPT.png 658w, https://www.altova.com/blog/wp-content/uploads//XSD-generated-ChatGPT-300x284.png 300w" sizes="(max-width: 658px) 100vw, 658px" /></figure>
  1756.  
  1757.  
  1758.  
  1759. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1760.  
  1761.  
  1762.  
  1763. <p>The AI Assistant can also generate a sample instance for the XSD filled with real-world data and any other documents to get a jump start on coding.</p>
  1764.  
  1765.  
  1766.  
  1767. <p>We can also ask the AI Assistant to generate XSL, XPath, and XQuery. XPath or XQuery statements can be opened directly in the XPath/XQuery window for testing and further refinement. The AI returns the expression corresponding to the prompt as well as an explanation of what the code is doing and what results are expected.</p>
  1768.  
  1769.  
  1770.  
  1771. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1772.  
  1773.  
  1774.  
  1775. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/generate-xquery-ai.png"><img loading="lazy" decoding="async" width="1030" height="604" src="https://www.altova.com/blog/wp-content/uploads/generate-xquery-ai-1030x604.png" alt="Using AI to generate and explain XQuery " class="wp-image-27340" style="width:700px" srcset="https://www.altova.com/blog/wp-content/uploads//generate-xquery-ai-1030x604.png 1030w, https://www.altova.com/blog/wp-content/uploads//generate-xquery-ai-300x176.png 300w, https://www.altova.com/blog/wp-content/uploads//generate-xquery-ai-768x451.png 768w, https://www.altova.com/blog/wp-content/uploads//generate-xquery-ai-705x414.png 705w, https://www.altova.com/blog/wp-content/uploads//generate-xquery-ai.png 1147w" sizes="(max-width: 1030px) 100vw, 1030px" /></a></figure>
  1776.  
  1777.  
  1778.  
  1779. <div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>
  1780.  
  1781.  
  1782.  
  1783. <h2 class="wp-block-heading" id="h-generate-json-with-ai">Generate JSON with AI</h2>
  1784.  
  1785.  
  1786.  
  1787. <p>The same AI tools for XML work with JSON. You can use natural language prompts to, for example:</p>
  1788.  
  1789.  
  1790.  
  1791. <ul>
  1792. <li>Generate a JSON Schema for a project management app</li>
  1793.  
  1794.  
  1795.  
  1796. <li>Generate a JSON instance for a given schema</li>
  1797.  
  1798.  
  1799.  
  1800. <li>Generate sample JSON data for medical records</li>
  1801.  
  1802.  
  1803.  
  1804. <li>And so on</li>
  1805. </ul>
  1806.  
  1807.  
  1808.  
  1809. <p>Let’s prompt the AI Assistant to generate sample JSON data for medical records.</p>
  1810.  
  1811.  
  1812.  
  1813. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1814.  
  1815.  
  1816.  
  1817. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="546" height="680" src="https://www.altova.com/blog/wp-content/uploads/AI-generated-JSON.png" alt="Generating JSON with AI" class="wp-image-27342" srcset="https://www.altova.com/blog/wp-content/uploads//AI-generated-JSON.png 546w, https://www.altova.com/blog/wp-content/uploads//AI-generated-JSON-241x300.png 241w" sizes="(max-width: 546px) 100vw, 546px" /></figure>
  1818.  
  1819.  
  1820.  
  1821. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1822.  
  1823.  
  1824.  
  1825. <p>The JSON data generated above can be opened, explored, and refined in the XMLSpy JSON Grid View.</p>
  1826.  
  1827.  
  1828.  
  1829. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1830.  
  1831.  
  1832.  
  1833. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="673" height="540" src="https://www.altova.com/blog/wp-content/uploads/AI-JSON-data-chatgpt.png" alt="Viewing JSON data generated by ChatGPT in XMLSpy" class="wp-image-27343" srcset="https://www.altova.com/blog/wp-content/uploads//AI-JSON-data-chatgpt.png 673w, https://www.altova.com/blog/wp-content/uploads//AI-JSON-data-chatgpt-300x241.png 300w" sizes="(max-width: 673px) 100vw, 673px" /></figure>
  1834.  
  1835.  
  1836.  
  1837. <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>
  1838.  
  1839.  
  1840.  
  1841. <p>Using AI to generate JSON and XML code is a huge productivity enhancer that allows developers to get things done faster. It frees them to focus on higher-level tasks, creativity, and problem-solving, while AI handles routine and repetitive tasks.</p>
  1842.  
  1843.  
  1844.  
  1845. <p></p>
  1846.  
  1847.  
  1848.  
  1849. <p></p>
  1850.  
  1851.  
  1852.  
  1853. <p>The AI Assistant is available starting with XMLSpy 2024. Download a free, <a href="https://www.altova.com/xmlspy-xml-editor/download">30-day trial</a> to get started with AI for XML and JSON today.</p>
  1854. <p>The post <a href="https://www.altova.com/blog/ai-tools-for-xml-and-json/">AI Tools for XML and JSON Development</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  1855. ]]></content:encoded>
  1856. </item>
  1857. <item>
  1858. <title>Extract Data for PDF Mapping</title>
  1859. <link>https://www.altova.com/blog/extract-pdf-data/</link>
  1860. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  1861. <pubDate>Mon, 06 Nov 2023 19:40:51 +0000</pubDate>
  1862. <category><![CDATA[Data Integration]]></category>
  1863. <category><![CDATA[ETL]]></category>
  1864. <category><![CDATA[data integration]]></category>
  1865. <category><![CDATA[data mapping]]></category>
  1866. <category><![CDATA[PDF]]></category>
  1867. <category><![CDATA[PDF Extractor]]></category>
  1868. <guid isPermaLink="false">https://www.altova.com/blog/?p=27315</guid>
  1869.  
  1870. <description><![CDATA[<p>MapForce, Altova’s award-winning data mapping tool, now supports PDF input in data integration and ETL workflows. The powerful MapForce PDF Extractor makes it easy to define rules for extracting PDF data in a structured format to make it available for mapping to other popular formats like Excel, XML, JSON, databases, and more. Let’s take a [&#8230;]</p>
  1871. <p>The post <a href="https://www.altova.com/blog/extract-pdf-data/">Extract Data for PDF Mapping</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  1872. ]]></description>
  1873. <content:encoded><![CDATA[
  1874. <p>MapForce, Altova’s award-winning data mapping tool, now supports PDF input in data integration and ETL workflows. The powerful MapForce PDF Extractor makes it easy to define rules for extracting PDF data in a structured format to make it available for mapping to other popular formats like Excel, XML, JSON, databases, and more.</p>
  1875.  
  1876.  
  1877.  
  1878. <p>Let’s take a look at how it works.</p>
  1879.  
  1880.  
  1881.  
  1882. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/mapforce-pdf.png" alt="" class="wp-image-27317" srcset="https://www.altova.com/blog/wp-content/uploads//mapforce-pdf.png 700w, https://www.altova.com/blog/wp-content/uploads//mapforce-pdf-300x144.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  1883.  
  1884.  
  1885.  
  1886. <span id="more-27315"></span>
  1887.  
  1888.  
  1889.  
  1890. <h2 class="wp-block-heading" id="h-how-to-extract-data-from-pdf">How to Extract Data from PDF</h2>
  1891.  
  1892.  
  1893.  
  1894. <p>The PDF file format enjoys near ubiquity in communications across verticals today thanks to its ability to offer a consistent presentation on any platform or device. PDFs typically combine multiple ways of presenting data in elements that work well for human readers, including text, images, charts, and tables, all with a variety of formatting options.</p>
  1895.  
  1896.  
  1897.  
  1898. <p>However, though they are great for presenting data in a user-friendly way, PDFs lack any built-in structure required for extracting that data effectively for integration with other business systems, which, of course, is a common requirement. Traditional data extraction tools often fail to accurately capture information from PDFs, particularly when dealing with complex layouts and varying formatting styles. This can result in errors, inefficiencies, and the need for manual intervention to correct the extracted data.</p>
  1899.  
  1900.  
  1901.  
  1902. <p>To address these PDF data integration challenges, Altova created the <a href="https://www.altova.com/mapforce/pdf-extractor">MapForce PDF Extractor</a>, a visual tool that makes it easy to define rules for extracting structured data from PDFs.</p>
  1903.  
  1904.  
  1905.  
  1906. <p>Learn how MapForce PDF Extractor works in this how-to video:</p>
  1907.  
  1908.  
  1909.  
  1910. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  1911. <div class='avia-iframe-wrap'><iframe loading="lazy" title="MapForce PDF Extractor Tutorial: How to Extract and Map PDF Data for Data Integration and ETL" width="1500" height="844" src="https://www.youtube.com/embed/iU-ZHrXoL3g?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>
  1912. </div></figure>
  1913.  
  1914.  
  1915.  
  1916. <p><a href="https://www.youtube.com/watch?v=iU-ZHrXoL3g"></a></p>
  1917.  
  1918.  
  1919.  
  1920. <p>The best way to get started with the MapForce PDF Extractor is to load a sample document with the format of the data you need to extract. This might be an invoice, data entry form, report, customer record, etc. The PDF Extractor displays this sample document so you can begin to define a template and rules for extracting the data in a structured way. The straightforward design of the MapForce PDF Extractor makes it easy to specify the PDF document structure in a visual way, using point-and-click and drag-and-drop functionality.</p>
  1921.  
  1922.  
  1923.  
  1924. <p>Next to the PDF view pane, a schema pane displays a tree structure that represents how the PDF will be parsed and the data will be extracted.</p>
  1925.  
  1926.  
  1927.  
  1928. <div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>
  1929.  
  1930.  
  1931.  
  1932. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/extract-data-from-pdf.png"><img loading="lazy" decoding="async" width="797" height="652" src="https://www.altova.com/blog/wp-content/uploads/extract-data-from-pdf.png" alt="Extract data from PDF files using MapForce PDF Extractor" class="wp-image-27322" srcset="https://www.altova.com/blog/wp-content/uploads//extract-data-from-pdf.png 797w, https://www.altova.com/blog/wp-content/uploads//extract-data-from-pdf-300x245.png 300w, https://www.altova.com/blog/wp-content/uploads//extract-data-from-pdf-768x628.png 768w, https://www.altova.com/blog/wp-content/uploads//extract-data-from-pdf-705x577.png 705w" sizes="(max-width: 797px) 100vw, 797px" /></a></figure>
  1933.  
  1934.  
  1935.  
  1936. <div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>
  1937.  
  1938.  
  1939.  
  1940. <p>The properties pane lets you define properties and calculate expressions, as needed. At the bottom of the PDF document view is the output pane (shown above), which lets you see a preview of the result of the <a href="https://www.altova.com/mapforce/pdf-extractor">PDF data extraction</a> based on the properties and extraction rules you define. The output is represented by an XML document showing XML tags for the structure as well as the actual content of the sample file that is being extracted.</p>
  1941.  
  1942.  
  1943.  
  1944. <p>To capture portions of the document to add to the schema tree, simply highlight an area and right click to create a text capture.&nbsp;</p>
  1945.  
  1946.  
  1947.  
  1948. <div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>
  1949.  
  1950.  
  1951.  
  1952. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/capture-pdf-text.png"><img loading="lazy" decoding="async" width="746" height="420" src="https://www.altova.com/blog/wp-content/uploads/capture-pdf-text.png" alt="Capture PDF text " class="wp-image-27323" srcset="https://www.altova.com/blog/wp-content/uploads//capture-pdf-text.png 746w, https://www.altova.com/blog/wp-content/uploads//capture-pdf-text-300x169.png 300w, https://www.altova.com/blog/wp-content/uploads//capture-pdf-text-705x397.png 705w" sizes="(max-width: 746px) 100vw, 746px" /></a></figure>
  1953.  
  1954.  
  1955.  
  1956. <div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>
  1957.  
  1958.  
  1959.  
  1960. <p>Drag the newly created element to the desired place in the tree and give it a descriptive name.</p>
  1961.  
  1962.  
  1963.  
  1964. <div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>
  1965.  
  1966.  
  1967.  
  1968. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/pdf-structure-tree.png"><img loading="lazy" decoding="async" width="766" height="621" src="https://www.altova.com/blog/wp-content/uploads/pdf-structure-tree.png" alt="Drag the text capture from PDF to the correct spot in the schema " class="wp-image-27324" srcset="https://www.altova.com/blog/wp-content/uploads//pdf-structure-tree.png 766w, https://www.altova.com/blog/wp-content/uploads//pdf-structure-tree-300x243.png 300w, https://www.altova.com/blog/wp-content/uploads//pdf-structure-tree-495x400.png 495w, https://www.altova.com/blog/wp-content/uploads//pdf-structure-tree-705x572.png 705w" sizes="(max-width: 766px) 100vw, 766px" /></a></figure>
  1969.  
  1970.  
  1971.  
  1972. <div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>
  1973.  
  1974.  
  1975.  
  1976. <p>In addition to support for defining data extraction rules manually, the MapForce PDF Extractor includes a powerful suggestion engine that automatically identifies common document elements and attempts to detect their structure. For instance, the suggestion engine will identify tables that exist in the document, which you can opt to extract automatically and then refine as necessary. The split operator in the schema pane helps you define how to correctly divide the table into separate rows. The suggestion engine can look for edges or lines to create the split, split based on a fixed distance, or detect changes in the background color, which you can preview in the PDF view pane. At the same time, the suggestion engine captures columns and header text, which you can fine tune as necessary, as can be seen in the video above.</p>
  1977.  
  1978.  
  1979.  
  1980. <p>Clicking on any object in the schema tree highlights the corresponding structure and data capture rules as they apply in the PDF document view.</p>
  1981.  
  1982.  
  1983.  
  1984. <div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>
  1985.  
  1986.  
  1987.  
  1988. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/extract-PDF-table-data.png"><img loading="lazy" decoding="async" width="840" height="638" src="https://www.altova.com/blog/wp-content/uploads/extract-PDF-table-data.png" alt="Extract data from tables in PDF documents" class="wp-image-27325" srcset="https://www.altova.com/blog/wp-content/uploads//extract-PDF-table-data.png 840w, https://www.altova.com/blog/wp-content/uploads//extract-PDF-table-data-300x228.png 300w, https://www.altova.com/blog/wp-content/uploads//extract-PDF-table-data-768x583.png 768w, https://www.altova.com/blog/wp-content/uploads//extract-PDF-table-data-705x535.png 705w" sizes="(max-width: 840px) 100vw, 840px" /></a></figure>
  1989.  
  1990.  
  1991.  
  1992. <div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>
  1993.  
  1994.  
  1995.  
  1996. <h2 class="wp-block-heading" id="h-map-pdf-to-other-formats">Map PDF to Other Formats</h2>
  1997.  
  1998.  
  1999.  
  2000. <p>Once your template in the MapForce PDF Extractor is complete, you can add it to a MapForce data mapping project to efficiently map the PDF data to other supported formats. Simply drag and drop to associate source and target nodes and take advantage of the built-in library of data processing functions to transform the PDF data. Common applications include:</p>
  2001.  
  2002.  
  2003.  
  2004. <ul>
  2005. <li>PDF to Excel</li>
  2006.  
  2007.  
  2008.  
  2009. <li>PDF to XML</li>
  2010.  
  2011.  
  2012.  
  2013. <li>PDF to JSON</li>
  2014.  
  2015.  
  2016.  
  2017. <li>PDF to SQL or NoSQL database systems</li>
  2018.  
  2019.  
  2020.  
  2021. <li>PDF to EDI messages</li>
  2022.  
  2023.  
  2024.  
  2025. <li>PDF to CSV or text </li>
  2026. </ul>
  2027.  
  2028.  
  2029.  
  2030. <p>In addition to these scenarios, MapForce supports chained data mapping processes as well as multiple source/target data structures.</p>
  2031.  
  2032.  
  2033.  
  2034. <div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>
  2035.  
  2036.  
  2037.  
  2038. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="656" height="431" src="https://www.altova.com/blog/wp-content/uploads/PDF-to-JSON.png" alt="Converting PDF to JSON in MapForce" class="wp-image-27326" srcset="https://www.altova.com/blog/wp-content/uploads//PDF-to-JSON.png 656w, https://www.altova.com/blog/wp-content/uploads//PDF-to-JSON-300x197.png 300w" sizes="(max-width: 656px) 100vw, 656px" /></figure>
  2039.  
  2040.  
  2041.  
  2042. <div style="height:49px" aria-hidden="true" class="wp-block-spacer"></div>
  2043.  
  2044.  
  2045.  
  2046. <p>Based on your data mapping definition, MapForce transforms the data instantly. Or, you can take advantage of MapForce Server Advanced Edition for recurrent PDF transformations and ETL pipelines. This allows organizations to automate data integration and streamline processes by seamlessly incorporating PDF data into their existing systems, databases, and workflows.</p>
  2047.  
  2048.  
  2049.  
  2050. <p>Get started with the MapForce PDF Extractor by <a href="https://www.altova.com/mapforce/download">downloading a free trial</a> from the Altova web site.</p>
  2051. <p>The post <a href="https://www.altova.com/blog/extract-pdf-data/">Extract Data for PDF Mapping</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  2052. ]]></content:encoded>
  2053. </item>
  2054. <item>
  2055. <title>AI Integration &#038; PDF Data Mapping in Version 2024</title>
  2056. <link>https://www.altova.com/blog/ai-integration-pdf-data-mapping-in-version-2024/</link>
  2057. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  2058. <pubDate>Tue, 24 Oct 2023 10:15:06 +0000</pubDate>
  2059. <category><![CDATA[AI]]></category>
  2060. <category><![CDATA[Data Integration]]></category>
  2061. <category><![CDATA[JSON]]></category>
  2062. <category><![CDATA[XML]]></category>
  2063. <category><![CDATA[AI Assistants]]></category>
  2064. <category><![CDATA[data mapping]]></category>
  2065. <category><![CDATA[JSON editor]]></category>
  2066. <category><![CDATA[PDF]]></category>
  2067. <category><![CDATA[XML Editor]]></category>
  2068. <guid isPermaLink="false">https://www.altova.com/blog/?p=27275</guid>
  2069.  
  2070. <description><![CDATA[<p>Version 2024 of Altova Software introduces brand new AI Assistants in multiple products as well as long-awaited support for PDF data integration in MapForce. Other features include Markdown editing support, split output preview for business report creation, support for new XBRL standards, and much more. Let’s take a look at the highlights. AI Assistant in [&#8230;]</p>
  2071. <p>The post <a href="https://www.altova.com/blog/ai-integration-pdf-data-mapping-in-version-2024/">AI Integration &#038; PDF Data Mapping in Version 2024</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  2072. ]]></description>
  2073. <content:encoded><![CDATA[
  2074. <p>Version 2024 of Altova Software introduces brand new AI Assistants in multiple products as well as long-awaited support for PDF data integration in MapForce. Other features include Markdown editing support, split output preview for business report creation, support for new XBRL standards, and much more. </p>
  2075.  
  2076.  
  2077.  
  2078. <p>Let’s take a look at the highlights.</p>
  2079.  
  2080.  
  2081.  
  2082. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/v2024_blog.jpg" alt="Decorative image with imagery symbolizing AI to announce new product features" class="wp-image-27277" srcset="https://www.altova.com/blog/wp-content/uploads//v2024_blog.jpg 700w, https://www.altova.com/blog/wp-content/uploads//v2024_blog-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  2083.  
  2084.  
  2085.  
  2086. <div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>
  2087.  
  2088.  
  2089.  
  2090. <span id="more-27275"></span>
  2091.  
  2092.  
  2093.  
  2094. <h2 class="wp-block-heading" id="h-ai-assistant-in-xmlspy">AI Assistant in XMLSpy</h2>
  2095.  
  2096.  
  2097.  
  2098. <p>XMLSpy now includes an AI Assistant for harnessing the power of ChatGPT directly inside the XML and JSON editor.</p>
  2099.  
  2100.  
  2101.  
  2102. <p><a href="https://www.altova.com/xmlspy-xml-editor/ai-assistant">AI integration in XMLSpy</a> immediately boosts productivity for XML and JSON development tasks by generating schemas, instance documents, and sample data based on natural language prompts. The AI Assistant can also generate XSL, XPath, and XQuery code.</p>
  2103.  
  2104.  
  2105.  
  2106. <p>Sample prompts include:</p>
  2107.  
  2108.  
  2109.  
  2110. <ul>
  2111. <li>Create an XSD for storing human resources data</li>
  2112.  
  2113.  
  2114.  
  2115. <li>Create an XML file with example financial transactions</li>
  2116.  
  2117.  
  2118.  
  2119. <li>Create a sample JSON instance for the active schema file</li>
  2120.  
  2121.  
  2122.  
  2123. <li>Create an XSL transformation that lists all root elements from the active XML file</li>
  2124.  
  2125.  
  2126.  
  2127. <li>And so on – the possibilities are endless</li>
  2128. </ul>
  2129.  
  2130.  
  2131.  
  2132. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="596" height="637" src="https://www.altova.com/blog/wp-content/uploads/xmlspy-ai-assistant.png" alt="AI Assistant in XMLSpy" class="wp-image-27278" srcset="https://www.altova.com/blog/wp-content/uploads//xmlspy-ai-assistant.png 596w, https://www.altova.com/blog/wp-content/uploads//xmlspy-ai-assistant-281x300.png 281w" sizes="(max-width: 596px) 100vw, 596px" /></figure>
  2133.  
  2134.  
  2135.  
  2136. <div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>
  2137.  
  2138.  
  2139.  
  2140. <p>Generated code can be copied, opened in a new document, or sent to the XPath/XQuery window for further review and refinement.</p>
  2141.  
  2142.  
  2143.  
  2144. <p>This AI integration lets XMLSpy developers stay on the cutting edge of technology to accelerate development and efficiency, opening doors to increased innovation.</p>
  2145.  
  2146.  
  2147.  
  2148. <p>To get started with AI integration in XMLSpy, simply enter your OpenAI key once using the AI Assistant dialog in the Window menu.</p>
  2149.  
  2150.  
  2151.  
  2152. <h2 class="wp-block-heading" id="h-mapforce-pdf-extractor">MapForce PDF Extractor</h2>
  2153.  
  2154.  
  2155.  
  2156. <p>One of the most requested MapForce features is now being introduced in Version 2024: Support for PDF input. The new <a href="https://www.altova.com/mapforce/pdf-extractor">MapForce PDF Extractor</a> finally makes the massive volumes of business data locked in PDFs available for data mapping, data integration, and ETL processes.</p>
  2157.  
  2158.  
  2159.  
  2160. <p>The MapForce PDF Extractor is an easy-to-use utility that allows you to quickly define the structure of a PDF document and extract data from it. Then, that PDF data can be accessed for further transformation and conversion to other formats such as XML, JSON, databases, Excel, and so on, in MapForce.</p>
  2161.  
  2162.  
  2163.  
  2164. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="692" height="682" src="https://www.altova.com/blog/wp-content/uploads/mapforce-pdf-extractor-corrected.png" alt="MapForce PDF Extractor" class="wp-image-27279" srcset="https://www.altova.com/blog/wp-content/uploads//mapforce-pdf-extractor-corrected.png 692w, https://www.altova.com/blog/wp-content/uploads//mapforce-pdf-extractor-corrected-300x296.png 300w, https://www.altova.com/blog/wp-content/uploads//mapforce-pdf-extractor-corrected-80x80.png 80w, https://www.altova.com/blog/wp-content/uploads//mapforce-pdf-extractor-corrected-36x36.png 36w" sizes="(max-width: 692px) 100vw, 692px" /></figure>
  2165.  
  2166.  
  2167.  
  2168. <div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>
  2169.  
  2170.  
  2171.  
  2172. <p>The MapForce PDF Extractor will be an invaluable tool for MapForce users. Its easy-to-use, straightforward design makes quick work of defining PDF document structure in a visual way, using point-and-click and drag-and-drop functionality. At last, the vast volumes of data previously locked in PDFs is available for mapping to other formats.</p>
  2173.  
  2174.  
  2175.  
  2176. <h2 class="wp-block-heading" id="h-databasespy-ai-assistant">DatabaseSpy AI Assistant</h2>
  2177.  
  2178.  
  2179.  
  2180. <p>The DatabaseSpy multi-database tool and SQL editor also includes AI integration starting with version 2024. Once you enter your OpenAI key, you will have access to:</p>
  2181.  
  2182.  
  2183.  
  2184. <ul>
  2185. <li><strong>AI Chat Dialog: </strong>use ChatGPT integration to create sample SQL statements, create sample data for a given table structure, create relations between tables that have no keys yet, and so on. Once you send a request and receive the response, you can copy and paste the returned SQL into an existing file or create a new SQL file with the response.&nbsp;</li>
  2186. </ul>
  2187.  
  2188.  
  2189.  
  2190. <ul>
  2191. <li><strong>AI Assistant: </strong>extensions in the SQL Editor menu let you use AI to explain, pretty print, and complete SQL statements</li>
  2192. </ul>
  2193.  
  2194.  
  2195.  
  2196. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/ai-explain-databasespy.png"><img loading="lazy" decoding="async" width="1030" height="823" src="https://www.altova.com/blog/wp-content/uploads/ai-explain-databasespy-1030x823.png" alt="" class="wp-image-27312" srcset="https://www.altova.com/blog/wp-content/uploads//ai-explain-databasespy-1030x823.png 1030w, https://www.altova.com/blog/wp-content/uploads//ai-explain-databasespy-300x240.png 300w, https://www.altova.com/blog/wp-content/uploads//ai-explain-databasespy-768x614.png 768w, https://www.altova.com/blog/wp-content/uploads//ai-explain-databasespy-705x564.png 705w, https://www.altova.com/blog/wp-content/uploads//ai-explain-databasespy.png 1171w" sizes="(max-width: 1030px) 100vw, 1030px" /></a></figure>
  2197.  
  2198.  
  2199.  
  2200. <div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>
  2201.  
  2202.  
  2203.  
  2204. <div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>
  2205.  
  2206.  
  2207.  
  2208. <p>This new, built-in <a href="https://www.altova.com/databasespy/ai-assistant">AI functionality in DatabaseSpy</a> will increase productivity and accelerate learning when designing and developing queries or otherwise working with the data from relational databases.</p>
  2209.  
  2210.  
  2211.  
  2212. <h2 class="wp-block-heading" id="h-more-version-2024-features">More Version 2024 Features</h2>
  2213.  
  2214.  
  2215.  
  2216. <p>These are just a few highlights of the new features available in Version 2024 for keeping developers and database pros up-to-speed with the latest technology and productivity enhancements. Learn more about all the <a href="https://www.altova.com/whatsnew">new features</a> being announced and <a href="https://www.altova.com/download">upgrade your software</a> to the latest version.</p>
  2217. <p>The post <a href="https://www.altova.com/blog/ai-integration-pdf-data-mapping-in-version-2024/">AI Integration &#038; PDF Data Mapping in Version 2024</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  2218. ]]></content:encoded>
  2219. </item>
  2220. <item>
  2221. <title>5 Reasons to Choose a Graphical JSON Schema Editor</title>
  2222. <link>https://www.altova.com/blog/graphical-json-schema-editor/</link>
  2223. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  2224. <pubDate>Mon, 25 Sep 2023 15:53:29 +0000</pubDate>
  2225. <category><![CDATA[Development]]></category>
  2226. <category><![CDATA[JSON]]></category>
  2227. <category><![CDATA[JSON Schema]]></category>
  2228. <category><![CDATA[XML JSON]]></category>
  2229. <category><![CDATA[XMLSpy]]></category>
  2230. <guid isPermaLink="false">http://blog.altova.com/?p=1622</guid>
  2231.  
  2232. <description><![CDATA[<p>The advantages of JSON as a lightweight, human-readable, interoperable data format have led to its widespread adoption in various domains, including web development, mobile app development, and backend services. Many programming libraries and frameworks provide built-in support for JSON parsing and serialization. That said, most applications still benefit from or require validation of client-submitted data. [&#8230;]</p>
  2233. <p>The post <a href="https://www.altova.com/blog/graphical-json-schema-editor/">5 Reasons to Choose a Graphical JSON Schema Editor</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  2234. ]]></description>
  2235. <content:encoded><![CDATA[
  2236. <p>The advantages of <a href="http://www.json.org">JSON </a>as a lightweight, human-readable, interoperable data format have led to its widespread adoption in various domains, including web development, mobile app development, and backend services. Many programming libraries and frameworks provide built-in support for JSON parsing and serialization.</p>
  2237.  
  2238.  
  2239.  
  2240. <p>That said, most applications still benefit from or require validation of client-submitted data. Enter the <a href="http://www.json-schema.org">JSON Schema</a> spec, which lets you describe the structure of JSON data for a particular application, for both documentation and validation purposes.</p>
  2241.  
  2242.  
  2243.  
  2244. <p>Though JSON Schema code is by design human-readable, building a complex schema with nested and repeating sections in a text-only editor becomes time consuming and error-prone quickly. Let&#8217;s look at five ways a graphical editor is a must-have for JSON Schema development. </p>
  2245.  
  2246.  
  2247.  
  2248. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/JSON_editor.jpg" alt="JSON Schema Editor in XMLSpy" class="wp-image-1621" srcset="https://www.altova.com/blog/wp-content/uploads/JSON_editor.jpg 700w, https://www.altova.com/blog/wp-content/uploads/JSON_editor-300x144.jpg 300w, https://www.altova.com/blog/wp-content/uploads/JSON_editor-450x215.jpg 450w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  2249.  
  2250.  
  2251.  
  2252. <span id="more-1622"></span>
  2253.  
  2254.  
  2255.  
  2256. <h2 class="wp-block-heading" id="h-benefits-of-json-schema">Benefits of JSON Schema</h2>
  2257.  
  2258.  
  2259.  
  2260. <p>Adoption of JSON Schema is important for ensuring data quality, documenting data structures, promoting interoperability, and streamlining development processes when working with JSON data. It enhances data understanding, reliability, and consistency in various applications and scenarios.</p>
  2261.  
  2262.  
  2263.  
  2264. <p>JSON Schema provides a standardized and formal way to define the structure and constraints of JSON data. This allows you to validate whether JSON data adheres to a specific schema, ensuring data integrity and quality. Validation helps catch errors early in the data processing pipeline, reducing the likelihood of incorrect or inconsistent data entering a system.</p>
  2265.  
  2266.  
  2267.  
  2268. <p>In addition to data validation, JSON Schema enables interoperability among systems. When different systems or services communicate using JSON data, having a shared schema ensures that they can understand each other&#8217;s data formats. This is particularly crucial in distributed systems and when working with APIs that serve multiple clients.</p>
  2269.  
  2270.  
  2271.  
  2272. <p>While developers can certainly develop JSON Schema in a text editor, most prefer to work in a graphical environment for maximum flexibility and productivity. </p>
  2273.  
  2274.  
  2275.  
  2276. <h2 class="wp-block-heading" id="h-advantages-of-a-graphical-json-schema-editor">Advantages of a Graphical JSON Schema Editor</h2>
  2277.  
  2278.  
  2279.  
  2280. <p>There are myriad ways that an enterprise-grade, <a href="https://www.altova.com/xmlspy-xml-editor/json_schema_editor">graphical JSON Schema editor</a> is an asset for developers. Here are the top five:</p>
  2281.  
  2282.  
  2283.  
  2284. <ol>
  2285. <li>Faster development and fewer errors with JSON Schema generation, graphical views, and intelligent entry helpers</li>
  2286.  
  2287.  
  2288.  
  2289. <li>Developers new to JSON Schema can rapidly build a schema using the graphical view</li>
  2290.  
  2291.  
  2292.  
  2293. <li>Allows for incremental data modeling, by which you generate a JSON Schema based on an existing JSON instance</li>
  2294.  
  2295.  
  2296.  
  2297. <li>Built-in <a href="https://www.altova.com/xmlspy-xml-editor/xml-to-json">XML to JSON</a> conversion tools make it easy to move between formats as required</li>
  2298.  
  2299.  
  2300.  
  2301. <li>Auto-generated, visual JSON Schema documentation facilitates maintenance and communication </li>
  2302. </ol>
  2303.  
  2304.  
  2305.  
  2306. <p>Altova built JSON Schema support in the XMLSpy around these five requirements as detailed below.</p>
  2307.  
  2308.  
  2309.  
  2310. <p>Structured as a set of nested containers – much like XML Schema – JSON Schema by nature lends itself to a graphical view. Approaching a schema visually allows for rapid development and visualization of structure. Compare the visual representation below to its corresponding code.</p>
  2311.  
  2312.  
  2313.  
  2314. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="691" height="504" src="https://www.altova.com/blog/wp-content/uploads/json-schema-editor-1.png" alt="Graphical JSON Schema Editor" class="wp-image-4291" srcset="https://www.altova.com/blog/wp-content/uploads/json-schema-editor-1.png 691w, https://www.altova.com/blog/wp-content/uploads/json-schema-editor-1-300x219.png 300w, https://www.altova.com/blog/wp-content/uploads/json-schema-editor-1-450x328.png 450w" sizes="(max-width: 691px) 100vw, 691px" /></figure>
  2315.  
  2316.  
  2317.  
  2318. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="693" height="501" src="https://www.altova.com/blog/wp-content/uploads/json-schema-editor-text.png" alt="Edit JSON Schema text view" class="wp-image-4292" srcset="https://www.altova.com/blog/wp-content/uploads/json-schema-editor-text.png 693w, https://www.altova.com/blog/wp-content/uploads/json-schema-editor-text-300x217.png 300w, https://www.altova.com/blog/wp-content/uploads/json-schema-editor-text-450x325.png 450w" sizes="(max-width: 693px) 100vw, 693px" /></figure>
  2319.  
  2320.  
  2321.  
  2322. <p>Even for a relatively simple schema, a graphical view of the data model is easier to define and understand.</p>
  2323.  
  2324.  
  2325.  
  2326. <p>As you’re working, drag and drop editing and intelligent entry helpers make it easy to specify details and constraints and make valid JSON Schema editing choices.</p>
  2327.  
  2328.  
  2329.  
  2330. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="681" height="520" src="https://www.altova.com/blog/wp-content/uploads/intelligent-json-schema-editing.png" alt="JSON Schema editing entry helpers" class="wp-image-4293" srcset="https://www.altova.com/blog/wp-content/uploads/intelligent-json-schema-editing.png 681w, https://www.altova.com/blog/wp-content/uploads/intelligent-json-schema-editing-300x229.png 300w, https://www.altova.com/blog/wp-content/uploads/intelligent-json-schema-editing-450x344.png 450w" sizes="(max-width: 681px) 100vw, 681px" /></figure>
  2331.  
  2332.  
  2333.  
  2334. <p>If you’re familiar with the <a href="https://www.altova.com/xmlspy-xml-editor/xsd-editor">XML Schema</a> editor in XMLSpy, the JSON Schema Editor will be familiar instantly. At the same time, its graphical editing paradigm makes it easy to grasp for those new to XMLSpy.</p>
  2335.  
  2336.  
  2337.  
  2338. <p></p>
  2339.  
  2340.  
  2341.  
  2342. <h2 class="wp-block-heading" id="h-json-schema-generator">JSON Schema Generator</h2>
  2343.  
  2344.  
  2345.  
  2346. <p>You don&#8217;t need to start at the beginning by defining a schema from scratch. For incremental data modeling, simply load a JSON instance and let XMLSpy generate the schema for you. You can refine it further in the graphical editor or use it immediately for documentation of the data structure and data validation. </p>
  2347.  
  2348.  
  2349.  
  2350. <p>The <a href="https://www.altova.com/xmlspy-xml-editor/json_schema_editor#json_schema_generator">JSON Schema generator </a>dialog allows you generate a schema conforming to JSON Schema draft-04, -06, or -07. Or, generate a JSON schema from an XSD as described in the next section.</p>
  2351.  
  2352.  
  2353.  
  2354. <p></p>
  2355.  
  2356.  
  2357.  
  2358. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="699" height="494" src="https://www.altova.com/blog/wp-content/uploads/generate-json-schema-1.png" alt="Generate JSON Schema" class="wp-image-4294" srcset="https://www.altova.com/blog/wp-content/uploads/generate-json-schema-1.png 699w, https://www.altova.com/blog/wp-content/uploads/generate-json-schema-1-300x212.png 300w, https://www.altova.com/blog/wp-content/uploads/generate-json-schema-1-260x185.png 260w, https://www.altova.com/blog/wp-content/uploads/generate-json-schema-1-450x318.png 450w" sizes="(max-width: 699px) 100vw, 699px" /></figure>
  2359.  
  2360.  
  2361.  
  2362. <h2 class="wp-block-heading" id="h-convert-xml-to-json">Convert XML to JSON</h2>
  2363.  
  2364.  
  2365.  
  2366. <p>Another benefit of using an enterprise-grade editor is support for additional related technologies. For instance, developers can generate a JSON Schema from an existing XML Schema (XSD) with two clicks in XMLSpy. </p>
  2367.  
  2368.  
  2369.  
  2370. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="440" height="321" src="https://www.altova.com/blog/wp-content/uploads/convert-xml-json.png" alt="Convert XML to JSON" class="wp-image-4295" srcset="https://www.altova.com/blog/wp-content/uploads/convert-xml-json.png 440w, https://www.altova.com/blog/wp-content/uploads/convert-xml-json-300x219.png 300w" sizes="(max-width: 440px) 100vw, 440px" /></figure>
  2371.  
  2372.  
  2373.  
  2374. <p>Converting JSON Schema to XSD is also supported.</p>
  2375.  
  2376.  
  2377.  
  2378. <p>With support for JSON Schema generation, editing, validation, and conversion, as well as intelligent editing of instance documents, XMLSpy provides an enterprise-grade approach to JSON development that lets you capitalize on its advantages even more readily.<br /> </p>
  2379.  
  2380.  
  2381.  
  2382. <h3 class="wp-block-heading" id="h-additional-json-schema-tools">Additional JSON Schema Tools</h3>
  2383.  
  2384.  
  2385.  
  2386. <p>JSON is supported across the Altova product line with graphical tools and built-in automation options that make JSON development and data integration easy. In addition to XMLSpy, JSON Schema support is provided for:</p>
  2387.  
  2388.  
  2389.  
  2390. <ul>
  2391. <li><strong>JSON data mapping and conversion in MapForce</strong>. A graphical, drag-and-drop <a href="https://www.altova.com/mapforce">data mapping tool</a>, MapForce lets developers and IT pros process and convert data between JSON, XML, CSV, Excel, databases, and other formats. Convert data instantly, or automate the data mapping via MapForce Server. </li>
  2392.  
  2393.  
  2394.  
  2395. <li><strong>Lightning-fast JSON validation on RaptorXML Server</strong>. Process high-volume or recurrent JSON Schema-based validation jobs using this high-performance <a href="https://www.altova.com/raptorxml">validator for JSON, XML, and XBRL</a>.  </li>
  2396. </ul>
  2397.  
  2398.  
  2399.  
  2400. <p>To cover all your JSON development and conversions needs, you can choose the Altova MissionKit product suite, which includes XMLSpy and MapForce at a special price. MissionKit and RaptorXML Server are available for a <a href="https://www.altova.com/download">free, 30-day trial</a>. </p>
  2401. <p>The post <a href="https://www.altova.com/blog/graphical-json-schema-editor/">5 Reasons to Choose a Graphical JSON Schema Editor</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  2402. ]]></content:encoded>
  2403. </item>
  2404. <item>
  2405. <title>AI-based Database Image Classification with Altova MapForce</title>
  2406. <link>https://www.altova.com/blog/ai-based-data-mapping/</link>
  2407. <dc:creator><![CDATA[David McGahey]]></dc:creator>
  2408. <pubDate>Mon, 31 Jul 2023 13:34:12 +0000</pubDate>
  2409. <category><![CDATA[Data Integration]]></category>
  2410. <category><![CDATA[Database mapping]]></category>
  2411. <category><![CDATA[Tools]]></category>
  2412. <category><![CDATA[AI]]></category>
  2413. <category><![CDATA[artificial intelligence]]></category>
  2414. <category><![CDATA[data mapping]]></category>
  2415. <category><![CDATA[Database Mapping]]></category>
  2416. <category><![CDATA[MapForce]]></category>
  2417. <guid isPermaLink="false">https://www.altova.com/blog/?p=27171</guid>
  2418.  
  2419. <description><![CDATA[<p>One of the most common examples of AI in our everyday lives is facial recognition. Facial recognition is the process of identifying or verifying a person&#8217;s identity based on their face. Facial recognition is used in many applications, such as unlocking our phones with FaceID, tagging our friends on social media platforms like Facebook, and [&#8230;]</p>
  2420. <p>The post <a href="https://www.altova.com/blog/ai-based-data-mapping/">AI-based Database Image Classification with Altova MapForce</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  2421. ]]></description>
  2422. <content:encoded><![CDATA[
  2423. <p>One of the most common examples of AI in our everyday lives is facial recognition. Facial recognition is the process of identifying or verifying a person&#8217;s identity based on their face. Facial recognition is used in many applications, such as unlocking our phones with FaceID, tagging our friends on social media platforms like Facebook, and checking in at airports or hotels with biometric scanners. Facial recognition can make our lives more convenient and secure, but it can also raise some privacy and ethical concerns. For instance, how can we ensure that our facial data is not misused or stolen by hackers or malicious actors? How can we prevent facial recognition from being used for surveillance or discrimination? How can we ensure that facial recognition is accurate and fair, and does not have any biases or errors?</p>
  2424.  
  2425.  
  2426.  
  2427. <p>The paragraph above was generated by <a href="https://www.bing.com/ck/a?!&amp;&amp;p=0ed506ef90d7a915JmltdHM9MTY4NzgyNDAwMCZpZ3VpZD0wNGJiZTc1My05OWRhLTY2YzAtMDRjNi1mNjAzOThiZDY3MTkmaW5zaWQ9NTI0Mg&amp;ptn=3&amp;hsh=3&amp;fclid=04bbe753-99da-66c0-04c6-f60398bd6719&amp;psq=chatgpt&amp;u=a1aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ2hhdEdQVA&amp;ntb=1">ChatGPT</a> in response to my request to describe the benefits and risks of artificial intelligence and include a real-life example. It’s interesting that ChatGPT chose FaceID as the example, since FaceID is simply one variation of image analysis and AI-powered image classification offers potential to automate many real-world tasks.</p>
  2428.  
  2429.  
  2430.  
  2431. <p>One common use-case is a product catalog, wherein a company manages product information provided by many different manufacturers. A product loaded into that database may have a name that does not necessarily include a precise description of the item. For instance, wellington is a boot, fedora is a hat, a mongoose is a bicycle, and a yellow watermelon shiny needlefish is a fishing lure. We can make use of AI-powered image classification using the <a href="https://learn.microsoft.com/en-us/azure/cognitive-services/computer-vision/quickstarts-sdk/image-analysis-client-library?tabs=windows%2Cvisual-studio&amp;pivots=programming-language-rest-api">Microsoft Azure Cognitive Services Computer Vision API</a> to address this problem. The Computer Vision Service takes the image data or URL as its input and returns information about the content. One service generates image classification tags based on a training set of recognizable objects, living beings, scenery, and actions that the Azure AI has been trained on. These tags allow us to categorize products in the database accordingly and may even correspond to search terms a user might provide to find products in the catalog.</p>
  2432.  
  2433.  
  2434.  
  2435. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/blog_MF_AI.jpg" alt="decorative image depicting an AI &quot;brain&quot; " class="wp-image-27258" srcset="https://www.altova.com/blog/wp-content/uploads//blog_MF_AI.jpg 700w, https://www.altova.com/blog/wp-content/uploads//blog_MF_AI-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  2436.  
  2437.  
  2438.  
  2439. <span id="more-27171"></span>
  2440.  
  2441.  
  2442.  
  2443. <p>We can create an AI-based data mapping using <a href="https://www.altova.com/mapforce">Altova MapForce</a> to send product images to the Computer Vision AI using its web service API. Altova MapForce is an award-winning, graphical data mapping tool for any-to-any data conversion and integration. The Computer Vision API uses artificial intelligence to analyze each image and return a list of tags. MapForce supports Web services directly within a mapping, and intermediate result processing or chained data mapping functionality can then insert the tags back into a dedicated field in the database for each product.</p>
  2444.  
  2445.  
  2446.  
  2447. <p>This AI-based data mapping can automate generation and insertion of AI generated tags for product catalogs in a completely scalable manner. The tags being returned by the AI are given with a confidence score, making it easy to set a threshold in the mapping to only use tags with a significantly high enough confidence.</p>
  2448.  
  2449.  
  2450.  
  2451. <p>We started with a small sample database of common outdoor recreation products and used <a href="https://www.altova.com/databasespy">Altova DatabaseSpy</a> to add a field to the products table for AI tags. DatabaseSpy connects to all major databases, easing SQL editing, database structure design, content editing, and database conversion for a fraction of the cost of single-database solutions. Here is a DatabaseSpy query result window showing database content and the new empty field.</p>
  2452.  
  2453.  
  2454.  
  2455. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/sample-database.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/sample-database.png" alt="Sample database for a product catalog" class="wp-image-27187" width="600" height="277"/></a></figure>
  2456.  
  2457.  
  2458.  
  2459. <p>And here in random order are thumbnail versions of the example product images:</p>
  2460.  
  2461.  
  2462.  
  2463. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/products.png" target="_blank" rel=" noreferrer noopener"><img decoding="async" src="https://www.altova.com/blog/wp-content/uploads/products.png" alt="Images for the product catalog, stored separately from the database." class="wp-image-27189" width="600" srcset="https://www.altova.com/blog/wp-content/uploads/products.png 808w, https://www.altova.com/blog/wp-content/uploads/products-300x121.png 300w, https://www.altova.com/blog/wp-content/uploads/products-768x311.png 768w, https://www.altova.com/blog/wp-content/uploads/products-705x285.png 705w" sizes="(max-width: 808px) 100vw, 808px" /></a></figure>
  2464.  
  2465.  
  2466.  
  2467. <p>We also used DatabaseSpy to validate a simple SQL query to retrieve just the id, which is the table primary key, and the corresponding image filename.</p>
  2468.  
  2469.  
  2470.  
  2471. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/mapping-query-result.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" width="232" height="366" src="https://www.altova.com/blog/wp-content/uploads/mapping-query-result.png" alt="SQL query result for the AI-based Database Image Classification  data mapping" class="wp-image-27191" srcset="https://www.altova.com/blog/wp-content/uploads/mapping-query-result.png 232w, https://www.altova.com/blog/wp-content/uploads/mapping-query-result-190x300.png 190w" sizes="(max-width: 232px) 100vw, 232px" /></a></figure>
  2472.  
  2473.  
  2474.  
  2475. <p>The SQL query is the first input for the MapForce AI-based data mapping with three main components, the query result, the Azure Image Analysis API request, and a SQL script to insert the API responses back into the database.</p>
  2476.  
  2477.  
  2478.  
  2479. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/mapping1.png" target="_blank" rel=" noreferrer noopener"><img decoding="async" src="https://www.altova.com/blog/wp-content/uploads/mapping1-1030x317.png" alt="Overview of the complete AI-based Database Image Classification data mapping" class="wp-image-27193" width="600" srcset="https://www.altova.com/blog/wp-content/uploads/mapping1-1030x317.png 1030w, https://www.altova.com/blog/wp-content/uploads/mapping1-300x92.png 300w, https://www.altova.com/blog/wp-content/uploads/mapping1-768x236.png 768w, https://www.altova.com/blog/wp-content/uploads/mapping1-705x217.png 705w, https://www.altova.com/blog/wp-content/uploads/mapping1.png 1370w" sizes="(max-width: 1030px) 100vw, 1030px" /></a></figure>
  2480.  
  2481.  
  2482.  
  2483. <p>Let’s look at the request to the artificial intelligence API in more detail:</p>
  2484.  
  2485.  
  2486.  
  2487. <h3 class="wp-block-heading" id="h-sql-query-result-as-a-data-mapping-input-source">SQL Query Result as a Data Mapping Input Source</h3>
  2488.  
  2489.  
  2490.  
  2491. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/mapping-left-side-1.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" width="472" height="251" src="https://www.altova.com/blog/wp-content/uploads/mapping-left-side-1.png" alt="Input portion of the AI-based Database Image Classification data mapping" class="wp-image-27204" srcset="https://www.altova.com/blog/wp-content/uploads/mapping-left-side-1.png 472w, https://www.altova.com/blog/wp-content/uploads/mapping-left-side-1-300x160.png 300w" sizes="(max-width: 472px) 100vw, 472px" /></a></figure>
  2492.  
  2493.  
  2494.  
  2495. <p>The Select query generates a table of data, essentially a list of key numbers and corresponding image file names, but the API only accepts requests for one image at a time. By mapping the id from the query to the envelope at the top of the API component, we generate a new API call for each id returned, iterating through each image in the list. The other connection line from the id exiting the image at the top right will be used later to build a SQL update script.</p>
  2496.  
  2497.  
  2498.  
  2499. <p>The designer of the database table chose to reference the product images by file names rather than include binary images as BLOB objects in the database. The artificial intelligence image analysis API can either accept raw image data or a URL to a publicly accessible image, so we can simply provide the image URL to the API in our request. The concat function in the center above adds the path to build each complete URL.</p>
  2500.  
  2501.  
  2502.  
  2503. <p><strong>Executing the AI Web Service Request</strong></p>
  2504.  
  2505.  
  2506.  
  2507. <p>The center portion of the AI-based data mapping shows the Web service function that calls the artificial intelligence image analysis API and further processing of the results returned:</p>
  2508.  
  2509.  
  2510.  
  2511. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/mapping-center.png" target="_blank" rel=" noreferrer noopener"><img decoding="async" src="https://www.altova.com/blog/wp-content/uploads/mapping-center.png" alt="Web service function and post processing for the AI-based Database Image Classification data mapping" class="wp-image-27197" width="600" srcset="https://www.altova.com/blog/wp-content/uploads/mapping-center.png 834w, https://www.altova.com/blog/wp-content/uploads/mapping-center-300x129.png 300w, https://www.altova.com/blog/wp-content/uploads/mapping-center-768x332.png 768w, https://www.altova.com/blog/wp-content/uploads/mapping-center-705x304.png 705w" sizes="(max-width: 834px) 100vw, 834px" /></a></figure>
  2512.  
  2513.  
  2514.  
  2515. <p>Note the envelope icon labeled Body on both the Request and Response sides of the web service function. The API requires a JSON object as the Request body and specifies the Response will be a JSON document. The blue and red buttons next to the Body icons open a dialog to provide the structure definitions for the Request and Response.</p>
  2516.  
  2517.  
  2518.  
  2519. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/request-structure-dialog.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" width="602" height="328" src="https://www.altova.com/blog/wp-content/uploads/request-structure-dialog.png" alt="Defining the structure of the AI-based Database Image Classification Web service function" class="wp-image-27199" srcset="https://www.altova.com/blog/wp-content/uploads/request-structure-dialog.png 602w, https://www.altova.com/blog/wp-content/uploads/request-structure-dialog-300x163.png 300w" sizes="(max-width: 602px) 100vw, 602px" /></a></figure>
  2520.  
  2521.  
  2522.  
  2523. <p>The response from the artificial intelligence API needs further processing. Tags are returned as lists of JSON objects and each tag is accompanied by a number that represents accuracy confidence as a percentage. &nbsp;Shown below is one example. This is the AI response in original JSON format for the umbrella image:</p>
  2524.  
  2525.  
  2526.  
  2527. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/response-1.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" width="480" height="376" src="https://www.altova.com/blog/wp-content/uploads/response-1.png" alt="Example of a raw response from the AI-based Database Image Classification Web service" class="wp-image-27200" srcset="https://www.altova.com/blog/wp-content/uploads/response-1.png 480w, https://www.altova.com/blog/wp-content/uploads/response-1-300x235.png 300w" sizes="(max-width: 480px) 100vw, 480px" /></a></figure>
  2528.  
  2529.  
  2530.  
  2531. <p>The greater function filters the response to accept tags with an 88 percent or greater confidence level. Next, the string join function combines the tags into a comma-separated string. Note the “rain” tag above shows 42% confidence.</p>
  2532.  
  2533.  
  2534.  
  2535. <p>And here is the string we want to apply to the umbrella product in the database after extracting only the tags we want:</p>
  2536.  
  2537.  
  2538.  
  2539. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/response-2.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" width="240" height="30" src="https://www.altova.com/blog/wp-content/uploads/response-2.png" alt="String of tags for database update processed from the response above" class="wp-image-27202"/></a></figure>
  2540.  
  2541.  
  2542.  
  2543. <h3 class="wp-block-heading">Generating a SQL Update from the AI Responses</h3>
  2544.  
  2545.  
  2546.  
  2547. <p>The right-side portion of the AI-based data mapping receives each processed result, correlates the result with the correct database id index, and maps the string of tags into the ai-tags field of the cat-products database table.</p>
  2548.  
  2549.  
  2550.  
  2551. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/mapping-right-side.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" width="353" height="240" src="https://www.altova.com/blog/wp-content/uploads/mapping-right-side.png" alt="Creating a SQL update statement to complete the AI-based Database Image Classification data mapping" class="wp-image-27207" srcset="https://www.altova.com/blog/wp-content/uploads/mapping-right-side.png 353w, https://www.altova.com/blog/wp-content/uploads/mapping-right-side-300x204.png 300w" sizes="(max-width: 353px) 100vw, 353px" /></a></figure>
  2552.  
  2553.  
  2554.  
  2555. <h3 class="wp-block-heading">Examining Results of the AI-Based Data Mapping</h3>
  2556.  
  2557.  
  2558.  
  2559. <p>The Output preview button below the MapForce main mapping pane lets us see an example result: it executes the entire data mapping starting with the original Select query, performs the API requests, processes the artificial intelligence results, and finally creates SQL update statements, generating a complete SQL update script:</p>
  2560.  
  2561.  
  2562.  
  2563. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/update-script.png" target="_blank" rel=" noreferrer noopener"><img decoding="async" src="https://www.altova.com/blog/wp-content/uploads/update-script.png" alt="Database update script generated by the AI-based Database Image Classification data mapping" class="wp-image-27209" width="600" srcset="https://www.altova.com/blog/wp-content/uploads/update-script.png 784w, https://www.altova.com/blog/wp-content/uploads/update-script-300x229.png 300w, https://www.altova.com/blog/wp-content/uploads/update-script-768x586.png 768w, https://www.altova.com/blog/wp-content/uploads/update-script-705x538.png 705w" sizes="(max-width: 784px) 100vw, 784px" /></a></figure>
  2564.  
  2565.  
  2566.  
  2567. <p>We can use the Run SQL Script selection from the MapForce main menu to execute the script and apply the database updates interactively, or we can now deploy this mapping to a <a href="https://www.altova.com/mapforce-server">MapForce Server</a> instance on our network, where it can be executed in an automated manner as part of a workflow of ingesting new products into the catalog. Using <a href="https://www.altova.com/flowforceserver">FlowForce Server</a> we could define some triggers that automatically process the incoming data, validate it, then perform the AI-based image tagging, and lastly feed it into the production database.</p>
  2568.  
  2569.  
  2570.  
  2571. <p>Our requests to the Microsoft Azure Cognitive Services Computer Vision API used the Microsoft default pretrained vision model for this example. A custom vision model would be able to refine the tag results for specialized applications, but that goes beyond the scope of this blog post.</p>
  2572.  
  2573.  
  2574.  
  2575. <p><a href="https://www.altova.com/mapforce">Click here for more information</a>&nbsp;on any-to-any&nbsp; data mapping and conversion functionality available in &nbsp;MapForce, or&nbsp;<a href="https://www.altova.com/download-trial.html">click here to download</a>&nbsp;a free fully-functional 30-day trial including Help files, tutorials, and many data mapping <a>examples</a>.</p>
  2576.  
  2577.  
  2578.  
  2579. <hr class="wp-block-separator has-alpha-channel-opacity"/>
  2580.  
  2581.  
  2582.  
  2583. <p><a id="_msocom_1"></a></p>
  2584.  
  2585.  
  2586.  
  2587. <p>&nbsp;<a id="_msocom_10"></a></p>
  2588.  
  2589.  
  2590.  
  2591. <p></p>
  2592. <p>The post <a href="https://www.altova.com/blog/ai-based-data-mapping/">AI-based Database Image Classification with Altova MapForce</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  2593. ]]></content:encoded>
  2594. </item>
  2595. <item>
  2596. <title>AI-based support request sentiment analysis using MapForce and GPT-4</title>
  2597. <link>https://www.altova.com/blog/ai-based-sentiment-analysis/</link>
  2598. <dc:creator><![CDATA[Alexander Falk]]></dc:creator>
  2599. <pubDate>Mon, 17 Jul 2023 18:37:28 +0000</pubDate>
  2600. <category><![CDATA[Data Integration]]></category>
  2601. <category><![CDATA[Database]]></category>
  2602. <category><![CDATA[ETL]]></category>
  2603. <category><![CDATA[AI]]></category>
  2604. <category><![CDATA[AI data integration]]></category>
  2605. <category><![CDATA[data mapping]]></category>
  2606. <category><![CDATA[MapForce]]></category>
  2607. <category><![CDATA[XMLSpy]]></category>
  2608. <guid isPermaLink="false">https://www.altova.com/blog/?p=27223</guid>
  2609.  
  2610. <description><![CDATA[<p>Automated sentiment analysis of text, such as user reviews, has historically been a challenge. Because of the myriad intricacies of natural language, systems faced difficulties in analyzing context and nuances. This required an inordinate amount of manual work to overcome. One of the many useful capabilities of modern AI systems that are based on large [&#8230;]</p>
  2611. <p>The post <a href="https://www.altova.com/blog/ai-based-sentiment-analysis/">AI-based support request sentiment analysis using MapForce and GPT-4</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  2612. ]]></description>
  2613. <content:encoded><![CDATA[
  2614. <p>Automated sentiment analysis of text, such as user reviews, has historically been a challenge. Because of the myriad intricacies of natural language, systems faced difficulties in analyzing context and nuances. This required an inordinate amount of manual work to overcome.</p>
  2615.  
  2616.  
  2617.  
  2618. <p>One of the many useful capabilities of modern AI systems that are based on large language models (LLMs) such as OpenAI’s GPT-4 is that they are <em>very</em> good at sentiment analysis of natural text inputs. We can use that capability to build a very efficient database solution in MapForce that, for example, goes through all the new incoming records in a support database and automatically determines whether a particular support request or other customer feedback is <em>positive</em>, <em>negative</em>, constitutes a <em>bug report</em>, or should be considered as a <em>feature request</em>.</p>
  2619.  
  2620.  
  2621.  
  2622. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="289" src="https://www.altova.com/blog/wp-content/uploads/hero-sentiment-analysis.png" alt="Decorative lead photo depicting machine learning for sentiment analysis " class="wp-image-27225" srcset="https://www.altova.com/blog/wp-content/uploads//hero-sentiment-analysis.png 700w, https://www.altova.com/blog/wp-content/uploads//hero-sentiment-analysis-300x124.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  2623.  
  2624.  
  2625.  
  2626. <span id="more-27223"></span>
  2627.  
  2628.  
  2629.  
  2630. <h2 class="wp-block-heading" id="h-initial-tests-with-gpt-4-in-the-openai-playground">Initial tests with GPT-4 in the OpenAI Playground</h2>
  2631.  
  2632.  
  2633.  
  2634. <p>If you want to follow along with this blog post, or ultimately want to implement this approach in your own database system, you will need to set up an account with OpenAI and obtain an API key that you can use in your implementation. This will also give you access to the “Playground” on the OpenAI portal, where you can run some initial tests and also get example JSON input that you’ll need to construct the right JSON requests in MapForce.</p>
  2635.  
  2636.  
  2637.  
  2638. <p>As always, one of the most important steps when working with a LLM AI system is the development of a proper prompt. You want to be as precise as possible, so that you get the desired outcome. For our purposes, we’re going to work with the prompt:</p>
  2639.  
  2640.  
  2641.  
  2642. <p><code>“Classify the sentiment in the following statement using these possible results: Negative, Positive, Feature Request, Bug Report.”</code></p>
  2643.  
  2644.  
  2645.  
  2646. <p>And this will be followed by the customer feedback that we want to analyze. To test this in the OpenAI Playground, we select Mode=Chat, Model=gpt-4, Temperature=1, Maximum length=512, Top P=1, and we’ll leave both Frequency and Presence penalties at 0. Then we can enter the prompt, enter our first customer feedback comment, and hit the Submit button:</p>
  2647.  
  2648.  
  2649.  
  2650. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/01-openaiplayground.png"><img loading="lazy" decoding="async" width="800" height="587" src="https://www.altova.com/blog/wp-content/uploads/01-openaiplayground.png" alt="Testing text sentiment analysis in OpenAI Playground" class="wp-image-27226" srcset="https://www.altova.com/blog/wp-content/uploads//01-openaiplayground.png 800w, https://www.altova.com/blog/wp-content/uploads//01-openaiplayground-300x220.png 300w, https://www.altova.com/blog/wp-content/uploads//01-openaiplayground-768x564.png 768w, https://www.altova.com/blog/wp-content/uploads//01-openaiplayground-705x517.png 705w" sizes="(max-width: 800px) 100vw, 800px" /></a></figure>
  2651.  
  2652.  
  2653.  
  2654. <p>The GPT-4 AI immediately returns “<em>Positive</em>”, which is the correct answer. We can run a few more examples here to validate that our prompt works well in all other cases, too, and that we are getting the expected sentiment results.</p>
  2655.  
  2656.  
  2657.  
  2658. <p>Then it is time to look at the JSON request by clicking on the View Code button and switching the language popup from Python (the default) to JSON, then copying the code and pasting it into XMLSpy, so we can review better it in <a href="https://www.altova.com/xmlspy-xml-editor/json-editor-download#Grid_View">JSON grid view</a>:</p>
  2659.  
  2660.  
  2661.  
  2662. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="639" height="289" src="https://www.altova.com/blog/wp-content/uploads/02-json-request.png" alt="JSON request for interacting with GPT-4  AI API" class="wp-image-27227" srcset="https://www.altova.com/blog/wp-content/uploads//02-json-request.png 639w, https://www.altova.com/blog/wp-content/uploads//02-json-request-300x136.png 300w" sizes="(max-width: 639px) 100vw, 639px" /></figure>
  2663.  
  2664.  
  2665.  
  2666. <p>The JSON structure seems pretty straight-forward. This also allows us to immediately auto-generate a JSON Schema from this code, which we will use later to set up the web service request in XMLSpy and MapForce:</p>
  2667.  
  2668.  
  2669.  
  2670. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="665" height="690" src="https://www.altova.com/blog/wp-content/uploads/03-json-request-schema.png" alt="JSON request Schema autogenerated by XMLSpy " class="wp-image-27229" srcset="https://www.altova.com/blog/wp-content/uploads//03-json-request-schema.png 665w, https://www.altova.com/blog/wp-content/uploads//03-json-request-schema-289x300.png 289w, https://www.altova.com/blog/wp-content/uploads//03-json-request-schema-36x36.png 36w" sizes="(max-width: 665px) 100vw, 665px" /></figure>
  2671.  
  2672.  
  2673.  
  2674. <h2 class="wp-block-heading" id="h-openai-api-test-from-xmlspy">OpenAI API Test from XMLSpy</h2>
  2675.  
  2676.  
  2677.  
  2678. <p>As a next step, we want to make sure we understand the OpenAI chat API correctly and take a look at the resulting JSON output. We’re going to do a manual test run using the handy <a href="https://www.altova.com/xmlspy-xml-editor/advanced#http-window">HTTP test window</a> in XMLSpy, which you can find right below your main working window as a separate tab next to the Messages window.</p>
  2679.  
  2680.  
  2681.  
  2682. <p>In the HTTP tab, switch the HTTP Request Method to POST, enter the URL for the OpenAI Chat API endpoint, which is <a href="https://api.openai.com/v1/chat/completions">https://api.openai.com/v1/chat/completions</a>, and set the Content Type to application/json. Then paste the example JSON request that we got from the Playground above into the Body section:</p>
  2683.  
  2684.  
  2685.  
  2686. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="697" height="436" src="https://www.altova.com/blog/wp-content/uploads/04-http-request.png" alt="Using the XMLSpy HTTP Window to test posting a JSON request to the OpenAI API" class="wp-image-27230" srcset="https://www.altova.com/blog/wp-content/uploads//04-http-request.png 697w, https://www.altova.com/blog/wp-content/uploads//04-http-request-300x188.png 300w" sizes="(max-width: 697px) 100vw, 697px" /></figure>
  2687.  
  2688.  
  2689.  
  2690. <p>Now we need to provide our secret API key in the Headers in order to authenticate our request, so click on the Headers tab and add one row with the header “Authorization” and a value that starts with “Bearer“, followed by a space, followed by the secret API key. If you have multiple accounts with OpenAI and need to ensure correct billing, you can also optionally add a second row with the header “OpenAI-Organization” and the value set to your assigned organization value from OpenAI:</p>
  2691.  
  2692.  
  2693.  
  2694. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="697" height="163" src="https://www.altova.com/blog/wp-content/uploads/05-http-headers.png" alt="Header configuration in XMLSpy HTTP window " class="wp-image-27231" srcset="https://www.altova.com/blog/wp-content/uploads//05-http-headers.png 697w, https://www.altova.com/blog/wp-content/uploads//05-http-headers-300x70.png 300w" sizes="(max-width: 697px) 100vw, 697px" /></figure>
  2695.  
  2696.  
  2697.  
  2698. <p>Obviously, we’ve had to obfuscate the exact values of our secret key and organization id in the above screenshot.</p>
  2699.  
  2700.  
  2701.  
  2702. <p>Now we’re ready to hit the Send button to send the above HTTP request to the OpenAI API endpoint to see what kind of response we’ll get back:</p>
  2703.  
  2704.  
  2705.  
  2706. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="668" height="384" src="https://www.altova.com/blog/wp-content/uploads/HTTPresponseXMLSpy.png" alt="Response received from OpenAI API test " class="wp-image-27232" srcset="https://www.altova.com/blog/wp-content/uploads//HTTPresponseXMLSpy.png 668w, https://www.altova.com/blog/wp-content/uploads//HTTPresponseXMLSpy-300x172.png 300w" sizes="(max-width: 668px) 100vw, 668px" /></figure>
  2707.  
  2708.  
  2709.  
  2710. <p>The first good news is we got a 200 OK result back within 780ms and some content of the type application/json, which is our response payload in JSON format, and it contains a message with the answer that the AI “assistant” has provided in the form of the content “Positive”. So we’ve been able to replicate our prior test in the OpenAI Playground nicely from within XMLSpy by sending an actual HTTP request to the API and getting the correct response.</p>
  2711.  
  2712.  
  2713.  
  2714. <p>To continue, we’ll save this response into a file using the Save to File button in the HTTP tester window. Then we can open that file and use XMLSpy to automatically create a JSON Schema from the example JSON response message. This time, the schema describes the structure of the expected JSON output from the web service that we will then want to process in MapForce.</p>
  2715.  
  2716.  
  2717.  
  2718. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/JSONresponseSchema.png"><img loading="lazy" decoding="async" width="826" height="845" src="https://www.altova.com/blog/wp-content/uploads/JSONresponseSchema.png" alt="JSON response Schema generated by XMLSpy " class="wp-image-27233" srcset="https://www.altova.com/blog/wp-content/uploads//JSONresponseSchema.png 826w, https://www.altova.com/blog/wp-content/uploads//JSONresponseSchema-293x300.png 293w, https://www.altova.com/blog/wp-content/uploads//JSONresponseSchema-768x786.png 768w, https://www.altova.com/blog/wp-content/uploads//JSONresponseSchema-36x36.png 36w, https://www.altova.com/blog/wp-content/uploads//JSONresponseSchema-689x705.png 689w" sizes="(max-width: 826px) 100vw, 826px" /></a></figure>
  2719.  
  2720.  
  2721.  
  2722. <h2 class="wp-block-heading" id="h-example-support-database">Example support database</h2>
  2723.  
  2724.  
  2725.  
  2726. <p>Most tech support management systems are based on a SQL or other database back-end, so this approach can be easily applied to all of them, but for this blog post example we’ll just use a simplified form of a customer feedback database in SQLite:</p>
  2727.  
  2728.  
  2729.  
  2730. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="268" height="233" src="https://www.altova.com/blog/wp-content/uploads/CustomerFeedback-Database-Schema.png" alt="Sample customer feedback database in SQLite " class="wp-image-27234"/></figure>
  2731.  
  2732.  
  2733.  
  2734. <p>And we have some example data in it that will allow us to run our integration tests in MapForce and determine the sentiment of all these pieces of customer feedback:</p>
  2735.  
  2736.  
  2737.  
  2738. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/FeedbackDatabaseData.png"><img loading="lazy" decoding="async" width="1030" height="345" src="https://www.altova.com/blog/wp-content/uploads/FeedbackDatabaseData-1030x345.png" alt="" class="wp-image-27235" srcset="https://www.altova.com/blog/wp-content/uploads//FeedbackDatabaseData-1030x345.png 1030w, https://www.altova.com/blog/wp-content/uploads//FeedbackDatabaseData-300x100.png 300w, https://www.altova.com/blog/wp-content/uploads//FeedbackDatabaseData-768x257.png 768w, https://www.altova.com/blog/wp-content/uploads//FeedbackDatabaseData-705x236.png 705w, https://www.altova.com/blog/wp-content/uploads//FeedbackDatabaseData.png 1066w" sizes="(max-width: 1030px) 100vw, 1030px" /></a><figcaption class="wp-element-caption"><em>Click image to enlarge</em></figcaption></figure>
  2739.  
  2740.  
  2741.  
  2742. <h2 class="wp-block-heading" id="h-creating-the-database-mapping-in-mapforce">Creating the database mapping in MapForce</h2>
  2743.  
  2744.  
  2745.  
  2746. <p>Now we have all the ingredients ready to create our MapForce transformation or ETL project that will read all the records from the database, call the OpenAI API to get the sentiment analysis, and write the results back into the database.</p>
  2747.  
  2748.  
  2749.  
  2750. <p>The first step to design our ETL mapping is to insert our CustomerFeedback database object twice into the mapping – once as input (the <em>extract</em> part of ETL) and then also as the final output, and to connect the main table object as well as the id. MapForce will be so nice to connect all the other columns, too, but we don’t actually need those connections, so you can get rid of them again until you have this design:</p>
  2751.  
  2752.  
  2753.  
  2754. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="822" height="247" src="https://www.altova.com/blog/wp-content/uploads/database-etl-setup-1.png" alt="Setting up the database ETL project " class="wp-image-27237" srcset="https://www.altova.com/blog/wp-content/uploads//database-etl-setup-1.png 822w, https://www.altova.com/blog/wp-content/uploads//database-etl-setup-1-300x90.png 300w, https://www.altova.com/blog/wp-content/uploads//database-etl-setup-1-768x231.png 768w, https://www.altova.com/blog/wp-content/uploads//database-etl-setup-1-705x212.png 705w" sizes="(max-width: 822px) 100vw, 822px" /></figure>
  2755.  
  2756.  
  2757.  
  2758. <p>We are leaving a lot of space between input and output, because that’s where we are going to insert our web service call shortly. But before we do that, let’s define exactly our database output database operations (the <em>load</em> part of ETL) by double-clicking the right database object:</p>
  2759.  
  2760.  
  2761.  
  2762. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="697" height="674" src="https://www.altova.com/blog/wp-content/uploads/DatabaseUpdateSettings.png" alt="Database update settings" class="wp-image-27238" srcset="https://www.altova.com/blog/wp-content/uploads//DatabaseUpdateSettings.png 697w, https://www.altova.com/blog/wp-content/uploads//DatabaseUpdateSettings-300x290.png 300w, https://www.altova.com/blog/wp-content/uploads//DatabaseUpdateSettings-36x36.png 36w" sizes="(max-width: 697px) 100vw, 697px" /></figure>
  2763.  
  2764.  
  2765.  
  2766. <p>Make sure that the first radio button is set to None, because we don’t want to do anything special before the first record, and then change the column header of the second column to “Update if…” and the combo box in the id row to “equal”. This tells MapForce to update the data in the database for any record where the id provided via the mapping is equal to an id that already exists in the database. That’s all we need to do here, so you can click OK again.</p>
  2767.  
  2768.  
  2769.  
  2770. <p>Now it’s time to insert the web service component to call the OpenAI API. Click on the Insert Web Service Function button on the toolbar. Then configure the necessary call settings for the API based on the work we’ve previously done when we were testing the API from XMLSpy.</p>
  2771.  
  2772.  
  2773.  
  2774. <p>Just like before, we will need to configure the HTTP request method to be POST and the headers to include our secret API key plus, optionally, our organization id. We will need to tell MapForce what the structure of the request and response payloads is going to be, utilizing the two JSON Schemas we created before:</p>
  2775.  
  2776.  
  2777.  
  2778. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="848" height="628" src="https://www.altova.com/blog/wp-content/uploads/WebServiceCallSettings.png" alt="Web service call settings for OpenAI API " class="wp-image-27239" srcset="https://www.altova.com/blog/wp-content/uploads//WebServiceCallSettings.png 848w, https://www.altova.com/blog/wp-content/uploads//WebServiceCallSettings-300x222.png 300w, https://www.altova.com/blog/wp-content/uploads//WebServiceCallSettings-768x569.png 768w, https://www.altova.com/blog/wp-content/uploads//WebServiceCallSettings-705x522.png 705w" sizes="(max-width: 848px) 100vw, 848px" /></figure>
  2779.  
  2780.  
  2781.  
  2782. <p>Once that has been defined, the web service object will appear in the MapForce design pane, and we can start connecting the lines accordingly to wire up the functionality. First, we will want to call the web service once for each record in the CustomerFeedback table, so we connect that to the Request input:</p>
  2783.  
  2784.  
  2785.  
  2786. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/InsertWebServiceIntoMapping.png"><img loading="lazy" decoding="async" width="1030" height="415" src="https://www.altova.com/blog/wp-content/uploads/InsertWebServiceIntoMapping-1030x415.png" alt="Inserting the Web service call in the ETL project " class="wp-image-27240" srcset="https://www.altova.com/blog/wp-content/uploads//InsertWebServiceIntoMapping-1030x415.png 1030w, https://www.altova.com/blog/wp-content/uploads//InsertWebServiceIntoMapping-300x121.png 300w, https://www.altova.com/blog/wp-content/uploads//InsertWebServiceIntoMapping-768x309.png 768w, https://www.altova.com/blog/wp-content/uploads//InsertWebServiceIntoMapping-705x284.png 705w, https://www.altova.com/blog/wp-content/uploads//InsertWebServiceIntoMapping.png 1226w" sizes="(max-width: 1030px) 100vw, 1030px" /></a><figcaption class="wp-element-caption"><em>Click image to enlarge</em></figcaption></figure>
  2787.  
  2788.  
  2789.  
  2790. <p>And our output will be provided in the content attribute inside the message returned from the AI, so we connect that to the sentiment column in our output database object.</p>
  2791.  
  2792.  
  2793.  
  2794. <p>All that is now left to do is to connect all the other inputs for the web service request to the API, and we can use our example JSON file from above to know exactly what inputs are required. Many of those are going to be constants, such as “gpt-4” for the model and various values for the other parameters.</p>
  2795.  
  2796.  
  2797.  
  2798. <p>The most important input is the prompt plus the feedback from the database, so we are concatenating those before feeding them into the content input on the web service:</p>
  2799.  
  2800.  
  2801.  
  2802. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/FinalMapping.png"><img loading="lazy" decoding="async" width="1030" height="417" src="https://www.altova.com/blog/wp-content/uploads/FinalMapping-1030x417.png" alt="" class="wp-image-27241" style="width:800px;height:323px" srcset="https://www.altova.com/blog/wp-content/uploads//FinalMapping-1030x417.png 1030w, https://www.altova.com/blog/wp-content/uploads//FinalMapping-300x121.png 300w, https://www.altova.com/blog/wp-content/uploads//FinalMapping-768x311.png 768w, https://www.altova.com/blog/wp-content/uploads//FinalMapping-705x285.png 705w, https://www.altova.com/blog/wp-content/uploads//FinalMapping.png 1224w" sizes="(max-width: 1030px) 100vw, 1030px" /></a><figcaption class="wp-element-caption"><em>Click image to enlarge</em></figcaption></figure>
  2803.  
  2804.  
  2805.  
  2806. <p>Normally, this is where we would be done with designing our <a href="https://www.altova.com/mapforce/etl-tool">ETL mapping</a> and could now execute our transformation. However, because GPT-4 is the most advanced model and a lot of people are using it, OpenAI has implemented rate-limits for the number of web service requests you can send per minute, and we would easily exceed those if we ran this transformation right now.</p>
  2807.  
  2808.  
  2809.  
  2810. <p>Therefore, we need to add a little sleep(1) function between our calls to the OpenAI web service interface to separate our calls by about 1 second. We can easily do that via the new built-in sleep() function available in MapForce v2024:</p>
  2811.  
  2812.  
  2813.  
  2814. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/MF-Sentiment-Analysis-With-Sleep.png"><img loading="lazy" decoding="async" width="1030" height="360" src="https://www.altova.com/blog/wp-content/uploads/MF-Sentiment-Analysis-With-Sleep-1030x360.png" alt="" class="wp-image-27351" srcset="https://www.altova.com/blog/wp-content/uploads//MF-Sentiment-Analysis-With-Sleep-1030x360.png 1030w, https://www.altova.com/blog/wp-content/uploads//MF-Sentiment-Analysis-With-Sleep-300x105.png 300w, https://www.altova.com/blog/wp-content/uploads//MF-Sentiment-Analysis-With-Sleep-768x268.png 768w, https://www.altova.com/blog/wp-content/uploads//MF-Sentiment-Analysis-With-Sleep-1536x536.png 1536w, https://www.altova.com/blog/wp-content/uploads//MF-Sentiment-Analysis-With-Sleep-2048x715.png 2048w, https://www.altova.com/blog/wp-content/uploads//MF-Sentiment-Analysis-With-Sleep-1500x524.png 1500w, https://www.altova.com/blog/wp-content/uploads//MF-Sentiment-Analysis-With-Sleep-705x246.png 705w, https://www.altova.com/blog/wp-content/uploads//MF-Sentiment-Analysis-With-Sleep-1210x423.png 1210w" sizes="(max-width: 1030px) 100vw, 1030px" /></a><figcaption class="wp-element-caption"><em>Click image to enlarge</em></figcaption></figure>
  2815.  
  2816.  
  2817.  
  2818. <p>The Output preview tab in MapForce is where you can now see the result of this transformation. Once you click the tab, MapForce will execute the ETL mapping project and produce the necessary SQL statements that would update your database accordingly with the results from the sentiment analysis performed by the AI:</p>
  2819.  
  2820.  
  2821.  
  2822. <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1030" height="705" src="https://www.altova.com/blog/wp-content/uploads/SQLoutput-1030x705.png" alt="Auto generated SQL statements for ETL " class="wp-image-27245" srcset="https://www.altova.com/blog/wp-content/uploads//SQLoutput-1030x705.png 1030w, https://www.altova.com/blog/wp-content/uploads//SQLoutput-300x205.png 300w, https://www.altova.com/blog/wp-content/uploads//SQLoutput-768x526.png 768w, https://www.altova.com/blog/wp-content/uploads//SQLoutput-705x483.png 705w, https://www.altova.com/blog/wp-content/uploads//SQLoutput.png 1158w" sizes="(max-width: 1030px) 100vw, 1030px" /></figure>
  2823.  
  2824.  
  2825.  
  2826. <p>And you can now execute this SQL code directly from MapForce to actually update the data in your database. </p>
  2827.  
  2828.  
  2829.  
  2830. <p>Of course, in a real-world implementation, you would want to automate this process further so that new incoming support requests are automatically analyzed. You can do that easily by deploying this ETL mapping project to a <a href="https://www.altova.com/mapforce-server">MapForce Server</a> instance in either your in-house IT infrastructure or in your private or public cloud. Then you can automate the workflow requirements, i.e., when to run this analysis based on certain triggers or events, using <a href="https://www.altova.com/flowforceserver">FlowForce Server</a>.</p>
  2831.  
  2832.  
  2833.  
  2834. <p>By the way, all the screenshots from XMLSpy and MapForce in this blog post were taken while using the new Dark Theme, because that’s my personal preference, but you can, of course, use our products in the new Light Theme as well as in the Classic Theme, based on your personal taste.</p>
  2835.  
  2836.  
  2837.  
  2838. <div style="height:46px" aria-hidden="true" class="wp-block-spacer"></div>
  2839.  
  2840.  
  2841.  
  2842. <p>To try an AI-based data transformation in MapForce or to experiment with any AI web service APIs in XMLSpy, you can download a <strong>free 30-day trial</strong> of both products and several other useful developer tools by <a href="https://www.altova.com/download">downloading the latest Altova MissionKit</a> from our website. We recommend using the 64-bit version of the Enterprise Edition for all AI-related work.</p>
  2843.  
  2844.  
  2845.  
  2846. <hr class="wp-block-separator has-alpha-channel-opacity"/>
  2847.  
  2848.  
  2849.  
  2850. <p></p>
  2851.  
  2852.  
  2853.  
  2854. <p><a id="_msocom_2"></a></p>
  2855.  
  2856.  
  2857.  
  2858. <p></p>
  2859. <p>The post <a href="https://www.altova.com/blog/ai-based-sentiment-analysis/">AI-based support request sentiment analysis using MapForce and GPT-4</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  2860. ]]></content:encoded>
  2861. </item>
  2862. <item>
  2863. <title>How to Create a Chained Data Transformation</title>
  2864. <link>https://www.altova.com/blog/chained-data-transformation/</link>
  2865. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  2866. <pubDate>Wed, 05 Jul 2023 17:15:42 +0000</pubDate>
  2867. <category><![CDATA[Data Integration]]></category>
  2868. <category><![CDATA[Tools]]></category>
  2869. <category><![CDATA[data conversion]]></category>
  2870. <category><![CDATA[data mapping]]></category>
  2871. <category><![CDATA[data transformation]]></category>
  2872. <category><![CDATA[ETL]]></category>
  2873. <category><![CDATA[MapForce]]></category>
  2874. <guid isPermaLink="false">https://www.altova.com/blog/?p=27166</guid>
  2875.  
  2876. <description><![CDATA[<p>Data mapping plays a vital role in modern data-driven organizations, enabling efficient data management and integration. Altova MapForce is a powerful, graphical data mapping tool that supports endless data transformation scenarios, including one-to-one, one-to-many, many-to-one, and chained data conversion. While there are applications for each of these approaches, chained data mapping is especially helpful for [&#8230;]</p>
  2877. <p>The post <a href="https://www.altova.com/blog/chained-data-transformation/">How to Create a Chained Data Transformation</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  2878. ]]></description>
  2879. <content:encoded><![CDATA[
  2880. <p>Data mapping plays a vital role in modern data-driven organizations, enabling efficient data management and integration. Altova MapForce is a powerful, graphical data mapping tool that supports endless data transformation scenarios, including one-to-one, one-to-many, many-to-one, and chained data conversion.</p>
  2881.  
  2882.  
  2883.  
  2884. <p>While there are applications for each of these approaches, chained data mapping is especially helpful for complex data processing tasks where multiple stages of data manipulation are required. Here’s a look at the benefits of a chained data conversion approach – and a video of how MapForce makes the process easy and straightforward.</p>
  2885.  
  2886.  
  2887.  
  2888. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/shutterstock_72066103.jpg" alt="Decorative image: three business people working on laptops" class="wp-image-1769" srcset="https://www.altova.com/blog/wp-content/uploads/shutterstock_72066103.jpg 700w, https://www.altova.com/blog/wp-content/uploads/shutterstock_72066103-300x144.jpg 300w, https://www.altova.com/blog/wp-content/uploads/shutterstock_72066103-450x215.jpg 450w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  2889.  
  2890.  
  2891.  
  2892. <span id="more-27166"></span>
  2893.  
  2894.  
  2895.  
  2896. <h2 class="wp-block-heading" id="h-why-define-a-chained-data-mapping">Why Define a Chained Data Mapping?</h2>
  2897.  
  2898.  
  2899.  
  2900. <p>There are multiple advantages to the chained data transformation approach, especially when handing complicated data transformation projects. (For the tl;dr, check out this <strong>how-to video</strong> to see how easy it is <a href="https://www.youtube.com/watch?v=Pag3hYliTJU">to define chained data mapping projects</a> visually using Altova MapForce.)</p>
  2901.  
  2902.  
  2903.  
  2904. <p>Benefits of creating a step-by-step <a href="https://www.altova.com/mapforce">data conversion</a> process include:</p>
  2905.  
  2906.  
  2907.  
  2908. <ul>
  2909. <li><strong>Simplifying complex data processing: </strong>A chained data mapping approach makes it easier to handle complex data processing tasks by breaking the transformation down into smaller, manageable stages. Each link in the chain performs a specific operation on the data, making it easier to understand, test, and maintain.</li>
  2910.  
  2911.  
  2912.  
  2913. <li><strong>Easy troubleshooting:</strong> By design, each transformation in the chain is responsible for a specific aspect of data manipulation. This makes the mapping easier to understand and makes it easier to identify and isolate errors or issues that may occur during the processing.</li>
  2914.  
  2915.  
  2916.  
  2917. <li><strong>Flexibility and adaptability:</strong> Chained data conversion offers flexibility for handling different data scenarios. Developers can easily modify or extend the chain by adding, removing, or rearranging transformations to accommodate new requirements or variations in input data. This adaptability is important if data processing needs evolve over time.</li>
  2918.  
  2919.  
  2920.  
  2921. <li><strong>Easy understanding and maintenance:</strong> Sequential data transformation helps make a mapping project easier to understand and maintain. Each step in the chain represents a clear transformation operation, making it easier for team members to understand the overall data flow and logic. Additionally, if a bug or issue arises, developers can pinpoint the problematic step and debug it in isolation without affecting the rest of the chain.</li>
  2922. </ul>
  2923.  
  2924.  
  2925.  
  2926. <h2 class="wp-block-heading" id="h-chained-data-transformation-using-mapforce">Chained Data Transformation using MapForce</h2>
  2927.  
  2928.  
  2929.  
  2930. <p>MapForce offers a no-code, graphical approach to defining each step on the data conversion process. The visual representation provides a clear overview of the transformation at each step, making it easy to understand and modify.</p>
  2931.  
  2932.  
  2933.  
  2934. <p>MapForce ships with a rich library of data processing filters and functions for defining data transformation rules and building more complex, visually defined functions. Instant output facilitates testing and troubleshooting.</p>
  2935.  
  2936.  
  2937.  
  2938. <div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>
  2939.  
  2940.  
  2941.  
  2942. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/chained-data-mapping.png"><img loading="lazy" decoding="async" width="854" height="419" src="https://www.altova.com/blog/wp-content/uploads/chained-data-mapping.png" alt="A chained data mapping project in MapForce" class="wp-image-27168" srcset="https://www.altova.com/blog/wp-content/uploads/chained-data-mapping.png 854w, https://www.altova.com/blog/wp-content/uploads/chained-data-mapping-300x147.png 300w, https://www.altova.com/blog/wp-content/uploads/chained-data-mapping-768x377.png 768w, https://www.altova.com/blog/wp-content/uploads/chained-data-mapping-705x346.png 705w" sizes="(max-width: 854px) 100vw, 854px" /></a></figure>
  2943.  
  2944.  
  2945.  
  2946. <div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>
  2947.  
  2948.  
  2949.  
  2950. <p>In a chained data mapping, at least one component acts both as a source and a target. This intermediate component (labeled B above) creates output that is then used as input for further processing in the next step in the chain. Chained mappings in MapForce include the “pass-through” feature, which allows you to preview the output produced at each stage of the mapping for quick troubleshooting. For example, in the mapping above, you can preview (and save) the output resulting from transformation A to B, as well as the output resulting from B to C.</p>
  2951.  
  2952.  
  2953.  
  2954. <p>Though this example shows <a href="https://www.altova.com/mapforce/xml-mapping">XML-to-XML transformations</a>, MapForce is an any-to-any data mapping tool with support for converting between any combination XML, SQL and NoSQL databases, JSON, text, Excel, EDI, and more.</p>
  2955.  
  2956.  
  2957.  
  2958. <p>Watch this video to see how chained data transformation works in MapForce. The example shows a transformation from XML to JSON to CSV and covers the use of data filtering and sorting functions.</p>
  2959.  
  2960.  
  2961.  
  2962. <div style="height:49px" aria-hidden="true" class="wp-block-spacer"></div>
  2963.  
  2964.  
  2965.  
  2966. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  2967. <div class='avia-iframe-wrap'><iframe loading="lazy" title="Chained Data Transformation" width="1500" height="844" src="https://www.youtube.com/embed/Pag3hYliTJU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>
  2968. </div></figure>
  2969.  
  2970.  
  2971.  
  2972. <p><a href="https://www.youtube.com/embed/Pag3hYliTJU?feature=oembed"></a></p>
  2973.  
  2974.  
  2975.  
  2976. <p>You can explore chained data mapping yourself by <a href="https://www.altova.com/mapforce/download">downloading a free, 30-day trial of MapForce</a> and opening the Chained Mapping that is included in the MapForce examples project.</p>
  2977. <p>The post <a href="https://www.altova.com/blog/chained-data-transformation/">How to Create a Chained Data Transformation</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  2978. ]]></content:encoded>
  2979. </item>
  2980. <item>
  2981. <title>How to Convert Data in MapForce [Video]</title>
  2982. <link>https://www.altova.com/blog/how-to-convert-data-in-mapforce/</link>
  2983. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  2984. <pubDate>Tue, 06 Jun 2023 12:52:52 +0000</pubDate>
  2985. <category><![CDATA[Data Integration]]></category>
  2986. <category><![CDATA[Software]]></category>
  2987. <category><![CDATA[Tools]]></category>
  2988. <category><![CDATA[data conversion]]></category>
  2989. <category><![CDATA[data integration]]></category>
  2990. <category><![CDATA[data mapping]]></category>
  2991. <category><![CDATA[data transformation]]></category>
  2992. <category><![CDATA[demo videos]]></category>
  2993. <category><![CDATA[ETL]]></category>
  2994. <category><![CDATA[MapForce]]></category>
  2995. <category><![CDATA[videos]]></category>
  2996. <guid isPermaLink="false">https://www.altova.com/blog/?p=27137</guid>
  2997.  
  2998. <description><![CDATA[<p>Altova MapForce offers a powerful, yet easy-to-use, approach to converting and transforming data. Whether you need to write XML to a database, convert JSON to EDI, or map Excel to multiple different data formats, MapForce has you covered. From simple one-to-one conversions to complex ETL scenarios, the MapForce approach is to represent data structures as [&#8230;]</p>
  2999. <p>The post <a href="https://www.altova.com/blog/how-to-convert-data-in-mapforce/">How to Convert Data in MapForce [Video]</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  3000. ]]></description>
  3001. <content:encoded><![CDATA[
  3002. <p>Altova MapForce offers a powerful, yet easy-to-use, approach to converting and transforming data. Whether you need to write XML to a database, convert JSON to EDI, or map Excel to multiple different data formats, MapForce has you covered.</p>
  3003.  
  3004.  
  3005.  
  3006. <p>From simple one-to-one conversions to complex ETL scenarios, the MapForce approach is to represent data structures as graphical components. To associate fields, drag and drop connecting lines. A comprehensive library of data filters and functions is available for transforming data before writing it to the target.</p>
  3007.  
  3008.  
  3009.  
  3010. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/mapforce-data-formats.png" alt="Decorative image showing a person working on a laptop with data formats supported by Altova MapForce in the background" class="wp-image-27139" srcset="https://www.altova.com/blog/wp-content/uploads/mapforce-data-formats.png 700w, https://www.altova.com/blog/wp-content/uploads/mapforce-data-formats-300x144.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  3011.  
  3012.  
  3013.  
  3014. <p>We have recently revamped our series of <a href="https://www.altova.com/mapforce/demos">Introduction to MapForce videos</a>. Each short how-to gives a demo of a common MapForce scenario. &nbsp;</p>
  3015.  
  3016.  
  3017.  
  3018. <p>Start at the beginning to learn how MapForce works:</p>
  3019.  
  3020.  
  3021.  
  3022. <div style="height:36px" aria-hidden="true" class="wp-block-spacer"></div>
  3023.  
  3024.  
  3025.  
  3026. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  3027. <div class='avia-iframe-wrap'><iframe loading="lazy" title="Introduction to MapForce for Data Conversion, Transformation, and ETL" width="1500" height="844" src="https://www.youtube.com/embed/fyZzJZyFbH4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>
  3028. </div></figure>
  3029.  
  3030.  
  3031.  
  3032. <div style="height:45px" aria-hidden="true" class="wp-block-spacer"></div>
  3033.  
  3034.  
  3035.  
  3036. <p></p>
  3037.  
  3038.  
  3039.  
  3040. <p>And <a href="https://www.altova.com/mapforce/demos">follow along</a> to learn:</p>
  3041.  
  3042.  
  3043.  
  3044. <ul>
  3045. <li>An <a href="https://www.youtube.com/watch?v=fyZzJZyFbH4">overview of MapForce</a> features and functionality</li>
  3046.  
  3047.  
  3048.  
  3049. <li>How <a href="https://www.youtube.com/watch?v=DqyMDdedcWQ">data transformation</a> works</li>
  3050.  
  3051.  
  3052.  
  3053. <li><a href="https://www.youtube.com/watch?v=t9mcb5eEX6g">XML to XML</a> transformation</li>
  3054.  
  3055.  
  3056.  
  3057. <li><a href="https://www.youtube.com/watch?v=cBdfIjY-rbQ">Database to XML</a> mapping (including filters and querying the database)</li>
  3058.  
  3059.  
  3060.  
  3061. <li>Mapping <a href="https://www.youtube.com/watch?v=hHQmWdWVvgY">XML to databases</a> (including database table actions)</li>
  3062.  
  3063.  
  3064.  
  3065. <li><a href="https://www.youtube.com/watch?v=rSmIyYiSjTI">One-to-many data integration</a> (featuring Excel to JSON and XML and value-map functions)</li>
  3066.  
  3067.  
  3068.  
  3069. <li><a href="https://www.youtube.com/watch?v=Pag3hYliTJU">Chained data transformation</a> (including if-else conditions and data sorting functions)</li>
  3070. </ul>
  3071.  
  3072.  
  3073.  
  3074. <p>You can follow along with the examples in these how-to videos by <a href="https://www.altova.com/mapforce/download">downloading</a> a free, 30-day trial of MapForce. Check back for new <a href="https://www.altova.com/mapforce/demos">MapForce videos</a>, which are added often.</p>
  3075. <p>The post <a href="https://www.altova.com/blog/how-to-convert-data-in-mapforce/">How to Convert Data in MapForce [Video]</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  3076. ]]></content:encoded>
  3077. </item>
  3078. <item>
  3079. <title>New Tools for Large XML and JSON Documents</title>
  3080. <link>https://www.altova.com/blog/new-tools-for-large-xml-and-json-documents/</link>
  3081. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  3082. <pubDate>Wed, 24 May 2023 11:02:31 +0000</pubDate>
  3083. <category><![CDATA[Development]]></category>
  3084. <category><![CDATA[JSON]]></category>
  3085. <category><![CDATA[XML]]></category>
  3086. <category><![CDATA[Grid view]]></category>
  3087. <category><![CDATA[new features]]></category>
  3088. <category><![CDATA[XMLSpy]]></category>
  3089. <guid isPermaLink="false">https://www.altova.com/blog/?p=27122</guid>
  3090.  
  3091. <description><![CDATA[<p>Code editors with a graphical option in addition to the traditional text view are great for developers working with XML or JSON. Graphical editors like Grid View in XMLSpy provide a visual representation of the JSON or XML structure, making it easier to understand, navigate, and edit complex data hierarchies. XMLSpy introduced Grid View years [&#8230;]</p>
  3092. <p>The post <a href="https://www.altova.com/blog/new-tools-for-large-xml-and-json-documents/">New Tools for Large XML and JSON Documents</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  3093. ]]></description>
  3094. <content:encoded><![CDATA[
  3095. <p>Code editors with a graphical option in addition to the traditional text view are great for developers working with XML or JSON. Graphical editors like Grid View in XMLSpy provide a visual representation of the JSON or XML structure, making it easier to understand, navigate, and edit complex data hierarchies.</p>
  3096.  
  3097.  
  3098.  
  3099. <p>XMLSpy introduced Grid View years ago and has been improving on it ever since. The most recent update includes the ability to split the editing pane horizontally or vertically, which is especially handy when working with large documents.</p>
  3100.  
  3101.  
  3102.  
  3103. <p>Let’s see how it works.</p>
  3104.  
  3105.  
  3106.  
  3107. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/Blog_split_view.jpg" alt="Decorative image of a computer monitor in a dark-lit office setting" class="wp-image-27133" srcset="https://www.altova.com/blog/wp-content/uploads/Blog_split_view.jpg 700w, https://www.altova.com/blog/wp-content/uploads/Blog_split_view-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  3108.  
  3109.  
  3110.  
  3111. <span id="more-27122"></span>
  3112.  
  3113.  
  3114.  
  3115. <h2 class="wp-block-heading" id="h-working-with-large-json-or-xml-files">Working with Large JSON or XML Files</h2>
  3116.  
  3117.  
  3118.  
  3119. <p><a href="https://www.altova.com/xmlspy-xml-editor/xml-viewer#xml-viewer-grid">Grid View</a> doesn’t just lessen the learning curve for developers who may be new to XML or JSON technology; it can also increase productivity for seasoned software engineers who can use it to simply <a href="https://www.altova.com/xmlspy-xml-editor/json_viewer#Grid_View">drag and drop to edit</a> documents. Advanced features like database/table view, which automatically detects sequences of repeating elements and rearranges the presentation in a table; automatic image display; XPath filters and XQuery functions to manipulate data; and even built-in chart creation take that productivity to the next level. </p>
  3120.  
  3121.  
  3122.  
  3123. <p>Of course, the corresponding XML or JSON code is updated in the background and can be viewed and edited as needed in Text View.</p>
  3124.  
  3125.  
  3126.  
  3127. <p>These tools save a lot of time and effort, especially when working with complex data structures. However, working with large documents in a visual editor can require a lot of scrolling, and it’s easy to get lost in the navigation. That’s where split mode in Grid View comes in.</p>
  3128.  
  3129.  
  3130.  
  3131. <p>Available in XMLSpy versions 2023r2 and higher, split mode lets users drag to split the editing view either horizontally or vertically, depending on the data at hand. &nbsp;</p>
  3132.  
  3133.  
  3134.  
  3135. <div style="height:39px" aria-hidden="true" class="wp-block-spacer"></div>
  3136.  
  3137.  
  3138.  
  3139. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="638" height="587" src="https://www.altova.com/blog/wp-content/uploads/split-mode-grid-xml.png" alt="Split mode in Grid View for navigating large XML and JSON documents" class="wp-image-27123" srcset="https://www.altova.com/blog/wp-content/uploads/split-mode-grid-xml.png 638w, https://www.altova.com/blog/wp-content/uploads/split-mode-grid-xml-300x276.png 300w" sizes="(max-width: 638px) 100vw, 638px" /></figure>
  3140.  
  3141.  
  3142.  
  3143. <div style="height:22px" aria-hidden="true" class="wp-block-spacer"></div>
  3144.  
  3145.  
  3146.  
  3147. <p>In the screenshot below, we’ve dragged the vertical slider to split this large course catalog XML document into two panes, which can scroll independently as we work. Any changes made in one pane are reflected in the other and the document as a whole.</p>
  3148.  
  3149.  
  3150.  
  3151. <div style="height:27px" aria-hidden="true" class="wp-block-spacer"></div>
  3152.  
  3153.  
  3154.  
  3155. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/split-view-horizontally.png"><img loading="lazy" decoding="async" width="1030" height="545" src="https://www.altova.com/blog/wp-content/uploads/split-view-horizontally-1030x545.png" alt="" class="wp-image-27125" srcset="https://www.altova.com/blog/wp-content/uploads/split-view-horizontally-1030x545.png 1030w, https://www.altova.com/blog/wp-content/uploads/split-view-horizontally-300x159.png 300w, https://www.altova.com/blog/wp-content/uploads/split-view-horizontally-768x406.png 768w, https://www.altova.com/blog/wp-content/uploads/split-view-horizontally-710x375.png 710w, https://www.altova.com/blog/wp-content/uploads/split-view-horizontally-705x373.png 705w, https://www.altova.com/blog/wp-content/uploads/split-view-horizontally.png 1089w" sizes="(max-width: 1030px) 100vw, 1030px" /></a><figcaption class="wp-element-caption">Click image to enlarge </figcaption></figure>
  3156.  
  3157.  
  3158.  
  3159. <p><br />Watch this snippet of our latest What’s New video to see split mode in action.<br /></p>
  3160.  
  3161.  
  3162.  
  3163. <div style="height:36px" aria-hidden="true" class="wp-block-spacer"></div>
  3164.  
  3165.  
  3166.  
  3167. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  3168. <div class='avia-iframe-wrap'><iframe loading="lazy" title="New in Altova Software v2023 Release 2" width="1500" height="844" src="https://www.youtube.com/embed/gLjVAlNh_wU?start=34&#038;feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>
  3169. </div></figure>
  3170.  
  3171.  
  3172.  
  3173. <p></p>
  3174.  
  3175.  
  3176.  
  3177. <p></p>
  3178.  
  3179.  
  3180.  
  3181. <p>Split mode is just the latest in a long line of features Altova has added to Grid View to make it more useful for XML and JSON developers. Is there a feature you’re missing? Drop us a line in the comments section!</p>
  3182.  
  3183.  
  3184.  
  3185. <p>If you’re not already a customer, you can try Grid View and all the advanced features in <a href="https://www.altova.com/xmlspy-xml-editor/download">XMLSpy free for 30 days</a>.</p>
  3186. <p>The post <a href="https://www.altova.com/blog/new-tools-for-large-xml-and-json-documents/">New Tools for Large XML and JSON Documents</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  3187. ]]></content:encoded>
  3188. </item>
  3189. <item>
  3190. <title>Creating ESEF Filings Just Got Easier</title>
  3191. <link>https://www.altova.com/blog/creating-esef-filings-just-got-easier/</link>
  3192. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  3193. <pubDate>Mon, 15 May 2023 18:17:38 +0000</pubDate>
  3194. <category><![CDATA[Regulatory Solutions]]></category>
  3195. <category><![CDATA[Software]]></category>
  3196. <category><![CDATA[XBRL]]></category>
  3197. <category><![CDATA[ESEF]]></category>
  3198. <category><![CDATA[Excel add-ins]]></category>
  3199. <guid isPermaLink="false">https://www.altova.com/blog/?p=27111</guid>
  3200.  
  3201. <description><![CDATA[<p>To meet current mandates, ESEF (European Single Electronic Format) reports must be filed in XBRL. To accelerate the process, regulated companies can take advantage of intelligent software tools to fill the reports with data. One such tool from Altova allows organizations to create valid ESEF XBRL directly in Excel, where finance pros are already comfortable [&#8230;]</p>
  3202. <p>The post <a href="https://www.altova.com/blog/creating-esef-filings-just-got-easier/">Creating ESEF Filings Just Got Easier</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  3203. ]]></description>
  3204. <content:encoded><![CDATA[
  3205. <p>To meet current mandates, ESEF (European Single Electronic Format) reports must be filed in XBRL. To accelerate the process, regulated companies can take advantage of intelligent software tools to fill the reports with data. One such tool from Altova allows organizations to create valid ESEF XBRL directly in Excel, where finance pros are already comfortable working. This allows them to create reports for filing without having to learn the intricacies of XBRL syntax.</p>
  3206.  
  3207.  
  3208.  
  3209. <p>Unlike some other XBRL filing mandates, ESEF requires filing companies to create their own extension taxonomy, which defines the entity-specific data rules for their report. To help customers with this step of the filing process, the Altova ESEF XBRL add-in for Excel includes a visual extension taxonomy designer that makes it a complete start-to-finish ESEF reporting solution. </p>
  3210.  
  3211.  
  3212.  
  3213. <p>Let’s see how it works.</p>
  3214.  
  3215.  
  3216.  
  3217. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/image_210791029.jpg" alt="Person working on a laptop with coworkers at desks in the background " class="wp-image-26738" srcset="https://www.altova.com/blog/wp-content/uploads/image_210791029.jpg 700w, https://www.altova.com/blog/wp-content/uploads/image_210791029-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  3218.  
  3219.  
  3220.  
  3221. <span id="more-27111"></span>
  3222.  
  3223.  
  3224.  
  3225. <h2 class="wp-block-heading" id="h-creating-an-esef-report">Creating an ESEF Report</h2>
  3226.  
  3227.  
  3228.  
  3229. <p>ESEF filing rules require companies listed on EU regulated markets to publish their annual financial reports in Inline XBRL (iXBRL). Preparing financial statements in a standardized structured data format helps to improve the transparency and accessibility of financial information, making it easier for regulators, investors, and other stakeholders to analyze and compare financial data across companies.</p>
  3230.  
  3231.  
  3232.  
  3233. <p>The most efficient way to create an ESEF XBRL report is to use software that supports editing XBRL documents. The software typically allows the company to map their financial statements to the appropriate XBRL tags, which represent each element of the financial statements (e.g., revenue, net income, assets, liabilities, etc.). Then, the <a href="https://www.altova.com/blog/esef-tools/">ESEF software</a> generates a valid iXBRL filing. Unfortunately, many other ESEF tools are complicated with a steep learning curve.</p>
  3234.  
  3235.  
  3236.  
  3237. <p>Altova created its <a href="https://www.altova.com/esef-xbrl">ESEF XBRL add-in for Excel</a> to let financial pros build ESEF reports quickly directly in Excel, with intelligent entry helpers and menus to guide users as they enter data.</p>
  3238.  
  3239.  
  3240.  
  3241. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="695" height="551" src="https://www.altova.com/blog/wp-content/uploads/excel-to-esef.png" alt="Easy to use software for creating ESEF XBRL reports" class="wp-image-26982" srcset="https://www.altova.com/blog/wp-content/uploads/excel-to-esef.png 695w, https://www.altova.com/blog/wp-content/uploads/excel-to-esef-300x238.png 300w" sizes="(max-width: 695px) 100vw, 695px" /></figure>
  3242.  
  3243.  
  3244.  
  3245. <h2 class="wp-block-heading" id="h-create-the-esef-extension-taxonomy">Create the ESEF Extension Taxonomy</h2>
  3246.  
  3247.  
  3248.  
  3249. <p>The ESEF taxonomy, which defines the various business elements to be reported, is based on the International Financial Reporting Standards (IFRS) Taxonomy. Along with iXBRL filing requirements, the ESEF rules include the recommendation to submit an entity-specific&nbsp;extension taxonomy&nbsp;of the&nbsp;base ESEF taxonomy.&nbsp;ESEF reports are then based on these company-specific extensions to a base ESEF XBRL taxonomy.&nbsp;</p>
  3250.  
  3251.  
  3252.  
  3253. <p>An extension taxonomy lets preparers adequately disclose information that is specific to the reporting entity, i.e., the filing company. This in turn provides regulatory authorities and other consumers of the XBRL filings with more specific, complete data.</p>
  3254.  
  3255.  
  3256.  
  3257. <p>Of course, creating an extension taxonomy adds another layer of complexity to the ESEF reporting process. XBRL taxonomies use technical language that may not be familiar to people outside the financial reporting industry, making creation difficult, time consuming, and error prone. &nbsp;</p>
  3258.  
  3259.  
  3260.  
  3261. <p>To help customers at all stages of the ESEF filing journey, Altova has added a visual <a href="https://www.altova.com/esef-xbrl#taxonomy-designer">ESEF extension taxonomy designer</a> to its ESEF software. This tool takes the mystery out of XBRL extension taxonomy creation by letting users define their extensions using a drag-and-drop interface that largely shields them from the underlying XBRL syntax.</p>
  3262.  
  3263.  
  3264.  
  3265. <p>After clicking the Taxonomy Editor button in the ESEF tab of the Excel ribbon, you can either open an existing extension taxonomy or create a new one. When possible, the taxonomy editor provides pre-filled drop down menus to make completion easier.</p>
  3266.  
  3267.  
  3268.  
  3269. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/ESEF-extension-taxonomy-designer-1.png"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/ESEF-extension-taxonomy-designer-1-1030x793.png" alt="Easily design an ESEF extension taxonomy for entity-specific extensions" class="wp-image-27115" width="773" height="595" srcset="https://www.altova.com/blog/wp-content/uploads/ESEF-extension-taxonomy-designer-1-1030x793.png 1030w, https://www.altova.com/blog/wp-content/uploads/ESEF-extension-taxonomy-designer-1-300x231.png 300w, https://www.altova.com/blog/wp-content/uploads/ESEF-extension-taxonomy-designer-1-768x591.png 768w, https://www.altova.com/blog/wp-content/uploads/ESEF-extension-taxonomy-designer-1-705x543.png 705w, https://www.altova.com/blog/wp-content/uploads/ESEF-extension-taxonomy-designer-1.png 1099w" sizes="(max-width: 773px) 100vw, 773px" /></a><figcaption class="wp-element-caption">Click image to enlarge</figcaption></figure>
  3270.  
  3271.  
  3272.  
  3273. <h2 class="wp-block-heading" id="h-esef-extension-designer">ESEF Extension Designer </h2>
  3274.  
  3275.  
  3276.  
  3277. <p></p>
  3278.  
  3279.  
  3280.  
  3281. <p>The ESEF Taxonomy editor includes four panes:</p>
  3282.  
  3283.  
  3284.  
  3285. <p></p>
  3286.  
  3287.  
  3288.  
  3289. <p></p>
  3290.  
  3291.  
  3292.  
  3293. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/esef-taxonomy-editor.png"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/esef-taxonomy-editor.png" alt="Create an ESEF extension taxonomy in Excel, with being exposed to XBRL syntax" class="wp-image-27114" width="852" height="763" srcset="https://www.altova.com/blog/wp-content/uploads/esef-taxonomy-editor.png 852w, https://www.altova.com/blog/wp-content/uploads/esef-taxonomy-editor-300x269.png 300w, https://www.altova.com/blog/wp-content/uploads/esef-taxonomy-editor-768x688.png 768w, https://www.altova.com/blog/wp-content/uploads/esef-taxonomy-editor-705x631.png 705w" sizes="(max-width: 852px) 100vw, 852px" /></a><figcaption class="wp-element-caption">Click image to enlarge</figcaption></figure>
  3294.  
  3295.  
  3296.  
  3297. <p></p>
  3298.  
  3299.  
  3300.  
  3301. <p></p>
  3302.  
  3303.  
  3304.  
  3305. <p><strong><em>Concepts pane (top right)</em></strong></p>
  3306.  
  3307.  
  3308.  
  3309. <p>This pane lists the concepts of the taxonomy by namespace (a globally unique identifier that differentiates names created by different sources). In the screenshot above, the namespace of the extension taxonomy is expanded to show the concepts in this namespace; these are concepts that have been added to the ESEF taxonomy. The pane includes a filter for finding concepts quickly. These can be dragged and dropped to the other panes as required.</p>
  3310.  
  3311.  
  3312.  
  3313. <p><strong><em>Core Properties and Linkbases pane (top left)</em></strong></p>
  3314.  
  3315.  
  3316.  
  3317. <p>The core properties of the extension taxonomy include various details such as the target namespaces and the names of related taxonomies. These properties are displayed in a single tab and can be added or edited there. You can switch the base taxonomy of the open taxonomy by clicking&nbsp;Select Base Taxonomy&nbsp;and then selecting the entry point of the new taxonomy. The languages of the taxonomy&#8217;s labels are listed in a combo box, and this enables you to easily switch the label language that is used in Taxonomy Editor.</p>
  3318.  
  3319.  
  3320.  
  3321. <p>In addition to the tab for core properties, there are tabs for each of the taxonomy&#8217;s linkbases (Presentation, Calculation, Definition). A linkbase provides additional information about the elements in an XBRL taxonomy, acting as a bridge between the technical language used in the taxonomy and the terminology used in financial reporting documents. You can add new relationships to a linkbase by dragging a concept from the Concepts pane to the appropriate linkbase tab and dropping it in the location where you want to create a relationship. You can also move items in a linkbase tab to modify relationships or to create new relationships. If you want to remove a relationship, do so via the relationship&#8217;s context menu.</p>
  3322.  
  3323.  
  3324.  
  3325. <p><strong><em>Linkroles pane (bottom left)</em></strong></p>
  3326.  
  3327.  
  3328.  
  3329. <p>This pane lists the linkroles (definitions of relationships between different elements) of the taxonomy. When you select a linkrole in this pane, the relationship definitions that linkrole is used in are listed in the respective linkbase tab/s of the Core Properties and Linkbases pane.</p>
  3330.  
  3331.  
  3332.  
  3333. <p><strong><em>Details pane (bottom right)</em></strong></p>
  3334.  
  3335.  
  3336.  
  3337. <p>This pane displays the core details and labels of the concept that was selected in either the Concepts pane or the Core Properties and Linkbases pane. To edit the value of a concept&#8217;s property, click in the respective value field.</p>
  3338.  
  3339.  
  3340.  
  3341. <p>Once changes are complete, the ESEF add-in for Excel will save the extension taxonomy as a taxonomy package, and you can proceed with creating the corresponding ESEF XBRL reports directly in Excel.</p>
  3342.  
  3343.  
  3344.  
  3345. <p></p>
  3346.  
  3347.  
  3348.  
  3349. <h2 class="wp-block-heading">Get Started with ESEF Now</h2>
  3350.  
  3351.  
  3352.  
  3353. <p>If your company is facing the challenge of ESEF XBRL report creation, the Altova ESEF XBRL add-in for Excel can support the process from start to finish. Download a <a href="https://www.altova.com/esef-xbrl/download">free, 30-day trial</a>. Once you install the software, simply open Excel and click on the ESEF ribbon to activate it.</p>
  3354. <p>The post <a href="https://www.altova.com/blog/creating-esef-filings-just-got-easier/">Creating ESEF Filings Just Got Easier</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  3355. ]]></content:encoded>
  3356. </item>
  3357. <item>
  3358. <title>Drive VDA EDI Conversion and Transformation with MapForce</title>
  3359. <link>https://www.altova.com/blog/vda-edi-conversion/</link>
  3360. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  3361. <pubDate>Wed, 03 May 2023 14:35:39 +0000</pubDate>
  3362. <category><![CDATA[Data Integration]]></category>
  3363. <category><![CDATA[EDI]]></category>
  3364. <category><![CDATA[data transformation]]></category>
  3365. <category><![CDATA[EDIFACT]]></category>
  3366. <category><![CDATA[VDA EDI]]></category>
  3367. <guid isPermaLink="false">https://www.altova.com/blog/?p=27095</guid>
  3368.  
  3369. <description><![CDATA[<p>EDI (electronic data interchange) messages are used in a variety of industries for transmitting business information such as invoices, shipping notices, and purchase orders—which were traditionally recorded on paper—electronically. EDI transactions are structured according to standards that describe the format of each message. Adherence to a standard format enables the messages to be transmitted electronically [&#8230;]</p>
  3370. <p>The post <a href="https://www.altova.com/blog/vda-edi-conversion/">Drive VDA EDI Conversion and Transformation with MapForce</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  3371. ]]></description>
  3372. <content:encoded><![CDATA[
  3373. <p>EDI (electronic data interchange) messages are used in a variety of industries for transmitting business information such as invoices, shipping notices, and purchase orders—which were traditionally recorded on paper—electronically. EDI transactions are structured according to standards that describe the format of each message. Adherence to a standard format enables the messages to be transmitted electronically between the computer systems of trading partners without human interaction.</p>
  3374.  
  3375.  
  3376.  
  3377. <p>Different industries take advantage of specialized EDI formats that are relevant to their business, and one such popular format is VDA EDI, which is used by the German automotive industry.</p>
  3378.  
  3379.  
  3380.  
  3381. <p>To work with VDA messages efficiently, companies often need to transform them to other formats, for instance, for storage in a backend database, or convert them to other EDI message formats for compatibility among systems. Altova MapForce makes this easy, with support for VDA as well as several other popular EDI standards. Let’s see how it works.</p>
  3382.  
  3383.  
  3384.  
  3385. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/shutterstock_238915123.jpg" alt="Decorative image showing an automobile engine" class="wp-image-1961" srcset="https://www.altova.com/blog/wp-content/uploads/shutterstock_238915123.jpg 700w, https://www.altova.com/blog/wp-content/uploads/shutterstock_238915123-300x144.jpg 300w, https://www.altova.com/blog/wp-content/uploads/shutterstock_238915123-450x215.jpg 450w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  3386.  
  3387.  
  3388.  
  3389. <span id="more-27095"></span>
  3390.  
  3391.  
  3392.  
  3393. <h2 class="wp-block-heading" id="h-what-is-vda-edi">What is VDA EDI?</h2>
  3394.  
  3395.  
  3396.  
  3397. <p>VDA stands for <a href="https://www.vda.de/">Verband der Automobilindustrie</a>, which is the Association of the German Automotive Industry. The VDA consists of more than 620 companies involved in production for the German automotive industry, which one of the largest employers and producers of autos in the world. VDA members include car manufacturers like BMW, Mercedes-Benz, and Volkswagen, as well as automobile component suppliers.</p>
  3398.  
  3399.  
  3400.  
  3401. <p>In an effort to streamline business processes and increase efficiency at all stages of the automotive supply chain, the VDA began developing EDI standards for planning, distribution, and invoicing in&nbsp;1977. This was well before the UN created <a href="https://www.altova.com/mapforce/edifact">EDIFACT</a>, which would become the internationally approved standard structure for exchanging information among partners.</p>
  3402.  
  3403.  
  3404.  
  3405. <p>VDA EDI messages represent different types of electronic documents, such as orders, delivery notes, invoices, and transport notifications. The use of VDA EDI and <a href="https://www.altova.com/edi-tools">EDI tools</a> successfully enabled the automated exchange of information between manufacturers and suppliers, reducing the need for manual data entry and increasing the speed and accuracy of business transactions.</p>
  3406.  
  3407.  
  3408.  
  3409. <p>Given the pervasive use of VDA EDI messages through the decades, the format has become an industry standard. Its use persists, though the VDA has ceased maintaining the standard and lists it as deprecated. While more modern EDI formats like EDIFACT and ODETTE have emerged and have been adopted by verticals including the auto industry, use of legacy VDA EDI transactions is still prevalent throughout Europe.</p>
  3410.  
  3411.  
  3412.  
  3413. <h2 class="wp-block-heading" id="h-transforming-and-converting-vda-edi-transactions">Transforming and Converting VDA EDI Transactions</h2>
  3414.  
  3415.  
  3416.  
  3417. <p>Companies that still use legacy VDA EDI often need to transform data in transactions to other formats, either for integration with business systems or to map it to more modern EDI message formats. In response to customer requests, Altova added support for the most popular VDA EDI messages to MapForce. This no-code data integration tool makes it easy to <a href="https://www.altova.com/mapforce/edi-mapping">convert and transform EDI data</a> to any other format.</p>
  3418.  
  3419.  
  3420.  
  3421. <p>Users can drag and drop to map between VDA EDI transactions and other EDI formats like ODETTE and EDIFACT, or map message data to/from databases as well as XML, JSON, Excel, and other popular formats.</p>
  3422.  
  3423.  
  3424.  
  3425. <p>MapForce (version 2023r2 and higher) supports the most commonly used VDA EDI transactions:</p>
  3426.  
  3427.  
  3428.  
  3429. <ul>
  3430. <li>VDA 4905 – Global Delivery Call-off</li>
  3431.  
  3432.  
  3433.  
  3434. <li>VDA 4907 – Remittance Advice</li>
  3435.  
  3436.  
  3437.  
  3438. <li>VDA 4908 – Credit Advice</li>
  3439.  
  3440.  
  3441.  
  3442. <li>VDA 4913 – Global Production Dispatch Advice</li>
  3443.  
  3444.  
  3445.  
  3446. <li>VDA 4916 – Global Delivery Schedule Synchronous to Production</li>
  3447.  
  3448.  
  3449.  
  3450. <li>VDA 4921 – Shipment Data Advice</li>
  3451. </ul>
  3452.  
  3453.  
  3454.  
  3455. <p>When you insert a VDA message as the source or target data mapping component in MapForce…</p>
  3456.  
  3457.  
  3458.  
  3459. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="636" height="472" src="https://www.altova.com/blog/wp-content/uploads/convert-vda-edi.png" alt="Insert a VDA EDI message to map and convert " class="wp-image-27097" srcset="https://www.altova.com/blog/wp-content/uploads/convert-vda-edi.png 636w, https://www.altova.com/blog/wp-content/uploads/convert-vda-edi-300x223.png 300w" sizes="(max-width: 636px) 100vw, 636px" /></figure>
  3460.  
  3461.  
  3462.  
  3463. <p></p>
  3464.  
  3465.  
  3466.  
  3467. <p>…its structure is represented visually.</p>
  3468.  
  3469.  
  3470.  
  3471. <p></p>
  3472.  
  3473.  
  3474.  
  3475. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="379" height="417" src="https://www.altova.com/blog/wp-content/uploads/VDA-edi-message-4908.png" alt="Structure of VDI EDI message 4908" class="wp-image-27098" srcset="https://www.altova.com/blog/wp-content/uploads/VDA-edi-message-4908.png 379w, https://www.altova.com/blog/wp-content/uploads/VDA-edi-message-4908-273x300.png 273w" sizes="(max-width: 379px) 100vw, 379px" /></figure>
  3476.  
  3477.  
  3478.  
  3479. <p></p>
  3480.  
  3481.  
  3482.  
  3483. <p>This makes it easy to drag and drop to associate fields between the source and target component(s). A comprehensive library of data processing filters and functions is available for transforming source data as needed to suit the target data format. In the mapping below, a VDA EDI message is mapped to the EDIFACT Invoice message, with constants and functions transforming the data as required to conform to the target data structure.</p>
  3484.  
  3485.  
  3486.  
  3487. <p></p>
  3488.  
  3489.  
  3490.  
  3491. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/transform-vda-to-edifact.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/transform-vda-to-edifact-1030x467.png" alt="Convert VDA to EDIFACT in MapForce" class="wp-image-27099" width="515" height="234" srcset="https://www.altova.com/blog/wp-content/uploads/transform-vda-to-edifact-1030x467.png 1030w, https://www.altova.com/blog/wp-content/uploads/transform-vda-to-edifact-300x136.png 300w, https://www.altova.com/blog/wp-content/uploads/transform-vda-to-edifact-768x348.png 768w, https://www.altova.com/blog/wp-content/uploads/transform-vda-to-edifact-705x320.png 705w, https://www.altova.com/blog/wp-content/uploads/transform-vda-to-edifact.png 1457w" sizes="(max-width: 515px) 100vw, 515px" /></a><figcaption class="wp-element-caption">Click to enlarge image</figcaption></figure>
  3492.  
  3493.  
  3494.  
  3495. <p></p>
  3496.  
  3497.  
  3498.  
  3499. <p>After you define the mapping, you can click the Output tab to view the transformed data, which in this case is an EDIFACT message.</p>
  3500.  
  3501.  
  3502.  
  3503. <p></p>
  3504.  
  3505.  
  3506.  
  3507. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="589" height="541" src="https://www.altova.com/blog/wp-content/uploads/generated-EDIFACT-message.png" alt="EDIFACT message generated by converting VDA EDI in MapForce" class="wp-image-27100" srcset="https://www.altova.com/blog/wp-content/uploads/generated-EDIFACT-message.png 589w, https://www.altova.com/blog/wp-content/uploads/generated-EDIFACT-message-300x276.png 300w" sizes="(max-width: 589px) 100vw, 589px" /></figure>
  3508.  
  3509.  
  3510.  
  3511. <p>You can also automate the transformation process for recurrent transactions by uploading the finished mapping project to <a href="https://www.altova.com/mapforce-server">MapForce Server</a>.</p>
  3512.  
  3513.  
  3514.  
  3515. <h2 class="wp-block-heading" id="h-vda-data-integration-next-steps">VDA Data Integration &#8211; Next Steps</h2>
  3516.  
  3517.  
  3518.  
  3519. <p>To get started working with VDA EDI messages in MapForce, <a href="https://www.altova.com/mapforce/download">download</a> a free, 30-day trial. Then, download and install the free <a href="https://www.altova.com/mapforce/download#:~:text=vda%20Configuration%20Files">VDA EDI configuration files</a>.</p>
  3520. <p>The post <a href="https://www.altova.com/blog/vda-edi-conversion/">Drive VDA EDI Conversion and Transformation with MapForce</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  3521. ]]></content:encoded>
  3522. </item>
  3523. <item>
  3524. <title>Split Mode in Grid View and More in v2023r2</title>
  3525. <link>https://www.altova.com/blog/split-mode-and-more-in-v2023r2/</link>
  3526. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  3527. <pubDate>Wed, 12 Apr 2023 13:40:24 +0000</pubDate>
  3528. <category><![CDATA[Data Integration]]></category>
  3529. <category><![CDATA[Development]]></category>
  3530. <category><![CDATA[JSON]]></category>
  3531. <category><![CDATA[XML]]></category>
  3532. <category><![CDATA[MapForce]]></category>
  3533. <category><![CDATA[new features]]></category>
  3534. <category><![CDATA[video]]></category>
  3535. <category><![CDATA[What&#039;s new]]></category>
  3536. <category><![CDATA[XMLSpy]]></category>
  3537. <guid isPermaLink="false">https://www.altova.com/blog/?p=27085</guid>
  3538.  
  3539. <description><![CDATA[<p>The latest release of Altova software includes ongoing enhancements for graphical XML and JSON editing in XMLSpy Grid View, new tools for working with XPath/XQuery, support for integrating VDA EDI data in MapForce, and much more. Here’s a quick overview of all the new functionality being introduced. New in XMLSpy XMLSpy received some important enhancements [&#8230;]</p>
  3540. <p>The post <a href="https://www.altova.com/blog/split-mode-and-more-in-v2023r2/">Split Mode in Grid View and More in v2023r2</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  3541. ]]></description>
  3542. <content:encoded><![CDATA[
  3543. <p>The latest release of Altova software includes ongoing enhancements for graphical XML and JSON editing in XMLSpy Grid View, new tools for working with XPath/XQuery, support for integrating VDA EDI data in MapForce, and much more.</p>
  3544.  
  3545.  
  3546.  
  3547. <p>Here’s a quick overview of all the new functionality being introduced.</p>
  3548.  
  3549.  
  3550.  
  3551. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/blog_2023r2.jpg" alt="Decorative image of a female viewing  computer programming on a large screen" class="wp-image-27087" srcset="https://www.altova.com/blog/wp-content/uploads/blog_2023r2.jpg 700w, https://www.altova.com/blog/wp-content/uploads/blog_2023r2-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  3552.  
  3553.  
  3554.  
  3555. <span id="more-27085"></span>
  3556.  
  3557.  
  3558.  
  3559. <h2 class="wp-block-heading" id="h-new-in-xmlspy">New in XMLSpy</h2>
  3560.  
  3561.  
  3562.  
  3563. <p>XMLSpy received some important enhancements for <a href="https://www.altova.com/xmlspy-xml-editor/json_editor">editing JSON</a> and XML documents, including new XPath and XQuery tools.</p>
  3564.  
  3565.  
  3566.  
  3567. <ul>
  3568. <li>Horizontal / vertical split mode in Grid View</li>
  3569.  
  3570.  
  3571.  
  3572. <li>Option to create a new document from XPath/XQuery results</li>
  3573.  
  3574.  
  3575.  
  3576. <li>Support for Firebird 4, PostgreSQL 15, and SQL Server 2022</li>
  3577.  
  3578.  
  3579.  
  3580. <li>Integration with Eclipse 2.45, 4.27</li>
  3581. </ul>
  3582.  
  3583.  
  3584.  
  3585. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="648" height="593" src="https://www.altova.com/blog/wp-content/uploads/split-mode-grid-view.png" alt="Split mode in Grid View lets you divide large XML or JSON documents for easy navigation" class="wp-image-27088" srcset="https://www.altova.com/blog/wp-content/uploads/split-mode-grid-view.png 648w, https://www.altova.com/blog/wp-content/uploads/split-mode-grid-view-300x275.png 300w" sizes="(max-width: 648px) 100vw, 648px" /><figcaption class="wp-element-caption"><em>Split large XML or JSON documents in Grid View horizontally or vertically </em></figcaption></figure>
  3586.  
  3587.  
  3588.  
  3589. <p></p>
  3590.  
  3591.  
  3592.  
  3593. <h2 class="wp-block-heading" id="h-new-in-mapforce">New in MapForce</h2>
  3594.  
  3595.  
  3596.  
  3597. <p>Support for VDA EDI, used by the German Automotive Industry, is now available for <a href="https://www.altova.com/mapforce">data integration</a> in MapForce. This meets a common customer request, along with new support for generating the standalone=”yes” declaration in XML output.</p>
  3598.  
  3599.  
  3600.  
  3601. <ul>
  3602. <li>Support for converting/transforming VDA EDI messages</li>
  3603.  
  3604.  
  3605.  
  3606. <li>Support for standalone=&#8221;yes&#8221; in XML output</li>
  3607.  
  3608.  
  3609.  
  3610. <li>Support for comments in data mapping projects</li>
  3611.  
  3612.  
  3613.  
  3614. <li>Support for additional EDIFACT version: 2022B</li>
  3615.  
  3616.  
  3617.  
  3618. <li>Support for Firebird 4, PostgreSQL 15, and SQL Server 2022</li>
  3619.  
  3620.  
  3621.  
  3622. <li>Integration with Eclipse 4.26, 4.27</li>
  3623. </ul>
  3624.  
  3625.  
  3626.  
  3627. <p></p>
  3628.  
  3629.  
  3630.  
  3631. <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/mapforce-comments.png" alt="" class="wp-image-27089" width="720" height="421" srcset="https://www.altova.com/blog/wp-content/uploads/mapforce-comments.png 720w, https://www.altova.com/blog/wp-content/uploads/mapforce-comments-300x175.png 300w, https://www.altova.com/blog/wp-content/uploads/mapforce-comments-705x412.png 705w" sizes="(max-width: 720px) 100vw, 720px" /><figcaption class="wp-element-caption"><em>Add comments to any data mapping component in MapForce </em></figcaption></figure>
  3632.  
  3633.  
  3634.  
  3635. <h2 class="wp-block-heading" id="h-new-in-stylevision">New in StyleVision</h2>
  3636.  
  3637.  
  3638.  
  3639. <p>New support for embedding images in HTML output makes StyleVision even more useful for generating <a href="https://www.altova.com/stylevision">reports from XML</a>, XBRL, and database data. The option to embed images makes HTML output easier to share, for example, via email.</p>
  3640.  
  3641.  
  3642.  
  3643. <ul>
  3644. <li>Support for embedding images in HTML output</li>
  3645.  
  3646.  
  3647.  
  3648. <li>Support for FOP 2.8 for generating PDF output</li>
  3649.  
  3650.  
  3651.  
  3652. <li>Support for Firebird 4, PostgreSQL 15, and SQL Server 2022</li>
  3653.  
  3654.  
  3655.  
  3656. <li>Integration with Eclipse 4.26, 4.27</li>
  3657. </ul>
  3658.  
  3659.  
  3660.  
  3661. <h2 class="wp-block-heading" id="h-new-in-diffdog">New in DiffDog</h2>
  3662.  
  3663.  
  3664.  
  3665. <p>Another frequently requested feature is <a href="https://www.altova.com/diffdog">generation of diff reports</a> in HTML (in addition to text and XML). These are more human readable, whereas XML and text reports are well suited for machine analysis.</p>
  3666.  
  3667.  
  3668.  
  3669. <ul>
  3670. <li>Exporting differences in HTML</li>
  3671.  
  3672.  
  3673.  
  3674. <li>Support for Firebird 4, PostgreSQL 15, and SQL Server 2022</li>
  3675. </ul>
  3676.  
  3677.  
  3678.  
  3679. <p></p>
  3680.  
  3681.  
  3682.  
  3683. <figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/html-diff-report.png" alt="" class="wp-image-27090" width="685" height="317" srcset="https://www.altova.com/blog/wp-content/uploads/html-diff-report.png 913w, https://www.altova.com/blog/wp-content/uploads/html-diff-report-300x139.png 300w, https://www.altova.com/blog/wp-content/uploads/html-diff-report-768x355.png 768w, https://www.altova.com/blog/wp-content/uploads/html-diff-report-705x326.png 705w" sizes="(max-width: 685px) 100vw, 685px" /><figcaption class="wp-element-caption"><em>Exporting diff reports in HTML in DiffDog</em></figcaption></figure>
  3684.  
  3685.  
  3686.  
  3687. <h1 class="wp-block-heading" id="h-what-s-new-video">What’s New Video</h1>
  3688.  
  3689.  
  3690.  
  3691. <p></p>
  3692.  
  3693.  
  3694.  
  3695. <p>See these features in action:</p>
  3696.  
  3697.  
  3698.  
  3699. <p></p>
  3700.  
  3701.  
  3702.  
  3703. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  3704. <div class='avia-iframe-wrap'><iframe loading="lazy" title="New in Altova Software v2023 Release 2" width="1500" height="844" src="https://www.youtube.com/embed/gLjVAlNh_wU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>
  3705. </div></figure>
  3706.  
  3707.  
  3708.  
  3709. <p><a href="https://www.youtube.com/watch?v=gLjVAlNh_wU"></a></p>
  3710.  
  3711.  
  3712.  
  3713. <p>Visit the Altova web site to learn more about <a href="https://www.altova.com/whatsnew">all the new features</a> and update to the latest version.</p>
  3714. <p>The post <a href="https://www.altova.com/blog/split-mode-and-more-in-v2023r2/">Split Mode in Grid View and More in v2023r2</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  3715. ]]></content:encoded>
  3716. </item>
  3717. <item>
  3718. <title>Building Apps with an Intelligent Database Wizard</title>
  3719. <link>https://www.altova.com/blog/building-apps-with-an-intelligent-database-wizard/</link>
  3720. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  3721. <pubDate>Mon, 20 Mar 2023 15:28:35 +0000</pubDate>
  3722. <category><![CDATA[App Development]]></category>
  3723. <category><![CDATA[Database]]></category>
  3724. <category><![CDATA[Development]]></category>
  3725. <category><![CDATA[Low Code]]></category>
  3726. <category><![CDATA[app development]]></category>
  3727. <category><![CDATA[databases]]></category>
  3728. <category><![CDATA[MobileTogether]]></category>
  3729. <category><![CDATA[SQL]]></category>
  3730. <guid isPermaLink="false">https://www.altova.com/blog/?p=27069</guid>
  3731.  
  3732. <description><![CDATA[<p>Data-driven solutions like database and enterprise apps rely on connection to, and interaction with, backend databases. Backend relational databases, however, store data in tables that reflect complex data relationships. This provides numerous advantages for effective data management and data integrity but can make it difficult to access and work with the data stored therein in [&#8230;]</p>
  3733. <p>The post <a href="https://www.altova.com/blog/building-apps-with-an-intelligent-database-wizard/">Building Apps with an Intelligent Database Wizard</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  3734. ]]></description>
  3735. <content:encoded><![CDATA[
  3736. <p>Data-driven solutions like database and enterprise apps rely on connection to, and interaction with, backend databases. Backend relational databases, however, store data in tables that reflect complex data relationships. This provides numerous advantages for effective data management and data integrity but can make it difficult to access and work with the data stored therein in new ways. App developers need to have a comprehensive understanding of database design principles and the SQL query language just to get started.</p>
  3737.  
  3738.  
  3739.  
  3740. <p>In contrast, real world data relationships most often represent parent-child relationships or even deeper hierarchical structure. As such, working with hierarchical data where relationships can be visualized in a tree structure can be much simpler and more flexible, leading to faster development. This approach is also more accessible to developers without extensive SQL expertise.</p>
  3741.  
  3742.  
  3743.  
  3744. <p>To make building apps that connect to the backend relational databases that are ubiquitous in today’s enterprise easier, faster, and available to a wider range of developers, Altova MobileTogether takes an entirely unique approach. Its visual Database Wizard lets developers easily build a query that returns hierarchical data, work with that data in the app, and then easily save the data back in hierarchical form, letting MobileTogether take care of normalizing the data and writing it back to the corresponding linked tables. Let’s take a look at how it works.</p>
  3745.  
  3746.  
  3747.  
  3748. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="355" src="https://www.altova.com/blog/wp-content/uploads/mobiletogether-developer.jpg" alt="" class="wp-image-27070" srcset="https://www.altova.com/blog/wp-content/uploads/mobiletogether-developer.jpg 700w, https://www.altova.com/blog/wp-content/uploads/mobiletogether-developer-300x152.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  3749.  
  3750.  
  3751.  
  3752. <span id="more-27069"></span>
  3753.  
  3754.  
  3755.  
  3756. <h2 class="wp-block-heading" id="h-working-with-hierarchical-data">Working with Hierarchical Data</h2>
  3757.  
  3758.  
  3759.  
  3760. <p>Relational databases organize data into rows and columns, which collectively form a table. Data is typically structured across multiple tables, and data relationships are indicated via primary and foreign keys that enforce uniqueness while allowing for complex connections to be defined. Though the relational model has numerous efficiencies and advantages, it doesn’t lend itself to certain applications. For instance, including data from two tables in a single form – and keeping that data editable – requires two separate database queries and quite a bit of handwritten SQL. Saving data from such a form back to the database is even more complicated. In addition to being time consuming, this requires app developers to be well versed in SQL in addition to their other qualifications, which is a significant challenge that only exacerbates the current shortage of qualified software and app developers.</p>
  3761.  
  3762.  
  3763.  
  3764. <p>Visual, <a href="https://www.altova.com/mobiletogether">low-code tools like MobileTogether</a> work behind the scenes to make building apps that connect to backend data as straightforward as possible, allowing developers to focus on the form and function of their apps and, most importantly, the user experience, instead of getting bogged down writing complex SQL statements.  (A quick note: while this article focuses on database driven apps, MobileTogether can also connect to sources in other formats including XML, JSON, HTML, SOAP and REST, etc. Legacy data sources (Excel, EDI, text, etc.) can be easily connected via <a href="https://www.altova.com/mapforce-server">MapForce Server</a> integration.)</p>
  3765.  
  3766.  
  3767.  
  3768. <p>Regardless of the data source, MobileTogether presents backend data in a hierarchical tree view that lets developers immediately understand relationships and work with elements as required – regardless of how they’re stored in the backend database – while defining the app functions and actions.</p>
  3769.  
  3770.  
  3771.  
  3772. <h2 class="wp-block-heading" id="h-database-wizard-importing-the-database-hierarchy">Database Wizard: Importing the Database Hierarchy</h2>
  3773.  
  3774.  
  3775.  
  3776. <p>When you first connect to the datastore for your app in MobileTogether, you can choose from a wide range of supported relational databases and connection options.</p>
  3777.  
  3778.  
  3779.  
  3780. <p>The Connection Wizard walks you through the process.</p>
  3781.  
  3782.  
  3783.  
  3784. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="587" height="654" src="https://www.altova.com/blog/wp-content/uploads/connect-to-database.png" alt="Connect to a database backend for an app" class="wp-image-27072" srcset="https://www.altova.com/blog/wp-content/uploads/connect-to-database.png 587w, https://www.altova.com/blog/wp-content/uploads/connect-to-database-269x300.png 269w" sizes="(max-width: 587px) 100vw, 587px" /></figure>
  3785.  
  3786.  
  3787.  
  3788. <p>Once connected, the Add Page Source dialog displays a list of available tables. Here is a fairly simple backend database being used to create a Books Catalog app.</p>
  3789.  
  3790.  
  3791.  
  3792. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="509" height="515" src="https://www.altova.com/blog/wp-content/uploads/add-db-tables.png" alt="Select database tables for the app " class="wp-image-27073" srcset="https://www.altova.com/blog/wp-content/uploads/add-db-tables.png 509w, https://www.altova.com/blog/wp-content/uploads/add-db-tables-297x300.png 297w, https://www.altova.com/blog/wp-content/uploads/add-db-tables-80x80.png 80w, https://www.altova.com/blog/wp-content/uploads/add-db-tables-36x36.png 36w" sizes="(max-width: 509px) 100vw, 509px" /></figure>
  3793.  
  3794.  
  3795.  
  3796. <p>To select the columns needed for the app, the visual SQL statement builder in the Database Wizard makes it easy to build a SELECT statement using point-and-click, which is much faster than writing the SQL statements manually. With the Authors table selected, the dialog initially includes a SQL statement to select all columns by default, but this can be refined. In this case we’ll keep all columns but edit the statement to order the data by AuthorName in alphabetical order. The resulting SQL statement is built purely with point-and-click using context sensitive, interactive toolbar buttons, combo boxes, and drop down menus.</p>
  3797.  
  3798.  
  3799.  
  3800. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="617" height="568" src="https://www.altova.com/blog/wp-content/uploads/visual-sql-editor.png" alt="Visual SQL editor for building apps that connect to backend databases" class="wp-image-27074" srcset="https://www.altova.com/blog/wp-content/uploads/visual-sql-editor.png 617w, https://www.altova.com/blog/wp-content/uploads/visual-sql-editor-300x276.png 300w" sizes="(max-width: 617px) 100vw, 617px" /></figure>
  3801.  
  3802.  
  3803.  
  3804. <p>One of the biggest advantages of using MobileTogether to work with databases is that you can import the entire database hierarchy at once, activating previously defined table relations or even defining new table relations on the fly via the Add/Edit Relations dialog.</p>
  3805.  
  3806.  
  3807.  
  3808. <p>If additional database tables are related to the main table, you can select the tables for which you want to maintain the relation. (The relations are built using primary and foreign keys.) For example, as shown below, the Books table has an AuthorID foreign key that relates each book record to an author in the Authors table. We can check the box next to the Books table to maintain that relation, and the page source will be created so that Books is hierarchically related to Authors as a child. &nbsp;All the columns from the Books table will be selected automatically.</p>
  3809.  
  3810.  
  3811.  
  3812. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="437" height="438" src="https://www.altova.com/blog/wp-content/uploads/database-table-relations.png" alt="Activating database table relationships" class="wp-image-27075" srcset="https://www.altova.com/blog/wp-content/uploads/database-table-relations.png 437w, https://www.altova.com/blog/wp-content/uploads/database-table-relations-300x300.png 300w, https://www.altova.com/blog/wp-content/uploads/database-table-relations-80x80.png 80w, https://www.altova.com/blog/wp-content/uploads/database-table-relations-36x36.png 36w, https://www.altova.com/blog/wp-content/uploads/database-table-relations-180x180.png 180w" sizes="(max-width: 437px) 100vw, 437px" /></figure>
  3813.  
  3814.  
  3815.  
  3816. <p>This makes the whole database structure available in a tree structure in the Page Sources pane.</p>
  3817.  
  3818.  
  3819.  
  3820. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="388" height="511" src="https://www.altova.com/blog/wp-content/uploads/database-structure-tree.png" alt="Working with database relations in a tree view in MobileTogether " class="wp-image-27076" srcset="https://www.altova.com/blog/wp-content/uploads/database-structure-tree.png 388w, https://www.altova.com/blog/wp-content/uploads/database-structure-tree-228x300.png 228w" sizes="(max-width: 388px) 100vw, 388px" /></figure>
  3821.  
  3822.  
  3823.  
  3824. <p>Each column is now accessible for building the app UI and functionality.</p>
  3825.  
  3826.  
  3827.  
  3828. <p>Most importantly, when it comes to saving the user-modified data back to the database, MobileTogether makes this process extremely simple. For each level of the relational tables expressed in the hierarchical tree structure, we can decide whether  to replace all table rows upon save, or only save any modifications made – and this setting can be applied differently to each level of the hierarchy.  </p>
  3829.  
  3830.  
  3831.  
  3832. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="609" height="428" src="https://www.altova.com/blog/wp-content/uploads/saving-db-modifications.png" alt="Specifying how to handle saving to the database" class="wp-image-27077" srcset="https://www.altova.com/blog/wp-content/uploads/saving-db-modifications.png 609w, https://www.altova.com/blog/wp-content/uploads/saving-db-modifications-300x211.png 300w" sizes="(max-width: 609px) 100vw, 609px" /></figure>
  3833.  
  3834.  
  3835.  
  3836. <p>The Database Wizard is helpful throughout the entire app development process. For instance, we can use it to filter data to use at the source for various subpages in our application design. Here, when defining the subpage for viewing and editing Author details, we’ve visually composed a statement to filter the data to select the Author with the current author ID.</p>
  3837.  
  3838.  
  3839.  
  3840. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="611" height="426" src="https://www.altova.com/blog/wp-content/uploads/filtering-data.png" alt="Filtering data for use on an app subpage" class="wp-image-27078" srcset="https://www.altova.com/blog/wp-content/uploads/filtering-data.png 611w, https://www.altova.com/blog/wp-content/uploads/filtering-data-300x209.png 300w" sizes="(max-width: 611px) 100vw, 611px" /></figure>
  3841.  
  3842.  
  3843.  
  3844. <p>Whether you are dealing just with one table, or with several linked tables, the database wizard makes it easy to define queries that retrieve the right set of data from the database. Using the built-in intelligence of MobileTogether, writing data back to the database can be as easy as simply issuing a “Save” command and telling MobileTogether to save modifications-only across an entire hierarchical tree structure.</p>
  3845.  
  3846.  
  3847.  
  3848. <p>Of course, for developers who prefer to directly work with SQL commands, MobileTogether has you covered: you can exercise any level of detailed control, including transactions, bulk inserts, and directly execute any SQL statements:</p>
  3849.  
  3850.  
  3851.  
  3852. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="180" height="262" src="https://www.altova.com/blog/wp-content/uploads/sql-options.png" alt="" class="wp-image-27079"/></figure>
  3853.  
  3854.  
  3855.  
  3856. <h2 class="wp-block-heading" id="h-learn-more-and-try-it-now">Learn More and Try it Now</h2>
  3857.  
  3858.  
  3859.  
  3860. <p>To see all this in action, check out our <a href="https://www.altova.com/mobiletogether/demos#video-database-driven-apps">app development how-to video</a> showing how the database-driven Book Catalog app was created from start to finish. </p>
  3861.  
  3862.  
  3863.  
  3864. <p>To get started building an app that connects to a backend database, you can <a href="https://www.altova.com/mobiletogether/download">download </a>the free MobileTogether Designer. </p>
  3865. <p>The post <a href="https://www.altova.com/blog/building-apps-with-an-intelligent-database-wizard/">Building Apps with an Intelligent Database Wizard</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  3866. ]]></content:encoded>
  3867. </item>
  3868. <item>
  3869. <title>Role-based Access Control in Enterprise Apps</title>
  3870. <link>https://www.altova.com/blog/role-based-access-control-in-enterprise-apps/</link>
  3871. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  3872. <pubDate>Wed, 01 Mar 2023 18:44:07 +0000</pubDate>
  3873. <category><![CDATA[App Development]]></category>
  3874. <category><![CDATA[Database]]></category>
  3875. <category><![CDATA[No Code]]></category>
  3876. <category><![CDATA[database apps]]></category>
  3877. <category><![CDATA[no-code app development]]></category>
  3878. <category><![CDATA[RecordsManager]]></category>
  3879. <category><![CDATA[security]]></category>
  3880. <guid isPermaLink="false">https://www.altova.com/blog/?p=27051</guid>
  3881.  
  3882. <description><![CDATA[<p>Enterprise database apps are increasing in prevalence due to their advantages for enabling access to—and easy management of—the ever-growing amount of critical data business users need to work with on a day-to-day basis. Unlike other types of business productivity apps, database apps must include measures for managing different levels of user access to maintain the [&#8230;]</p>
  3883. <p>The post <a href="https://www.altova.com/blog/role-based-access-control-in-enterprise-apps/">Role-based Access Control in Enterprise Apps</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  3884. ]]></description>
  3885. <content:encoded><![CDATA[
  3886. <p>Enterprise database apps are increasing in prevalence due to their advantages for enabling access to—and easy management of—the ever-growing amount of critical data business users need to work with on a day-to-day basis. Unlike other types of business productivity apps, database apps must include measures for managing different levels of user access to maintain the security and integrity of the enterprise data they expose.</p>
  3887.  
  3888.  
  3889.  
  3890. <p>This can include managing read-only and editing access rights or restrictions on access to certain types of data. While it is essential to ensure that only authorized personnel have access to confidential data, levels of permissions often vary throughout an organization. Apps built using Altova RecordsManager include comprehensive tools for managing role-based access to database data that can reflect these complicated relationships that exist within an organization.</p>
  3891.  
  3892.  
  3893.  
  3894. <p>Let’s take a look at how RecordsManager makes it easy for app administrators to manage complex role-based permissions with visual tools.</p>
  3895.  
  3896.  
  3897.  
  3898. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/image_1682713516.jpg" alt="Workers looking together at a tablet with an office in the background" class="wp-image-26729" srcset="https://www.altova.com/blog/wp-content/uploads/image_1682713516.jpg 700w, https://www.altova.com/blog/wp-content/uploads/image_1682713516-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  3899.  
  3900.  
  3901.  
  3902. <span id="more-27051"></span>
  3903.  
  3904.  
  3905.  
  3906. <h2 class="wp-block-heading" id="h-starting-with-authentication">Starting with Authentication</h2>
  3907.  
  3908.  
  3909.  
  3910. <p>Authentication is the first step to providing secure access to your enterprise app, both by preventing unauthorized access and, when combined with role-based access, only giving authorized users access to data and actions permitted by their role once they log in.</p>
  3911.  
  3912.  
  3913.  
  3914. <p>RecordsManager offers two ways to configure authentication. For apps with a small number of users, each can be entered manually via the Manage Users tab (described below) and assigned a password. For enterprise apps with numerous end users, RecordsManager apps can be configured with directory services to import users from the organization’s existing <a href="https://www.altova.com/manual/MobileTogether/mobiletogetherserveradvanced/mts_webui_settings_ldap.html">LDAP or Active Directory</a> servers. This removes the need to manually enter user data and enables users to log into the app using their corporate LDAP or Active Directory username and password. User roles can then be assigned as described in the next section.</p>
  3915.  
  3916.  
  3917.  
  3918. <h2 class="wp-block-heading" id="h-enabling-role-based-access-control-in-an-app">Enabling Role-based Access Control in an App</h2>
  3919.  
  3920.  
  3921.  
  3922. <p>In addition to authenticating users prior to app access, using role based access control is a great way to increase security in a <a href="https://www.altova.com/recordsmanager">database app</a>. Role based access control restricts access to different parts of the database, or different activities within the database (read, edit, save, approve, etc.), based on assigned user roles. This is a more efficient approach than assigning distinct permissions on a user-by-user basis.</p>
  3923.  
  3924.  
  3925.  
  3926. <p>This approach assigns users to different roles based on their job functions, and access privileges are granted accordingly. For example, in a contract management app, paralegals may have access to search for contracts and update only certain fields, while attorneys may have read/write access to all records and fields. In an HR app, all employees may have access to coworkers’ titles and contact information while only HR team members can access this plus salary and benefit information. This approach ensures that users have access only to the data they need to perform their job functions while reducing the risk of unauthorized access to sensitive information.</p>
  3927.  
  3928.  
  3929.  
  3930. <p>Since it is a no-code app development solution, RecordsManager takes a purely visual, easy to understand approach to configuring role-based access. When creating an app in RecordsManager, the administrator selects the Manage Users tab to add users and define permissions.</p>
  3931.  
  3932.  
  3933.  
  3934. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="289" src="https://www.altova.com/blog/wp-content/uploads/user-management-interface.png" alt="Interface for managing app users in RecordsManager" class="wp-image-27053" srcset="https://www.altova.com/blog/wp-content/uploads/user-management-interface.png 700w, https://www.altova.com/blog/wp-content/uploads/user-management-interface-300x124.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  3935.  
  3936.  
  3937.  
  3938. <p>On this tab there are three functions:</p>
  3939.  
  3940.  
  3941.  
  3942. <ul>
  3943. <li>Add or edit app users</li>
  3944.  
  3945.  
  3946.  
  3947. <li>Define roles and respective permissions</li>
  3948.  
  3949.  
  3950.  
  3951. <li>Create user groups to determine which users receive which alerts from the app</li>
  3952. </ul>
  3953.  
  3954.  
  3955.  
  3956. <p>You can define as many or as few users, roles, and user groups as are required by your particular app. When adding a new user or editing details for an existing user, it’s easy to assign the relevant roles.</p>
  3957.  
  3958.  
  3959.  
  3960. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="513" src="https://www.altova.com/blog/wp-content/uploads/add-app-user.png" alt="Adding user name and password for app access" class="wp-image-27054" srcset="https://www.altova.com/blog/wp-content/uploads/add-app-user.png 700w, https://www.altova.com/blog/wp-content/uploads/add-app-user-300x220.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  3961.  
  3962.  
  3963.  
  3964. <p></p>
  3965.  
  3966.  
  3967.  
  3968. <p>To save time, you can also assign multiple users to a role via the roles tab.</p>
  3969.  
  3970.  
  3971.  
  3972. <p></p>
  3973.  
  3974.  
  3975.  
  3976. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="669" height="422" src="https://www.altova.com/blog/wp-content/uploads/role-based-access-assignment.png" alt="Assigning role-based access control " class="wp-image-27055" srcset="https://www.altova.com/blog/wp-content/uploads/role-based-access-assignment.png 669w, https://www.altova.com/blog/wp-content/uploads/role-based-access-assignment-300x189.png 300w" sizes="(max-width: 669px) 100vw, 669px" /></figure>
  3977.  
  3978.  
  3979.  
  3980. <h3 class="wp-block-heading" id="h-define-roles-and-permissions">Define Roles and Permissions</h3>
  3981.  
  3982.  
  3983.  
  3984. <p>You can define any number of <a href="https://www.altova.com/recordsmanager/user-management">roles</a> in a RecordsManager, each of which can have access to different&nbsp;<a href="https://www.altova.com/recordsmanager/forms">forms</a> (used for viewing data, data entry, etc.) within the database app.</p>
  3985.  
  3986.  
  3987.  
  3988. <p></p>
  3989.  
  3990.  
  3991.  
  3992. <p></p>
  3993.  
  3994.  
  3995.  
  3996. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="661" height="603" src="https://www.altova.com/blog/wp-content/uploads/refining-role-based-access.png" alt="Refining role-based access for read/write" class="wp-image-27056" srcset="https://www.altova.com/blog/wp-content/uploads/refining-role-based-access.png 661w, https://www.altova.com/blog/wp-content/uploads/refining-role-based-access-300x274.png 300w" sizes="(max-width: 661px) 100vw, 661px" /></figure>
  3997.  
  3998.  
  3999.  
  4000. <p></p>
  4001.  
  4002.  
  4003.  
  4004. <p>The Data access tab in the Roles dialog allow you to further refine viewing and editing rights on for each role using predefined <a href="https://www-staging.altova.com/recordsmanager/filters">filters</a> designated on each data container.</p>
  4005.  
  4006.  
  4007.  
  4008. <p></p>
  4009.  
  4010.  
  4011.  
  4012. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="665" height="682" src="https://www.altova.com/blog/wp-content/uploads/access-filters.png" alt="Refining access rights using filters" class="wp-image-27057" srcset="https://www.altova.com/blog/wp-content/uploads/access-filters.png 665w, https://www.altova.com/blog/wp-content/uploads/access-filters-293x300.png 293w, https://www.altova.com/blog/wp-content/uploads/access-filters-36x36.png 36w" sizes="(max-width: 665px) 100vw, 665px" /></figure>
  4013.  
  4014.  
  4015.  
  4016. <p>For maximum flexibility, role access can also be designated in the properties of the form itself; changes made there will then be reflected on the Forms tab of the Role dialog.</p>
  4017.  
  4018.  
  4019.  
  4020. <p>This approach to role-based access control makes it easy to precisely control which records and fields users can access and/or edit.</p>
  4021.  
  4022.  
  4023.  
  4024. <h2 class="wp-block-heading" id="h-define-user-groups">Define User Groups</h2>
  4025.  
  4026.  
  4027.  
  4028. <p>User groups can be created in RecordsManager and are comprised of individual users and/or roles. These groups make it easy to customize the sending of alerts (reminders, notifications, etc.) based on a variety of criteria. For instance, in a <a href="https://www.altova.com/contractmanager">contract management app</a>, a user group comprised of department heads may receive an alert to review a new contract once it’s saved in the database.</p>
  4029.  
  4030.  
  4031.  
  4032. <p>User groups can be hierarchical to accommodate scenarios where users belong to multiple groups (e.g., office location, department, management team, cross-functional team, etc.). Hierarchical user groups help make group assignments more efficient by removing the need to assign each user individually to all their groups.</p>
  4033.  
  4034.  
  4035.  
  4036. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="743" height="620" src="https://www.altova.com/blog/wp-content/uploads/hierarchical-user-groups-1.png" alt="Hierarchical user groups" class="wp-image-27059" srcset="https://www.altova.com/blog/wp-content/uploads/hierarchical-user-groups-1.png 743w, https://www.altova.com/blog/wp-content/uploads/hierarchical-user-groups-1-300x250.png 300w, https://www.altova.com/blog/wp-content/uploads/hierarchical-user-groups-1-705x588.png 705w" sizes="(max-width: 743px) 100vw, 743px" /></figure>
  4037.  
  4038.  
  4039.  
  4040. <p>Defining user roles this way in turn allows for finely targeted reminder emails, for example, to group leads across different teams.</p>
  4041.  
  4042.  
  4043.  
  4044. <p></p>
  4045.  
  4046.  
  4047.  
  4048. <p></p>
  4049.  
  4050.  
  4051.  
  4052. <p>Managing user access in enterprise database applications is a critical aspect of maintaining the security and integrity of sensitive information. RecordsManager offers an easy, visual way to define granular role-based access in database apps.</p>
  4053.  
  4054.  
  4055.  
  4056. <p>Altova RecordsManager is a free, pre-built MobileTogether solution that is available for you to start using when you install MobileTogether Designer<a href="https://www.altova.com/mobiletogether/download">. Download and install the free Altova MobileTogether Designer</a>&nbsp;to get started on your first no-code app.</p>
  4057.  
  4058.  
  4059.  
  4060. <p></p>
  4061.  
  4062.  
  4063.  
  4064. <p></p>
  4065. <p>The post <a href="https://www.altova.com/blog/role-based-access-control-in-enterprise-apps/">Role-based Access Control in Enterprise Apps</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  4066. ]]></content:encoded>
  4067. </item>
  4068. <item>
  4069. <title>Scripting App Behavior</title>
  4070. <link>https://www.altova.com/blog/scripting-app-behavior/</link>
  4071. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  4072. <pubDate>Fri, 17 Feb 2023 15:24:10 +0000</pubDate>
  4073. <category><![CDATA[App Development]]></category>
  4074. <category><![CDATA[Low Code]]></category>
  4075. <category><![CDATA[No Code]]></category>
  4076. <category><![CDATA[database apps]]></category>
  4077. <category><![CDATA[no-code app development]]></category>
  4078. <category><![CDATA[RecordsManager]]></category>
  4079. <guid isPermaLink="false">https://www.altova.com/blog/?p=27041</guid>
  4080.  
  4081. <description><![CDATA[<p>The low code approach to app creation has been very effective at decreasing the complexity and learning-curve associated with building custom apps in response to quickly changing business requirements. Low code tools do the heavy lifting for developers and system administrators, freeing them to focus on business needs and rules rather than writing complex code. [&#8230;]</p>
  4082. <p>The post <a href="https://www.altova.com/blog/scripting-app-behavior/">Scripting App Behavior</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  4083. ]]></description>
  4084. <content:encoded><![CDATA[
  4085. <p>The low code approach to app creation has been very effective at decreasing the complexity and learning-curve associated with building custom apps in response to quickly changing business requirements. <a href="https://www.altova.com/recordsmanager">Low code tools</a> do the heavy lifting for developers and system administrators, freeing them to focus on business needs and rules rather than writing complex code.</p>
  4086.  
  4087.  
  4088.  
  4089. <p>To be truly successful, any low code approach must still include the ability to configure sophisticated app behavior in response to user input. This can be a challenge to implement with visual tools.</p>
  4090.  
  4091.  
  4092.  
  4093. <p>Altova RecordsManager offers a low code approach to <a href="https://www.altova.com/blog/build-no-code-database-apps-with-recordsmanager/">creating database apps</a>, with a built-in scripting editor that is purely visual. This offers the best of both worlds: easy app creation and sophisticated functionality customized for data-centric applications. Let’s see how it works.</p>
  4094.  
  4095.  
  4096.  
  4097. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/image_1320322994.jpg" alt="People working on computers in an office" class="wp-image-26746" srcset="https://www.altova.com/blog/wp-content/uploads/image_1320322994.jpg 700w, https://www.altova.com/blog/wp-content/uploads/image_1320322994-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  4098.  
  4099.  
  4100.  
  4101. <span id="more-27041"></span>
  4102.  
  4103.  
  4104.  
  4105. <h2 class="wp-block-heading">Database Apps: Responding to User Input</h2>
  4106.  
  4107.  
  4108.  
  4109. <p>RecordsManager accelerates the creation of database driven apps by removing the need for backend database development and manual coding. This approach makes app creation accessible to a wider range of users, since specific app development experience is no longer required to build an effective solution.</p>
  4110.  
  4111.  
  4112.  
  4113. <p>In a database app, users typically interact with the solution by searching for, reviewing, adding, and editing data, whether the app is for reviewing restaurants, managing inventory, tracking contracts, or any other data-driven function.</p>
  4114.  
  4115.  
  4116.  
  4117. <p>In addition to enabling searching for and editing data, it’s important for the app to be able to react to changes made by users .</p>
  4118.  
  4119.  
  4120.  
  4121. <p>RecordsManager lets app creators configure this behavior during the <a href="https://www.altova.com/recordsmanager/data-entry-forms">definition of data entry forms</a>. Defining data entry forms in RecordsManager is a completely visual process. It&#8217;s easy to select fields, configure layout and styling options, create tables, and control how data is presented to the end user. Similarly, scripting app behavior using RecordsManager is accomplished with a visual editor.</p>
  4122.  
  4123.  
  4124.  
  4125. <p>In reaction to app user behavior, scripts can be used to:</p>
  4126.  
  4127.  
  4128.  
  4129. <ul>
  4130. <li>Update or modify other fields of a record</li>
  4131.  
  4132.  
  4133.  
  4134. <li>Trigger creation, modification, or deletion of child records</li>
  4135.  
  4136.  
  4137.  
  4138. <li>Execute an action, such as sending emails</li>
  4139.  
  4140.  
  4141.  
  4142. <li>Show the user a message (standard, warning, error)</li>
  4143.  
  4144.  
  4145.  
  4146. <li>Save records</li>
  4147. </ul>
  4148.  
  4149.  
  4150.  
  4151. <p>Scripted behavior can be configured to trigger in various circumstances:</p>
  4152.  
  4153.  
  4154.  
  4155. <ul>
  4156. <li>When a record is saved</li>
  4157.  
  4158.  
  4159.  
  4160. <li>When any field is modified</li>
  4161.  
  4162.  
  4163.  
  4164. <li>When a specific field is modified</li>
  4165.  
  4166.  
  4167.  
  4168. <li>When a child record changes (a script in the parent record can change data therein)</li>
  4169.  
  4170.  
  4171.  
  4172. <li>When a user taps a button (i.e., a script behind a button)</li>
  4173. </ul>
  4174.  
  4175.  
  4176.  
  4177. <p>For instance, in the script below for an enterprise contract management app, some changes require review and approval. When the record is saved by an end user, an email notification (defined in a previously configured <a href="https://www.altova.com/recordsmanager/reminder-forms">email form</a>) is sent to certain users and user groups. The Description field of the record is updated with the name of the user who made the changes. These actions will happen automatically behind the scenes when a user saves the record.</p>
  4178.  
  4179.  
  4180.  
  4181. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="455" height="301" src="https://www.altova.com/blog/wp-content/uploads/database-app-script.png" alt="Scripting to define app behavior " class="wp-image-27043" srcset="https://www.altova.com/blog/wp-content/uploads/database-app-script.png 455w, https://www.altova.com/blog/wp-content/uploads/database-app-script-300x198.png 300w" sizes="(max-width: 455px) 100vw, 455px" /></figure>
  4182.  
  4183.  
  4184.  
  4185. <p>The scripting editor uses easy buttons, menus, and standard <a href="https://www.altova.com/xpath-tools">XPath </a>to define behavior. RecordsManager guides the app administrator through script definition with pre-populated menus and choices at each step of the way.</p>
  4186.  
  4187.  
  4188.  
  4189. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="596" src="https://www.altova.com/blog/wp-content/uploads/low-code-scripting.png" alt="Visual scripting editor " class="wp-image-27044" srcset="https://www.altova.com/blog/wp-content/uploads/low-code-scripting.png 700w, https://www.altova.com/blog/wp-content/uploads/low-code-scripting-300x255.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  4190.  
  4191.  
  4192.  
  4193. <p>Complex scripted behavior can be defined using if / then / else branches. For each case (true and false), the script will carry out, as appropriate, any of the actions available for that type of script. Below is a fairly simple branch definition on a Paralegal Data Entry form. If a user selects Review as the Process Status, when the form is saved, the Status field will be automatically updated with a value of Pending and a reminder email to review the record will be sent to the specified user.</p>
  4194.  
  4195.  
  4196.  
  4197. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="385" src="https://www.altova.com/blog/wp-content/uploads/script-branches.png" alt="Creating a script with if/then/else branches" class="wp-image-27045" srcset="https://www.altova.com/blog/wp-content/uploads/script-branches.png 700w, https://www.altova.com/blog/wp-content/uploads/script-branches-300x165.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  4198.  
  4199.  
  4200.  
  4201. <p>Here is a more complex script, with multiple if/then/else conditions that define what happens when new records are saved in the contract management app. This essentially defines part of a complete workflow approval process for open source software (OSS) license agreements as well as XBRL Taxonomies tracked by the app, with different approval stages for the CTO and General Counsel, including the ability to respond to and follow up on clarification requests:</p>
  4202.  
  4203.  
  4204.  
  4205. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="618" height="669" src="https://www.altova.com/blog/wp-content/uploads/recordsmanager-scripting.png" alt="Complex scripting in a database app" class="wp-image-27027" srcset="https://www.altova.com/blog/wp-content/uploads/recordsmanager-scripting.png 618w, https://www.altova.com/blog/wp-content/uploads/recordsmanager-scripting-277x300.png 277w" sizes="(max-width: 618px) 100vw, 618px" /></figure>
  4206.  
  4207.  
  4208.  
  4209. <p>This script has been defined in a completely visual manner, using point and click and intelligent menus that walk the administrator through defining app behavior triggered by each condition.</p>
  4210.  
  4211.  
  4212.  
  4213. <p>The visual scripting editor is a great tool to add sophisticated functionality to your database apps – without learning to write complicated code.</p>
  4214.  
  4215.  
  4216.  
  4217. <h2 class="wp-block-heading" id="h-try-recordsmanager-for-free">Try RecordsManager for Free</h2>
  4218.  
  4219.  
  4220.  
  4221. <p>Altova RecordsManager is a free, pre-built MobileTogether solution that is available for you to start using when you install MobileTogether Designer<a href="https://www.altova.com/mobiletogether/download">. Download and install the free Altova MobileTogether Designer</a> to get started on your first RecordsManager app.</p>
  4222. <p>The post <a href="https://www.altova.com/blog/scripting-app-behavior/">Scripting App Behavior</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  4223. ]]></content:encoded>
  4224. </item>
  4225. <item>
  4226. <title>How to Build a Database-driven App</title>
  4227. <link>https://www.altova.com/blog/how-to-build-an-app/</link>
  4228. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  4229. <pubDate>Thu, 02 Feb 2023 21:23:54 +0000</pubDate>
  4230. <category><![CDATA[App Development]]></category>
  4231. <guid isPermaLink="false">https://www.altova.com/blog/?p=27034</guid>
  4232.  
  4233. <description><![CDATA[<p>We’ve updated our demo series on building an app that connects to a backend database using MobileTogether. The low-code approach to app development in MobileTogether extends to database connectivity: the Database Wizard includes a visual SQL statement editor that makes it easier than ever to connect to and work with backend database data in your [&#8230;]</p>
  4234. <p>The post <a href="https://www.altova.com/blog/how-to-build-an-app/">How to Build a Database-driven App</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  4235. ]]></description>
  4236. <content:encoded><![CDATA[
  4237. <p>We’ve updated our demo series on building an app that connects to a backend database using MobileTogether. The low-code approach to app development in MobileTogether extends to database connectivity: the Database Wizard includes a visual SQL statement editor that makes it easier than ever to connect to and work with backend database data in your apps. &nbsp;</p>
  4238.  
  4239.  
  4240.  
  4241. <p>This how-to video series takes you through the process of developing a sample Books Catalog app with rich functionality for searching, adding new database records, working with images, and more.</p>
  4242.  
  4243.  
  4244.  
  4245. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/image_1911608215.jpg" alt="man working in an office" class="wp-image-26749" srcset="https://www.altova.com/blog/wp-content/uploads/image_1911608215.jpg 700w, https://www.altova.com/blog/wp-content/uploads/image_1911608215-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  4246.  
  4247.  
  4248.  
  4249. <span id="more-27034"></span>
  4250.  
  4251.  
  4252.  
  4253. <h2 class="wp-block-heading" id="h-low-code-app-development">Low-code App Development</h2>
  4254.  
  4255.  
  4256.  
  4257. <p>In Part 1 of the <a href="https://www.altova.com/mobiletogether/demos#video-database-driven-apps">series</a>, we start off by connecting to a SQLite database to import the database hierarchy. Though this demo features a SQLite backend, MobileTogether <a href="https://www.altova.com/mobiletogether/app-development#data-centric">supports all major relational databases</a>.</p>
  4258.  
  4259.  
  4260.  
  4261. <p>The Database Wizard in MobileTogether provides an easy way to build SELECT statements visually, and any parameter to the SQL query can be directly expressed using a standard XPath statement, i.e., there is no need to explicitly declare parameters.</p>
  4262.  
  4263.  
  4264.  
  4265. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="596" height="455" src="https://www.altova.com/blog/wp-content/uploads/database-wizard.png" alt="Database Wizard for connecting an app to a backend DB" class="wp-image-27036" srcset="https://www.altova.com/blog/wp-content/uploads/database-wizard.png 596w, https://www.altova.com/blog/wp-content/uploads/database-wizard-300x229.png 300w" sizes="(max-width: 596px) 100vw, 596px" /></figure>
  4266.  
  4267.  
  4268.  
  4269. <p></p>
  4270.  
  4271.  
  4272.  
  4273. <p>The Database Wizard also lets developers add tables connected via foreign keys to the result – all in a single step. This means an entire hierarchy can be retrieved at once.</p>
  4274.  
  4275.  
  4276.  
  4277. <p></p>
  4278.  
  4279.  
  4280.  
  4281. <p>See how it works in part 1:</p>
  4282.  
  4283.  
  4284.  
  4285. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  4286. <div class='avia-iframe-wrap'><iframe loading="lazy" title="Pt 1: Building a Database Driven App with MobileTogether" width="1500" height="844" src="https://www.youtube.com/embed/vcoyS27rzuI?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>
  4287. </div></figure>
  4288.  
  4289.  
  4290.  
  4291. <p><a href="https://www.youtube.com/watch?v=vcoyS27rzuI"></a></p>
  4292.  
  4293.  
  4294.  
  4295. <p>Throughout the series, you will learn:</p>
  4296.  
  4297.  
  4298.  
  4299. <ul>
  4300. <li>How to connect an app to a backend database</li>
  4301.  
  4302.  
  4303.  
  4304. <li>How to retrieve and display data</li>
  4305.  
  4306.  
  4307.  
  4308. <li>How to design and modify the app UI, including layout, controls, and formatting</li>
  4309.  
  4310.  
  4311.  
  4312. <li>How to add functionality for filtering displayed data</li>
  4313.  
  4314.  
  4315.  
  4316. <li>How to add and configure app subpages</li>
  4317.  
  4318.  
  4319.  
  4320. <li>How to add, modify, and delete records</li>
  4321.  
  4322.  
  4323.  
  4324. <li>How to upload and manipulate images</li>
  4325.  
  4326.  
  4327.  
  4328. <li>How to implement search functionality in the app</li>
  4329. </ul>
  4330.  
  4331.  
  4332.  
  4333. <p>All these steps are completed with a low-code approach that includes drag-and-drop UI design, the visual Action Tree programming language for event handling, and standardized XPath for data processing.</p>
  4334.  
  4335.  
  4336.  
  4337. <p>We’ll test the app on multiple OSes and devices using the built in simulator; then MobileTogether will generate the app for all mobile and desktop platforms based on this one design.</p>
  4338.  
  4339.  
  4340.  
  4341. <h2 class="wp-block-heading" id="h-view-the-demos">View the Demos</h2>
  4342.  
  4343.  
  4344.  
  4345. <p>You can follow along with the steps in the demo by downloading the <a href="https://cdn.sw.altova.com/mtdemo/MobileTogetherDemoFiles.zip">example files</a> (.zip) used to create the Books Catalog app as well as the <a href="https://www.altova.com/mobiletogether/download">free MobileTogether Designer</a>.</p>
  4346.  
  4347.  
  4348.  
  4349. <p>Get started now:</p>
  4350.  
  4351.  
  4352.  
  4353. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  4354. <div class='avia-iframe-wrap'><iframe loading="lazy" title="How To Build a Database App" width="1500" height="844" src="https://www.youtube.com/embed/videoseries?list=PLbmafCKzVKfMf7bWNOJAQ-iQkU4rGQeV2" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>
  4355. </div></figure>
  4356. <p>The post <a href="https://www.altova.com/blog/how-to-build-an-app/">How to Build a Database-driven App</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  4357. ]]></content:encoded>
  4358. </item>
  4359. <item>
  4360. <title>New App Development Tools</title>
  4361. <link>https://www.altova.com/blog/new-app-development-tools/</link>
  4362. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  4363. <pubDate>Wed, 25 Jan 2023 16:00:44 +0000</pubDate>
  4364. <category><![CDATA[App Development]]></category>
  4365. <category><![CDATA[Development]]></category>
  4366. <category><![CDATA[Mobile]]></category>
  4367. <category><![CDATA[app development]]></category>
  4368. <category><![CDATA[MobileTogether]]></category>
  4369. <category><![CDATA[new web site]]></category>
  4370. <category><![CDATA[RecordsManager]]></category>
  4371. <category><![CDATA[What&#039;s new]]></category>
  4372. <guid isPermaLink="false">https://www.altova.com/blog/?p=27023</guid>
  4373.  
  4374. <description><![CDATA[<p>Altova releases new versions of its app development framework multiple times a year to introduce new features added in response to customer requests and feedback, as well as to add support for newer OS and database versions as they become available. The latest release of MobileTogether and RecordsManager introduces important new functionality for building low-code [&#8230;]</p>
  4375. <p>The post <a href="https://www.altova.com/blog/new-app-development-tools/">New App Development Tools</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  4376. ]]></description>
  4377. <content:encoded><![CDATA[
  4378. <p>Altova releases new versions of its app development framework multiple times a year to introduce new features added in response to customer requests and feedback, as well as to add support for newer OS and database versions as they become available.</p>
  4379.  
  4380.  
  4381.  
  4382. <p>The latest release of MobileTogether and RecordsManager introduces important new functionality for building low-code and no-code apps.</p>
  4383.  
  4384.  
  4385.  
  4386. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/MT8.1_blog.jpg" alt="Introducing the latest MobileTogether release " class="wp-image-27025" srcset="https://www.altova.com/blog/wp-content/uploads/MT8.1_blog.jpg 700w, https://www.altova.com/blog/wp-content/uploads/MT8.1_blog-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  4387.  
  4388.  
  4389.  
  4390. <span id="more-27023"></span>
  4391.  
  4392.  
  4393.  
  4394. <h3 class="wp-block-heading" id="h-new-in-mobiletogether-8-1">New in MobileTogether 8.1</h3>
  4395.  
  4396.  
  4397.  
  4398. <p>MobileTogether 8.1 includes features and options for <a href="https://www.altova.com/mobiletogether">low-code development</a> of sophisticated apps for iOS, Android, Windows, and the web.  MobileTogether lets you connect to any business backend system to create native, data-centric apps with a unique, low-code approach.</p>
  4399.  
  4400.  
  4401.  
  4402. <p>New features in this version offer additional options for cross-platform compatibility, new usability features for end users, expanded options for interacting with databases, and more.</p>
  4403.  
  4404.  
  4405.  
  4406. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="532" height="423" src="https://www.altova.com/blog/wp-content/uploads/ui-compatibility.png" alt="UI compatibility mode in MobileTogether" class="wp-image-27026" srcset="https://www.altova.com/blog/wp-content/uploads/ui-compatibility.png 532w, https://www.altova.com/blog/wp-content/uploads/ui-compatibility-300x239.png 300w" sizes="(max-width: 532px) 100vw, 532px" /><figcaption class="wp-element-caption"><em>Compatibility mode makes default items appear similar on every OS</em></figcaption></figure>
  4407.  
  4408.  
  4409.  
  4410. <p></p>
  4411.  
  4412.  
  4413.  
  4414. <p>New features include:</p>
  4415.  
  4416.  
  4417.  
  4418. <ul>
  4419. <li>UI compatibility mode between clients – to create apps with default elements that look similar on all device operating systems, instead of using the native look-and-feel of each OS (shown above)</li>
  4420.  
  4421.  
  4422.  
  4423. <li>Support for Android 13</li>
  4424.  
  4425.  
  4426.  
  4427. <li>Support for additional versions of popular databases</li>
  4428.  
  4429.  
  4430.  
  4431. <li>Asynchronous progress update (e.g., displaying a progress bar)</li>
  4432.  
  4433.  
  4434.  
  4435. <li>Deployment of very large (100MB +) server-side files</li>
  4436.  
  4437.  
  4438.  
  4439. <li>Support for EXCLUSIVE transactions in SQLite databases</li>
  4440.  
  4441.  
  4442.  
  4443. <li>Option to not save child tables</li>
  4444.  
  4445.  
  4446.  
  4447. <li>New Actions: copy/paste to clipboard</li>
  4448.  
  4449.  
  4450.  
  4451. <li>New button image: Web</li>
  4452.  
  4453.  
  4454.  
  4455. <li>Strikethrough font for additional controls</li>
  4456.  
  4457.  
  4458.  
  4459. <li>Major updates for no-code development using RecordsManager (see next section)</li>
  4460. </ul>
  4461.  
  4462.  
  4463.  
  4464. <h3 class="wp-block-heading" id="h-new-in-recordsmanager-2-0">New in RecordsManager 2.0</h3>
  4465.  
  4466.  
  4467.  
  4468. <p>RecordsManager is a pre-built, completely <strong>no-code</strong> solution for <a href="https://www.altova.com/recordsmanager">creating custom database apps</a> in MobileTogether Designer. One of the biggest advantages of RecordsManager is that app creators don&#8217;t need to build the database backend themselves. This saves an incredible amount of time and work and allows system administrators or developers of all skill levels to easily create effective apps, such as the sample contract management database app shown below.</p>
  4469.  
  4470.  
  4471.  
  4472. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="546" src="https://www.altova.com/blog/wp-content/uploads/AltovaRecordsManager.png" alt="" class="wp-image-26832" srcset="https://www.altova.com/blog/wp-content/uploads/AltovaRecordsManager.png 700w, https://www.altova.com/blog/wp-content/uploads/AltovaRecordsManager-300x234.png 300w" sizes="(max-width: 700px) 100vw, 700px" /><figcaption class="wp-element-caption"><em>Visual, no code app development with RecordsManager</em></figcaption></figure>
  4473.  
  4474.  
  4475.  
  4476. <p></p>
  4477.  
  4478.  
  4479.  
  4480. <p>New features include:</p>
  4481.  
  4482.  
  4483.  
  4484. <ul>
  4485. <li>Major scripting extensions: the visual scripting editor lets app administrators define sophisticated app behavior in response to user input (shown below)</li>
  4486.  
  4487.  
  4488.  
  4489. <li>New “User” field type: to note which user created or modified a record, who is responsible for reviewing it, etc.</li>
  4490.  
  4491.  
  4492.  
  4493. <li>Hierarchical user groups: make roles assignments easier for firms where users belong to multiple groups (e.g., office, department, management team, etc.)</li>
  4494.  
  4495.  
  4496.  
  4497. <li>Admin search in database configuration</li>
  4498.  
  4499.  
  4500.  
  4501. <li>Home page alert forms</li>
  4502.  
  4503.  
  4504.  
  4505. <li>Extended List Form sorting options</li>
  4506.  
  4507.  
  4508.  
  4509. <li>Share Record button</li>
  4510.  
  4511.  
  4512.  
  4513. <li>Browser button for fields</li>
  4514. </ul>
  4515.  
  4516.  
  4517.  
  4518. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="618" height="669" src="https://www.altova.com/blog/wp-content/uploads/recordsmanager-scripting-1.png" alt="" class="wp-image-27028" srcset="https://www.altova.com/blog/wp-content/uploads/recordsmanager-scripting-1.png 618w, https://www.altova.com/blog/wp-content/uploads/recordsmanager-scripting-1-277x300.png 277w" sizes="(max-width: 618px) 100vw, 618px" /><figcaption class="wp-element-caption"><em>Visual scripting editor to configure sophisticated app behavior</em></figcaption></figure>
  4519.  
  4520.  
  4521.  
  4522. <p></p>
  4523.  
  4524.  
  4525.  
  4526. <h2 class="wp-block-heading" id="h-update-now">Update Now</h2>
  4527.  
  4528.  
  4529.  
  4530. <p>Read more about new features in <a href="https://www.altova.com/mobiletogether/whatsnew">MobileTogether</a> and <a href="https://www.altova.com/recordsmanager/whatsnew">RecordsManager</a>. New and existing customers can update to the latest version by <a href="https://www.altova.com/mobiletogether/download">downloading the free MobileTogether Designer</a>.</p>
  4531. <p>The post <a href="https://www.altova.com/blog/new-app-development-tools/">New App Development Tools</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  4532. ]]></content:encoded>
  4533. </item>
  4534. <item>
  4535. <title>How to Get EBA XBRL from Excel</title>
  4536. <link>https://www.altova.com/blog/get-excel-into-eba-xbrl/</link>
  4537. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  4538. <pubDate>Wed, 14 Dec 2022 13:21:00 +0000</pubDate>
  4539. <category><![CDATA[Applications]]></category>
  4540. <category><![CDATA[Software]]></category>
  4541. <category><![CDATA[XBRL]]></category>
  4542. <category><![CDATA[EBA]]></category>
  4543. <category><![CDATA[Excel add-in]]></category>
  4544. <guid isPermaLink="false">http://blog.altova.com/?p=2542</guid>
  4545.  
  4546. <description><![CDATA[<p>Like other regulatory agencies around the world, the European Banking Authority (EBA) has standardized on XBRL for the transmission of data submitted by filing entities. Benefits of using XBRL include increased accuracy and efficiency of supervisory practices and risk identification. The use of XBRL benefits filing organizations as well, because the now-standardized data can be [&#8230;]</p>
  4547. <p>The post <a href="https://www.altova.com/blog/get-excel-into-eba-xbrl/">How to Get EBA XBRL from Excel</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  4548. ]]></description>
  4549. <content:encoded><![CDATA[<p>Like other regulatory agencies around the world, the <a href="https://www.eba.europa.eu/">European Banking Authority</a> (EBA) has standardized on <a href="https://www.xbrl.org/">XBRL</a> for the transmission of data submitted by filing entities. Benefits of using XBRL include increased accuracy and efficiency of supervisory practices and risk identification. The use of XBRL benefits filing organizations as well, because the now-standardized data can be easily validated and then used further for automated report generation and other common requirements.</p>
  4550. <p>However, the challenge lies in getting backend data into a valid XBRL format according to the EBA Taxonomy, especially since the employees recording the data are generally financial professionals and not familiar with XBRL syntax.</p>
  4551. <p>Let’s take a look at how EBA reporting tools can make it easier.</p>
  4552. <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2543" src="https://www.altova.com/blog/wp-content/uploads/Blog_EBA.png" alt="EBA XBRL from Excel " width="700" height="335" srcset="https://www.altova.com/blog/wp-content/uploads/Blog_EBA.png 700w, https://www.altova.com/blog/wp-content/uploads/Blog_EBA-300x144.png 300w, https://www.altova.com/blog/wp-content/uploads/Blog_EBA-450x215.png 450w" sizes="(max-width: 700px) 100vw, 700px" /></p>
  4553. <p><span id="more-2542"></span></p>
  4554. <h2>EBA Reporting Tools</h2>
  4555. <p>There are various ways to get financial data from backend data stores to a valid XBRL format according to the EBA XBRL filing rules. You might outsource XBRL tagging to one of many third-party services, but this quickly becomes cost prohibitive when filing requirements reoccur every quarter. Outsourcing can also present a significant time delay by adding another layer of service to reporting.</p>
  4556. <p>An in-house solution is to <a href="https://www.altova.com/mapforce/xbrl-mapping.html">map data from a relational database right into XBRL</a>, which also has the advantage of automatically generating recurrent filing reports – but you need to be fairly technical to get such a solution off the ground.</p>
  4557. <p>What if you could get the EBA XBRL directly from a ubiquitous productivity tool that finance pros are already using for working with financial data, namely, Excel?</p>
  4558. <h3>Excel Template for EBA Reporting</h3>
  4559. <p>The Altova <strong><a href="https://www.altova.com/eba-xbrl.html">European Banking Authority (EBA) XBRL add-in for Excel</a></strong> makes it easy to build valid XBRL reports using an intelligent EBA spreadsheet template. The add-in is fully compliant with the most recent EBA Taxonomy version as well as previous versions. Once you enter data in the Excel template, the add-in generates a valid report in XBRL behind the scenes for submission.</p>
  4560. <p>This means that if you can enter data in Excel, you can <a href="https://www.altova.com/eba-xbrl">create EBA reports</a> in XBRL – without any specialized technical expertise required!</p>
  4561. <p>After installing the add-in once, you&#8217;ll have access to a feature-rich Excel template with preset rows and columns, as well as a helpful EBA Filing Pane with entry-helpers to guide you while entering your report.</p>
  4562. <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2556" src="https://www.altova.com/blog/wp-content/uploads/eba-xbrl.png" alt="Excel to EBA XBRL" width="700" height="384" srcset="https://www.altova.com/blog/wp-content/uploads/eba-xbrl.png 700w, https://www.altova.com/blog/wp-content/uploads/eba-xbrl-300x165.png 300w, https://www.altova.com/blog/wp-content/uploads/eba-xbrl-450x247.png 450w" sizes="(max-width: 700px) 100vw, 700px" /></p>
  4563. <p>To get started, you might opt to re-use existing assets to complete the template: you can import information via Excel formulas or simply copy/paste it into the correct cells. Or, this template can replace your previous tracking spreadsheets, and you can simply update the information here, going forward.</p>
  4564. <h3>EBA Filing Pane</h3>
  4565. <p>The EBA Filing Pane to the right of the EBA template guides you in creating a valid report with options to specify properties, select tables, and read more about cell contents while creating the report.</p>
  4566. <p>In the EBA Filing Properties window, you can view and configure numerous properties that directly affect the content of the XBRL instance file that will be created when you export the Excel to EBA XBRL. When you click a property, you can view a description of what the property does at the bottom of the window before selecting a value.</p>
  4567. <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2558" src="https://www.altova.com/blog/wp-content/uploads/eba-filing-properties2.png" alt="EBA XBRL Filing Properties" width="700" height="384" srcset="https://www.altova.com/blog/wp-content/uploads/eba-filing-properties2.png 700w, https://www.altova.com/blog/wp-content/uploads/eba-filing-properties2-300x165.png 300w, https://www.altova.com/blog/wp-content/uploads/eba-filing-properties2-450x247.png 450w" sizes="(max-width: 700px) 100vw, 700px" /></p>
  4568. <p>The Tables window is where you review and select the various tables in the report. Each table with a check box next to it appears on a new sheet (i.e., tab) in the Excel book. To go to a specific sheet, either navigate by selecting the spreadsheet tab or click the corresponding table in the Tables window. To hide the sheet of a particular table, simply uncheck it.</p>
  4569. <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2546" src="https://www.altova.com/blog/wp-content/uploads/tables.png" alt="EBA XBRL tables" width="700" height="335" srcset="https://www.altova.com/blog/wp-content/uploads/tables.png 700w, https://www.altova.com/blog/wp-content/uploads/tables-300x144.png 300w, https://www.altova.com/blog/wp-content/uploads/tables-450x215.png 450w" sizes="(max-width: 700px) 100vw, 700px" /></p>
  4570. <p>Finally, the Cell Documentation window provides information as described in the underlying taxonomy about the currently selected cell in your report, so you’ll understand exactly what to enter.</p>
  4571. <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2549" src="https://www.altova.com/blog/wp-content/uploads/cell-documentation.png" alt="cell documentation" width="700" height="227" srcset="https://www.altova.com/blog/wp-content/uploads/cell-documentation.png 700w, https://www.altova.com/blog/wp-content/uploads/cell-documentation-300x97.png 300w, https://www.altova.com/blog/wp-content/uploads/cell-documentation-450x146.png 450w" sizes="(max-width: 700px) 100vw, 700px" /></p>
  4572. <p>The EBA ribbon also includes a Help button to get more in-depth guidance during report creation.</p>
  4573. <p>As you’re working, you can check the report to ensure the data you’re filing conforms to the EBA XBRL taxonomy by clicking the Validate button in the Excel ribbon. The Validation Report dialog displays detailed information about any errors or inconsistencies.</p>
  4574. <h3>Generate EBA XBRL</h3>
  4575. <p>Once your report is complete in Excel, simply click the Export XBRL button in the EBA ribbon, and the add-in will generate a valid XBRL document for submission, which you can save as required.</p>
  4576. <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2545" src="https://www.altova.com/blog/wp-content/uploads/export-eba-xbrl.png" alt="Generate EBA XBRL" width="700" height="200" srcset="https://www.altova.com/blog/wp-content/uploads/export-eba-xbrl.png 700w, https://www.altova.com/blog/wp-content/uploads/export-eba-xbrl-300x86.png 300w, https://www.altova.com/blog/wp-content/uploads/export-eba-xbrl-450x129.png 450w" sizes="(max-width: 700px) 100vw, 700px" /></p>
  4577. <h3>View Existing EBA XBRL in Excel</h3>
  4578. <p>The EBA XBRL Add-in for Excel also makes it easy to view and/or edit existing XBRL reports, directly in Excel. Click the Import from XBRL button to open an EBA XBRL document in the same easy-to-understand template.</p>
  4579. <h3>Extension Taxonomies</h3>
  4580. <div class="col-12 px-0">
  4581. <p class="pt-2">In addition to the EBA taxonomy, the add-in supports report creation for several local taxonomies:</p>
  4582. </div>
  4583. <ul class="">
  4584. <li style="list-style-type: none;">
  4585. <ul class="">
  4586. <li class="list__list-item"><a href="https://esurfi-banque.banque-france.fr/current/taxonomies/taxonomie-corep" target="_blank" rel="noopener">ACPR</a> &#8211; Autorité de Contrôle Prudentiel et de Résolution filing rules from Banque de France</li>
  4587. <li><a href="https://www.bundesbank.de/en/service/reporting-systems/banking-supervision/corep-finrep/-/xbrl-taxonomies-for-eba-reporting-pursuant-to-its-as-of-december-2018-taxonomie-2-8-1-1-including-ecb-sfrdp-taxonomie-3-0-0-1-619278">BBK </a>&#8211; Deutsche Bundesbank Taxonomy</li>
  4588. </ul>
  4589. </li>
  4590. </ul>
  4591. <ul class="">
  4592. <li style="list-style-type: none;">
  4593. <ul class="">
  4594. <li class="list__list-item"><a href="https://www.bankofengland.co.uk/prudential-regulation/regulatory-reporting/regulatory-reporting-banking-sector" target="_blank" rel="noopener">BOE</a> &#8211; Bank of England (BOE) filing rules</li>
  4595. </ul>
  4596. </li>
  4597. </ul>
  4598. <ul class="">
  4599. <li style="list-style-type: none;">
  4600. <ul class="">
  4601. <li class="list__list-item"><a href="https://www.bportugal.pt/en/" target="_blank" rel="noopener">BDP</a> &#8211; Banco de Portugal (BDP) filing rules</li>
  4602. </ul>
  4603. </li>
  4604. </ul>
  4605. <ul class="">
  4606. <li style="list-style-type: none;">
  4607. <ul class="">
  4608. <li class="list__list-item"><a href="https://www.pensioenfederatie.nl/website/the-financial-assessment-framework-financieel-toetsingskader-or-ftk" target="_blank" rel="noopener">FTK</a> &#8211; De Nederlandsche Bank Financieel Toetsingskader (DNB FTK) filing rules</li>
  4609. </ul>
  4610. </li>
  4611. </ul>
  4612. <ul class="">
  4613. <li style="list-style-type: none;">
  4614. <ul class="">
  4615. <li class="list__list-item"><a href="https://www.srb.europa.eu/en/content/reporting">SRB </a>&#8211; Single Resolution Board (SRB) filing rules</li>
  4616. </ul>
  4617. </li>
  4618. </ul>
  4619. <p>To create reports according to any of these, simply download and install the required taxonomies from the <a href="https://www.altova.com/eba-xbrl/download#components">EBA XBRL Add-in download page</a>, and they will be available during report creation.</p>
  4620. <h2>Try it Now</h2>
  4621. <p>The <a href="https://www.altova.com/eba-xbrl.html">EBA XBRL Add-in for Excel</a> is available for a free, 30-day trial. Simply download and install the software, and when you open Excel the newly installed EBA ribbon will allow you to request a free trial keycode via the Add-in Activation button.</p>
  4622. <p>Learn about other <a href="https://www.altova.com/regulatory-solutions">Regulatory Solutions</a> from Altova for CBCR, EBA, WIP, Solvency II, and more.</p>
  4623. <p>The post <a href="https://www.altova.com/blog/get-excel-into-eba-xbrl/">How to Get EBA XBRL from Excel</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  4624. ]]></content:encoded>
  4625. </item>
  4626. <item>
  4627. <title>Learn About XQuery Update Facility</title>
  4628. <link>https://www.altova.com/blog/learn-about-xquery-update-facility/</link>
  4629. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  4630. <pubDate>Wed, 07 Dec 2022 14:00:00 +0000</pubDate>
  4631. <category><![CDATA[Development]]></category>
  4632. <category><![CDATA[XQuery]]></category>
  4633. <category><![CDATA[demo videos]]></category>
  4634. <category><![CDATA[XMLSpy]]></category>
  4635. <category><![CDATA[XQuery Update Facility]]></category>
  4636. <guid isPermaLink="false">http://blog.us.altova.com/?p=25</guid>
  4637.  
  4638. <description><![CDATA[<p>XQuery Update Facility is an extension of the XQuery language that allows you to make changes in an XML document using “update expressions” that insert, delete, replace, or rename nodes. This extension provides a convenient way to make intelligent updates to XML documents, and XMLSpy has a unique implementation that makes it even easier. Let’s [&#8230;]</p>
  4639. <p>The post <a href="https://www.altova.com/blog/learn-about-xquery-update-facility/">Learn About XQuery Update Facility</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  4640. ]]></description>
  4641. <content:encoded><![CDATA[<p>XQuery Update Facility is an extension of the XQuery language that allows you to make changes in an XML document using “update expressions” that insert, delete, replace, or rename nodes. This extension provides a convenient way to make intelligent updates to XML documents, and XMLSpy has a unique implementation that makes it even easier. Let’s see how it works.</p>
  4642. <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1975" src="https://www.altova.com/blog/wp-content/uploads/shutterstock_113438227.jpg" alt="News about XML find / replace" width="700" height="335" srcset="https://www.altova.com/blog/wp-content/uploads/shutterstock_113438227.jpg 700w, https://www.altova.com/blog/wp-content/uploads/shutterstock_113438227-300x144.jpg 300w, https://www.altova.com/blog/wp-content/uploads/shutterstock_113438227-450x215.jpg 450w" sizes="(max-width: 700px) 100vw, 700px" /></p>
  4643. <p><span id="more-25"></span></p>
  4644. <h2><strong>What is XQuery Update Facility?</strong></h2>
  4645. <p>XQuery Update Facility (XQUF) is an XQuery language extension specifying FLWOR expressions that can be used to make persistent changes to XML instance(s). These expressions update nodes using any or all of the following operations:</p>
  4646. <ul>
  4647. <li>Insert a node</li>
  4648. <li>Delete a node</li>
  4649. <li>Replace a node and its descendants</li>
  4650. <li>Replace the contents or value of a node</li>
  4651. <li>Rename a node</li>
  4652. </ul>
  4653. <p>For instance, in the screenshot below, we’re using XQuery Update to replace the value of a node by adding a “1” to the phone extension for employees in US-based offices and a “2” to other extensions to accommodate a change to a four-digit phone extension.</p>
  4654. <h2><strong>XQuery Update in XMLSpy</strong></h2>
  4655. <p>XMLSpy supports both <a href="http://www.w3.org/TR/xquery-update-10/">XQuery Update 1.0</a> and <a href="http://www.w3.org/TR/xquery-update-30/">3.0</a>. The XPath/XQuery Builder shown below makes it easy to compose and test the five types of update expressions with syntax coloring, code completion, and error message reporting. You can preview the results of your update expressions as you type for easy troubleshooting, and clicking on a result tin the preview window highlights the affected node in your instance document. Then, you can execute the updates with one click — either in the current file or across all open files, a folder, or an entire XMLSpy project.</p>
  4656. <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3871" src="https://www.altova.com/blog/wp-content/uploads/xquery-update-facility.png" alt="XQuery Update Facility" width="701" height="832" srcset="https://www.altova.com/blog/wp-content/uploads/xquery-update-facility.png 701w, https://www.altova.com/blog/wp-content/uploads/xquery-update-facility-253x300.png 253w, https://www.altova.com/blog/wp-content/uploads/xquery-update-facility-594x705.png 594w, https://www.altova.com/blog/wp-content/uploads/xquery-update-facility-450x534.png 450w" sizes="(max-width: 701px) 100vw, 701px" /></p>
  4657. <p>XQuery Update statements are also supported during full execution of an XQuery document (Alt + F10).</p>
  4658. <h3><strong>What makes the XMLSpy implementation so innovative?</strong></h3>
  4659. <p>According to the standard, that the result of an XQuery Update execution is a <em>new</em> XML file based on the original file and the specified modifications. This means that each execution completely reformats the document.</p>
  4660. <p>XMLSpy lets you skip this intermediary step, because it allows you to make updates directly in the specified XML file(s) without having to create a new file.</p>
  4661. <p>In this way, you’re armed with an intelligent mechanism for implementing XQuery Update via a familiar find-and-replace paradigm. However, because XQuery Update provides for sophisticated updates using the power of FLWOR statements, it overcomes the limitations of find-and-replace and lets you make complex, intelligent XML file modifications quickly and easily.</p>
  4662. <h3><strong>How does it work? </strong></h3>
  4663. <p>See how it all works in this brief video, which walks you quickly through editing XQuery Update expressions in XMLSpy and also serves as a quick tutorial about how XQuery Update Facility works if you’re unfamiliar with the syntax.</p>
  4664. <div style="margin: 0px; padding: 0px;">
  4665. <div class='avia-iframe-wrap'><iframe loading="lazy" title="XQuery Update Facility in XMLSpy" width="1500" height="844" src="https://www.youtube.com/embed/pJ0380Y1JPg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>
  4666. </div>
  4667. <p>To try working with XQuery Update Facility yourself, you can <a href="https://www.altova.com/xmlspy-xml-editor/download">download a free trial of XMLSpy</a>.</p>
  4668. <p>The post <a href="https://www.altova.com/blog/learn-about-xquery-update-facility/">Learn About XQuery Update Facility</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  4669. ]]></content:encoded>
  4670. </item>
  4671. <item>
  4672. <title>Validating and Debugging Data Transformations</title>
  4673. <link>https://www.altova.com/blog/validating-data-transformation/</link>
  4674. <dc:creator><![CDATA[David McGahey]]></dc:creator>
  4675. <pubDate>Wed, 30 Nov 2022 13:00:00 +0000</pubDate>
  4676. <category><![CDATA[Data Integration]]></category>
  4677. <category><![CDATA[Tools]]></category>
  4678. <category><![CDATA[data integration]]></category>
  4679. <category><![CDATA[data mapping]]></category>
  4680. <category><![CDATA[data mapping debugger]]></category>
  4681. <category><![CDATA[data mapping validation]]></category>
  4682. <category><![CDATA[MapForce]]></category>
  4683. <guid isPermaLink="false">https://www.altova.com/blog/?p=4942</guid>
  4684.  
  4685. <description><![CDATA[<p>Software developers and other data professionals often need to transform data from one format to another. These transformations can be simple one-to-one conversions or may require more complex manipulation. For instance, relationships must be generated when importing flat CSV files into a database, or source data may need to be split for the target, as [&#8230;]</p>
  4686. <p>The post <a href="https://www.altova.com/blog/validating-data-transformation/">Validating and Debugging Data Transformations</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  4687. ]]></description>
  4688. <content:encoded><![CDATA[
  4689. <p>Software developers and other data professionals often need to transform data from one format to another. These transformations can be simple one-to-one conversions or may require more complex manipulation. For instance, relationships must be generated when importing flat CSV files into a database, or source data may need to be split for the target, as in full name vs. first, middle, last, and optional suffix. Validating data transformation is critical to prevent data loss or corruption.</p>
  4690.  
  4691.  
  4692.  
  4693. <p>In an earlier post on <a href="https://www.altova.com/blog/web-service-data-integration/">Web service data integration</a>, we combined a string value for GMT time with a numeric offset in seconds to generate the local time for weather forecasts. We created a user function that performed all the steps required to complete this operation. MapForce includes a powerful interactive data mapping debugger that can easily trace and validate this transformation. Let’s take a look at how it works.</p>
  4694.  
  4695.  
  4696.  
  4697. <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/Mapforce_debug_blog_1.jpg" alt="A software developer working on a computer" class="wp-image-4962" srcset="https://www.altova.com/blog/wp-content/uploads/Mapforce_debug_blog_1.jpg 700w, https://www.altova.com/blog/wp-content/uploads/Mapforce_debug_blog_1-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  4698.  
  4699.  
  4700.  
  4701. <span id="more-4942"></span>
  4702.  
  4703.  
  4704.  
  4705. <p>Here is the view of the user function calc-local-time in our data transformation project. As you can see, MapForce supports no-code data mapping via a visual, drag and drop inteface.</p>
  4706.  
  4707.  
  4708.  
  4709. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/data-mapping-1-2.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/data-mapping-1-2.png" alt="A user function to calculate local time in the data transformation project" class="wp-image-4943" width="605" height="485" srcset="https://www.altova.com/blog/wp-content/uploads/data-mapping-1-2.png 806w, https://www.altova.com/blog/wp-content/uploads/data-mapping-1-2-300x240.png 300w, https://www.altova.com/blog/wp-content/uploads/data-mapping-1-2-768x616.png 768w, https://www.altova.com/blog/wp-content/uploads/data-mapping-1-2-705x565.png 705w" sizes="(max-width: 605px) 100vw, 605px" /></a></figure>
  4710.  
  4711.  
  4712.  
  4713. <p>The function accepts dt_txt, which is a string value for a date and time in the form 2020-02-22 18:00:00, and the numeric value of timezone, the offset from GMT for the forecast location provided in seconds.</p>
  4714.  
  4715.  
  4716.  
  4717. <p>The output of the function is mapped to column A of an Excel spreadsheet once the data is transformed. Inside the spreadsheet the format of column A is defined as Date, and the format specified includes the time, as in 5/20/20 4:00 PM.</p>
  4718.  
  4719.  
  4720.  
  4721. <p>Double-clicking the header of the user function expands it to show the individual operations:</p>
  4722.  
  4723.  
  4724.  
  4725. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/calc-local-time-1.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/calc-local-time-1.png" alt="Operations included in the user function to calculate local time" class="wp-image-4945" width="615" height="240" srcset="https://www.altova.com/blog/wp-content/uploads/calc-local-time-1.png 820w, https://www.altova.com/blog/wp-content/uploads/calc-local-time-1-300x117.png 300w, https://www.altova.com/blog/wp-content/uploads/calc-local-time-1-768x300.png 768w, https://www.altova.com/blog/wp-content/uploads/calc-local-time-1-705x275.png 705w" sizes="(max-width: 615px) 100vw, 615px" /></a></figure>
  4726.  
  4727.  
  4728.  
  4729. <p>The two input values are on the right and the final output labelled A is on the far left. Explained simply, the function adds the seconds in timezone to the dt_txt date and time to calculate the local time. MapForce includes a built-in datetime-add function that performs this operation, shown in the image above, just to the left of the output value A. But nothing is as simple as it looks! The input values received from the Web service enter in different formats and must be adjusted to the format and&nbsp; syntax of the datetime-add function.</p>
  4730.  
  4731.  
  4732.  
  4733. <h3 class="wp-block-heading" id="h-validating-data-transformation-using-the-mapforce-debugger">Validating Data Transformation Using the MapForce Debugger</h3>
  4734.  
  4735.  
  4736.  
  4737. <p>We can use the MapForce<a href="https://www.altova.com/mapforce#data_mapping_debugger"> data transformation debugger</a> to trace the steps of the user function to make sure it gives the desired result. First, we’ll set a debugging breakpoint by right-clicking the timezone input:</p>
  4738.  
  4739.  
  4740.  
  4741. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/debug-1.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/debug-1.png" alt="Validating data transformation with a debugger breakpoint" class="wp-image-4946" width="638" height="225" srcset="https://www.altova.com/blog/wp-content/uploads/debug-1.png 850w, https://www.altova.com/blog/wp-content/uploads/debug-1-300x106.png 300w, https://www.altova.com/blog/wp-content/uploads/debug-1-768x271.png 768w, https://www.altova.com/blog/wp-content/uploads/debug-1-705x249.png 705w" sizes="(max-width: 638px) 100vw, 638px" /></a></figure>
  4742.  
  4743.  
  4744.  
  4745. <p>Several debugging helper windows are opened and the transformation proceeds until the breakpoint is reached. The processed value at the breakpoint is highlighted:</p>
  4746.  
  4747.  
  4748.  
  4749. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/debug-2.png" target="_blank"><img loading="lazy" decoding="async" width="517" height="321" src="https://www.altova.com/blog/wp-content/uploads/debug-2.png" alt="Debugging the data transformation pauses at the breakpoint" class="wp-image-4947" srcset="https://www.altova.com/blog/wp-content/uploads/debug-2.png 517w, https://www.altova.com/blog/wp-content/uploads/debug-2-300x186.png 300w" sizes="(max-width: 517px) 100vw, 517px" /></a></figure>
  4750.  
  4751.  
  4752.  
  4753. <p>We have several stepping options to continue execution. The Minimal Step option provides the most granular view of each data transformation step.</p>
  4754.  
  4755.  
  4756.  
  4757. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/debug-3.png" target="_blank"><img loading="lazy" decoding="async" width="290" height="84" src="https://www.altova.com/blog/wp-content/uploads/debug-3.png" alt="Debugger stepping options in the MapForce toolbar" class="wp-image-4948"/></a></figure>
  4758.  
  4759.  
  4760.  
  4761. <p>This command subdivides a step and will typically stop twice for each connection: once when its source produces a value and once when its target consumes it. Repeatedly clicking Minimal Step continues executing the transformation and allows us to see exactly what happens as the calc-local-time function processes:</p>
  4762.  
  4763.  
  4764.  
  4765. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/debug-4.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/debug-4.png" alt="Stepping through execution of the user defined function" class="wp-image-4950" width="615" height="245" srcset="https://www.altova.com/blog/wp-content/uploads/debug-4.png 820w, https://www.altova.com/blog/wp-content/uploads/debug-4-300x119.png 300w, https://www.altova.com/blog/wp-content/uploads/debug-4-768x305.png 768w, https://www.altova.com/blog/wp-content/uploads/debug-4-705x280.png 705w" sizes="(max-width: 615px) 100vw, 615px" /></a></figure>
  4766.  
  4767.  
  4768.  
  4769. <p>As we continue stepping through execution, values at each connection are added to the window.</p>
  4770.  
  4771.  
  4772.  
  4773. <p>The built-in datetime-add function requires a datetime value for the first input and a string value specifying the period of time to add as the second value. In the image below we continued stepping all the way up to production of the output value. Highlighted are the inputs to the datetime-add function and the final produced result:</p>
  4774.  
  4775.  
  4776.  
  4777. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/debug-5.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/debug-5.png" alt="Continued stepping to view the function result" class="wp-image-4952" width="630" height="242" srcset="https://www.altova.com/blog/wp-content/uploads/debug-5.png 840w, https://www.altova.com/blog/wp-content/uploads/debug-5-300x115.png 300w, https://www.altova.com/blog/wp-content/uploads/debug-5-768x294.png 768w, https://www.altova.com/blog/wp-content/uploads/debug-5-705x270.png 705w" sizes="(max-width: 630px) 100vw, 630px" /></a></figure>
  4778.  
  4779.  
  4780.  
  4781. <p>The original offset value for seconds is 28,800 seconds, which equals eight hours. The produced result is eight hours later than the dt_txt reference time, so the output is valid.</p>
  4782.  
  4783.  
  4784.  
  4785. <h3 class="wp-block-heading" id="h-considering-other-cases">Considering Other Cases</h3>
  4786.  
  4787.  
  4788.  
  4789. <p>The offset from GMT time will only be positive for locations that are east of GMT. Locations west of GMT should have a negative offset. In other words, New York is west of London and local time is earlier. Beijing is east of GMT and local time is later.</p>
  4790.  
  4791.  
  4792.  
  4793. <p>We need to validate the calc-local-time function for a case where the timezone offset is negative.</p>
  4794.  
  4795.  
  4796.  
  4797. <p>There are several ways we could do that. Our input list of cites has some locations east of GMT and some to the west. We could keep stepping through execution until we encounter a location with a negative timezone.</p>
  4798.  
  4799.  
  4800.  
  4801. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/port-list-grid-1.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/port-list-grid-1.png" alt="View of the city list input file for the Eb service data mapping" class="wp-image-4953" width="570" height="464" srcset="https://www.altova.com/blog/wp-content/uploads/port-list-grid-1.png 760w, https://www.altova.com/blog/wp-content/uploads/port-list-grid-1-300x244.png 300w, https://www.altova.com/blog/wp-content/uploads/port-list-grid-1-705x573.png 705w" sizes="(max-width: 570px) 100vw, 570px" /></a></figure>
  4802.  
  4803.  
  4804.  
  4805. <p>The Web service returns 40 forecasts for each city, so stepping though the entire first four cities would be tedious.</p>
  4806.  
  4807.  
  4808.  
  4809. <p>We could modify the list of cities to insert a new one from the western hemisphere at the top of the list or we could create a new&nbsp; input file for a test case. In many situations that’s a reasonable testing strategy.</p>
  4810.  
  4811.  
  4812.  
  4813. <p>Or, we can set a breakpoint condition. If we can set the breakpoint to pause only when the value encountered is negative, we can continue with our original input file. That will be the fastest way to reach a final conclusion.</p>
  4814.  
  4815.  
  4816.  
  4817. <p>Returning to the data mapping, we right-click the breakpoint to modify its properties:</p>
  4818.  
  4819.  
  4820.  
  4821. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/breakpoint-props-1.png" target="_blank"><img loading="lazy" decoding="async" width="557" height="294" src="https://www.altova.com/blog/wp-content/uploads/breakpoint-props-1.png" alt="Modifying the breakpoint properties" class="wp-image-4954" srcset="https://www.altova.com/blog/wp-content/uploads/breakpoint-props-1.png 557w, https://www.altova.com/blog/wp-content/uploads/breakpoint-props-1-300x158.png 300w" sizes="(max-width: 557px) 100vw, 557px" /></a></figure>
  4822.  
  4823.  
  4824.  
  4825. <p>This opens a dialog where we set a property to make the breakpoint conditional. In the image below shows the condition to halt execution if the timezone value is negative:</p>
  4826.  
  4827.  
  4828.  
  4829. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/breakpoint-props-2.png" target="_blank"><img loading="lazy" decoding="async" width="427" height="349" src="https://www.altova.com/blog/wp-content/uploads/breakpoint-props-2.png" alt="Breakpoint properties dialog for data transformation validation" class="wp-image-4955" srcset="https://www.altova.com/blog/wp-content/uploads/breakpoint-props-2.png 427w, https://www.altova.com/blog/wp-content/uploads/breakpoint-props-2-300x245.png 300w" sizes="(max-width: 427px) 100vw, 427px" /></a></figure>
  4830.  
  4831.  
  4832.  
  4833. <p>Now we can re-execute the mapping in debug mode. The first few cities on the input list that are all east of GMT are processed. When the first negative timezone value is encountered, the breakpoint is triggered and execution pauses.</p>
  4834.  
  4835.  
  4836.  
  4837. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/debug-6.png" target="_blank"><img loading="lazy" decoding="async" width="497" height="188" src="https://www.altova.com/blog/wp-content/uploads/debug-6.png" alt="The breakpoint condition is encountered and execution pauses" class="wp-image-4956" srcset="https://www.altova.com/blog/wp-content/uploads/debug-6.png 497w, https://www.altova.com/blog/wp-content/uploads/debug-6-300x113.png 300w, https://www.altova.com/blog/wp-content/uploads/debug-6-495x188.png 495w" sizes="(max-width: 497px) 100vw, 497px" /></a></figure>
  4838.  
  4839.  
  4840.  
  4841. <p>Using the same stepping technique described above, we can trace what happens to the negative value as the calc-local-time function processes.</p>
  4842.  
  4843.  
  4844.  
  4845. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/debug-7.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/debug-7.png" alt="Validating data transformation by tracing execution for a negative input value" class="wp-image-4958" width="641" height="249" srcset="https://www.altova.com/blog/wp-content/uploads/debug-7.png 854w, https://www.altova.com/blog/wp-content/uploads/debug-7-300x117.png 300w, https://www.altova.com/blog/wp-content/uploads/debug-7-768x299.png 768w, https://www.altova.com/blog/wp-content/uploads/debug-7-705x274.png 705w" sizes="(max-width: 641px) 100vw, 641px" /></a></figure>
  4846.  
  4847.  
  4848.  
  4849. <p>The timezone value of -25,200 seconds is converted to a string. Then the built-in concat function adds characters at the beginning and end to build the duration string for the datetime-add function.</p>
  4850.  
  4851.  
  4852.  
  4853. <p>Adding a negative value is the same as subtraction, but at this point the syntax for duration isn’t quite correct. The minus sign (hyphen) needs to be the first character of the duration string, so the replace function searches the string for PT- and if found, replaces it with -PT.</p>
  4854.  
  4855.  
  4856.  
  4857. <p>The value of 25,200 seconds is seven hours. Subtracting seven hours from the input value of 2020-05-23T00:00:00 equals 2020-05-22T17:00:00, or 5/33/2020 at 5:00 PM. We have now validated the user function for cases with positive and negative offsets.</p>
  4858.  
  4859.  
  4860.  
  4861. <p></p>
  4862.  
  4863.  
  4864.  
  4865. <p>Whether you are validating data transformation for accuracy or tracking down an unexpected result, <a href="https://www.altova.com/mapforce#data_mapping_debugger">debugging data conversion</a> and transformation in MapForce  provides deep insight into the exact inner workings of data integration and ETL projects in a way that was never possible before, even in much higher-cost data mapping products.</p>
  4866.  
  4867.  
  4868.  
  4869. <p>Watch a quick <a href="https://www.altova.com/mapforce/demos">video demo</a> of MapForce, or <a href="https://www.altova.com/mapforce/download">download a free trial</a>&nbsp;including Tutorials, Help, and many more examples to get started with your own project for JSON and Web service data integration, or other data mapping, conversion, and transformation needs!</p>
  4870.  
  4871.  
  4872.  
  4873. <p></p>
  4874. <p>The post <a href="https://www.altova.com/blog/validating-data-transformation/">Validating and Debugging Data Transformations</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  4875. ]]></content:encoded>
  4876. </item>
  4877. <item>
  4878. <title>Benefits of an XML Schema Manager</title>
  4879. <link>https://www.altova.com/blog/benefits-of-an-xml-schema-manager/</link>
  4880. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  4881. <pubDate>Wed, 09 Nov 2022 13:00:00 +0000</pubDate>
  4882. <category><![CDATA[Tools]]></category>
  4883. <category><![CDATA[XML]]></category>
  4884. <category><![CDATA[XML Schema]]></category>
  4885. <category><![CDATA[XSD]]></category>
  4886. <guid isPermaLink="false">https://www.altova.com/blog/?p=26994</guid>
  4887.  
  4888. <description><![CDATA[<p>Developers working with XML often need to deal with multiple DTDs and XSDs that define industry-standard vocabularies. Whether it’s DITA for technical writing, HL7 for healthcare data, CbCR for financial reporting or any number of examples, it becomes a challenge to manage the various schemas—and numerous versions thereof—on a day-to-day basis. For flexibility and convenience, [&#8230;]</p>
  4889. <p>The post <a href="https://www.altova.com/blog/benefits-of-an-xml-schema-manager/">Benefits of an XML Schema Manager</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  4890. ]]></description>
  4891. <content:encoded><![CDATA[
  4892. <p>Developers working with XML often need to deal with multiple DTDs and XSDs that define industry-standard vocabularies. Whether it’s DITA for technical writing, HL7 for healthcare data, CbCR for financial reporting or any number of examples, it becomes a challenge to manage the various schemas—and numerous versions thereof—on a day-to-day basis.</p>
  4893.  
  4894.  
  4895.  
  4896. <p>For flexibility and convenience, all Altova XML-enabled products include its XML Schema Manager. This provides a centralized utility that makes it easy to download and manage industry schemas for use across the product line. Let’s see how it works.</p>
  4897.  
  4898.  
  4899.  
  4900. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/xml_schema_mgr-1.jpg" alt="Developer working at a computer" class="wp-image-26997" srcset="https://www.altova.com/blog/wp-content/uploads/xml_schema_mgr-1.jpg 700w, https://www.altova.com/blog/wp-content/uploads/xml_schema_mgr-1-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  4901.  
  4902.  
  4903.  
  4904. <span id="more-26994"></span>
  4905.  
  4906.  
  4907.  
  4908. <h2 class="wp-block-heading" id="h-manage-industry-schemas">Manage Industry Schemas</h2>
  4909.  
  4910.  
  4911.  
  4912. <p>The benefits of XML for allowing the definition of meaningful data tags that are both hardware and software independent has given rise to a seemingly endless number of vocabularies that are specific to one industry or business function. Standards-based vocabularies are driven by a <a href="https://www.w3.org/XML/Schema.html">schema </a>(either DTD or XSD) that dictates which tags are permissible when and defines data validation rules to enforce consistency and data quality.</p>
  4913.  
  4914.  
  4915.  
  4916. <p>With these benefits comes a bit of a challenge for XML developers who need to access and work with these various schemas. The websites of standards bodies can be difficult to navigate, and most schemas have numerous iterations as well as additional dependent schema references. It can be like searching for a needle in a haystack to find the required documents and make them available to the various XML enabled tools in your development ecosystem.</p>
  4917.  
  4918.  
  4919.  
  4920. <p>Altova recently announced an XML Schema Manager built into its <a href="https://www.altova.com/xml-tools">XML developer tools</a> and server software products that provides a centralized way manage this process. When you open the XML Schema Manager, you’ll get an instant view of which schemas and versions are already installed on your system.</p>
  4921.  
  4922.  
  4923.  
  4924. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="668" height="735" src="https://www.altova.com/blog/wp-content/uploads/altova-xml-schema-manager.png" alt="Altova XML Schema manager" class="wp-image-26998" srcset="https://www.altova.com/blog/wp-content/uploads/altova-xml-schema-manager.png 668w, https://www.altova.com/blog/wp-content/uploads/altova-xml-schema-manager-273x300.png 273w, https://www.altova.com/blog/wp-content/uploads/altova-xml-schema-manager-641x705.png 641w" sizes="(max-width: 668px) 100vw, 668px" /></figure>
  4925.  
  4926.  
  4927.  
  4928. <p>A selection of the most popular industry schemas is included for download. Simply select the schemas you want to install (or uninstall), and the XML Schema Manager will automatically select any required dependencies. For instance, when installing the EPUB 2.0 schema, the XML Schema Manager will also install the Qualified Dublin Core, which is included in the EPUB schema for defining the metadata associated with e-books.</p>
  4929.  
  4930.  
  4931.  
  4932. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="668" height="735" src="https://www.altova.com/blog/wp-content/uploads/download-industry-schemas.png" alt="Keeping industry schemas up to date for XML development" class="wp-image-26999" srcset="https://www.altova.com/blog/wp-content/uploads/download-industry-schemas.png 668w, https://www.altova.com/blog/wp-content/uploads/download-industry-schemas-273x300.png 273w, https://www.altova.com/blog/wp-content/uploads/download-industry-schemas-641x705.png 641w" sizes="(max-width: 668px) 100vw, 668px" /></figure>
  4933.  
  4934.  
  4935.  
  4936. <p>Once the schemas are installed, they’re available for use with any Altova XML software (XMLSpy, MapForce, StyleVision, RaptorXML Server, etc.) on your system.</p>
  4937.  
  4938.  
  4939.  
  4940. <p>In addition to invoking the Schema Manager manually, any time you open an XML instance for which a schema is available in the manager but is not yet installed, you be given the option to install it. This saves time previously spent searching for the required files. &nbsp;</p>
  4941.  
  4942.  
  4943.  
  4944. <h2 class="wp-block-heading" id="h-stay-up-to-date-with-schema-versions">Stay Up to Date with Schema Versions</h2>
  4945.  
  4946.  
  4947.  
  4948. <p>Altova will update available schema versions frequently when they are released from standards bodies and include the latest versions in the XML Schema Manager. This way you can get the most up-to-date versions quickly and independent of the Altova product release cycle.&nbsp;</p>
  4949.  
  4950.  
  4951.  
  4952. <p>Advantages of using the XML Schema Manager include:</p>
  4953.  
  4954.  
  4955.  
  4956. <ul>
  4957. <li>Viewing all schemas on your system and checking if newer versions are available</li>
  4958.  
  4959.  
  4960.  
  4961. <li>Ability to install one or multiple versions of a given schema</li>
  4962.  
  4963.  
  4964.  
  4965. <li>Automatic detection and installation of dependent schemas</li>
  4966.  
  4967.  
  4968.  
  4969. <li>Faster processing of large schemas</li>
  4970.  
  4971.  
  4972.  
  4973. <li>Downloading new versions independently of the Altova product release cycle</li>
  4974.  
  4975.  
  4976.  
  4977. <li>Changes made in the Altova XML Schema Manager take effect for all installed Altova products</li>
  4978. </ul>
  4979.  
  4980.  
  4981.  
  4982. <p>You can access the manager via the Tools menu in XMLSpy, MapForce, and other desktop developer tools and via the command line for Altova server software products. Alternatively, if you’re working within a secure network and need to download schemas manually, they are available on the Altova web site at <a href="https://www.altova.com/schema-manager">https://www.altova.com/schema-manager</a>.</p>
  4983.  
  4984.  
  4985.  
  4986. <h2 class="wp-block-heading" id="h-manage-xbrl-taxonomies">Manage XBRL Taxonomies</h2>
  4987.  
  4988.  
  4989.  
  4990. <p>In addition to the XML Schema Manager, Altova products include an <a href="https://www.altova.com/blog/manage-xbrl-taxonomies/">XBRL Taxonomy Manager</a> that provides the same functionality. As use of XBRL has exploded worldwide, a huge volume of different XBRL Taxonomies (and dependent schemas) has been developed to reflect local accounting practices in various countries. In addition, many industries, such as construction and insurance, have created their own specialized taxonomies. Like industry standard XML Schemas, these XBRL Taxonomies are revised and updated by standards bodies regularly. The Altova XBRL Taxonomy Manager makes it easier to keep up.</p>
  4991. <p>The post <a href="https://www.altova.com/blog/benefits-of-an-xml-schema-manager/">Benefits of an XML Schema Manager</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  4992. ]]></content:encoded>
  4993. </item>
  4994. <item>
  4995. <title>ESEF Tools</title>
  4996. <link>https://www.altova.com/blog/esef-tools/</link>
  4997. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  4998. <pubDate>Wed, 02 Nov 2022 14:37:09 +0000</pubDate>
  4999. <category><![CDATA[Tools]]></category>
  5000. <category><![CDATA[XBRL]]></category>
  5001. <category><![CDATA[ESEF]]></category>
  5002. <category><![CDATA[Excel add-ins]]></category>
  5003. <category><![CDATA[ixbrl]]></category>
  5004. <category><![CDATA[regulatory solutions]]></category>
  5005. <guid isPermaLink="false">https://www.altova.com/blog/?p=26973</guid>
  5006.  
  5007. <description><![CDATA[<p>The ESEF acronym has been top of mind for finance professionals across the EU and UK since mid 2019, when an upcoming reporting mandate from&#160;the European Securities and Markets Authority (ESMA) was announced. &#160; ESEF, which stands for European Single Electronic Format, is a digital financial reporting standard based on XBRL. As of early 2020, [&#8230;]</p>
  5008. <p>The post <a href="https://www.altova.com/blog/esef-tools/">ESEF Tools</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  5009. ]]></description>
  5010. <content:encoded><![CDATA[
  5011. <p>The ESEF acronym has been top of mind for finance professionals across the EU and UK since mid 2019, when an upcoming reporting mandate from&nbsp;the European Securities and Markets Authority (ESMA) was announced. &nbsp;</p>
  5012.  
  5013.  
  5014.  
  5015. <p>ESEF, which stands for European Single Electronic Format, is a digital financial reporting standard based on XBRL. As of early 2020, companies on EU regulated markets are mandated to prepare their annual reports in accordance with ESEF rules.</p>
  5016.  
  5017.  
  5018.  
  5019. <p>What exactly is ESEF compliance, and what does it take to meet reporting requirements? Let’s take a look at the basics and some tools that make it easy.</p>
  5020.  
  5021.  
  5022.  
  5023. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/finance-pros.jpg" alt="Finance pros " class="wp-image-26992" srcset="https://www.altova.com/blog/wp-content/uploads/finance-pros.jpg 700w, https://www.altova.com/blog/wp-content/uploads/finance-pros-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  5024.  
  5025.  
  5026.  
  5027. <span id="more-26973"></span>
  5028.  
  5029.  
  5030.  
  5031. <h2 class="wp-block-heading" id="h-what-is-esef">What is ESEF?</h2>
  5032.  
  5033.  
  5034.  
  5035. <p>ESEF is an electronic reporting standard created by <a href="https://www.esma.europa.eu/">ESMA</a>, the EU’s securities markets regulator. The standard is part of the organization’s Transparency Directive, which seeks to improve transparency of financial information for investors by standardizing reporting and making reported information available to the public in easily accessible ways. To meet those needs, ESEF is based on XBRL technologies.</p>
  5036.  
  5037.  
  5038.  
  5039. <p>XBRL, the eXtensible Business Reporting Language, is a well-established standard for financial reporting in use worldwide. XBRL aims to reduce costs through the elimination of time consuming and error prone human interaction. Tagging data using XBRL increases the speed of data integration and exchange, while at the same time eliminating data redundancy and quality issues.</p>
  5040.  
  5041.  
  5042.  
  5043. <p>ESEF specifies that:</p>
  5044.  
  5045.  
  5046.  
  5047. <ul><li>IFRS (International Financial Reporting Standards) statements in annual reports must be tagged in iXBRL. iXBRL embeds XBRL tags in an XHTML document to produce a report that is formatted nicely for human consumption and is simultaneously machine readable.</li><li>Reports conform to an ESEF XBRL taxonomy that is an extension of the IFRS taxonomy.</li></ul>
  5048.  
  5049.  
  5050.  
  5051. <h2 class="wp-block-heading" id="h-advantages-of-esef-reporting">Advantages of ESEF Reporting</h2>
  5052.  
  5053.  
  5054.  
  5055. <p>The objectives behind the ESEF mandate are to make reporting easier for issuers and to facilitate easy analysis of annual financial reports. Standardizing on XBRL offers several advantages in support of these goals, including improved data quality through data validation, improved compatibility and consistency for software processing, and simplified comparison of reported data within an organization and among multiple companies.</p>
  5056.  
  5057.  
  5058.  
  5059. <p>Thanks to ESEF, consolidated financial statements of European companies are now freely available to regulators and investors – and they are readable by humans and computer software programs.</p>
  5060.  
  5061.  
  5062.  
  5063. <h2 class="wp-block-heading" id="h-challenges-in-creating-esef-reports">Challenges in Creating ESEF Reports</h2>
  5064.  
  5065.  
  5066.  
  5067. <p>With the advantages of ESEF reporting comes a bit of a learning curve for reporting companies. Proper tagging of reported data using XBRL requires deep technical knowledge that may be a hurdle for business users.</p>
  5068.  
  5069.  
  5070.  
  5071. <p>For instance, here is an excerpt of an ESEF filing in its final XHTML format viewed in a web browser:</p>
  5072.  
  5073.  
  5074.  
  5075. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="625" height="590" src="https://www.altova.com/blog/wp-content/uploads/esef-xhtml-report.png" alt="ESEF report in xhtml format " class="wp-image-26976" srcset="https://www.altova.com/blog/wp-content/uploads/esef-xhtml-report.png 625w, https://www.altova.com/blog/wp-content/uploads/esef-xhtml-report-300x283.png 300w" sizes="(max-width: 625px) 100vw, 625px" /></figure>
  5076.  
  5077.  
  5078.  
  5079. <p></p>
  5080.  
  5081.  
  5082.  
  5083. <p>And the underlying iXBRL report looks like this:</p>
  5084.  
  5085.  
  5086.  
  5087. <p></p>
  5088.  
  5089.  
  5090.  
  5091. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="611" height="497" src="https://www.altova.com/blog/wp-content/uploads/esef-ixbrl.png" alt="ESEF iXBRL" class="wp-image-26977" srcset="https://www.altova.com/blog/wp-content/uploads/esef-ixbrl.png 611w, https://www.altova.com/blog/wp-content/uploads/esef-ixbrl-300x244.png 300w" sizes="(max-width: 611px) 100vw, 611px" /></figure>
  5092.  
  5093.  
  5094.  
  5095. <p>To conform to filing requirements laid out in the <a href="https://www.esma.europa.eu/sites/default/files/library/esma32-60-254_esef_reporting_manual.pdf">ESEF Reporting Manual</a>, filing companies must first get data from their backend accounting systems into a valid iXBRL document based on an ESEF extension taxonomy. The extension taxonomy defines the specific tags that are used for individual items of data as well as their attributes and their interrelationships, along with any disclosures that are specific to the reporting entity. The standards-based tags help software to understand the meaning of each reported figure.</p>
  5096.  
  5097.  
  5098.  
  5099. <p>Creating a valid ESEF report manually would be an untenable feat without the aid of software tools to make it easier.</p>
  5100.  
  5101.  
  5102.  
  5103. <p>Financial professionals need ESEF tools that allow them to meet reporting mandates without being burdened by the complexity of the XBRL syntax.</p>
  5104.  
  5105.  
  5106.  
  5107. <h2 class="wp-block-heading" id="h-esef-tools">ESEF Tools</h2>
  5108.  
  5109.  
  5110.  
  5111. <p><strong>Creating ESEF Reports</strong></p>
  5112.  
  5113.  
  5114.  
  5115. <p>Altova offers a complete suite of <a href="https://www.altova.com/xbrl-tools">XBRL tools</a>, including <a href="https://www.altova.com/regulatory-solutions">Excel add-ins</a> for building valid XBRL reports without the need for manual XBRL tagging.</p>
  5116.  
  5117.  
  5118.  
  5119. <p>The<strong> <a href="https://www.altova.com/esef-xbrl">Altova ESEF XBRL add-in for Excel</a> </strong>is a specialized ESEF compliance tool designed to help accountants and other financial pros create XBRL reports directly inside Excel, where they’re already comfortable working. When you install the add-in, a new ESEF tab is added to the Excel ribbon. This offers the ability to select your organization’s extension taxonomy to start creating a report.</p>
  5120.  
  5121.  
  5122.  
  5123. <p></p>
  5124.  
  5125.  
  5126.  
  5127. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="264" src="https://www.altova.com/blog/wp-content/uploads/esef-excel-ribbon.png" alt="ESEF Excel ribbon" class="wp-image-26979" srcset="https://www.altova.com/blog/wp-content/uploads/esef-excel-ribbon.png 700w, https://www.altova.com/blog/wp-content/uploads/esef-excel-ribbon-300x113.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  5128.  
  5129.  
  5130.  
  5131. <p></p>
  5132.  
  5133.  
  5134.  
  5135. <p>An ESEF Filing pane displays properties of the report so you can set them easily. The Tables section of the Filing Pane gives an overview of available tables that come from your extension taxonomy. You can select a table (or tables) from the Presentation Linkbase or Calculation Linkbase.</p>
  5136.  
  5137.  
  5138.  
  5139. <p></p>
  5140.  
  5141.  
  5142.  
  5143. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="537" height="585" src="https://www.altova.com/blog/wp-content/uploads/esef-filing-pane.png" alt="Filing pane for entering details and selecting tables " class="wp-image-26980" srcset="https://www.altova.com/blog/wp-content/uploads/esef-filing-pane.png 537w, https://www.altova.com/blog/wp-content/uploads/esef-filing-pane-275x300.png 275w" sizes="(max-width: 537px) 100vw, 537px" /></figure>
  5144.  
  5145.  
  5146.  
  5147. <p></p>
  5148.  
  5149.  
  5150.  
  5151. <p>To start creating a report, select one or more tables from the entry helper and right-click to insert them.&nbsp;</p>
  5152.  
  5153.  
  5154.  
  5155. <p></p>
  5156.  
  5157.  
  5158.  
  5159. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="561" height="576" src="https://www.altova.com/blog/wp-content/uploads/insert-tables.png" alt="Insert tables for ESEF presentation and calculation linkbases" class="wp-image-26981" srcset="https://www.altova.com/blog/wp-content/uploads/insert-tables.png 561w, https://www.altova.com/blog/wp-content/uploads/insert-tables-292x300.png 292w, https://www.altova.com/blog/wp-content/uploads/insert-tables-36x36.png 36w" sizes="(max-width: 561px) 100vw, 561px" /></figure>
  5160.  
  5161.  
  5162.  
  5163. <p></p>
  5164.  
  5165.  
  5166.  
  5167. <p>Once a table is inserted, add your data. Cells that will be tagged with iXBRL tags in the final report are highlighted in yellow.</p>
  5168.  
  5169.  
  5170.  
  5171. <p></p>
  5172.  
  5173.  
  5174.  
  5175. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="695" height="551" src="https://www.altova.com/blog/wp-content/uploads/excel-to-esef.png" alt="Create ESEF compliance reports in Excel " class="wp-image-26982" srcset="https://www.altova.com/blog/wp-content/uploads/excel-to-esef.png 695w, https://www.altova.com/blog/wp-content/uploads/excel-to-esef-300x238.png 300w" sizes="(max-width: 695px) 100vw, 695px" /></figure>
  5176.  
  5177.  
  5178.  
  5179. <p>When creating your report, you can insert all the tables on a single worksheet, or define one table per Excel tab. When you export the report to iXBRL, the worksheets will be combined into one  XHTML document for submission.</p>
  5180.  
  5181.  
  5182.  
  5183. <p>You can use all the built-in functionality of Excel to add logos, charts, summary tables, and other elements to make your report attractive for human consumption while ensuring the required machine readable data is tagged properly.</p>
  5184.  
  5185.  
  5186.  
  5187. <p>Before generating the report, use the Validate button in the Excel ribbon to check it against the associated taxonomies. Any errors are listed with a link to quickly locate and fix the affected cells in the report. &nbsp;</p>
  5188.  
  5189.  
  5190.  
  5191. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="676" height="184" src="https://www.altova.com/blog/wp-content/uploads/validate-esef-report.png" alt="ESEF reporting checks" class="wp-image-26983" srcset="https://www.altova.com/blog/wp-content/uploads/validate-esef-report.png 676w, https://www.altova.com/blog/wp-content/uploads/validate-esef-report-300x82.png 300w" sizes="(max-width: 676px) 100vw, 676px" /></figure>
  5192.  
  5193.  
  5194.  
  5195. <p>Once your report is ready and valid, you can generate an iXBRL instance file. To do this, click Export to iXBRL in the add-in ribbon.</p>
  5196.  
  5197.  
  5198.  
  5199. <p>Working in Excel removes the mystery from ESEF report creation and makes it easy to focus on supplying the required data.</p>
  5200.  
  5201.  
  5202.  
  5203. <p>To get started, learn more about the <a href="https://www.altova.com/esef-xbrl">ESEF XBRL add-in for Excel</a> and download a free, 30-day trial.</p>
  5204.  
  5205.  
  5206.  
  5207. <p><strong>Reporting Checks</strong></p>
  5208.  
  5209.  
  5210.  
  5211. <p>For developers working with ESEF XBRL, it’s important to be able to validate documents for conformance with the ESEF Reporting Manual.</p>
  5212.  
  5213.  
  5214.  
  5215. <p>XMLSpy offers <a href="https://www.altova.com/xmlspy-xml-editor#xbrl_tools">comprehensive XBRL support</a>, including ESEF Reporting Manual checks during iXBRL validation. Any errors detected are displayed with granular details, including a link to the error in the document and links to the relevant specification.</p>
  5216.  
  5217.  
  5218.  
  5219. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/esef-validation.png"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/esef-validation.png" alt="ESEF iXBRL validation in XMLSpy" class="wp-image-26984" width="683" height="485" srcset="https://www.altova.com/blog/wp-content/uploads/esef-validation.png 910w, https://www.altova.com/blog/wp-content/uploads/esef-validation-300x213.png 300w, https://www.altova.com/blog/wp-content/uploads/esef-validation-768x545.png 768w, https://www.altova.com/blog/wp-content/uploads/esef-validation-260x185.png 260w, https://www.altova.com/blog/wp-content/uploads/esef-validation-705x500.png 705w" sizes="(max-width: 683px) 100vw, 683px" /></a></figure>
  5220.  
  5221.  
  5222.  
  5223. <p><strong>Automate ESEF Validation</strong></p>
  5224.  
  5225.  
  5226.  
  5227. <p>For checking large numbers of reports or implementing server-based automated validation processes as part of a reporting workflow, organizations can utilize <a href="https://www.altova.com/raptorxml">RaptorXML Server</a>. RaptorXML Server supports a large number of XBRL standards for high-performance validation and processing, including ESEF.</p>
  5228.  
  5229.  
  5230.  
  5231. <p><strong>Get Started Working with ESEF XBRL</strong></p>
  5232.  
  5233.  
  5234.  
  5235. <p>Learn more about Altova <a href="https://www.altova.com/xbrl-tools">XBRL tools</a> and download a free trial of the <a href="https://www.altova.com/esef-xbrl/download">ESEF XBRL add-in for Excel</a>, <a href="https://www.altova.com/xmlspy-xml-editor/download">XMLSpy</a>, and <a href="https://www.altova.com/raptorxml/download">RaptorXML Server</a>.</p>
  5236. <p>The post <a href="https://www.altova.com/blog/esef-tools/">ESEF Tools</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  5237. ]]></content:encoded>
  5238. </item>
  5239. <item>
  5240. <title>Dark Mode and Much More in Version 2023</title>
  5241. <link>https://www.altova.com/blog/dark-mode-in-version-2023/</link>
  5242. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  5243. <pubDate>Wed, 19 Oct 2022 13:05:57 +0000</pubDate>
  5244. <category><![CDATA[Applications]]></category>
  5245. <category><![CDATA[Data Integration]]></category>
  5246. <category><![CDATA[XML]]></category>
  5247. <category><![CDATA[new features]]></category>
  5248. <category><![CDATA[What&#039;s new]]></category>
  5249. <guid isPermaLink="false">https://www.altova.com/blog/?p=26959</guid>
  5250.  
  5251. <description><![CDATA[<p>Long-time XMLSpy and MapForce customers may remember the fun drawings and depictions from Altova’s early ads and logos. Those dark spy images have given way to brighter colors and imagery over the years – but at the same time, developers have gravitated towards dark mode in their applications. Now, dark mode is finally available for [&#8230;]</p>
  5252. <p>The post <a href="https://www.altova.com/blog/dark-mode-in-version-2023/">Dark Mode and Much More in Version 2023</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  5253. ]]></description>
  5254. <content:encoded><![CDATA[
  5255. <p>Long-time XMLSpy and MapForce customers may remember the fun drawings and depictions from Altova’s early ads and logos. Those dark spy images have given way to brighter colors and imagery over the years – but at the same time, developers have gravitated towards <em>dark </em>mode in their applications. Now, dark mode is finally available for XMLSpy and MapForce!</p>
  5256.  
  5257.  
  5258.  
  5259. <p>This fun option is being released alongside important support for additional standards and databases, a new tool for managing schemas across the product line, and a brand new product for building ESEF XBRL reports in Excel.</p>
  5260.  
  5261.  
  5262.  
  5263. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/blog_2023.jpg" alt="Altova announces Software Version 2023 with dark mode " class="wp-image-26960" srcset="https://www.altova.com/blog/wp-content/uploads/blog_2023.jpg 700w, https://www.altova.com/blog/wp-content/uploads/blog_2023-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  5264.  
  5265.  
  5266.  
  5267. <span id="more-26959"></span>
  5268.  
  5269.  
  5270.  
  5271. <h2 class="wp-block-heading" id="h-new-dark-light-modes"><strong>New Dark &amp; Light Modes</strong></h2>
  5272.  
  5273.  
  5274.  
  5275. <p>Most developers have a strong preference for either light mode or dark mode. XMLSpy and MapForce users will now have the option to switch to dark mode or a new, modern light mode.</p>
  5276.  
  5277.  
  5278.  
  5279. <p>Here’s a look at XMLSpy dark mode:</p>
  5280.  
  5281.  
  5282.  
  5283. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="541" src="https://www.altova.com/blog/wp-content/uploads/xmlspy-dark-mode.png" alt="Dark Mode in XMLSpy " class="wp-image-26961" srcset="https://www.altova.com/blog/wp-content/uploads/xmlspy-dark-mode.png 700w, https://www.altova.com/blog/wp-content/uploads/xmlspy-dark-mode-300x232.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  5284.  
  5285.  
  5286.  
  5287. <p>And MapForce in the new light mode:</p>
  5288.  
  5289.  
  5290.  
  5291. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="656" height="603" src="https://www.altova.com/blog/wp-content/uploads/MapForce-light-mode.png" alt="Light Mode option in MapForce" class="wp-image-26962" srcset="https://www.altova.com/blog/wp-content/uploads/MapForce-light-mode.png 656w, https://www.altova.com/blog/wp-content/uploads/MapForce-light-mode-300x276.png 300w" sizes="(max-width: 656px) 100vw, 656px" /></figure>
  5292.  
  5293.  
  5294.  
  5295. <p>Of course, developers can stick to the classic view of either application if they prefer.</p>
  5296.  
  5297.  
  5298.  
  5299. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="424" height="295" src="https://www.altova.com/blog/wp-content/uploads/pick-ui-theme.png" alt="Choosing UI theme in Altova software" class="wp-image-26963" srcset="https://www.altova.com/blog/wp-content/uploads/pick-ui-theme.png 424w, https://www.altova.com/blog/wp-content/uploads/pick-ui-theme-300x209.png 300w" sizes="(max-width: 424px) 100vw, 424px" /></figure>
  5300.  
  5301.  
  5302.  
  5303. <p>These fun options are available starting with Version 2023 alongside important new functionality and standards support.</p>
  5304.  
  5305.  
  5306.  
  5307. <h2 class="wp-block-heading" id="h-new-altova-xml-schema-manager"><strong>New Altova XML Schema Manager</strong></h2>
  5308.  
  5309.  
  5310.  
  5311. <p>All Altova XML-enabled products now include the integrated XML Schema Manager, which was created to assist with staying up to date with the ever-increasing volume of XML standards and frequent updates.</p>
  5312.  
  5313.  
  5314.  
  5315. <p>Users may access the XML Schema Manager in the Tools menu of desktop developer tools or via the command line for Altova server software.</p>
  5316.  
  5317.  
  5318.  
  5319. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="673" height="553" src="https://www.altova.com/blog/wp-content/uploads/xml-schema-manager.png" alt="New XML Schema Manager " class="wp-image-26964" srcset="https://www.altova.com/blog/wp-content/uploads/xml-schema-manager.png 673w, https://www.altova.com/blog/wp-content/uploads/xml-schema-manager-300x247.png 300w" sizes="(max-width: 673px) 100vw, 673px" /></figure>
  5320.  
  5321.  
  5322.  
  5323. <p>Offering a centralized way to install and manage standard XML Schemas for use with all Altova XML-enabled applications, the convenient interface lets you simply select the schemas you want to install (or uninstall). The XML Schema Manager will automatically select any required dependencies.</p>
  5324.  
  5325.  
  5326.  
  5327. <p>Advantages of using the XML Schema Manager include:</p>
  5328.  
  5329.  
  5330.  
  5331. <ul><li>Viewing all schemas on your system and checking if newer versions are available</li><li>Downloading new versions independently of the Altova product release cycle</li><li>Ability to install one or multiple versions of a given schema</li><li>Automatic detection and installation of dependent schemas</li><li>Faster processing of large schemas</li><li>Changes made in the Altova XML Schema Manager take effect for all installed Altova products</li></ul>
  5332.  
  5333.  
  5334.  
  5335. <p>Altova will update available schema versions frequently when they are released from standards bodies and include the latest versions in the XML Schema Manager. This way you can get the most up to date versions independent of the Altova product release cycle.</p>
  5336.  
  5337.  
  5338.  
  5339. <h2 class="wp-block-heading" id="h-support-for-esef-xbrl"><strong>Support for ESEF XBRL</strong></h2>
  5340.  
  5341.  
  5342.  
  5343. <p>ESEF (European Single Electronic Format) is a type of Inline XBRL that is mandated for financial reporting in the EU. New support for ESEF is available in the following <a href="https://www.altova.com/xbrl-tools">XBRL tools</a>:</p>
  5344.  
  5345.  
  5346.  
  5347. <ul><li>XMLSpy: Validation of reporting documents according to the ESEF Manual</li><li>RaptorXML Server: High performance, automated validation of ESEF reports</li><li>ESEF XBRL add-in for Excel: a new product that lets end users <a href="https://www.altova.com/esef-xbrl">create ESEF XBRL reports in Excel</a></li></ul>
  5348.  
  5349.  
  5350.  
  5351. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="693" height="809" src="https://www.altova.com/blog/wp-content/uploads/esef-xbrl-excel.png" alt="Create ESEF XBRL reports in Excel" class="wp-image-26967" srcset="https://www.altova.com/blog/wp-content/uploads/esef-xbrl-excel.png 693w, https://www.altova.com/blog/wp-content/uploads/esef-xbrl-excel-257x300.png 257w, https://www.altova.com/blog/wp-content/uploads/esef-xbrl-excel-604x705.png 604w" sizes="(max-width: 693px) 100vw, 693px" /></figure>
  5352.  
  5353.  
  5354.  
  5355. <h2 class="wp-block-heading" id="h-additional-new-features"><strong>Additional New Features</strong></h2>
  5356.  
  5357.  
  5358.  
  5359. <p>Other new features across the product line include:</p>
  5360.  
  5361.  
  5362.  
  5363. <ul><li>Updated support for databases</li><li>Updated support for EDI formats and versions</li><li>Code engineering for the latest versions of Java and Visual Basic</li><li>And much more</li></ul>
  5364.  
  5365.  
  5366.  
  5367. <p>Learn more about <a href="https://www.altova.com/whatsnew">What’s New in Version 2023</a> and update your software to the latest version.</p>
  5368. <p>The post <a href="https://www.altova.com/blog/dark-mode-in-version-2023/">Dark Mode and Much More in Version 2023</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  5369. ]]></content:encoded>
  5370. </item>
  5371. <item>
  5372. <title>The Easy Way to Track GDPR Compliance</title>
  5373. <link>https://www.altova.com/blog/track-gdpr-compliance/</link>
  5374. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  5375. <pubDate>Wed, 28 Sep 2022 19:10:00 +0000</pubDate>
  5376. <category><![CDATA[apps]]></category>
  5377. <category><![CDATA[MobileTogether]]></category>
  5378. <category><![CDATA[GDPR]]></category>
  5379. <category><![CDATA[GDPR compliance]]></category>
  5380. <category><![CDATA[regulatory solutions]]></category>
  5381. <guid isPermaLink="false">https://www.altova.com/blog/?p=4228</guid>
  5382.  
  5383. <description><![CDATA[<p>GDPR is an acronym that has been top of mind for of privacy officers, CIOs, and even marketers across the EU since the early months of 2018. Now that it&#8217;s been a few years since the regulation went into effect, organizations should have a handle on what type of data is impacted and how to [&#8230;]</p>
  5384. <p>The post <a href="https://www.altova.com/blog/track-gdpr-compliance/">The Easy Way to Track GDPR Compliance</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  5385. ]]></description>
  5386. <content:encoded><![CDATA[
  5387. <p>GDPR is an acronym that has been top of mind for of privacy officers, CIOs, and even marketers across the EU since the early months of 2018. Now that it&#8217;s been a few years since the regulation went into effect, organizations should have a handle on what type of data is impacted and how to handle compliance. The ongoing challenge is tracking and documenting the steps required for GDPR compliance as a business evolves over time. </p>
  5388.  
  5389.  
  5390.  
  5391. <p>While numerous one-off templates to create GDPR reports based on a moment in time are available, Altova has created the first long-term solution for documenting and tracking the entire GDPR compliance management process. </p>
  5392.  
  5393.  
  5394.  
  5395. <p>Let’s take a look at what GDPR compliance entails and how the Altova GDPR Compliance Database makes managing it organized and straightforward. </p>
  5396.  
  5397.  
  5398.  
  5399. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/track-gdpr-compliance.png" alt="An easy way to document and track GDPR compliance " class="wp-image-4229" srcset="https://www.altova.com/blog/wp-content/uploads/track-gdpr-compliance.png 700w, https://www.altova.com/blog/wp-content/uploads/track-gdpr-compliance-300x144.png 300w, https://www.altova.com/blog/wp-content/uploads/track-gdpr-compliance-450x215.png 450w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  5400.  
  5401.  
  5402.  
  5403. <span id="more-4228"></span>
  5404.  
  5405.  
  5406.  
  5407. <h2 class="wp-block-heading" id="h-what-is-gdpr">What is GDPR? </h2>
  5408.  
  5409.  
  5410.  
  5411. <p>The General Data Protection Regulation (<a href="https://ec.europa.eu/commission/priorities/justice-and-fundamental-rights/data-protection/2018-reform-eu-data-protection-rules_en">GDPR</a>) is a set of privacy and data protection rules that apply to organizations that process personal data of people residing in the European Union and European Economic Area. The goal of GDPR is to give individuals more control over their personal data and at the same time simplify the regulatory environment for international businesses.</p>
  5412.  
  5413.  
  5414.  
  5415. <p>Starting May 25, 2018, all organizations doing business in the EU or with EU customers became subject to the regulation. Compliance with GDPR rules means that personal data is collected under strict conditions and also require that organizations that collect this data protect it over the long term from misuse and exploitation.</p>
  5416.  
  5417.  
  5418.  
  5419. <p>Data protection measures are required to be built into the
  5420. design of business processes that collect personal data. If a data breach
  5421. occurs that compromises the privacy of one or more people, it must be reported
  5422. to the supervisory authority. As such, companies need to ensure that the
  5423. appropriate technical and organizational measures are in place to protect data,
  5424. and they must document all storage and processing activities. They also must
  5425. have the ability produce reports on such measures when they are requested.</p>
  5426.  
  5427.  
  5428.  
  5429. <p>This presents a significant challenge to organizations that
  5430. have multiple departments handling personal data, outside contractors with
  5431. access to data, various stake holders with different levels of involvement, and
  5432. no existing tools for documenting the access and processes.</p>
  5433.  
  5434.  
  5435.  
  5436. <p>As a high-tech company doing business in the EU and around the world, Altova faced these challenges as well. Finding no suitable GDPR tracking tools for documenting compliance, we created an easy-to-use, web-based interface that’s both comprehensive and secure. </p>
  5437.  
  5438.  
  5439.  
  5440. <h2 class="wp-block-heading" id="h-gdpr-tracking-compliance-tool">GDPR Tracking &amp; Compliance Tool</h2>
  5441.  
  5442.  
  5443.  
  5444. <p>The <a href="https://www.altova.com/gdpr-compliance-database">Altova GDPR Compliance Database</a> is an internal solution that allows organizations to create and maintain an ongoing record of personal data stores to ensure that the processing of personal data is handled in line with the principles of the GDPR. This tool makes it easy for companies to organize information about their repositories of personal data in a straight-forward, structured way.</p>
  5445.  
  5446.  
  5447.  
  5448. <p>Once you install the GDPR Compliance Database in your IT infrastructure, authorized users may access it in a web browser. Stakeholders enter all the required information about the data applications, also known as “processing activities” in GDPR parlance, and the data categories used in your organization – both for internal tracking and documentation purposes and to generate reports when required.</p>
  5449.  
  5450.  
  5451.  
  5452. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="652" height="674" src="https://www.altova.com/blog/wp-content/uploads/altova-gdpr-compliance-database.png" alt="Altova GDPR Compliance Database for tracking GDPR activities and applications" class="wp-image-4230" srcset="https://www.altova.com/blog/wp-content/uploads/altova-gdpr-compliance-database.png 652w, https://www.altova.com/blog/wp-content/uploads/altova-gdpr-compliance-database-290x300.png 290w, https://www.altova.com/blog/wp-content/uploads/altova-gdpr-compliance-database-36x36.png 36w, https://www.altova.com/blog/wp-content/uploads/altova-gdpr-compliance-database-450x465.png 450w" sizes="(max-width: 652px) 100vw, 652px" /></figure>
  5453.  
  5454.  
  5455.  
  5456. <p>The GDPR Compliance Database include built-in discussion and
  5457. approval mechanisms, as well as detailed change-tracking that helps users
  5458. understand the reason for, and the impact of, every update. </p>
  5459.  
  5460.  
  5461.  
  5462. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="750" height="614" src="https://www.altova.com/blog/wp-content/uploads/gdpr-compliance-discussions.png" alt="Discuss questions about GDPR issues to ensure your systems comply" class="wp-image-4231" srcset="https://www.altova.com/blog/wp-content/uploads/gdpr-compliance-discussions.png 750w, https://www.altova.com/blog/wp-content/uploads/gdpr-compliance-discussions-300x246.png 300w, https://www.altova.com/blog/wp-content/uploads/gdpr-compliance-discussions-705x577.png 705w, https://www.altova.com/blog/wp-content/uploads/gdpr-compliance-discussions-450x368.png 450w" sizes="(max-width: 750px) 100vw, 750px" /></figure>
  5463.  
  5464.  
  5465.  
  5466. <p>Unlike other one-off or word-processor-based GDPR tools, the
  5467. Altova GDPR Compliance Database is designed to provide a comprehensive solution
  5468. for tracking management of personal data to help ensure compliance as a
  5469. business evolves over the short and long term. </p>
  5470.  
  5471.  
  5472.  
  5473. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="598" height="673" src="https://www.altova.com/blog/wp-content/uploads/gdpr-processing-activities.png" alt="Document GDPR processing activities for long term maintenance and GDPR reports" class="wp-image-4232" srcset="https://www.altova.com/blog/wp-content/uploads/gdpr-processing-activities.png 598w, https://www.altova.com/blog/wp-content/uploads/gdpr-processing-activities-267x300.png 267w, https://www.altova.com/blog/wp-content/uploads/gdpr-processing-activities-450x506.png 450w" sizes="(max-width: 598px) 100vw, 598px" /></figure>
  5474.  
  5475.  
  5476.  
  5477. <p>Advantages of this solution include: </p>
  5478.  
  5479.  
  5480.  
  5481. <ul>
  5482. <li><strong>Centralized, organized documentation</strong> of all required information about data applications and the data categories, as required by GDPR</li>
  5483.  
  5484.  
  5485.  
  5486. <li><strong>Data stays in-house</strong> because the solution is installed within your IT infrastructure</li>
  5487.  
  5488.  
  5489.  
  5490. <li><strong>A secure, web-based interface</strong> makes it easy for permitted users to access and understand</li>
  5491.  
  5492.  
  5493.  
  5494. <li><strong>Support for multiple users</strong> collaborating in the solution simultaneously</li>
  5495.  
  5496.  
  5497.  
  5498. <li><strong>Built-in approvals process</strong> and <strong>discussion mechanisms</strong> ensure accuracy of entered information and provide long-term documentation</li>
  5499.  
  5500.  
  5501.  
  5502. <li><strong>Change tracking</strong> provides a record of updates over time to facilitate long-term maintenance of your documentation</li>
  5503.  
  5504.  
  5505.  
  5506. <li><strong>Auto-generation of reports</strong> on data categories and other views in PDF or Word</li>
  5507. </ul>
  5508.  
  5509.  
  5510.  
  5511. <p></p>
  5512.  
  5513.  
  5514.  
  5515. <p>See how to track GDPR compliance in the video below. </p>
  5516.  
  5517.  
  5518.  
  5519. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  5520. <div class='avia-iframe-wrap'><iframe loading="lazy" title="How to Manage GDPR Compliance (GDPR Tool)" width="1500" height="844" src="https://www.youtube.com/embed/9SjRqiFHGNw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>
  5521. </div></figure>
  5522.  
  5523.  
  5524.  
  5525. <p></p>
  5526.  
  5527.  
  5528.  
  5529. <h2 class="wp-block-heading" id="h-creating-gdpr-reports">Creating GDPR Reports </h2>
  5530.  
  5531.  
  5532.  
  5533. <p>At any time, you can auto-generate a GDPR compliance report in
  5534. PDF or Word on all processing activities, or a list of processing activities
  5535. that you have classified as critical. You may also create a report on the
  5536. current state of category approvals in the system. </p>
  5537.  
  5538.  
  5539.  
  5540. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="750" height="547" src="https://www.altova.com/blog/wp-content/uploads/gdpr-reports-pdf.png" alt="Auto-generate a GDPR compliance report in PDF or Word " class="wp-image-4233" srcset="https://www.altova.com/blog/wp-content/uploads/gdpr-reports-pdf.png 750w, https://www.altova.com/blog/wp-content/uploads/gdpr-reports-pdf-300x219.png 300w, https://www.altova.com/blog/wp-content/uploads/gdpr-reports-pdf-705x514.png 705w, https://www.altova.com/blog/wp-content/uploads/gdpr-reports-pdf-450x328.png 450w" sizes="(max-width: 750px) 100vw, 750px" /></figure>
  5541.  
  5542.  
  5543.  
  5544. <h2 class="wp-block-heading" id="h-powered-by-mobiletogether">Powered by MobileTogether</h2>
  5545.  
  5546.  
  5547.  
  5548. <p>We created the GDPR Compliance Database using the powerful <a href="https://www.altova.com/mobiletogether/enterprise-apps">enterprise app
  5549. development tools</a> in MobileTogether. When you install the GDPR Compliance
  5550. Database, you get access to the solution as well as the high-performance
  5551. MobileTogether Server, which you can choose to install on premises or in the
  5552. cloud.</p>
  5553.  
  5554.  
  5555.  
  5556. <p>This has two advantages: the solution may be accessed by
  5557. anyone permitted in your organization via a simple URL, and, if required, you
  5558. can modify the solution to meet your organization&#8217;s needs using the free
  5559. MobileTogether Designer.</p>
  5560.  
  5561.  
  5562.  
  5563. <h2 class="wp-block-heading" id="h-get-started-now-with-a-free-trial">Get Started Now with a Free Trial</h2>
  5564.  
  5565.  
  5566.  
  5567. <p>The Altova GDPR Compliance Database files are provided free
  5568. under the Apache 2.0 license. Operation of the solution requires a license for <a href="https://www.altova.com/mobiletogether-server">MobileTogether Server</a>,
  5569. which you can obtain for a free 30-day trial or purchase via the Altova Online
  5570. Shop.</p>
  5571. <p>The post <a href="https://www.altova.com/blog/track-gdpr-compliance/">The Easy Way to Track GDPR Compliance</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  5572. ]]></content:encoded>
  5573. </item>
  5574. <item>
  5575. <title>Learn about XULE for XBRL</title>
  5576. <link>https://www.altova.com/blog/learn-about-xule-for-xbrl/</link>
  5577. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  5578. <pubDate>Tue, 13 Sep 2022 13:54:00 +0000</pubDate>
  5579. <category><![CDATA[Servers]]></category>
  5580. <category><![CDATA[Software]]></category>
  5581. <category><![CDATA[XBRL]]></category>
  5582. <category><![CDATA[Raptor]]></category>
  5583. <category><![CDATA[XBRL Formula]]></category>
  5584. <category><![CDATA[XMLSpy]]></category>
  5585. <category><![CDATA[XULE]]></category>
  5586. <guid isPermaLink="false">https://www.altova.com/blog/?p=4534</guid>
  5587.  
  5588. <description><![CDATA[<p>XBRL (eXtensible Business Reporting Language) is an open, XML-based standard for the electronic submission of business and financial data. Though XBRL specifies what data must be reported and provides a standardized way of doing so, companies and regulatory agencies need a way to ensure the quality of data that is submitted. One approach is by [&#8230;]</p>
  5589. <p>The post <a href="https://www.altova.com/blog/learn-about-xule-for-xbrl/">Learn about XULE for XBRL</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  5590. ]]></description>
  5591. <content:encoded><![CDATA[
  5592. <p>XBRL (eXtensible Business Reporting Language) is an open, XML-based standard for the electronic submission of business and financial data. Though XBRL specifies what data must be reported and provides a standardized way of doing so, companies and regulatory agencies need a way to ensure the quality of data that is submitted. One approach is by using business rule validation, and XULE is one method that is growing in popularity. </p>
  5593.  
  5594.  
  5595.  
  5596. <p></p>
  5597.  
  5598.  
  5599.  
  5600. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/shutterstock_584181011.jpg" alt="" class="wp-image-1824" srcset="https://www.altova.com/blog/wp-content/uploads/shutterstock_584181011.jpg 700w, https://www.altova.com/blog/wp-content/uploads/shutterstock_584181011-300x144.jpg 300w, https://www.altova.com/blog/wp-content/uploads/shutterstock_584181011-450x215.jpg 450w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  5601.  
  5602.  
  5603.  
  5604. <span id="more-4534"></span>
  5605.  
  5606.  
  5607.  
  5608. <h2 class="wp-block-heading" id="h-what-is-xule">What is XULE?</h2>
  5609.  
  5610.  
  5611.  
  5612. <p><a href="https://xbrl.us/xule/">XULE</a>, from “XBRL rule,” was created by XBRL.US to help filing organizations control the quality of their submitted data. The syntax provides a way to query and check XBRL reports by validating business rules prior to filing. </p>
  5613.  
  5614.  
  5615.  
  5616. <p>XBRL.US includes the Center for Data Quality, which is focused improving the usability and effectiveness of submitted XBRL data. The organization notes that inconsistencies and errors in filed XBRL data have prevented the benefits promised by XBRL from being realized fully. The Center formed the Data Quality Committee (DQC) to develop guidance and uniform validation rules to detect and even prevent these errors prior to submission. The resulting DQC Rules are available in various formats and have most recently been introduced in XULE. </p>
  5617.  
  5618.  
  5619.  
  5620. <p>XULE is not the only standard created for assessing data quality. <a href="https://specifications.xbrl.org/work-product-index-formula-formula-1.0.html">XBRL Formula</a> is also a validation rule language for XBRL. However, it is not easy to use and can, in fact, only be utilized if the regulator includes XBRL Formula rules directly in the published taxonomy. The goal behind XULE was to create a modern alternative to XBRL Formula that is more user friendly and independent of any specific taxonomy. Since it’s less complex, XULE is also easier to read by non-technical XBRL stakeholders such as accountants.</p>
  5621.  
  5622.  
  5623.  
  5624. <p>XULE syntax provides two ways to check
  5625. data quality: queries and assertions. Queries can be used to compute data based
  5626. on numbers provided in an XBRL report and produce output that can be further
  5627. assessed. Data can also be tested against defined assertions and then actions
  5628. can be taken based on the results. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
  5629.  
  5630.  
  5631.  
  5632. <p>Once they are defined, XULE queries are
  5633. executed against an XBRL report or taxonomy using a XULE processor. As part of
  5634. its comprehensive set of <a href="https://www.altova.com/xbrl-tools">XBRL tools</a>, Altova offers both
  5635. a XULE processor and an interactive XULE editor.</p>
  5636.  
  5637.  
  5638.  
  5639. <h2 class="wp-block-heading" id="h-xule-processor">XULE Processor</h2>
  5640.  
  5641.  
  5642.  
  5643. <p>To assist users working with XBRL data, a complete XULE processor is built into both RaptorXML+XBRL Server and XMLSpy.</p>
  5644.  
  5645.  
  5646.  
  5647. <p>For a server-based solution, <a href="https://www.altova.com/raptorxml">RaptorXML+XBRL</a> includes a hyper-fast XBRL processor with full support for XULE. Options let you execute XULE documents from the command line, with scripts, and via a number of server and engine APIs, including a powerful Python API. The server can process single XULE documents or rulesets containing multiple XULE documents stored in a ZIP archive. </p>
  5648.  
  5649.  
  5650.  
  5651. <p>XMLSpy, Altova’s desktop developer tool for XML, JSON, and
  5652. XBRL, also includes a built-in XULE processor that powers its XULE editor
  5653. (described below). </p>
  5654.  
  5655.  
  5656.  
  5657. <p>The XULE processor and validator in XMLSpy executes XULE expressions against an XBRL instance document, as well as providing validation of documents for correct syntax according to the XULE specification.</p>
  5658.  
  5659.  
  5660.  
  5661. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="625" height="535" src="https://www.altova.com/blog/wp-content/uploads/xule-processor.png" alt="XULE processor in XMLSpy " class="wp-image-4535" srcset="https://www.altova.com/blog/wp-content/uploads/xule-processor.png 625w, https://www.altova.com/blog/wp-content/uploads/xule-processor-300x257.png 300w" sizes="(max-width: 625px) 100vw, 625px" /></figure>
  5662.  
  5663.  
  5664.  
  5665. <p>Developers can also take advantage of a RaptorXML+XBRL
  5666. Server installed on their network for high performance XULE processing directly
  5667. inside XMLSpy. </p>
  5668.  
  5669.  
  5670.  
  5671. <h2 class="wp-block-heading" id="h-xule-editor">XULE Editor</h2>
  5672.  
  5673.  
  5674.  
  5675. <p>In addition to its XULE processor and validator, XMLSpy includes the <strong>industry’s first XULE editor</strong>. Features include syntax coloring, auto-completion of XULE language constructs, integration of XULE documents in XMLSpy projects, and other features to help you understand, write, and test XULE expressions. </p>
  5676.  
  5677.  
  5678.  
  5679. <p>While you can access these features to view and edit docs in Text View as shown above, XMLSpy also includes a unique XULE editor window that lets you interactively query the active XBRL report (i.e., XBRL instance document) and immediately view the results of your query. </p>
  5680.  
  5681.  
  5682.  
  5683. <p>To make it easy to compose and test queries, the XMLSpy XULE window offers single query mode. Toggling this on enables you to enter an expression without the “output” keyword and as a single query, and to generate the result as a single output. Valid XULE syntax requires the output keyword, but if you want to quickly and interactively query the XBRL document, it is much easier to be able to type a single query without it.</p>
  5684.  
  5685.  
  5686.  
  5687. <p>Below you can see the XULE editor window in Single Query mode being used to identify and navigate to facts in an iXBRL report. </p>
  5688.  
  5689.  
  5690.  
  5691. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="664" height="680" src="https://www.altova.com/blog/wp-content/uploads/xule-editor.png" alt="XULE editor in XMLSpy" class="wp-image-4530" srcset="https://www.altova.com/blog/wp-content/uploads/xule-editor.png 664w, https://www.altova.com/blog/wp-content/uploads/xule-editor-293x300.png 293w, https://www.altova.com/blog/wp-content/uploads/xule-editor-36x36.png 36w" sizes="(max-width: 664px) 100vw, 664px" /></figure>
  5692.  
  5693.  
  5694.  
  5695. <p>As you type in the XULE window, auto-completion values are offered based on both the XULE language syntax and the structure of the underlying XBRL Taxonomy. </p>
  5696.  
  5697.  
  5698.  
  5699. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="695" height="292" src="https://www.altova.com/blog/wp-content/uploads/xule-editor-1.png" alt="XULE editor with code completion" class="wp-image-4536" srcset="https://www.altova.com/blog/wp-content/uploads/xule-editor-1.png 695w, https://www.altova.com/blog/wp-content/uploads/xule-editor-1-300x126.png 300w" sizes="(max-width: 695px) 100vw, 695px" /></figure>
  5700.  
  5701.  
  5702.  
  5703. <p>After composing your query and clicking the Run button on
  5704. the toolbar, the results of the execution are displayed in the Results pane. </p>
  5705.  
  5706.  
  5707.  
  5708. <p>You can click any link in the results to navigate to the respective node in the XBRL instance document, as shown below. Here we have a XULE query that calculates the quick ratio for the periods reported. </p>
  5709.  
  5710.  
  5711.  
  5712. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="697" height="505" src="https://www.altova.com/blog/wp-content/uploads/calculate-xule-rule.png" alt="Calculate and test XULE rules" class="wp-image-4538" srcset="https://www.altova.com/blog/wp-content/uploads/calculate-xule-rule.png 697w, https://www.altova.com/blog/wp-content/uploads/calculate-xule-rule-300x217.png 300w" sizes="(max-width: 697px) 100vw, 697px" /></figure>
  5713.  
  5714.  
  5715.  
  5716. <p>For complete details on the various options toolbar buttons available in the XULE window, please refer to the <a href="https://www.altova.com/manual/XMLSpy/spyenterprise/xsxbrl_xule.html">XMLSpy Manual</a>. To help developers, accountants, and other stakeholders learn XULE, the XMLSpy examples project includes several XBRL reports and XULE documents. You’ll even find some simple queries for testing listed directly in the XULE window. </p>
  5717.  
  5718.  
  5719.  
  5720. <p></p>
  5721.  
  5722.  
  5723.  
  5724. <p></p>
  5725.  
  5726.  
  5727.  
  5728. <p>To get started, download a free, 30-day trial of <a href="https://www.altova.com/xmlspy-xml-editor/download">XMLSpy</a> and <a href="https://www.altova.com/raptorxml/download">RaptorXML+XBRL Server</a>. </p>
  5729.  
  5730.  
  5731.  
  5732. <p></p>
  5733.  
  5734.  
  5735.  
  5736. <p></p>
  5737. <p>The post <a href="https://www.altova.com/blog/learn-about-xule-for-xbrl/">Learn about XULE for XBRL</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  5738. ]]></content:encoded>
  5739. </item>
  5740. <item>
  5741. <title>How to Build a Data Entry App</title>
  5742. <link>https://www.altova.com/blog/how-to-build-a-data-entry-app/</link>
  5743. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  5744. <pubDate>Wed, 17 Aug 2022 12:50:00 +0000</pubDate>
  5745. <category><![CDATA[App Development]]></category>
  5746. <category><![CDATA[apps]]></category>
  5747. <category><![CDATA[No Code]]></category>
  5748. <category><![CDATA[app development]]></category>
  5749. <category><![CDATA[data entry apps]]></category>
  5750. <category><![CDATA[No code]]></category>
  5751. <category><![CDATA[RAD]]></category>
  5752. <category><![CDATA[RecordsManager]]></category>
  5753. <category><![CDATA[RMAD]]></category>
  5754. <guid isPermaLink="false">https://www.altova.com/blog/?p=26932</guid>
  5755.  
  5756. <description><![CDATA[<p>Data entry is a vital activity for businesses and organizations across every vertical. While much data entry has been automated thanks to advances in technology, there are circumstances where manual input is still required. Whether entered data is for reporting financials, tracking research, documenting health data, or managing inventory, end users need easy-to-use tools that [&#8230;]</p>
  5757. <p>The post <a href="https://www.altova.com/blog/how-to-build-a-data-entry-app/">How to Build a Data Entry App</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  5758. ]]></description>
  5759. <content:encoded><![CDATA[
  5760. <p>Data entry is a vital activity for businesses and organizations across every vertical. While much data entry has been automated thanks to advances in technology, there are circumstances where manual input is still required. Whether entered data is for reporting financials, tracking research, documenting health data, or managing inventory, end users need easy-to-use tools that help them quickly enter valid information.</p>
  5761.  
  5762.  
  5763.  
  5764. <p>As apps have evolved, so has data entry software, offering users new options for getting the job done in the field, in the lab, or at a desk – on the user’s device of choice. App developers are challenged to quickly customize data entry apps with advanced features for automatic field population, validation checks, and reporting tools.</p>
  5765.  
  5766.  
  5767.  
  5768. <p><a href="https://www.altova.com/recordsmanager">No-code app development</a> frameworks offer a viable solution for building data entry apps for all platforms quickly and without a huge investment. Let’s take a look at some best practices and how no-code solutions can help tick the boxes.</p>
  5769.  
  5770.  
  5771.  
  5772. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/shutterstock_262813637.jpg" alt="Person using a tablet for data entry" class="wp-image-1987" srcset="https://www.altova.com/blog/wp-content/uploads/shutterstock_262813637.jpg 700w, https://www.altova.com/blog/wp-content/uploads/shutterstock_262813637-300x144.jpg 300w, https://www.altova.com/blog/wp-content/uploads/shutterstock_262813637-450x215.jpg 450w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  5773.  
  5774.  
  5775.  
  5776. <span id="more-26932"></span>
  5777.  
  5778.  
  5779.  
  5780. <h2 class="wp-block-heading" id="h-best-practices-for-building-data-entry-apps">Best Practices for Building Data Entry Apps</h2>
  5781.  
  5782.  
  5783.  
  5784. <p>There are several initiatives that are considered best practices when designing data entry apps.</p>
  5785.  
  5786.  
  5787.  
  5788. <h3 class="wp-block-heading"><strong>Design for Device Choice</strong></h3>
  5789.  
  5790.  
  5791.  
  5792. <p>It’s no secret that users favor a variety of devices to get their job done, sometimes alternating between phones and computers, depending on where they’re working at the time. Any data entry app should perform the same on any device. To cover all users and scenarios, choose an app development framework that offers native apps for iOS and Android mobile devices, as well as options for desktop like Windows and browser apps. &nbsp;</p>
  5793.  
  5794.  
  5795.  
  5796. <p>Depending on the type of data being collected, it may also be useful to offer an offline mode for the app. This allows users away from a stable Internet connection to continue using the app and then reconnect when service is restored. This can be useful for field workers on the road, during airline travel, and so on.</p>
  5797.  
  5798.  
  5799.  
  5800. <h3 class="wp-block-heading"><strong>Make the UI Attractive and Easy</strong></h3>
  5801.  
  5802.  
  5803.  
  5804. <p>The key to user engagement is a slick, easy-to-navigate user interface. Choose a <a href="https://www.altova.com/recordsmanager">no-code app builder</a> that makes it easy to customize your app home page and offer end-users fun options like color themes and font sizing. A good no-code solution will automatically build in straightforward navigation cues based on the structure you define.</p>
  5805.  
  5806.  
  5807.  
  5808. <h3 class="wp-block-heading"><strong>Organize Data Efficiently</strong></h3>
  5809.  
  5810.  
  5811.  
  5812. <p>A well thought-out data structure is key for any app that collects, stores, and manages data. The database app builder should allow the administrator to visually lay out the data structure, including hierarchies, relationships, and links &#8211; without requiring manual backend database development.</p>
  5813.  
  5814.  
  5815.  
  5816. <p>In addition to structure definition, defining built-in searches and filters for navigating the data in the database will make the app easy for end users.</p>
  5817.  
  5818.  
  5819.  
  5820. <h3 class="wp-block-heading"><strong>Collect High-Quality Data</strong></h3>
  5821.  
  5822.  
  5823.  
  5824. <p>Your app should guide users to enter quality data with editing hints and informative warning messages, pre-filled values, visual date and time pickers, and fields that auto increment (such as ID numbers). To help ensure quality data is collected, the app admin can define complex data validation rules and the corresponding warning messages, as required.</p>
  5825.  
  5826.  
  5827.  
  5828. <h3 class="wp-block-heading"><strong>Manage User Access and Permissions</strong></h3>
  5829.  
  5830.  
  5831.  
  5832. <p><a href="https://www.altova.com/blog/role-based-access-control-in-enterprise-apps/">Managing roles and permissions</a> to restrict user access is important for many kinds of data oriented apps. It’s important to define granular access rules to ensure that the appropriate individuals can access and/or edit various categories of data.</p>
  5833.  
  5834.  
  5835.  
  5836. <h3 class="wp-block-heading"><strong>Offer Comprehensive Reporting</strong></h3>
  5837.  
  5838.  
  5839.  
  5840. <p>Data collection and reporting go hand-in-hand<strong>. </strong>Your data entry app should offer built in reports with charts and graphs, auto calculated values, and easy export options.</p>
  5841.  
  5842.  
  5843.  
  5844. <h2 class="wp-block-heading" id="h-create-an-app-for-data-entry">Create an App for Data Entry</h2>
  5845.  
  5846.  
  5847.  
  5848. <p>Altova <a href="https://www.altova.com/recordsmanager">RecordsManager</a> is a no-code app development solution designed for building <a href="https://www.altova.com/recordsmanager">apps for data entry</a>. Developers use its visual interface to define the structure of the database and then build <a href="https://www.altova.com/recordsmanager/data-entry-forms">data entry forms</a> with tables and fields that make it easy to search for, browse, and enter data. RecordsManager creates the database itself for you behind the scenes – you don’t need database development or software development experience to create an effective app using this tool.</p>
  5849.  
  5850.  
  5851.  
  5852. <p>This video demonstrates how to create a data entry app for restaurant data using the visual tools in RecordsManager:</p>
  5853.  
  5854.  
  5855.  
  5856. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  5857. <div class='avia-iframe-wrap'><iframe loading="lazy" title="Create No-Code Database Apps with Altova RecordsManager" width="1333" height="1000" src="https://www.youtube.com/embed/ywrgfimaH7w?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div>
  5858. </div></figure>
  5859.  
  5860.  
  5861.  
  5862. <p>RecordsManager offers an easy, affordable way to get your data entry app in end users’ hands fast, while meeting all the best practices requirements outlined in this article. It has <a href="https://www.altova.com/recordsmanager/features">over 100 features</a> designed with database apps in mind.</p>
  5863.  
  5864.  
  5865.  
  5866. <p>The System Administrator defines the forms, fields, and rules of the database with zero coding, all using a point-and-click visual design interface.</p>
  5867.  
  5868.  
  5869.  
  5870. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="679" src="https://www.altova.com/blog/wp-content/uploads/build-data-entry-app.png" alt="Build a no-code data entry app with RecordsManager" class="wp-image-26937" srcset="https://www.altova.com/blog/wp-content/uploads/build-data-entry-app.png 700w, https://www.altova.com/blog/wp-content/uploads/build-data-entry-app-300x291.png 300w, https://www.altova.com/blog/wp-content/uploads/build-data-entry-app-36x36.png 36w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  5871.  
  5872.  
  5873.  
  5874. <p></p>
  5875.  
  5876.  
  5877.  
  5878. <p>Then, it’s easy for users to enter and save data.</p>
  5879.  
  5880.  
  5881.  
  5882. <p></p>
  5883.  
  5884.  
  5885.  
  5886. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="571" src="https://www.altova.com/blog/wp-content/uploads/user-enters-data.png" alt="Easy forms allow users to enter data" class="wp-image-26938" srcset="https://www.altova.com/blog/wp-content/uploads/user-enters-data.png 700w, https://www.altova.com/blog/wp-content/uploads/user-enters-data-300x245.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  5887.  
  5888.  
  5889.  
  5890. <p>In addition to easy structure definition, the admin can take advantage of numerous tools that <a href="https://www.altova.com/recordsmanager/ease-of-use">guide users during data entry</a>. These include editing hints inside fields, data validation rules, and pre-defined values. </p>
  5891.  
  5892.  
  5893.  
  5894. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="678" height="250" src="https://www.altova.com/blog/wp-content/uploads/validation-warning.png" alt="Data validation warning message" class="wp-image-26939" srcset="https://www.altova.com/blog/wp-content/uploads/validation-warning.png 678w, https://www.altova.com/blog/wp-content/uploads/validation-warning-300x111.png 300w" sizes="(max-width: 678px) 100vw, 678px" /></figure>
  5895.  
  5896.  
  5897.  
  5898. <p>You can even pre-fill a field based on the value entered in another field.</p>
  5899.  
  5900.  
  5901.  
  5902. <p>Change and audit tracking allow users to understand historical changes in the database and help ensure accountability in data quality.</p>
  5903.  
  5904.  
  5905.  
  5906. <p>RecordsManager even offers built-in reminders, which are configurable to assist users both in the app and via email.</p>
  5907.  
  5908.  
  5909.  
  5910. <p>Any data entry solution you create with RecordsManager will be automatically available as a native iOS, Android, and Windows app, as well as for a web browser.</p>
  5911.  
  5912.  
  5913.  
  5914. <h2 class="wp-block-heading" id="h-recordsmanager-for-data-entry-apps">RecordsManager for Data Entry Apps</h2>
  5915.  
  5916.  
  5917.  
  5918. <p>A great way to get started with RecordsManager is by exploring and modifying one of the demo databases that ship with the solution. Each is a ready-go-use data entry app. Simply select Load Sample Database after starting RecordsManager.</p>
  5919.  
  5920.  
  5921.  
  5922. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="695" height="233" src="https://www.altova.com/blog/wp-content/uploads/load-sample-database-apps.png" alt="Explore a sample database app" class="wp-image-26940" srcset="https://www.altova.com/blog/wp-content/uploads/load-sample-database-apps.png 695w, https://www.altova.com/blog/wp-content/uploads/load-sample-database-apps-300x101.png 300w" sizes="(max-width: 695px) 100vw, 695px" /></figure>
  5923.  
  5924.  
  5925.  
  5926. <p><strong>Altova RecordsManager is a free</strong>, pre-built MobileTogether solution that is available when you install MobileTogether Designer. MobileTogether Designer is free: simply <a href="https://www.altova.com/mobiletogether/download">download</a> and install the software to get started using RecordsManager to create your first data entry app.</p>
  5927. <p>The post <a href="https://www.altova.com/blog/how-to-build-a-data-entry-app/">How to Build a Data Entry App</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  5928. ]]></content:encoded>
  5929. </item>
  5930. <item>
  5931. <title>Modularization for App Development</title>
  5932. <link>https://www.altova.com/blog/modularization-for-app-development/</link>
  5933. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  5934. <pubDate>Wed, 27 Jul 2022 12:16:57 +0000</pubDate>
  5935. <category><![CDATA[App Development]]></category>
  5936. <category><![CDATA[Development]]></category>
  5937. <category><![CDATA[mobile development]]></category>
  5938. <category><![CDATA[app development]]></category>
  5939. <category><![CDATA[MobileTogether]]></category>
  5940. <category><![CDATA[modularization]]></category>
  5941. <guid isPermaLink="false">https://www.altova.com/blog/?p=26918</guid>
  5942.  
  5943. <description><![CDATA[<p>In programming, modularization is the practice of dividing functionality into separate, independent modules. Modularization in app development is an efficient way of organizing app components and enabling collaboration within development teams. A modular approach also helps make testing, debugging, and maintenance of the app easier and more straightforward. MobileTogether offers some classic – and some [&#8230;]</p>
  5944. <p>The post <a href="https://www.altova.com/blog/modularization-for-app-development/">Modularization for App Development</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  5945. ]]></description>
  5946. <content:encoded><![CDATA[
  5947. <p>In programming, modularization is the practice of dividing functionality into separate, independent modules. Modularization in app development is an efficient way of organizing app components and enabling collaboration within development teams. A modular approach also helps make testing, debugging, and maintenance of the app easier and more straightforward.</p>
  5948.  
  5949.  
  5950.  
  5951. <p>MobileTogether offers some classic – and some unique &#8211; approaches to modularization.</p>
  5952.  
  5953.  
  5954.  
  5955. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/image_1746946307.jpg" alt="App developer typing on a keyboard" class="wp-image-26753" srcset="https://www.altova.com/blog/wp-content/uploads/image_1746946307.jpg 700w, https://www.altova.com/blog/wp-content/uploads/image_1746946307-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  5956.  
  5957.  
  5958.  
  5959. <span id="more-26918"></span>
  5960.  
  5961.  
  5962.  
  5963. <h2 class="wp-block-heading" id="h-benefits-of-modularization">Benefits of Modularization</h2>
  5964.  
  5965.  
  5966.  
  5967. <p>The goal of <a href="https://en.wikipedia.org/wiki/Modular_programming">modularization</a> in app development is typically to preserve simplicity and create clarity. This approach offers multiple benefits:</p>
  5968.  
  5969.  
  5970.  
  5971. <ul><li><strong>Improved communication </strong>– Well organized modules foster understanding of how the app is configured for team members and for inherited projects</li><li><strong>Reuse of components</strong> – The same app functions are frequently used in multiple different apps. Reusing the same solution, instead of writing or defining it each time, saves time and introduces fewer errors.</li><li><strong>Easier improvements – </strong>The ability to improve modules without impacting other functionality increases efficiency.</li><li><strong>Efficient refactoring – </strong>Smaller, independent components allow for easier refactoring.</li><li><strong>Ease of testing / debugging – </strong>Testing smaller portions helps isolate problems quickly. Modules allow the developer to reuse successful modules without re-testing.</li><li><strong>Scalability &#8211; </strong>Modularized apps are easier to manage and scale. At the same time, modules help make large apps less complex overall.<strong>&nbsp;</strong></li></ul>
  5972.  
  5973.  
  5974.  
  5975. <h2 class="wp-block-heading" id="h-modularization-for-rapid-app-development">Modularization for Rapid App Development&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</h2>
  5976.  
  5977.  
  5978.  
  5979. <p>One of the ways MobileTogether fosters <a href="https://www.altova.com/mobiletogether">rapid app development</a> is through advanced modularization options.&nbsp;</p>
  5980.  
  5981.  
  5982.  
  5983. <h3 class="wp-block-heading" id="h-easy-module-assignment">Easy Module Assignment</h3>
  5984.  
  5985.  
  5986.  
  5987. <p>Once a MobileTogether developer names a module, any components associated with that module will be grouped with it by virtue of its name. For instance, as shown in the Modules pane below, numerous modules have been defined. The developer named all associated pages, sub pages functions, Action Groups, etc., using the module name followed by a period and the component name: see detail under the ChartKinds and EditFields modules.  MobileTogether automatically groups all those items related by name in the modules pane, making it easy to understand associations and functionality. Items can be moved between modules either by dragging and dropping or renaming them. You can also move items via the right-click context menu. This menu will also provide a list of all the usages of an item across the project.</p>
  5988.  
  5989.  
  5990.  
  5991. <p>Double-clicking any item will navigate to its definition in the app.&nbsp;&nbsp;</p>
  5992.  
  5993.  
  5994.  
  5995. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="281" height="637" src="https://www.altova.com/blog/wp-content/uploads/mobiletogether-modules.png" alt="Easy modularization in app development using MobileTogether" class="wp-image-26831" srcset="https://www.altova.com/blog/wp-content/uploads/mobiletogether-modules.png 281w, https://www.altova.com/blog/wp-content/uploads/mobiletogether-modules-132x300.png 132w" sizes="(max-width: 281px) 100vw, 281px" /></figure>
  5996.  
  5997.  
  5998.  
  5999. <p>The following project components can be assigned as the items of a module and will be listed alphabetically by their defined name:</p>
  6000.  
  6001.  
  6002.  
  6003. <ul><li>Action Groups</li><li>Pages</li><li>Subpages</li><li>Page sources (data sources)</li><li>Control Templates</li><li>User-defined XPath/XQuery functions</li><li>User variables</li></ul>
  6004.  
  6005.  
  6006.  
  6007. <p>The Settings dialog in the Modules pane lets developers choose a different background color for each module for easy visual differentiation – not just within the Modules pane but throughout the project where the module items are used.</p>
  6008.  
  6009.  
  6010.  
  6011. <p>This dialog is also where one would set the export visibility of each module. This specifies whether or not the components of that module will be exported when part of the project is <a href="https://www.altova.com/manual/MobileTogether/mobiletogetherdesigner/mtdsubprojmods_subprojects_create.html">extracted to a subproject</a>.</p>
  6012.  
  6013.  
  6014.  
  6015. <h3 class="wp-block-heading" id="h-refactoring-support">Refactoring Support</h3>
  6016.  
  6017.  
  6018.  
  6019. <p>Another aspect of modularization, refactoring, is enabled in MobileTogether using subprojects. A Refactor menu provides several actions, including extracting part of an existing project as a new&nbsp;sub project, inserting a sub project in the current design, and opening a sub project itself. This makes it possible for a wide range of components that are defined in a project to be re-used across multiple projects.</p>
  6020.  
  6021.  
  6022.  
  6023. <p>The Refactor menu also makes it easy to view and navigate a list of the usages of various design components throughout the project.</p>
  6024.  
  6025.  
  6026.  
  6027. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="351" height="379" src="https://www.altova.com/blog/wp-content/uploads/modularization-list.png" alt="List all usages of an app design component " class="wp-image-26920" srcset="https://www.altova.com/blog/wp-content/uploads/modularization-list.png 351w, https://www.altova.com/blog/wp-content/uploads/modularization-list-278x300.png 278w" sizes="(max-width: 351px) 100vw, 351px" /></figure>
  6028.  
  6029.  
  6030.  
  6031. <p>Developers can include MobileTogether projects as subprojects of the current project. The current project can then use components of the included subprojects. Conversely, the components of a subproject can be reused across multiple (parent) projects, removing the need to redefine the functionality in multiple projects. A subproject can contain other subprojects.</p>
  6032.  
  6033.  
  6034.  
  6035. <p>MobileTogether displays subprojects included in the current app design in the Files pane, which acts as the control panel for displaying, including, importing, and removing them.</p>
  6036.  
  6037.  
  6038.  
  6039. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="282" height="441" src="https://www.altova.com/blog/wp-content/uploads/refactoring-subprojects.png" alt="Subprojects in MobileTogether enable refactoring " class="wp-image-26921" srcset="https://www.altova.com/blog/wp-content/uploads/refactoring-subprojects.png 282w, https://www.altova.com/blog/wp-content/uploads/refactoring-subprojects-192x300.png 192w" sizes="(max-width: 282px) 100vw, 282px" /></figure>
  6040.  
  6041.  
  6042.  
  6043. <h3 class="wp-block-heading" id="h-server-libraries">Server Libraries</h3>
  6044.  
  6045.  
  6046.  
  6047. <p>In addition to sub projects, MobileTogether supports Server Libraries, which can be updated and exchanged at any time on the <a href="https://www.altova.com/mobiletogether-server">MobileTogether Server</a> that hosts your app without needing to redeploy the app itself.</p>
  6048.  
  6049.  
  6050.  
  6051. <p>This unique approach allows for much quicker roll-out of app updates and changes, especially for <a href="https://www.altova.com/mobiletogether/app-development">complied apps</a> – which no longer need to be recompiled and sent through the app store approval process.</p>
  6052.  
  6053.  
  6054.  
  6055. <p>A Server Library is a MobileTogether design file that contains one or more Action Groups, and its functionality is limited to processing these Action Groups. At runtime, an app can send a call to a Server Library with or without parameters. The Server Library processes the specified Action Group and returns the result to the calling app/enterprise solution.</p>
  6056.  
  6057.  
  6058.  
  6059. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="221" src="https://www.altova.com/blog/wp-content/uploads/server-libraries.png" alt="Server libraries are a unique tool for modularization in MobileTogether" class="wp-image-26923" srcset="https://www.altova.com/blog/wp-content/uploads/server-libraries.png 700w, https://www.altova.com/blog/wp-content/uploads/server-libraries-300x95.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  6060.  
  6061.  
  6062.  
  6063. <h2 class="wp-block-heading" id="h-take-advantage-of-modularization">Take Advantage of Modularization</h2>
  6064.  
  6065.  
  6066.  
  6067. <p>Refactoring and modularization support in MobileTogether provides a range of advantages from reducing development time and enabling teamwork to supporting fast, flexible updates and maintenance. <a href="https://www.altova.com/mobiletogether/download">Try MobileTogether</a> now for free.</p>
  6068. <p>The post <a href="https://www.altova.com/blog/modularization-for-app-development/">Modularization for App Development</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  6069. ]]></content:encoded>
  6070. </item>
  6071. <item>
  6072. <title>Getting Started with Altova RecordsManager</title>
  6073. <link>https://www.altova.com/blog/getting-started-with-recordsmanager/</link>
  6074. <dc:creator><![CDATA[David McGahey]]></dc:creator>
  6075. <pubDate>Wed, 13 Jul 2022 11:04:33 +0000</pubDate>
  6076. <category><![CDATA[App Development]]></category>
  6077. <category><![CDATA[Database]]></category>
  6078. <category><![CDATA[No Code]]></category>
  6079. <category><![CDATA[app development]]></category>
  6080. <category><![CDATA[no-code app development]]></category>
  6081. <category><![CDATA[RecordsManager]]></category>
  6082. <guid isPermaLink="false">https://www.altova.com/blog/?p=26887</guid>
  6083.  
  6084. <description><![CDATA[<p>RecordsManager is a new tool from Altova to build business database solutions in record time using a powerful visual design interface. RecordsManager is a free, pre-built MobileTogether solution that is automatically available when you install MobileTogether Designer. The pre-built solution includes sample data sets, and the MobileTogether Simulator previews execution of the database solution right [&#8230;]</p>
  6085. <p>The post <a href="https://www.altova.com/blog/getting-started-with-recordsmanager/">Getting Started with Altova RecordsManager</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  6086. ]]></description>
  6087. <content:encoded><![CDATA[
  6088. <p>RecordsManager is a new tool from Altova to build business database solutions in record time using a powerful visual design interface. RecordsManager is a free, pre-built MobileTogether solution that is automatically available when you install MobileTogether Designer. The pre-built solution includes sample data sets, and the MobileTogether Simulator previews execution of the database solution right inside the free to use <a href="https://www.altova.com/mobiletogether/app-development">MobileTogether Designer</a>. Getting started with Altova RecordsManager is just one click away when you launch the Designer. Soon you will be building your own custom database apps without needing backend development or manual coding.</p>
  6089.  
  6090.  
  6091.  
  6092. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/shutterstock_2851774881.jpg" alt="" class="wp-image-1817" srcset="https://www.altova.com/blog/wp-content/uploads/shutterstock_2851774881.jpg 700w, https://www.altova.com/blog/wp-content/uploads/shutterstock_2851774881-300x144.jpg 300w, https://www.altova.com/blog/wp-content/uploads/shutterstock_2851774881-450x215.jpg 450w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  6093.  
  6094.  
  6095.  
  6096. <span id="more-26887"></span>
  6097.  
  6098.  
  6099.  
  6100. <p>The MobileTogether Designer is configured to automatically load the pre-built RecordsManager database solution and even offers a link to the <a href="https://www.youtube.com/watch?v=ywrgfimaH7w">RecordsManager features video</a>. At the bottom of the introduction window is a button to start the RecordsManager Simulation.</p>
  6101.  
  6102.  
  6103.  
  6104. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/RecordsManagerIntro.png" target="_blank" rel=" noreferrer noopener"><img decoding="async" src="https://www.altova.com/blog/wp-content/uploads/RecordsManagerIntro.png" alt="Altova RecordsManager introduction" class="wp-image-26889" width="487" srcset="https://www.altova.com/blog/wp-content/uploads/RecordsManagerIntro.png 727w, https://www.altova.com/blog/wp-content/uploads/RecordsManagerIntro-300x294.png 300w, https://www.altova.com/blog/wp-content/uploads/RecordsManagerIntro-36x36.png 36w, https://www.altova.com/blog/wp-content/uploads/RecordsManagerIntro-705x691.png 705w" sizes="(max-width: 727px) 100vw, 727px" /></a></figure>
  6105.  
  6106.  
  6107.  
  6108. <p>This opens the demo app in a Simulator window, where you can log in and explore the repositories, data containers, forms, fields, and filters that drive the demo app.</p>
  6109.  
  6110.  
  6111.  
  6112. <p>Going further, you can configure new users, modify views, and add data records to get a feel for working with the intuitive visual RecordsManager development interface. You can deploy your revised version of the demo app and run it directly on a mobile device or in a web browser window.</p>
  6113.  
  6114.  
  6115.  
  6116. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/SimLaunchView.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/SimLaunchView.png" alt="Getting started with Altova RecordsManager " class="wp-image-26890" width="465" height="449" srcset="https://www.altova.com/blog/wp-content/uploads/SimLaunchView.png 930w, https://www.altova.com/blog/wp-content/uploads/SimLaunchView-300x289.png 300w, https://www.altova.com/blog/wp-content/uploads/SimLaunchView-768x741.png 768w, https://www.altova.com/blog/wp-content/uploads/SimLaunchView-36x36.png 36w, https://www.altova.com/blog/wp-content/uploads/SimLaunchView-705x680.png 705w" sizes="(max-width: 465px) 100vw, 465px" /></a></figure>
  6117.  
  6118.  
  6119.  
  6120. <p>And don’t worry about accidentally deleting data or breaking the demo app when you’re just getting started with Altova RecordsManager – you can always erase all your changes and reload the default examples via the Load sample database button at the top right. We’ll start with the Warehousing business data set.</p>
  6121.  
  6122.  
  6123.  
  6124. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/SampleDatabases.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/SampleDatabases.png" alt="Getting started with Altova RecordsManager by loading a sample data set" class="wp-image-26891" width="592" height="134" srcset="https://www.altova.com/blog/wp-content/uploads/SampleDatabases.png 789w, https://www.altova.com/blog/wp-content/uploads/SampleDatabases-300x68.png 300w, https://www.altova.com/blog/wp-content/uploads/SampleDatabases-768x174.png 768w, https://www.altova.com/blog/wp-content/uploads/SampleDatabases-705x160.png 705w" sizes="(max-width: 592px) 100vw, 592px" /></a></figure>
  6125.  
  6126.  
  6127.  
  6128. <p>First, using the Configure RecordsManager button, we will add users with different privileges.</p>
  6129.  
  6130.  
  6131.  
  6132. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/user-windows.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/user-windows.png" alt="Adding new users for the database app in Altova RecordsManager" class="wp-image-26893" width="476" height="253" srcset="https://www.altova.com/blog/wp-content/uploads/user-windows.png 952w, https://www.altova.com/blog/wp-content/uploads/user-windows-300x159.png 300w, https://www.altova.com/blog/wp-content/uploads/user-windows-768x407.png 768w, https://www.altova.com/blog/wp-content/uploads/user-windows-705x374.png 705w" sizes="(max-width: 476px) 100vw, 476px" /></a></figure>
  6133.  
  6134.  
  6135.  
  6136. <p>As you can see from the screen shot above, the built in RecordsManager entry forms let you get straight to work without having to build supporting scaffolding for the database app.</p>
  6137.  
  6138.  
  6139.  
  6140. <p>Logging in as Rhonda Adams, we can explore the Warehousing database further. For instance, we can view a list of all customers stored in the demo data set.</p>
  6141.  
  6142.  
  6143.  
  6144. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/companies-list.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/companies-list.png" alt="View of all companies in the Altova RecordsManager sample data set" class="wp-image-26895" width="464" height="448" srcset="https://www.altova.com/blog/wp-content/uploads/companies-list.png 927w, https://www.altova.com/blog/wp-content/uploads/companies-list-300x290.png 300w, https://www.altova.com/blog/wp-content/uploads/companies-list-768x741.png 768w, https://www.altova.com/blog/wp-content/uploads/companies-list-36x36.png 36w, https://www.altova.com/blog/wp-content/uploads/companies-list-705x681.png 705w" sizes="(max-width: 464px) 100vw, 464px" /></a></figure>
  6145.  
  6146.  
  6147.  
  6148. <p>Clicking on any individual company opens a detail view:</p>
  6149.  
  6150.  
  6151.  
  6152. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/companies-detail.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/companies-detail.png" alt="Detailed view of a single company in the Altova RecordsManager sample data set" class="wp-image-26896" width="465" height="363" srcset="https://www.altova.com/blog/wp-content/uploads/companies-detail.png 929w, https://www.altova.com/blog/wp-content/uploads/companies-detail-300x234.png 300w, https://www.altova.com/blog/wp-content/uploads/companies-detail-768x599.png 768w, https://www.altova.com/blog/wp-content/uploads/companies-detail-705x550.png 705w" sizes="(max-width: 465px) 100vw, 465px" /></a></figure>
  6153.  
  6154.  
  6155.  
  6156. <p>Exploring further, we can see a table of products stored in one Warehouse:</p>
  6157.  
  6158.  
  6159.  
  6160. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/inventory-1.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/inventory-1.png" alt="Products listed for a single warehouse in the Altova RecordsManager sample data set" class="wp-image-26898" width="457" height="278" srcset="https://www.altova.com/blog/wp-content/uploads/inventory-1.png 914w, https://www.altova.com/blog/wp-content/uploads/inventory-1-300x182.png 300w, https://www.altova.com/blog/wp-content/uploads/inventory-1-768x467.png 768w, https://www.altova.com/blog/wp-content/uploads/inventory-1-705x429.png 705w" sizes="(max-width: 457px) 100vw, 457px" /></a></figure>
  6161.  
  6162.  
  6163.  
  6164. <p>In a real-world application, a purchasing department might want to know when to reorder any particular product to restock warehouse inventory. It would be helpful to add a field for each product to store the desired minimum quantity. The Purchasing Department would know it’s time to reorder when the Quantity On Hand falls below the desired minimum.</p>
  6165.  
  6166.  
  6167.  
  6168. <p>Rhonda Adams has Admin privileges that include the abilities to edit any existing data or add a new field.</p>
  6169.  
  6170.  
  6171.  
  6172. <p>The Configure RecordsManager button on the Home page lets us add the new field:</p>
  6173.  
  6174.  
  6175.  
  6176. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/add-new-field.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/add-new-field.png" alt="Modifying the sample data set by adding a new field" class="wp-image-26900" width="453" height="331" srcset="https://www.altova.com/blog/wp-content/uploads/add-new-field.png 906w, https://www.altova.com/blog/wp-content/uploads/add-new-field-300x219.png 300w, https://www.altova.com/blog/wp-content/uploads/add-new-field-768x561.png 768w, https://www.altova.com/blog/wp-content/uploads/add-new-field-705x515.png 705w" sizes="(max-width: 453px) 100vw, 453px" /></a></figure>
  6177.  
  6178.  
  6179.  
  6180. <p>We can also edit the Inventory list and entry forms to display the new field in a pleasing format. The table button on the form editor lets us visually add, remove, or reorder table columns:</p>
  6181.  
  6182.  
  6183.  
  6184. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/edit-form-detail.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/edit-form-detail.png" alt="Editing the view form to include the new field" class="wp-image-26902" width="471" height="289" srcset="https://www.altova.com/blog/wp-content/uploads/edit-form-detail.png 942w, https://www.altova.com/blog/wp-content/uploads/edit-form-detail-300x184.png 300w, https://www.altova.com/blog/wp-content/uploads/edit-form-detail-768x470.png 768w, https://www.altova.com/blog/wp-content/uploads/edit-form-detail-705x432.png 705w" sizes="(max-width: 471px) 100vw, 471px" /></a></figure>
  6185.  
  6186.  
  6187.  
  6188. <p>The Preview check box lets us immediately review our changes as we work. Here is the preview of our new version of the Inventory list form with the new field inserted into the table:</p>
  6189.  
  6190.  
  6191.  
  6192. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/edit-form-preview.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/edit-form-preview.png" alt="Preview the new list during editing" class="wp-image-26904" width="467" height="176" srcset="https://www.altova.com/blog/wp-content/uploads/edit-form-preview.png 933w, https://www.altova.com/blog/wp-content/uploads/edit-form-preview-300x113.png 300w, https://www.altova.com/blog/wp-content/uploads/edit-form-preview-768x289.png 768w, https://www.altova.com/blog/wp-content/uploads/edit-form-preview-705x265.png 705w, https://www.altova.com/blog/wp-content/uploads/edit-form-preview-845x321.png 845w" sizes="(max-width: 467px) 100vw, 467px" /></a></figure>
  6193.  
  6194.  
  6195.  
  6196. <p>We can validate our changes by navigating back to the demo data and viewing the Inventory list form. Here is the list view with On Hand Minimums and some entirely new product entries Rhonda added:</p>
  6197.  
  6198.  
  6199.  
  6200. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/inventory-edits.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/inventory-edits.png" alt="Viewing the new Altova RecordsManager data on the edited form" class="wp-image-26906" width="464" height="262" srcset="https://www.altova.com/blog/wp-content/uploads/inventory-edits.png 927w, https://www.altova.com/blog/wp-content/uploads/inventory-edits-300x169.png 300w, https://www.altova.com/blog/wp-content/uploads/inventory-edits-768x433.png 768w, https://www.altova.com/blog/wp-content/uploads/inventory-edits-705x398.png 705w" sizes="(max-width: 464px) 100vw, 464px" /></a></figure>
  6201.  
  6202.  
  6203.  
  6204. <p>So far, all the changes we’ve made exist only in the local RecordsManager simulation. Whether you are revising an existing app or creating a brand new custom database app for desktop and mobile devices, you will need to deploy the app to the <a href="https://www.altova.com/recordsmanager#deploy">Altova Cloud</a> or to a MobileTogether Server to make it accessible to other users.</p>
  6205.  
  6206.  
  6207.  
  6208. <p>We saved all our changes, closed the Simulation, and deployed the RecordsManager demo database to a MobileTogether server with the name RecordsManager Warehouse Demo. Here is how it appears on a mobile device on the MobileTogether Solutions List:</p>
  6209.  
  6210.  
  6211.  
  6212. <figure class="wp-block-image size-full"><a href="https://www.altova.com/blog/wp-content/uploads/solutions-list.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" width="556" height="298" src="https://www.altova.com/blog/wp-content/uploads/solutions-list.png" alt="Viewing the Sample app on the MobileTogether server Solutions list" class="wp-image-26908" srcset="https://www.altova.com/blog/wp-content/uploads/solutions-list.png 556w, https://www.altova.com/blog/wp-content/uploads/solutions-list-300x161.png 300w" sizes="(max-width: 556px) 100vw, 556px" /></a></figure>
  6213.  
  6214.  
  6215.  
  6216. <p>We can log in from a mobile device and see that all our changes from the Designer Simulation are visible:</p>
  6217.  
  6218.  
  6219.  
  6220. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/mobile-view.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/mobile-view-1030x556.png" alt="The inventory list as seen when the Altova RecordsManager app is launched on a mobile device" class="wp-image-26909" width="515" height="278" srcset="https://www.altova.com/blog/wp-content/uploads/mobile-view-1030x556.png 1030w, https://www.altova.com/blog/wp-content/uploads/mobile-view-300x162.png 300w, https://www.altova.com/blog/wp-content/uploads/mobile-view-768x415.png 768w, https://www.altova.com/blog/wp-content/uploads/mobile-view-705x381.png 705w, https://www.altova.com/blog/wp-content/uploads/mobile-view.png 1192w" sizes="(max-width: 515px) 100vw, 515px" /></a></figure>
  6221.  
  6222.  
  6223.  
  6224. <p>Thanks to RecordsManager cross-platform functionality, the appearance will be the same on Android or iOS devices, and even in a browser window on a desktop workstation:</p>
  6225.  
  6226.  
  6227.  
  6228. <figure class="wp-block-image size-full is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/browser-view.png" target="_blank" rel=" noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/browser-view.png" alt="The Altova RecordsManager inventory view seen in a desktop web browser" class="wp-image-26911" width="506" height="422" srcset="https://www.altova.com/blog/wp-content/uploads/browser-view.png 675w, https://www.altova.com/blog/wp-content/uploads/browser-view-300x250.png 300w" sizes="(max-width: 506px) 100vw, 506px" /></a></figure>
  6229.  
  6230.  
  6231.  
  6232. <p>The MobileTogether Designer&nbsp;<a href="https://www.altova.com/manual/MobileTogether/mobiletogetherdesigner/">online manual</a>&nbsp;includes all the details about getting started with Altova RecordsManager. When you’re ready to build your own business database solutions in record time &nbsp;with the RecordsManager powerful visual design interface,&nbsp;<a href="https://www.altova.com/mobiletogether/download">download the MobileTogether Designer</a>!</p>
  6233. <p>The post <a href="https://www.altova.com/blog/getting-started-with-recordsmanager/">Getting Started with Altova RecordsManager</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  6234. ]]></content:encoded>
  6235. </item>
  6236. <item>
  6237. <title>How to Build an Online Database – Without Coding</title>
  6238. <link>https://www.altova.com/blog/build-an-online-database-without-coding/</link>
  6239. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  6240. <pubDate>Wed, 06 Jul 2022 12:44:00 +0000</pubDate>
  6241. <category><![CDATA[App Development]]></category>
  6242. <category><![CDATA[Low Code]]></category>
  6243. <category><![CDATA[No Code]]></category>
  6244. <category><![CDATA[No code]]></category>
  6245. <category><![CDATA[no-code app development]]></category>
  6246. <category><![CDATA[RAD]]></category>
  6247. <category><![CDATA[RecordsManager]]></category>
  6248. <category><![CDATA[RMAD]]></category>
  6249. <guid isPermaLink="false">https://www.altova.com/blog/?p=26863</guid>
  6250.  
  6251. <description><![CDATA[<p>Backend databases are the lifeblood of enterprise and records-driven apps, but database development is time and resource intensive. Developers and administrators need easy tools for defining online databases to power the custom apps their businesses require to remain productive and competitive. Altova RecordsManager offers an entirely visual approach to building sophisticated database apps without any [&#8230;]</p>
  6252. <p>The post <a href="https://www.altova.com/blog/build-an-online-database-without-coding/">How to Build an Online Database – Without Coding</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  6253. ]]></description>
  6254. <content:encoded><![CDATA[
  6255. <p>Backend databases are the lifeblood of enterprise and records-driven apps, but database development is time and resource intensive. Developers and administrators need easy tools for defining online databases to power the custom apps their businesses require to remain productive and competitive.</p>
  6256.  
  6257.  
  6258.  
  6259. <p>Altova RecordsManager offers an entirely visual approach to building sophisticated database apps <strong>without any coding or backend database development</strong> required. You can quickly define a simple or complex online database using an easy-to-use, entirely visual interface. Let’s see how it works.</p>
  6260.  
  6261.  
  6262.  
  6263. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/image_1718299861.jpg" alt="Decorative image: woman typing on a laptop" class="wp-image-26752" srcset="https://www.altova.com/blog/wp-content/uploads/image_1718299861.jpg 700w, https://www.altova.com/blog/wp-content/uploads/image_1718299861-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  6264.  
  6265.  
  6266.  
  6267. <span id="more-26863"></span>
  6268.  
  6269.  
  6270.  
  6271. <h2 class="wp-block-heading" id="create-online-database">Create an Online Database</h2>
  6272.  
  6273.  
  6274.  
  6275. <p>Whether you start from scratch with an empty database or choose to customize one of the demo databases that come with <a href="https://www.altova.com/recordsmanager">RecordsManager</a>, the visual interface makes it easy to get started.</p>
  6276.  
  6277.  
  6278.  
  6279. <p>Below is an online database created for managing, viewing, and editing information about an enterprise’s contracts.</p>
  6280.  
  6281.  
  6282.  
  6283. <p>If you wish to explore this database, it is included as one of the demos that ships with RecordsManager.</p>
  6284.  
  6285.  
  6286.  
  6287. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="577" src="https://www.altova.com/blog/wp-content/uploads/rm1-2.png" alt="Creating an online database using RecordsManager " class="wp-image-26871" srcset="https://www.altova.com/blog/wp-content/uploads/rm1-2.png 700w, https://www.altova.com/blog/wp-content/uploads/rm1-2-300x247.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  6288.  
  6289.  
  6290.  
  6291. <p>The process for defining the online database is roughly as follows:</p>
  6292.  
  6293.  
  6294.  
  6295. <ol type="1">
  6296. <li>Create repository(s) and data containers, and set up a hierarchy</li>
  6297.  
  6298.  
  6299.  
  6300. <li>Configure fields</li>
  6301.  
  6302.  
  6303.  
  6304. <li>Configure forms</li>
  6305.  
  6306.  
  6307.  
  6308. <li>Configure filters</li>
  6309.  
  6310.  
  6311.  
  6312. <li>Design the home page for your app</li>
  6313.  
  6314.  
  6315.  
  6316. <li>Give end users access to the app on mobile and desktop devices</li>
  6317. </ol>
  6318.  
  6319.  
  6320.  
  6321. <p>At the root of the database is one or more repositories. These help organize data containers. In the Contracts sample, there are two repositories: Contract and Company. These in turn contain one or more data containers: Contracts, Company Groups, Companies, Departments, etc. Repositories are used for organizational purposes only: data containers can be moved between repositories as needed. In fact, the entire structure of the online database can be modified at any time, even after data has been entered.</p>
  6322.  
  6323.  
  6324.  
  6325. <h2 class="wp-block-heading" id="online-database-fields">Fields in the Online Database</h2>
  6326.  
  6327.  
  6328.  
  6329. <p>Each data container will include a number of fields for displaying data, or, when applicable, for end users to enter data. Here are the fields that have been defined for records in the Persons data container. Definition is a completely visual process with numerous built in options (text, number, date, auto-increment, reminders, images, etc.) to customize as required.</p>
  6330.  
  6331.  
  6332.  
  6333. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="550" src="https://www.altova.com/blog/wp-content/uploads/rm-fields-1.png" alt="Defining fields for records in the online database " class="wp-image-26870" srcset="https://www.altova.com/blog/wp-content/uploads/rm-fields-1.png 700w, https://www.altova.com/blog/wp-content/uploads/rm-fields-1-300x236.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  6334.  
  6335.  
  6336.  
  6337. <h2 class="wp-block-heading" id="create-forms">Forms for Data Entry and Display</h2>
  6338.  
  6339.  
  6340.  
  6341. <p>Once fields have been defined, they can be organized into forms. Forms are what the user will interact with in your app. You can define forms for various purposes, such as displaying data, <a href="https://www.altova.com/blog/how-to-build-a-data-entry-app/">data entry</a>, displaying reports, exporting data, and formatting reminder emails. For each data container, a separate set of forms is defined that use fields specific to that container.</p>
  6342.  
  6343.  
  6344.  
  6345. <p>One major advantage of using data container-based forms is that access to each type of form can be set separately. As a result, you can design some forms to show data that only certain users are authorized to see and/or edit. You can also design other forms that limit the amount of data being shown – depending on what the user needs to actually see in certain circumstances.</p>
  6346.  
  6347.  
  6348.  
  6349. <p>As with defining the structure and hierarchy of your online database, building forms for your app is a completely visual, no code process. You’ll have complete control over how data is presented. Simply select the fields to be shown and then point-and-click to create tables, group data based on certain criteria, and give end users easy search options to help them find what they need quickly.</p>
  6350.  
  6351.  
  6352.  
  6353. <p>In the forms editor shown below, we’ve created a form to display contracts grouped by category. The contract ID, Title, and Status are displayed in a table.</p>
  6354.  
  6355.  
  6356.  
  6357. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="554" src="https://www.altova.com/blog/wp-content/uploads/rm-forms.png" alt="Defining form layout without coding" class="wp-image-26873" srcset="https://www.altova.com/blog/wp-content/uploads/rm-forms.png 700w, https://www.altova.com/blog/wp-content/uploads/rm-forms-300x237.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  6358.  
  6359.  
  6360.  
  6361. <p></p>
  6362.  
  6363.  
  6364.  
  6365. <p>And here&#8217;s the resulting view for end users. This end user has permissions to view and edit the records listed.</p>
  6366.  
  6367.  
  6368.  
  6369. <p></p>
  6370.  
  6371.  
  6372.  
  6373. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="676" height="621" src="https://www.altova.com/blog/wp-content/uploads/rm-form-result.png" alt="Form for data entry in the online database" class="wp-image-26874" srcset="https://www.altova.com/blog/wp-content/uploads/rm-form-result.png 676w, https://www.altova.com/blog/wp-content/uploads/rm-form-result-300x276.png 300w" sizes="(max-width: 676px) 100vw, 676px" /></figure>
  6374.  
  6375.  
  6376.  
  6377. <p></p>
  6378.  
  6379.  
  6380.  
  6381. <p>To see how easy it is to build forms for your online database app this way, check out the <strong><a href="https://www.altova.com/recordsmanager/forms#form-types">animated examples on our various forms pages</a>.</strong></p>
  6382.  
  6383.  
  6384.  
  6385. <h2 class="wp-block-heading" id="define-data-filters">Define Data Filters</h2>
  6386.  
  6387.  
  6388.  
  6389. <p>After creating your data containers, fields, and forms, you can use visual tools in RecordsManager to define filters that restrict the display of records in certain scenarios.</p>
  6390.  
  6391.  
  6392.  
  6393. <p>Filters can be simple or complex and have numerous uses and advantages, including:</p>
  6394.  
  6395.  
  6396.  
  6397. <ol type="1">
  6398. <li>To filter data displayed in list forms and report forms</li>
  6399.  
  6400.  
  6401.  
  6402. <li>To limit user access to data</li>
  6403.  
  6404.  
  6405.  
  6406. <li>To preselect users who will get reminder notifications via alert groups</li>
  6407.  
  6408.  
  6409.  
  6410. <li>To predefine record searches for each data container</li>
  6411.  
  6412.  
  6413.  
  6414. <li>To enable faster searching by end users</li>
  6415. </ol>
  6416.  
  6417.  
  6418.  
  6419. <p>In the our online database, the admin has created several filters in the Contracts data container to help end users quickly zero-in on the information they need.</p>
  6420.  
  6421.  
  6422.  
  6423. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="337" src="https://www.altova.com/blog/wp-content/uploads/rm-filters.png" alt="Help users find information in the database quickly with filters" class="wp-image-26875" srcset="https://www.altova.com/blog/wp-content/uploads/rm-filters.png 700w, https://www.altova.com/blog/wp-content/uploads/rm-filters-300x144.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  6424.  
  6425.  
  6426.  
  6427. <p></p>
  6428.  
  6429.  
  6430.  
  6431. <p>Creating a filter is a visual, point-and-click process. Here’s how the filter to show users contracts expiring in 90 days is defined:</p>
  6432.  
  6433.  
  6434.  
  6435. <p></p>
  6436.  
  6437.  
  6438.  
  6439. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="648" height="291" src="https://www.altova.com/blog/wp-content/uploads/rm-filter-create.png" alt="Point-and-click to create a filter" class="wp-image-26876" srcset="https://www.altova.com/blog/wp-content/uploads/rm-filter-create.png 648w, https://www.altova.com/blog/wp-content/uploads/rm-filter-create-300x135.png 300w" sizes="(max-width: 648px) 100vw, 648px" /></figure>
  6440.  
  6441.  
  6442.  
  6443. <h2 class="wp-block-heading" id="database-roles-and-permissions">Database Roles and Permissions</h2>
  6444.  
  6445.  
  6446.  
  6447. <p>Specifying granular <a href="https://www.altova.com/blog/role-based-access-control-in-enterprise-apps/">roles and permissions for app access</a> and editing the data in your online database in RecordsManager is &#8211; you guessed it &#8211; an easy, visual process. Below is a view of the permissions configured for users assigned to the Marketing role for the contracts database.</p>
  6448.  
  6449.  
  6450.  
  6451. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="676" height="648" src="https://www.altova.com/blog/wp-content/uploads/roles-permissions.png" alt="" class="wp-image-26878" srcset="https://www.altova.com/blog/wp-content/uploads/roles-permissions.png 676w, https://www.altova.com/blog/wp-content/uploads/roles-permissions-300x288.png 300w, https://www.altova.com/blog/wp-content/uploads/roles-permissions-36x36.png 36w" sizes="(max-width: 676px) 100vw, 676px" /></figure>
  6452.  
  6453.  
  6454.  
  6455. <h2 class="wp-block-heading" id="data-entry-tools">Make it Easy for End Users</h2>
  6456.  
  6457.  
  6458.  
  6459. <p>Online databases build in RecordsManager include a host of tools and functionality to make them <a href="https://www.altova.com/recordsmanager/ease-of-use">easy for end users</a> to navigate and use. These include:</p>
  6460.  
  6461.  
  6462.  
  6463. <ul>
  6464. <li>Editing guidance and validation options</li>
  6465.  
  6466.  
  6467.  
  6468. <li>Editing hints and pre-defined form options</li>
  6469.  
  6470.  
  6471.  
  6472. <li>Scripts that update other fields based on the current entry&nbsp;</li>
  6473.  
  6474.  
  6475.  
  6476. <li>Change tracking and audit tools</li>
  6477.  
  6478.  
  6479.  
  6480. <li>In-app and email reminders</li>
  6481.  
  6482.  
  6483.  
  6484. <li>Offline use</li>
  6485.  
  6486.  
  6487.  
  6488. <li>Automatic <a href="https://www.altova.com/recordsmanager/ease-of-use#responsive">responsive design</a></li>
  6489. </ul>
  6490.  
  6491.  
  6492.  
  6493. <p>The example below shows how to set a validation warning message when a user enters signed date that is after the effective date of a contract. </p>
  6494.  
  6495.  
  6496.  
  6497. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="601" height="273" src="https://www.altova.com/blog/wp-content/uploads/data-entry-validation.png" alt="" class="wp-image-26879" srcset="https://www.altova.com/blog/wp-content/uploads/data-entry-validation.png 601w, https://www.altova.com/blog/wp-content/uploads/data-entry-validation-300x136.png 300w" sizes="(max-width: 601px) 100vw, 601px" /></figure>
  6498.  
  6499.  
  6500.  
  6501. <p></p>
  6502.  
  6503.  
  6504.  
  6505. <p>And the resulting warning to an end user when validation fails:</p>
  6506.  
  6507.  
  6508.  
  6509. <p></p>
  6510.  
  6511.  
  6512.  
  6513. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="328" src="https://www.altova.com/blog/wp-content/uploads/data-entry-message.png" alt="Validation message shown to end users of the online database" class="wp-image-26880" srcset="https://www.altova.com/blog/wp-content/uploads/data-entry-message.png 700w, https://www.altova.com/blog/wp-content/uploads/data-entry-message-300x141.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  6514.  
  6515.  
  6516.  
  6517. <p><br />When you’re ready to deploy your online database, end users can access it on the device of their choice. Your app will be available to users on any desktop computer via web browser, with on-the-go access provided via native iOS and Android apps.</p>
  6518.  
  6519.  
  6520.  
  6521. <p></p>
  6522.  
  6523.  
  6524.  
  6525. <p><a href="https://www.altova.com/recordsmanager#get-started"><strong>Getting started with RecordsManager</strong></a><strong> is absolutely free.</strong> See how easy it is to develop a robust online database with this visual, no-code approach.</p>
  6526. <p>The post <a href="https://www.altova.com/blog/build-an-online-database-without-coding/">How to Build an Online Database – Without Coding</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  6527. ]]></content:encoded>
  6528. </item>
  6529. <item>
  6530. <title>Certified Tools for xBRL-JSON &#038; xBRL-CSV</title>
  6531. <link>https://www.altova.com/blog/certified-tools-for-xbrl-json-xbrl-csv/</link>
  6532. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  6533. <pubDate>Wed, 22 Jun 2022 12:36:47 +0000</pubDate>
  6534. <category><![CDATA[Software]]></category>
  6535. <category><![CDATA[Tools]]></category>
  6536. <category><![CDATA[XBRL]]></category>
  6537. <category><![CDATA[OIM]]></category>
  6538. <category><![CDATA[RaptorXML]]></category>
  6539. <category><![CDATA[xBRL-CSV]]></category>
  6540. <category><![CDATA[xBRL-JSON]]></category>
  6541. <category><![CDATA[XMLSpy]]></category>
  6542. <guid isPermaLink="false">https://www.altova.com/blog/?p=26857</guid>
  6543.  
  6544. <description><![CDATA[<p>XBRL International has finalized the sunrise period for its important new OIM (Object Information Model), which includes the xBRL-JSON and xBRL-CSV standards. In turn, it has completed the software certification process. Any product awarded the XBRL Certified Software designation has been thoroughly tested by XBRL International for conformance with the current XBRL specifications. OIM represents [&#8230;]</p>
  6545. <p>The post <a href="https://www.altova.com/blog/certified-tools-for-xbrl-json-xbrl-csv/">Certified Tools for xBRL-JSON &#038; xBRL-CSV</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  6546. ]]></description>
  6547. <content:encoded><![CDATA[
  6548. <p>XBRL International has finalized the sunrise period for its important new OIM (Object Information Model), which includes the xBRL-JSON and xBRL-CSV standards. In turn, it has completed the software certification process. Any product awarded the XBRL Certified Software designation has been thoroughly tested by XBRL International for conformance with the current XBRL specifications.</p>
  6549.  
  6550.  
  6551.  
  6552. <p>OIM represents a years-long effort of the XBRL community to modernize the financial reporting standard, providing a model for easily transforming XBRL data between XML and other popular formats like CSV and JSON. This way, organizations can take advantage of the functionality of XBRL and at the same time have XBRL documents written in the format(s) most convenient for them.</p>
  6553.  
  6554.  
  6555.  
  6556. <p>Altova XMLSpy and RaptorXML Server were some of the very first tools on the market to support xBRL-JSON and xBRL-CSV and are now officially named <a href="https://software.xbrl.org/">XBRL Certified Software</a> for the OIM standards (in addition to being certified for a variety of other core XBRL technologies).</p>
  6557.  
  6558.  
  6559.  
  6560. <h2 class="wp-block-heading" id="h-learn-more">Learn more:</h2>
  6561.  
  6562.  
  6563.  
  6564. <ul><li><a href="https://www.altova.com/blog/learn-about-oim-xbrl/">What is OIM?</a></li><li>Altova <a href="https://www.altova.com/oim-tools">tools for xBRL-JSON and xBRL-CSV</a></li><li>What are the benefits of choosing <a href="https://software.xbrl.org/">XBRL Certified Software</a>?</li></ul>
  6565.  
  6566.  
  6567.  
  6568. <p></p>
  6569.  
  6570.  
  6571.  
  6572. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/image_631594028.jpg" alt="Colleagues collaborating on computers in an office " class="wp-image-26739" srcset="https://www.altova.com/blog/wp-content/uploads/image_631594028.jpg 700w, https://www.altova.com/blog/wp-content/uploads/image_631594028-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  6573. <p>The post <a href="https://www.altova.com/blog/certified-tools-for-xbrl-json-xbrl-csv/">Certified Tools for xBRL-JSON &#038; xBRL-CSV</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  6574. ]]></content:encoded>
  6575. </item>
  6576. <item>
  6577. <title>Build No-Code Database Apps with RecordsManager</title>
  6578. <link>https://www.altova.com/blog/build-no-code-database-apps-with-recordsmanager/</link>
  6579. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  6580. <pubDate>Wed, 08 Jun 2022 13:22:55 +0000</pubDate>
  6581. <category><![CDATA[App Development]]></category>
  6582. <category><![CDATA[Database]]></category>
  6583. <category><![CDATA[No Code]]></category>
  6584. <category><![CDATA[app development]]></category>
  6585. <category><![CDATA[database apps]]></category>
  6586. <category><![CDATA[enterprise apps]]></category>
  6587. <category><![CDATA[no-code app development]]></category>
  6588. <category><![CDATA[RecordsManager]]></category>
  6589. <category><![CDATA[RMAD]]></category>
  6590. <guid isPermaLink="false">https://www.altova.com/blog/?p=26835</guid>
  6591.  
  6592. <description><![CDATA[<p>We are excited to announce availability of a new product in the Altova app development framework: RecordsManager. Altova RecordsManager offers a completely visual, no-code interface for quickly creating custom database apps. RecordsManager is perfect for any app that handles data in records: think contract management, a customer database, an invoicing system, a database of local [&#8230;]</p>
  6593. <p>The post <a href="https://www.altova.com/blog/build-no-code-database-apps-with-recordsmanager/">Build No-Code Database Apps with RecordsManager</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  6594. ]]></description>
  6595. <content:encoded><![CDATA[
  6596. <p>We are excited to announce availability of a new product in the Altova app development framework: RecordsManager.</p>
  6597.  
  6598.  
  6599.  
  6600. <p>Altova RecordsManager offers a completely visual, no-code interface for quickly creating custom database apps. RecordsManager is perfect for any app that handles data in records: think contract management, a customer database, an invoicing system, a database of local attractions or collections – the sky is the limit.</p>
  6601.  
  6602.  
  6603.  
  6604. <p>Your RecordsManager app will automatically be available on desktop devices as well as on mobile using native iOS and Android apps and provides tons of features that make it easy for end-users. Let’s see how it works.</p>
  6605.  
  6606.  
  6607.  
  6608. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/RM_blog.jpg" alt="Promotional image announcing RecordsManager " class="wp-image-26838" srcset="https://www.altova.com/blog/wp-content/uploads/RM_blog.jpg 700w, https://www.altova.com/blog/wp-content/uploads/RM_blog-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  6609.  
  6610.  
  6611.  
  6612. <span id="more-26835"></span>
  6613.  
  6614.  
  6615.  
  6616. <h2 class="wp-block-heading" id="h-introducing-altova-recordsmanager">Introducing Altova RecordsManager</h2>
  6617.  
  6618.  
  6619.  
  6620. <p>Altova RecordsManager gives developers and systems administrators of all skill levels the ability to build custom business database solutions – <strong>with no coding or database development required</strong>.</p>
  6621.  
  6622.  
  6623.  
  6624. <p></p>
  6625.  
  6626.  
  6627.  
  6628. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="546" src="https://www.altova.com/blog/wp-content/uploads/AltovaRecordsManager.png" alt="" class="wp-image-26832" srcset="https://www.altova.com/blog/wp-content/uploads/AltovaRecordsManager.png 700w, https://www.altova.com/blog/wp-content/uploads/AltovaRecordsManager-300x234.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  6629.  
  6630.  
  6631.  
  6632. <p></p>
  6633.  
  6634.  
  6635.  
  6636. <p>Powerful features and shortcuts cut down on development time as you define and link the&nbsp;repositories,&nbsp;data containers,&nbsp;forms,&nbsp;fields, and&nbsp;filters&nbsp;that drive your app. It’s easy to add powerful data and business logic validation, granular search tools, reminders, reports and more.</p>
  6637.  
  6638.  
  6639.  
  6640. <p>That’s it – the rest of the work is done for you by RecordsManager behind the scenes.</p>
  6641.  
  6642.  
  6643.  
  6644. <p>Apps built in <a href="https://www.altova.com/recordsmanager">Altova RecordsManager</a> are automatically optimized for desktop and mobile devices and include automatic responsive design for all layouts. When your app is ready, end users can access it on their computer using a browser or native Windows client. Mobile users will have access via native iPhone and Android apps. There’s even an offline mode for mobile users when Internet connectivity is spotty or unavailable.</p>
  6645.  
  6646.  
  6647.  
  6648. <h2 class="wp-block-heading" id="h-how-is-recordsmanager-different">How is RecordsManager Different?</h2>
  6649.  
  6650.  
  6651.  
  6652. <p>While there are many tools available for <a href="https://www.altova.com/recordsmanager">building online databases</a> and creating database apps, Altova RecordsManager provides some unique advantages:</p>
  6653.  
  6654.  
  6655.  
  6656. <ul><li>Build apps fast thanks to visual design interface:</li><li>No code</li><li>No backend database development required</li><li>Your single design provides:</li><li>Desktop access via native Windows client or web browser</li><li>Native Android and iOS apps for mobile users</li><li>Easy to use, flexible forms editor for displaying and entering data</li><li>Configure structure of all components as needed &#8211; even after data is entered</li><li>Built-in tools that make your app easy for end users</li><li>Granular roles and permissions options for managing user access</li></ul>
  6657.  
  6658.  
  6659.  
  6660. <p>Take a look at how it works in this video:</p>
  6661.  
  6662.  
  6663.  
  6664. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  6665. <div class='avia-iframe-wrap'><iframe loading="lazy" title="Create No-Code Database Apps with Altova RecordsManager" width="1333" height="1000" src="https://www.youtube.com/embed/ywrgfimaH7w?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>
  6666. </div></figure>
  6667.  
  6668.  
  6669.  
  6670. <h2 class="wp-block-heading" id="h-visual-no-code-app-development">Visual, No Code App Development</h2>
  6671.  
  6672.  
  6673.  
  6674. <p>Database apps created in RecordsManager are easy to build but can be sophisticated, with numerous database tables, lists, forms, and reports to meet a wide range of needs. Developers can customize the views and tables as well as the layout – all with zero manual coding required.&nbsp;</p>
  6675.  
  6676.  
  6677.  
  6678. <p>Let’s look at an example. To create a list form like the one below, you start out with picking the data fields you want to display. The layout of each list form is defined within a table, which you can structure according to how you want to display the records. Simply select the fields to show in the columns of the table (or add alternative content). You can easily add a second row for each record and display optional content, like a description in the second row. Then, adjust the width and styling of each column as desired.</p>
  6679.  
  6680.  
  6681.  
  6682. <p>In this example, a list form is created to display each department in the database along with its company and description in a table with columns sized automatically based on the content.</p>
  6683.  
  6684.  
  6685.  
  6686. <figure class="wp-block-video"><video controls src="https://www.altova.com/images/departments-descriptions.mp4"></video></figure>
  6687.  
  6688.  
  6689.  
  6690. <p>The resulting form will allow users to view and edit records.</p>
  6691.  
  6692.  
  6693.  
  6694. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="631" src="https://www.altova.com/blog/wp-content/uploads/dept-desc.png" alt="List view in a custom database app " class="wp-image-26844" srcset="https://www.altova.com/blog/wp-content/uploads/dept-desc.png 700w, https://www.altova.com/blog/wp-content/uploads/dept-desc-300x270.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  6695.  
  6696.  
  6697.  
  6698. <p>Additional forms options include grouping sections into easy-to-navigate chunks, jump-to and search tools, and much more. Read all about the different <a href="https://www.altova.com/recordsmanager/forms">forms you can create</a> using RecordsManager.</p>
  6699.  
  6700.  
  6701.  
  6702. <h2 class="wp-block-heading" id="h-make-your-apps-easy-for-end-users">Make Your Apps Easy for End Users</h2>
  6703.  
  6704.  
  6705.  
  6706. <p>RecordsManager includes numerous built-in features that automatically make your apps easy to navigate, easy to use, and even a little fun.</p>
  6707.  
  6708.  
  6709.  
  6710. <p><strong>Customizable display</strong></p>
  6711.  
  6712.  
  6713.  
  6714. <p>Each app built in RecordsManager includes an image library and numerous color themes that end users can choose to customize their experience. &nbsp;Various color themes are shown in the screenshots throughout this article. Users may also customize the text size as desired.</p>
  6715.  
  6716.  
  6717.  
  6718. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="547" src="https://www.altova.com/blog/wp-content/uploads/customize.png" alt="End users can customize the color theme in your app" class="wp-image-26845" srcset="https://www.altova.com/blog/wp-content/uploads/customize.png 700w, https://www.altova.com/blog/wp-content/uploads/customize-300x234.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  6719.  
  6720.  
  6721.  
  6722. <p><strong>Filters and search to zero-in on relevant data</strong></p>
  6723.  
  6724.  
  6725.  
  6726. <p>RecordsManager apps include flexible <a href="https://www.altova.com/recordsmanager/filters">filters</a> that allow the system administrator to restrict the display of records based on any scenario, showing users relevant data based on the current context or even user permissions.</p>
  6727.  
  6728.  
  6729.  
  6730. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="474" src="https://www.altova.com/blog/wp-content/uploads/filter.png" alt="Filter the display of records in the online database" class="wp-image-26846" srcset="https://www.altova.com/blog/wp-content/uploads/filter.png 700w, https://www.altova.com/blog/wp-content/uploads/filter-300x203.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  6731.  
  6732.  
  6733.  
  6734. <p>Built-in search tools can be customized to show pre-defined searches that help users find what they need quickly.&nbsp;</p>
  6735.  
  6736.  
  6737.  
  6738. <p><strong>Data entry helpers</strong></p>
  6739.  
  6740.  
  6741.  
  6742. <p>For data entry, it’s easy to provide pre-filled values such as dates and geolocation data, and the system administrator can define data validation rules and messages to help guide easy, efficient data entry. Helpful data entry features include:</p>
  6743.  
  6744.  
  6745.  
  6746. <ul><li>Validation of data values entered</li><li>Validation of the format of data entered</li><li>Editing hints</li><li>Predefined form value options</li><li>Option for pre-filled fields (e.g., date, auto-incremented ID number, etc.)</li><li>Scripts that update other fields based on the current entry</li><li>Ability to replicate update across multiple records</li></ul>
  6747.  
  6748.  
  6749.  
  6750. <p><strong>Data history, change tracking, and audit</strong></p>
  6751.  
  6752.  
  6753.  
  6754. <p>Apps you build in RecordsManager provide <a href="https://www.altova.com/recordsmanager/change-tracking">built-in change tracking and audit</a> tools to help users understand the history of a record, including which changes were made when, and by which user.</p>
  6755.  
  6756.  
  6757.  
  6758. <p>During data entry, it’s easy to review all changes before saving a record, and collision detection helps resolve conflicts when multiple users edit a record at once. Unlimited undo / redo functionality gives users more control over their data entry and quality control. Any possible errors can easily be reviewed and reversed.</p>
  6759.  
  6760.  
  6761.  
  6762. <p><strong>Built-in reminders and alert groups</strong></p>
  6763.  
  6764.  
  6765.  
  6766. <p>Custom database apps created in Altova RecordsManager include built-in functionality for reminding users about important dates and deadlines via reminders sent to alert groups.</p>
  6767.  
  6768.  
  6769.  
  6770. <p>An Alert Group defines a group of users who will receive reminder notification emails concerning a particular event. Any number of alert groups can be defined.</p>
  6771.  
  6772.  
  6773.  
  6774. <p><strong>Offline use</strong></p>
  6775.  
  6776.  
  6777.  
  6778. <p><a href="https://www.altova.com/recordsmanager/offline-use">Offline app use</a> gives mobile users the option to continue to work with your app when an Internet connection is unstable or is altogether unavailable. &nbsp;The end user can continue to view existing records and even add new records during offline use. When an Internet connection is restored, the user has the option to save any newly added records or discard them.</p>
  6779.  
  6780.  
  6781.  
  6782. <h2 class="wp-block-heading" id="h-roles-and-permissions">Roles and Permissions</h2>
  6783.  
  6784.  
  6785.  
  6786. <p>For enterprise database solutions, management of roles and permissions is of paramount importance. RecordsManager makes it easy for system admins with the same visual interface, which offers granular options for managing user access and configuring reminders and notifications based on user roles.</p>
  6787.  
  6788.  
  6789.  
  6790. <p>The admin can define any number of roles, each of which can have access to different <a href="https://www.altova.com/recordsmanager/forms">forms</a>, allowing for precise control over which records and fields users can access and/or edit.</p>
  6791.  
  6792.  
  6793.  
  6794. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="615" height="747" src="https://www.altova.com/blog/wp-content/uploads/app-permissions.png" alt="Managing app roles and permissions with a visual interface" class="wp-image-26847" srcset="https://www.altova.com/blog/wp-content/uploads/app-permissions.png 615w, https://www.altova.com/blog/wp-content/uploads/app-permissions-247x300.png 247w, https://www.altova.com/blog/wp-content/uploads/app-permissions-580x705.png 580w" sizes="(max-width: 615px) 100vw, 615px" /></figure>
  6795.  
  6796.  
  6797.  
  6798. <p>This is just an overview of all the <a href="https://www.altova.com/recordsmanager/features">features</a> available in Altova RecordsManager.</p>
  6799.  
  6800.  
  6801.  
  6802. <h2 class="wp-block-heading" id="h-try-recordsmanager-for-free">Try RecordsManager for Free</h2>
  6803.  
  6804.  
  6805.  
  6806. <p>Altova RecordsManager&nbsp;is a free, pre-built MobileTogether solution that is available for you to start using when you install MobileTogether Designer. <a href="https://www.altova.com/mobiletogether/download">Download</a> and install the free Altova MobileTogether Designer to get started on your first RecordsManager app.</p>
  6807.  
  6808.  
  6809.  
  6810. <hr class="wp-block-separator has-css-opacity"/>
  6811.  
  6812.  
  6813.  
  6814. <p><a id="_msocom_1"></a></p>
  6815.  
  6816.  
  6817.  
  6818. <p></p>
  6819. <p>The post <a href="https://www.altova.com/blog/build-no-code-database-apps-with-recordsmanager/">Build No-Code Database Apps with RecordsManager</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  6820. ]]></content:encoded>
  6821. <enclosure url="https://www.altova.com/images/departments-descriptions.mp4" length="369981" type="video/mp4" />
  6822.  
  6823. </item>
  6824. <item>
  6825. <title>MobileTogether Gets a Major Update</title>
  6826. <link>https://www.altova.com/blog/mobiletogether-gets-major-update/</link>
  6827. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  6828. <pubDate>Wed, 01 Jun 2022 13:58:45 +0000</pubDate>
  6829. <category><![CDATA[App Development]]></category>
  6830. <category><![CDATA[Low Code]]></category>
  6831. <category><![CDATA[MobileTogether]]></category>
  6832. <category><![CDATA[app design]]></category>
  6833. <category><![CDATA[app development]]></category>
  6834. <category><![CDATA[new features]]></category>
  6835. <category><![CDATA[What&#039;s new]]></category>
  6836. <guid isPermaLink="false">https://www.altova.com/blog/?p=26824</guid>
  6837.  
  6838. <description><![CDATA[<p>Version 8.0 of MobileTogether adds several exciting new features to the innovative platform for building enterprise and mobile apps, giving existing customers a major upgrade and paving the way for new customers to create full-featured apps even faster than before. Major additions to the platform include a brand new way of interacting with relational databases, [&#8230;]</p>
  6839. <p>The post <a href="https://www.altova.com/blog/mobiletogether-gets-major-update/">MobileTogether Gets a Major Update</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  6840. ]]></description>
  6841. <content:encoded><![CDATA[
  6842. <p>Version 8.0 of MobileTogether adds several exciting new features to the innovative platform for building enterprise and mobile apps, giving existing customers a major upgrade and paving the way for new customers to create full-featured apps even faster than before.</p>
  6843.  
  6844.  
  6845.  
  6846. <p>Major additions to the platform include a brand new way of interacting with relational databases, support for modularization, and much more.</p>
  6847.  
  6848.  
  6849.  
  6850. <p>Version 8.0 also coincides with the launch of Altova RecordsManager, a new offering that gives system administrators a completely no-code option for creating business database apps in MobileTogether Designer.</p>
  6851.  
  6852.  
  6853.  
  6854. <p>Let’s take a look at the highlights.</p>
  6855.  
  6856.  
  6857.  
  6858. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/MT8.0_blog.jpg" alt="Announcing MobileTogether 8.0" class="wp-image-26826" srcset="https://www.altova.com/blog/wp-content/uploads/MT8.0_blog.jpg 700w, https://www.altova.com/blog/wp-content/uploads/MT8.0_blog-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  6859.  
  6860.  
  6861.  
  6862. <span id="more-26824"></span>
  6863.  
  6864.  
  6865.  
  6866. <h3 class="wp-block-heading" id="h-new-database-wizard-hierarchical-database-read-write">New Database Wizard &amp; hierarchical database read/write</h3>
  6867.  
  6868.  
  6869.  
  6870. <p>Previously, connecting apps with backend data in relational databases required quite a bit of hand-written SQL work to perform commonly required tasks. For instance, including data from two tables in a single form required two separate database queries. As such, saving the same data back to the database was also complicated.</p>
  6871.  
  6872.  
  6873.  
  6874. <p>MobileTogether 8.0 takes an entirely new approach that lets developers more readily build a query that returns hierarchical data &#8211; and write the data back in hierarchical form. The new Database Wizard offers an easy way to <a href="https://www.altova.com/blog/building-apps-with-an-intelligent-database-wizard/">build SELECT statements visually</a>, and any parameter to the SQL query can now be directly expressed using an XPath statement, i.e., there is no longer a need to explicitly declare parameters.</p>
  6875.  
  6876.  
  6877.  
  6878. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="613" height="566" src="https://www.altova.com/blog/wp-content/uploads/mobiletogether-database.png" alt="Connect to backend databases for app development " class="wp-image-26827" srcset="https://www.altova.com/blog/wp-content/uploads/mobiletogether-database.png 613w, https://www.altova.com/blog/wp-content/uploads/mobiletogether-database-300x277.png 300w" sizes="(max-width: 613px) 100vw, 613px" /></figure>
  6879.  
  6880.  
  6881.  
  6882. <p></p>
  6883.  
  6884.  
  6885.  
  6886. <p>The Database Wizard also lets developers add tables connected via foreign keys to the result – all in a single step. This means an entire hierarchy can be retrieved at once.</p>
  6887.  
  6888.  
  6889.  
  6890. <p></p>
  6891.  
  6892.  
  6893.  
  6894. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="675" height="543" src="https://www.altova.com/blog/wp-content/uploads/MobileTogether-heirarchy.png" alt="Retrieving a relational hierarchy " class="wp-image-26829" srcset="https://www.altova.com/blog/wp-content/uploads/MobileTogether-heirarchy.png 675w, https://www.altova.com/blog/wp-content/uploads/MobileTogether-heirarchy-300x241.png 300w" sizes="(max-width: 675px) 100vw, 675px" /></figure>
  6895.  
  6896.  
  6897.  
  6898. <p>Any changes made during app execution will be intelligently written back to the relationally linked database at once.&nbsp;</p>
  6899.  
  6900.  
  6901.  
  6902. <p>The new approach to working with hierarchical data in otherwise flat relational databases in MobileTogether will prove to be a huge time saver that makes app development that much simpler. Learn more about <a href="https://www.altova.com/blog/building-apps-with-an-intelligent-database-wizard/">connecting your apps to a SQL database</a>.</p>
  6903.  
  6904.  
  6905.  
  6906. <h3 class="wp-block-heading" id="h-modularization-support">Modularization support</h3>
  6907.  
  6908.  
  6909.  
  6910. <p>Multiple new features make it possible to modularize MobileTogether Design files and components so that multiple developers can work on the same project. Modularization support also adds the ability to automatically organize related design components and reuse parts of projects in other projects.</p>
  6911.  
  6912.  
  6913.  
  6914. <p><strong>Sub-projects</strong></p>
  6915.  
  6916.  
  6917.  
  6918. <p>To facilitate refactoring of existing projects, there is a new option to extract part of an existing project as a new <a href="https://www.altova.com/mobiletogether/whatsnew#modularization">sub project</a>. This enables a wide range of components that are defined in a project to be re-used across multiple projects. A new Refactor menu provides options for working with subprojects.</p>
  6919.  
  6920.  
  6921.  
  6922. <p></p>
  6923.  
  6924.  
  6925.  
  6926. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="490" height="515" src="https://www.altova.com/blog/wp-content/uploads/mobiletogether-refactor.png" alt="Refactoring support in MobileTogether" class="wp-image-26830" srcset="https://www.altova.com/blog/wp-content/uploads/mobiletogether-refactor.png 490w, https://www.altova.com/blog/wp-content/uploads/mobiletogether-refactor-285x300.png 285w" sizes="(max-width: 490px) 100vw, 490px" /></figure>
  6927.  
  6928.  
  6929.  
  6930. <p></p>
  6931.  
  6932.  
  6933.  
  6934. <p><strong>Modules</strong></p>
  6935.  
  6936.  
  6937.  
  6938. <p>Modularization is also implemented with a new <a href="https://www.altova.com/mobiletogether/whatsnew#modularization">Modules pane</a>, which organizes design components into logical parts.</p>
  6939.  
  6940.  
  6941.  
  6942. <p>Modules are grouped automatically based on their names. This way, you can tell at a glance which functions and actions go with which pages, and you can navigate to them automatically from the modules listing.</p>
  6943.  
  6944.  
  6945.  
  6946. <p>Adding a custom color to a module highlights the module items in that color across the project for easy identification.</p>
  6947.  
  6948.  
  6949.  
  6950. <p></p>
  6951.  
  6952.  
  6953.  
  6954. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="281" height="637" src="https://www.altova.com/blog/wp-content/uploads/mobiletogether-modules.png" alt="Modules organize project into logical parts" class="wp-image-26831" srcset="https://www.altova.com/blog/wp-content/uploads/mobiletogether-modules.png 281w, https://www.altova.com/blog/wp-content/uploads/mobiletogether-modules-132x300.png 132w" sizes="(max-width: 281px) 100vw, 281px" /></figure>
  6955.  
  6956.  
  6957.  
  6958. <p>Additional features that enable modularization include:</p>
  6959.  
  6960.  
  6961.  
  6962. <ul>
  6963. <li><a href="https://www.altova.com/mobiletogether/whatsnew#server-libraries">Server Libraries</a>: these can be exchanged at any time without needing to redeploy the app</li>
  6964.  
  6965.  
  6966.  
  6967. <li><a href="https://www.altova.com/mobiletogether/whatsnew#server-side">Server-side solution files</a></li>
  6968. </ul>
  6969.  
  6970.  
  6971.  
  6972. <p>Refactoring and modularization offer numerous advantages from reducing development time and enabling teamwork to supporting fast, flexible updates and maintenance.</p>
  6973.  
  6974.  
  6975.  
  6976. <h3 class="wp-block-heading" id="h-no-code-development-with-recordsmanager">No-code development with RecordsManager</h3>
  6977.  
  6978.  
  6979.  
  6980. <p>With the release of MobileTogether 8.0 comes a brand new approach for building custom database apps called <a href="https://www.altova.com/recordsmanager">Altova RecordsManager</a>.</p>
  6981.  
  6982.  
  6983.  
  6984. <p>Now, when you open MobileTogether Designer you will have the option to create a classic MobileTogether solution — or start with Altova RecordsManager. RecordsManager has a visual, no-code interface for quickly building business database apps for desktop and mobile users.</p>
  6985.  
  6986.  
  6987.  
  6988. <p>One of the biggest advantages of RecordsManager is that <strong>app creators don’t need to build the database backend themselves</strong>. They simply focus on the objects they want to model, and RecordsManager takes care of the rest. This saves an incredible amount of time and work and allows system administrators or developers of all skill levels to easily create effective apps.</p>
  6989.  
  6990.  
  6991.  
  6992. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="546" src="https://www.altova.com/blog/wp-content/uploads/AltovaRecordsManager.png" alt="New Altova RecordsManager for building custom database apps" class="wp-image-26832" srcset="https://www.altova.com/blog/wp-content/uploads/AltovaRecordsManager.png 700w, https://www.altova.com/blog/wp-content/uploads/AltovaRecordsManager-300x234.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  6993.  
  6994.  
  6995.  
  6996. <p>Powerful features and shortcuts cut down on development time as you define and link the&nbsp;repositories,&nbsp;data containers,&nbsp;forms,&nbsp;fields, and&nbsp;filters&nbsp;that drive your app. It’s easy to add powerful data and business logic validation, granular search tools, reminders, reports and more.</p>
  6997.  
  6998.  
  6999.  
  7000. <p>When your database app is ready, you can deploy it to users on desktop and mobile devices just like any other MobileTogether solution.</p>
  7001.  
  7002.  
  7003.  
  7004. <p>RecordsManager is the fastest way to build sophisticated business database apps – with zero manual coding required.</p>
  7005.  
  7006.  
  7007.  
  7008. <h3 class="wp-block-heading" id="h-new-functionality-for-actions">New Functionality for Actions</h3>
  7009.  
  7010.  
  7011.  
  7012. <p>The powerful <a href="https://www.altova.com/mobiletogether/app-development#action-trees">Action Tree visual programming language</a> for event handling in classic MobileTogether designs has been enhanced with some additional Actions and options including:</p>
  7013.  
  7014.  
  7015.  
  7016. <ul>
  7017. <li>New lock/unlock Action for server access during critical changes</li>
  7018.  
  7019.  
  7020.  
  7021. <li>New Action to rename file/folder</li>
  7022.  
  7023.  
  7024.  
  7025. <li>New copy file/folder Action to move file/folder to new location on the same device or server</li>
  7026.  
  7027.  
  7028.  
  7029. <li>Option to move deleted files to Trash or Recycle Bin</li>
  7030.  
  7031.  
  7032.  
  7033. <li>New option to switch device theme via an Action</li>
  7034. </ul>
  7035.  
  7036.  
  7037.  
  7038. <h3 class="wp-block-heading" id="h-additional-new-features">Additional new features</h3>
  7039.  
  7040.  
  7041.  
  7042. <ul>
  7043. <li>Support for additional database versions</li>
  7044.  
  7045.  
  7046.  
  7047. <li>Ability to restrict logging in MobileTogether Designer during simulation</li>
  7048.  
  7049.  
  7050.  
  7051. <li>Comments in page sources</li>
  7052.  
  7053.  
  7054.  
  7055. <li>Support for iOS 15 and Android 12</li>
  7056.  
  7057.  
  7058.  
  7059. <li>Support for Windows 11 (MobileTogether Designer and Server)</li>
  7060.  
  7061.  
  7062.  
  7063. <li>Support for macOS Big Sur, macOS Monterey, and Linux Debian 11 (MobileTogether Server)</li>
  7064. </ul>
  7065.  
  7066.  
  7067.  
  7068. <p></p>
  7069.  
  7070.  
  7071.  
  7072. <p>Try RecordsManager and all the new MobileTogether features by <a href="https://www.altova.com/mobiletogether/download">downloading MobileTogether Designer</a> for free.</p>
  7073. <p>The post <a href="https://www.altova.com/blog/mobiletogether-gets-major-update/">MobileTogether Gets a Major Update</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  7074. ]]></content:encoded>
  7075. </item>
  7076. <item>
  7077. <title>Working with Avro Big Data in Your Favorite XML Editor</title>
  7078. <link>https://www.altova.com/blog/working-with-avro-big-data-in-xml-editor/</link>
  7079. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  7080. <pubDate>Wed, 25 May 2022 13:35:00 +0000</pubDate>
  7081. <category><![CDATA[Development]]></category>
  7082. <category><![CDATA[Software]]></category>
  7083. <category><![CDATA[Tools]]></category>
  7084. <category><![CDATA[Avro]]></category>
  7085. <category><![CDATA[Big Data]]></category>
  7086. <category><![CDATA[JSON]]></category>
  7087. <category><![CDATA[RaptorXML]]></category>
  7088. <category><![CDATA[XML]]></category>
  7089. <category><![CDATA[XML Editor]]></category>
  7090. <category><![CDATA[XMLSpy]]></category>
  7091. <guid isPermaLink="false">https://www.altova.com/blog/?p=2591</guid>
  7092.  
  7093. <description><![CDATA[<p>Big Data trends have developers working with XML alongside other data protocols such as JSON and Apache Avro, and XMLSpy supports both of these with dedicated editing views and functionality. Let’s see how specialized Avro support in XMLSpy makes visualizing and searching Avro files, as well as editing Avro schemas, uniquely easy. We’ll also look [&#8230;]</p>
  7094. <p>The post <a href="https://www.altova.com/blog/working-with-avro-big-data-in-xml-editor/">Working with Avro Big Data in Your Favorite XML Editor</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  7095. ]]></description>
  7096. <content:encoded><![CDATA[<p>Big Data trends have developers working with XML alongside other data protocols such as <a href="https://www.altova.com/json-tools">JSON</a> and Apache Avro, and XMLSpy supports both of these with dedicated editing views and functionality.</p>
  7097. <p>Let’s see how specialized Avro support in XMLSpy makes visualizing and searching Avro files, as well as editing Avro schemas, uniquely easy. We’ll also look at some of the advantages of utilizing RaptorXML Server for high-performance Avro processing.</p>
  7098. <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2015" src="https://www.altova.com/blog/wp-content/uploads/shutterstock_88166515.jpg" alt="shutterstock_88166515" width="700" height="335" srcset="https://www.altova.com/blog/wp-content/uploads/shutterstock_88166515.jpg 700w, https://www.altova.com/blog/wp-content/uploads/shutterstock_88166515-300x144.jpg 300w, https://www.altova.com/blog/wp-content/uploads/shutterstock_88166515-450x215.jpg 450w" sizes="(max-width: 700px) 100vw, 700px" /></p>
  7099. <p><span id="more-2591"></span></p>
  7100. <h2>What is Avro?</h2>
  7101. <p>Apache <a href="https://avro.apache.org/">Avro</a><img src="https://s.w.org/images/core/emoji/14.0.0/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /> is a system for compact, fast, binary serialization of big data that is most often used within the Apache <a href="http://hadoop.apache.org/">Hadoop</a> framework. In addition to the advantages of its compact binary format, Avro is platform-independent and can be used to exchange data between programs that are written in a different language. The corresponding Avro schema is always included in the transmitted Avro message, making it possible for any application to de-serialize the data.</p>
  7102. <p><img loading="lazy" decoding="async" class="alignnone wp-image-2594 size-full" src="https://www.altova.com/blog/wp-content/uploads/avro-logo.png" alt="Avro Logo (TM) " width="700" height="130" srcset="https://www.altova.com/blog/wp-content/uploads/avro-logo.png 700w, https://www.altova.com/blog/wp-content/uploads/avro-logo-300x56.png 300w, https://www.altova.com/blog/wp-content/uploads/avro-logo-450x84.png 450w" sizes="(max-width: 700px) 100vw, 700px" /></p>
  7103. <p style="text-align: center;"><em>Logo trademark of the Apache Software Foundation</em></p>
  7104. <h2>View and Edit Avro Schema</h2>
  7105. <p><a href="https://www.altova.com/xmlspy-xml-editor/avro_tools">Avro schemas</a> are written in JSON, and as such can be readily viewed and edited in the XMLSpy <a href="https://altova.com/xmlspy-xml-editor/json_editor">JSON editor</a>, which lets you switch between text-based editing and/or Grid View for a graphical representation of the document’s structure.</p>
  7106. <p>The screenshot below shows an Avro schema in Text View, which provides line numbering, source folding, bracket matching, intelligent entry helpers, and other helpful functionality for editing the JSON, as well as built-in validation against the Avro spec.</p>
  7107. <h2> <img loading="lazy" decoding="async" class="alignnone size-full wp-image-2593" src="https://www.altova.com/blog/wp-content/uploads/avro-schema-editor-1.png" alt="Avro Schema Editor" width="700" height="384" srcset="https://www.altova.com/blog/wp-content/uploads/avro-schema-editor-1.png 700w, https://www.altova.com/blog/wp-content/uploads/avro-schema-editor-1-300x165.png 300w, https://www.altova.com/blog/wp-content/uploads/avro-schema-editor-1-450x247.png 450w" sizes="(max-width: 700px) 100vw, 700px" /></h2>
  7108. <h2>Viewing and Searching Avro Files</h2>
  7109. <p>Binary Avro files aren&#8217;t only huge &#8211; they’re also not readily viewable in any productive way using existing tools. To make this easier, developers can take advantage of the specialized Avro View in XMLSpy.</p>
  7110. <p>Below is a shot of the user-friendly <a href="https://www.altova.com/xmlspy-xml-editor/avro_tools">Avro viewer</a> that uses a grid to displays the Avro data structures in an easy-to-read tabular format.</p>
  7111. <p><img loading="lazy" decoding="async" class="alignnone wp-image-2592 size-full" title="Avro Binary Viewer" src="https://www.altova.com/blog/wp-content/uploads/view-search-avro.png" alt="Avro Binary Viewer " width="700" height="384" srcset="https://www.altova.com/blog/wp-content/uploads/view-search-avro.png 700w, https://www.altova.com/blog/wp-content/uploads/view-search-avro-300x165.png 300w, https://www.altova.com/blog/wp-content/uploads/view-search-avro-450x247.png 450w" sizes="(max-width: 700px) 100vw, 700px" /></p>
  7112. <p>The Blocks Pane on the left-hand side lets you select any of the blocks of data, which are displayed by their index number, to view in the Data Pane.</p>
  7113. <p>You can also quickly search the entire file at once, and each instance of the search string will be highlighted both in the data pane as well as in any block that contains the string. Searching by regular expressions is also supported.</p>
  7114. <p>Since the Avro file includes the corresponding schema, that is also displayed at the top of the Blocks pane.  Click the arrow button to extract the Avro schema and view it in Text View, where you can also save and/or edit it as required.</p>
  7115. <p>The Avro Viewer also supports validation of the Avro binary against its schema.</p>
  7116. <p>These <a href="https://www.altova.com/xmlspy-xml-editor/avro_tools">Avro tools</a> are a great addition to XMLSpy for developers working with big data in any format. Now let’s ratchet up the processing power a notch for when you’re faced with a large volume of Avro files.</p>
  7117. <h2>Avro Processing on RaptorXML Server</h2>
  7118. <p><a href="https://www.altova.com/raptorxml">RaptorXML Server</a>, Altova’s third generation validation and processing engine, is perfectly suited to wrangle the huge amounts of data in Avro files. Built from the ground-up to be optimized for parallel computing, RaptorXML includes a bevy of features that deliver hyper-performance, increased throughput, and efficient memory utilization to validate and process big data.</p>
  7119. <p>RaptorXML supports Avro in addition to XML, JSON, and XBRL. Commands are available to extract an Avro schema from an instance, validate Avro schemas, and validate Avro instances against their associated schema.</p>
  7120. <p><strong><a href="https://www.altova.com/download">Check out</a> Avro support in XMLSpy now. You can also <a href="https://www.altova.com/raptorxml/download">try</a> RaptorXML Server free for 30 days.</strong></p>
  7121. <p> </p>
  7122.  
  7123.  
  7124. <p></p>
  7125. <p>The post <a href="https://www.altova.com/blog/working-with-avro-big-data-in-xml-editor/">Working with Avro Big Data in Your Favorite XML Editor</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  7126. ]]></content:encoded>
  7127. </item>
  7128. <item>
  7129. <title>Automatically Convert EDI to XML</title>
  7130. <link>https://www.altova.com/blog/automatically-convert-edi-to-xml/</link>
  7131. <dc:creator><![CDATA[David McGahey]]></dc:creator>
  7132. <pubDate>Wed, 18 May 2022 13:11:00 +0000</pubDate>
  7133. <category><![CDATA[Data Integration]]></category>
  7134. <category><![CDATA[EDI]]></category>
  7135. <category><![CDATA[Tools]]></category>
  7136. <category><![CDATA[data conversion]]></category>
  7137. <category><![CDATA[data mapping]]></category>
  7138. <category><![CDATA[XML]]></category>
  7139. <guid isPermaLink="false">https://www.altova.com/blog/?p=26203</guid>
  7140.  
  7141. <description><![CDATA[<p>Electronic Data Interchange (EDI) has proven to be a durable business-to-business communication technology in use today with history dating to the 1960s and even earlier. Efficient EDI data encoding reduced transaction payload size and improved data transfer speeds at a time when messages were sent over teletype at speeds equivalent to a 300 baud modem. [&#8230;]</p>
  7142. <p>The post <a href="https://www.altova.com/blog/automatically-convert-edi-to-xml/">Automatically Convert EDI to XML</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  7143. ]]></description>
  7144. <content:encoded><![CDATA[
  7145. <p>Electronic Data Interchange (EDI) has proven to be a durable business-to-business communication technology in use today with history dating to the 1960s and even earlier. Efficient EDI data encoding reduced transaction payload size and improved data transfer speeds at a time when messages were sent over teletype at speeds equivalent to a 300 baud modem. EDI standards bodies promote wide acceptance among enterprises, and systematic evolution of new EDI formats extends support across industries. EDI improves profitability and is a dominant format for e-commerce data exchange.</p>
  7146.  
  7147.  
  7148.  
  7149. <p>Despite the advantages, EDI files are barely human readable and need to be translated and mapped for compatibility with other business technologies. Altova MapForce is a <a href="https://www.altova.com/mapforce#EDI">graphical EDI mapping tool</a> with native support for all major business data formats in use today, including XML, JSON, databases, flat files, Excel, and Web services, as well as the EDIFACT, X12, HL7, NCPDP SCRIPT, IDoc, PADIS, and SWIFT EDI transaction sets. MapForce can even automatically convert EDI to XML without the need to specify a target XML Schema or perform any manual mapping.</p>
  7150.  
  7151.  
  7152.  
  7153. <figure class="wp-block-image size-large is-style-default"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/49721323_700px.jpg" alt="" class="wp-image-1486" srcset="https://www.altova.com/blog/wp-content/uploads/49721323_700px.jpg 700w, https://www.altova.com/blog/wp-content/uploads/49721323_700px-300x144.jpg 300w, https://www.altova.com/blog/wp-content/uploads/49721323_700px-450x215.jpg 450w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  7154.  
  7155.  
  7156.  
  7157. <span id="more-26203"></span>
  7158.  
  7159.  
  7160.  
  7161. <p>To automatically convert EDI to XML in MapForce, start by dropping any EDI collection into a new mapping. We’ll use a sample IATA EDI source file included with the MapForce examples. As you can see, the Browse EDI collections dialog supports all major EDI standards:</p>
  7162.  
  7163.  
  7164.  
  7165. <figure class="wp-block-image size-large is-resized is-style-default"><a href="https://www.altova.com/blog/wp-content/uploads/select-edi.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/select-edi.png" alt="The Browse EDI collections dialog supports all major EDI standards" class="wp-image-26204" width="566" height="377" srcset="https://www.altova.com/blog/wp-content/uploads/select-edi.png 754w, https://www.altova.com/blog/wp-content/uploads/select-edi-300x200.png 300w, https://www.altova.com/blog/wp-content/uploads/select-edi-705x470.png 705w" sizes="(max-width: 566px) 100vw, 566px" /></a></figure>
  7166.  
  7167.  
  7168.  
  7169. <p>We selected the Flight Information Response message from the IATA collection. If you have a source EDI document for mapping but don’t know in advance exactly which message to choose, you can simply open the file in any text editor and see the message type near the top of the file. Here’s a view of our source:</p>
  7170.  
  7171.  
  7172.  
  7173. <figure class="wp-block-image size-large is-style-default"><a href="https://www.altova.com/blog/wp-content/uploads/edi-notepad.png" target="_blank"><img loading="lazy" decoding="async" width="516" height="192" src="https://www.altova.com/blog/wp-content/uploads/edi-notepad.png" alt="Text editor view of the EDI source file," class="wp-image-26205" srcset="https://www.altova.com/blog/wp-content/uploads/edi-notepad.png 516w, https://www.altova.com/blog/wp-content/uploads/edi-notepad-300x112.png 300w" sizes="(max-width: 516px) 100vw, 516px" /></a></figure>
  7174.  
  7175.  
  7176.  
  7177. <p>We assign the IATA.edi file as our source document and the EDI message appears in the main mapping pane:</p>
  7178.  
  7179.  
  7180.  
  7181. <figure class="wp-block-image size-large is-resized is-style-default"><a href="https://www.altova.com/blog/wp-content/uploads/mapping-1-1.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/mapping-1-1.png" alt="The source EDI file ready for mapping" class="wp-image-26206" width="582" height="194" srcset="https://www.altova.com/blog/wp-content/uploads/mapping-1-1.png 776w, https://www.altova.com/blog/wp-content/uploads/mapping-1-1-300x100.png 300w, https://www.altova.com/blog/wp-content/uploads/mapping-1-1-768x255.png 768w, https://www.altova.com/blog/wp-content/uploads/mapping-1-1-705x234.png 705w" sizes="(max-width: 582px) 100vw, 582px" /></a></figure>
  7182.  
  7183.  
  7184.  
  7185. <p>Then we right-click the header and choose Create Mapping to XML from the context menu:</p>
  7186.  
  7187.  
  7188.  
  7189. <figure class="wp-block-image size-large is-resized is-style-default"><a href="https://www.altova.com/blog/wp-content/uploads/mapping-2-2.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/mapping-2-2.png" alt="Context menu option to automatically convert EDI to XML" class="wp-image-26207" width="582" height="231" srcset="https://www.altova.com/blog/wp-content/uploads/mapping-2-2.png 776w, https://www.altova.com/blog/wp-content/uploads/mapping-2-2-300x119.png 300w, https://www.altova.com/blog/wp-content/uploads/mapping-2-2-768x305.png 768w, https://www.altova.com/blog/wp-content/uploads/mapping-2-2-705x280.png 705w" sizes="(max-width: 582px) 100vw, 582px" /></a></figure>
  7190.  
  7191.  
  7192.  
  7193. <p>That’s it! That’s all it takes to create a quick EDI to XML mapping:</p>
  7194.  
  7195.  
  7196.  
  7197. <figure class="wp-block-image size-large is-resized is-style-default"><a href="https://www.altova.com/blog/wp-content/uploads/mapping-3-1.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/mapping-3-1.png" alt="Complete mapping to automatically convert EDI to XML" class="wp-image-26209" width="582" height="231" srcset="https://www.altova.com/blog/wp-content/uploads/mapping-3-1.png 776w, https://www.altova.com/blog/wp-content/uploads/mapping-3-1-300x119.png 300w, https://www.altova.com/blog/wp-content/uploads/mapping-3-1-768x305.png 768w, https://www.altova.com/blog/wp-content/uploads/mapping-3-1-705x280.png 705w" sizes="(max-width: 582px) 100vw, 582px" /></a></figure>
  7198.  
  7199.  
  7200.  
  7201. <p>To execute the mapping we simply click the Output button at the bottom of the mapping pane, which opens the Output preview window:</p>
  7202.  
  7203.  
  7204.  
  7205. <figure class="wp-block-image size-large is-resized is-style-default"><a href="https://www.altova.com/blog/wp-content/uploads/output.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/output.png" alt="XML output after conversion" class="wp-image-26210" width="431" height="524" srcset="https://www.altova.com/blog/wp-content/uploads/output.png 575w, https://www.altova.com/blog/wp-content/uploads/output-247x300.png 247w" sizes="(max-width: 431px) 100vw, 431px" /></a></figure>
  7206.  
  7207.  
  7208.  
  7209. <p>The output is an XML document where each EDI message segment is encoded inside XML elements that match the EDI segment names.</p>
  7210.  
  7211.  
  7212.  
  7213. <p>Optional message segments that don’t appear in the input are represented as empty XML elements, as seen in line 13 above for message segment S009.</p>
  7214.  
  7215.  
  7216.  
  7217. <p>Once the EDI source document is transformed to XML, you have many options to integrate with any specific EDI workflow requirement. You can save the mapping as a <a href="https://www.altova.com/mapforce-server">MapForce Server</a> Execution file or upload it to a <a href="https://www.altova.com/flowforceserver">FlowForce Server</a> for automated processing. You can enhance the mapping to create a chained mapping for further transformation. The XML output can be processed in a separate mapping, or an XSL transformation can be applied.</p>
  7218.  
  7219.  
  7220.  
  7221. <p>MapForce supports the most recent versions of most EDI collections by default. If you need to work with EDI messages based on earlier standards, MapForce provides a quick link to download earlier versions of ANSI X12, HIPAA-X12, HL7, PADIS, NCPDP, or SWIFT configuration files:</p>
  7222.  
  7223.  
  7224.  
  7225. <figure class="wp-block-image size-large is-resized is-style-default"><a href="https://www.altova.com/blog/wp-content/uploads/download-additional.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/download-additional.png" alt="Support for older versions of EDI standards" class="wp-image-26213" width="566" height="377" srcset="https://www.altova.com/blog/wp-content/uploads/download-additional.png 754w, https://www.altova.com/blog/wp-content/uploads/download-additional-300x200.png 300w, https://www.altova.com/blog/wp-content/uploads/download-additional-705x470.png 705w" sizes="(max-width: 566px) 100vw, 566px" /></a></figure>
  7226.  
  7227.  
  7228.  
  7229. <p>The technique illustrated above to automatically convert EDI to XML works with all EDI collections supported by MapForce.</p>
  7230.  
  7231.  
  7232.  
  7233. <p>To quickly convert EDI to XML for yourself,&nbsp;<a href="https://www.altova.com/download">download a free trial</a>&nbsp;including Tutorials, Help, and many more examples!</p>
  7234.  
  7235.  
  7236.  
  7237. <p><em>NOTE: If you’re interested in reading more about the history of EDI to learn why EDI persists while technologies like computer punch cards and floppy disk drives have faded to obscurity, </em><a href="https://www.computerworld.com/article/2576616/the-story-so-far.html" target="_blank" rel="noreferrer noopener"><em>check out this article</em></a><em> that originally appeared in Computerworld magazine.</em></p>
  7238. <p>The post <a href="https://www.altova.com/blog/automatically-convert-edi-to-xml/">Automatically Convert EDI to XML</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  7239. ]]></content:encoded>
  7240. </item>
  7241. <item>
  7242. <title>How to Compare CSV Files or Compare a CSV File to a Database Table</title>
  7243. <link>https://www.altova.com/blog/how-to-compare-csv-files/</link>
  7244. <dc:creator><![CDATA[David McGahey]]></dc:creator>
  7245. <pubDate>Wed, 04 May 2022 19:07:00 +0000</pubDate>
  7246. <category><![CDATA[Data Integration]]></category>
  7247. <category><![CDATA[Database]]></category>
  7248. <category><![CDATA[Tools]]></category>
  7249. <category><![CDATA[compare CSV]]></category>
  7250. <category><![CDATA[compare data]]></category>
  7251. <category><![CDATA[diff merge tool]]></category>
  7252. <category><![CDATA[DiffDog]]></category>
  7253. <category><![CDATA[DiffDog Server]]></category>
  7254. <guid isPermaLink="false">https://www.altova.com/blog/?p=4548</guid>
  7255.  
  7256. <description><![CDATA[<p>CSV files are a quick and convenient way to record structured data in a generic format. Because CSV files are so easy to create, multiple similar versions of very large CSV files can quickly proliferate. Often it becomes necessary to compare CSV files to find the desired version. In an ETL scenario, a data analyst [&#8230;]</p>
  7257. <p>The post <a href="https://www.altova.com/blog/how-to-compare-csv-files/">How to Compare CSV Files or Compare a CSV File to a Database Table</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  7258. ]]></description>
  7259. <content:encoded><![CDATA[
  7260. <p>CSV files are a quick and convenient way to record structured data in a generic format. Because CSV files are so easy to create, multiple similar versions of very large CSV files can quickly proliferate. Often it becomes necessary to compare CSV files to find the desired version. In an ETL scenario, a data analyst may want to compare a CSV file to a database table for validation or to update data. </p>
  7261.  
  7262.  
  7263.  
  7264. <p>DiffDog, the unique XML-aware diff / merge tool from Altova, supports CSV as a native file format for comparison and can <a href="https://www.altova.com/diffdog">compare and selectively merge data</a> CSV to CSV, or between a CSV file and database table. Let’s look at an example.</p>
  7265.  
  7266.  
  7267.  
  7268. <figure class="wp-block-image"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/107839721_700px.jpg" alt="" class="wp-image-1517" srcset="https://www.altova.com/blog/wp-content/uploads/107839721_700px.jpg 700w, https://www.altova.com/blog/wp-content/uploads/107839721_700px-300x144.jpg 300w, https://www.altova.com/blog/wp-content/uploads/107839721_700px-450x215.jpg 450w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  7269.  
  7270.  
  7271.  
  7272. <span id="more-4548"></span>
  7273.  
  7274.  
  7275.  
  7276. <p>Since CSV files contain structured data, a CSV comparison is launched using the DiffDog Compare Database Data selection, either from the File menu or the tool icon. This opens a new comparison window where the user selects the left and right comparison objects.</p>
  7277.  
  7278.  
  7279.  
  7280. <figure class="wp-block-image is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/open-compare-csv.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/open-compare-csv.png" alt="Compare CSV files like other structured data" class="wp-image-4549" width="541" height="663" srcset="https://www.altova.com/blog/wp-content/uploads/open-compare-csv.png 721w, https://www.altova.com/blog/wp-content/uploads/open-compare-csv-245x300.png 245w, https://www.altova.com/blog/wp-content/uploads/open-compare-csv-575x705.png 575w" sizes="(max-width: 541px) 100vw, 541px" /></a></figure>
  7281.  
  7282.  
  7283.  
  7284. <p>Note that DiffDog lets you compare CSV files with comma,
  7285. tab, or semicolon characters as column separators and files with or without
  7286. header rows.</p>
  7287.  
  7288.  
  7289.  
  7290. <p>In the screenshot below, the user has selected left and right comparison files, mapped the files at the top level to compare all columns, and executed the comparison by clicking the green Compare tool icon at the top right side of the toolbar.</p>
  7291.  
  7292.  
  7293.  
  7294. <figure class="wp-block-image is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/compare-csv-result.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/compare-csv-result.png" alt="Easily identify whether two CSV files are identical or different." class="wp-image-4551" width="695" height="572" srcset="https://www.altova.com/blog/wp-content/uploads/compare-csv-result.png 695w, https://www.altova.com/blog/wp-content/uploads/compare-csv-result-300x247.png 300w" sizes="(max-width: 695px) 100vw, 695px" /></a></figure>
  7295.  
  7296.  
  7297.  
  7298. <p>Note the row count for each file near the object name and the not-equal icon in the connection link. These two CSV files have the same number of rows, but the contents are not identical. The column names are listed below each object name. You can deselect any individual connection to prevent comparison of that column.</p>
  7299.  
  7300.  
  7301.  
  7302. <p>Next, we want to see the exact differences between the CSV files. Right-clicking the unequal connection line opens a menu with an option to view detailed results. </p>
  7303.  
  7304.  
  7305.  
  7306. <figure class="wp-block-image is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/open-detailed-results.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/open-detailed-results.png" alt="Compare CSV files and view detailed results" class="wp-image-4552" width="695" height="572" srcset="https://www.altova.com/blog/wp-content/uploads/open-detailed-results.png 695w, https://www.altova.com/blog/wp-content/uploads/open-detailed-results-300x247.png 300w" sizes="(max-width: 695px) 100vw, 695px" /></a></figure>
  7307.  
  7308.  
  7309.  
  7310. <p>The result window shows a detailed view of both files.</p>
  7311.  
  7312.  
  7313.  
  7314. <figure class="wp-block-image is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/csv-compare-results-1.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/csv-compare-results-1.png" alt="Detailed view of CSV comparison result" class="wp-image-4566" width="695" height="572" srcset="https://www.altova.com/blog/wp-content/uploads/csv-compare-results-1.png 695w, https://www.altova.com/blog/wp-content/uploads/csv-compare-results-1-300x247.png 300w" sizes="(max-width: 695px) 100vw, 695px" /></a></figure>
  7315.  
  7316.  
  7317.  
  7318. <p>The navigation toolbar at the top lets you quickly locate the first difference between the files. Perhaps an order for customer number 544 was incorrectly entered and needed to be reclassified to a different region and sales rep.</p>
  7319.  
  7320.  
  7321.  
  7322. <p>You can select and merge individual differences between the CSV files within this window via a right-click context menu: </p>
  7323.  
  7324.  
  7325.  
  7326. <figure class="wp-block-image is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/detailed-csv-compare-results-1.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/detailed-csv-compare-results-1.png" alt="Compare CSV files and merge differences" class="wp-image-4565" width="695" height="788" srcset="https://www.altova.com/blog/wp-content/uploads/detailed-csv-compare-results-1.png 695w, https://www.altova.com/blog/wp-content/uploads/detailed-csv-compare-results-1-265x300.png 265w, https://www.altova.com/blog/wp-content/uploads/detailed-csv-compare-results-1-622x705.png 622w" sizes="(max-width: 695px) 100vw, 695px" /></a></figure>
  7327.  
  7328.  
  7329.  
  7330. <p>You can merge differences in either direction and save the results by updating the existing CSV files or saving new files with new names.</p>
  7331.  
  7332.  
  7333.  
  7334. <h3 class="wp-block-heading" id="h-compare-csv-files-to-database-tables">Compare CSV Files to Database Tables</h3>
  7335.  
  7336.  
  7337.  
  7338. <p>A CSV to database comparison is opened simply by using the connection wizard to supply a database as the comparison object on either side. The illustration below shows our original CSV on the left side and a SQLite database on the right. </p>
  7339.  
  7340.  
  7341.  
  7342. <figure class="wp-block-image is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/csv-to-database-comparison.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/csv-to-database-comparison.png" alt="Compare CSV files to database tables" class="wp-image-4556" width="695" height="572" srcset="https://www.altova.com/blog/wp-content/uploads/csv-to-database-comparison.png 695w, https://www.altova.com/blog/wp-content/uploads/csv-to-database-comparison-300x247.png 300w" sizes="(max-width: 695px) 100vw, 695px" /></a></figure>
  7343.  
  7344.  
  7345.  
  7346. <p>In this example the contents of the CSV and database table
  7347. are equal. If there are differences, all the CSV-to-CSV comparison merge
  7348. features described above also work for CSV-to-database comparisons. Any changes
  7349. to the database table can be instantly committed to the database directly from
  7350. the results window.</p>
  7351.  
  7352.  
  7353.  
  7354. <p>Supported databases are:</p>
  7355.  
  7356.  
  7357.  
  7358. <p>•     Firebird </p>
  7359.  
  7360.  
  7361.  
  7362. <p> •    IBM DB2 for iSeries® </p>
  7363.  
  7364.  
  7365.  
  7366. <p> •    IBM DB2®</p>
  7367.  
  7368.  
  7369.  
  7370. <p> •    Informix® </p>
  7371.  
  7372.  
  7373.  
  7374. <p> •    MariaDB  </p>
  7375.  
  7376.  
  7377.  
  7378. <p> •    Microsoft Access<img src="https://s.w.org/images/core/emoji/14.0.0/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>
  7379.  
  7380.  
  7381.  
  7382. <p> •    Microsoft® Azure SQL</p>
  7383.  
  7384.  
  7385.  
  7386. <p> •    Microsoft® SQL Server®  </p>
  7387.  
  7388.  
  7389.  
  7390. <p> •    MySQL®  </p>
  7391.  
  7392.  
  7393.  
  7394. <p> •    Oracle®  </p>
  7395.  
  7396.  
  7397.  
  7398. <p> •    PostgreSQL  </p>
  7399.  
  7400.  
  7401.  
  7402. <p> •    Progress OpenEdge  </p>
  7403.  
  7404.  
  7405.  
  7406. <p> •    SQLite  </p>
  7407.  
  7408.  
  7409.  
  7410. <p> •    Sybase® ASE  </p>
  7411.  
  7412.  
  7413.  
  7414. <p> •    Teradata  </p>
  7415.  
  7416.  
  7417.  
  7418. <h3 class="wp-block-heading" id="h-automate-csv-comparisons-with-diffdog-server">Automate CSV Comparisons with DiffDog Server</h3>
  7419.  
  7420.  
  7421.  
  7422. <p>You can <a href="https://www.altova.com/diffdog-server">automate diff report generation</a> for CSV-to-CSV and CSV-to-database comparisons using DiffDog Server. Once installed on a machine in your network, DiffDog Server runs as a service. You can run comparisons by invoking DiffDog Server either from a command line interface or through executable scripts.</p>
  7423.  
  7424.  
  7425.  
  7426. <p>If you need to perform the same data comparison frequently,
  7427. you can set it up once in DiffDog and save it to a database data comparison
  7428. (.dbdif) file, which can be automatically executed by DiffDog Server.</p>
  7429.  
  7430.  
  7431.  
  7432. <p>DiffDog Server is available for Windows, Windows Server,
  7433. Linux, and macOS platforms.</p>
  7434.  
  7435.  
  7436.  
  7437. <p><a href="https://www.altova.com/diffdog/download">Download a free trial</a> to find out for yourself how easily DiffDog can help you compare CSV files!</p>
  7438. <p>The post <a href="https://www.altova.com/blog/how-to-compare-csv-files/">How to Compare CSV Files or Compare a CSV File to a Database Table</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  7439. ]]></content:encoded>
  7440. </item>
  7441. <item>
  7442. <title>Analyze JSON Data with Filters, Formulas, and Charts</title>
  7443. <link>https://www.altova.com/blog/analyze-json-data-in-xmlspy-grid-view/</link>
  7444. <dc:creator><![CDATA[David McGahey]]></dc:creator>
  7445. <pubDate>Wed, 04 May 2022 17:20:00 +0000</pubDate>
  7446. <category><![CDATA[JSON]]></category>
  7447. <category><![CDATA[Tools]]></category>
  7448. <category><![CDATA[data analysis]]></category>
  7449. <category><![CDATA[Grid view]]></category>
  7450. <category><![CDATA[tools]]></category>
  7451. <category><![CDATA[XMLSpy]]></category>
  7452. <guid isPermaLink="false">https://www.altova.com/blog/?p=4812</guid>
  7453.  
  7454. <description><![CDATA[<p>Software developers and other data professionals often need to examine new data instances before designing processes for efficient production. As JSON becomes a more popular format for data exchange, the tradeoff for smaller data payloads can be loss of clarity of the underlying data structure. XMLSpy has supported viewing, modeling, and editing JSON files since [&#8230;]</p>
  7455. <p>The post <a href="https://www.altova.com/blog/analyze-json-data-in-xmlspy-grid-view/">Analyze JSON Data with Filters, Formulas, and Charts</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  7456. ]]></description>
  7457. <content:encoded><![CDATA[
  7458. <p>Software developers and other data professionals often need to examine new data instances before designing processes for efficient production. As JSON becomes a more popular format for data exchange, the tradeoff for smaller data payloads can be loss of clarity of the underlying data structure.</p>
  7459.  
  7460.  
  7461.  
  7462. <p>XMLSpy has supported viewing, modeling, and <a href="https://www.altova.com/xmlspy-xml-editor/json_editor">editing JSON files</a> since 2010 and includes rich tools to analyze JSON data, including applying filters, formulas, and charts.</p>
  7463.  
  7464.  
  7465.  
  7466. <p>Let’s take a look.</p>
  7467.  
  7468.  
  7469.  
  7470. <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/weather_forecast.jpg" alt="" class="wp-image-4849" srcset="https://www.altova.com/blog/wp-content/uploads/weather_forecast.jpg 700w, https://www.altova.com/blog/wp-content/uploads/weather_forecast-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  7471.  
  7472.  
  7473.  
  7474. <span id="more-4812"></span>
  7475.  
  7476.  
  7477.  
  7478. <p>The XMLSpy Online Help and the Examples project that installs with XMLSpy are a great place to start.</p>
  7479.  
  7480.  
  7481.  
  7482. <p>The Online Help includes instructions and illustrations for applying filters and formulas. In the image below a filter has been applied to a JSON document containing data about record albums to list only the songs written by Brian May:</p>
  7483.  
  7484.  
  7485.  
  7486. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/filter-from-help.png" target="_blank"><img loading="lazy" decoding="async" width="486" height="115" src="https://www.altova.com/blog/wp-content/uploads/filter-from-help.png" alt="Analyze JSON data with filters in JSON Grid View in XMLSpy." class="wp-image-4814" srcset="https://www.altova.com/blog/wp-content/uploads/filter-from-help.png 486w, https://www.altova.com/blog/wp-content/uploads/filter-from-help-300x71.png 300w" sizes="(max-width: 486px) 100vw, 486px" /></a></figure>
  7487.  
  7488.  
  7489.  
  7490. <p>In this illustration a JSON file contains a description of a grocery order and a formula is applied to calculate the total price:</p>
  7491.  
  7492.  
  7493.  
  7494. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/formula-from-help.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/formula-from-help.png" alt="Example of a formula in JSON Grid View" class="wp-image-4815" width="530" height="167" srcset="https://www.altova.com/blog/wp-content/uploads/formula-from-help.png 706w, https://www.altova.com/blog/wp-content/uploads/formula-from-help-300x94.png 300w" sizes="(max-width: 530px) 100vw, 530px" /></a></figure>
  7495.  
  7496.  
  7497.  
  7498. <p>The example file Chart.jsonc describes minimum and maximum temperatures by month. This data is used to create a chart that also shows a calculated average for each month:</p>
  7499.  
  7500.  
  7501.  
  7502. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/chart-example-grid.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/chart-example-grid.png" alt="Apply charts to analyze JSON data in JSON Grid View" class="wp-image-4817" width="523" height="497" srcset="https://www.altova.com/blog/wp-content/uploads/chart-example-grid.png 697w, https://www.altova.com/blog/wp-content/uploads/chart-example-grid-300x285.png 300w" sizes="(max-width: 523px) 100vw, 523px" /></a></figure>
  7503.  
  7504.  
  7505.  
  7506. <p>All the images above were generated from .jsonc files. Since JSON documents other than JSON5 do not allow comments, the JSON with Comments format (JSONC) has been introduced to allow comments in JSON documents.</p>
  7507.  
  7508.  
  7509.  
  7510. <p>The filters, formulas, and chart features for JSON Grid view are implemented as XQuery functions stored in comments that are interpreted by XMLSpy to analyze JSON data, as can be seen by viewing the Chart.jsonc file in text view:</p>
  7511.  
  7512.  
  7513.  
  7514. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/chart-example-text.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/chart-example-text.png" alt="Chart example in text view." class="wp-image-4819" width="523" height="497" srcset="https://www.altova.com/blog/wp-content/uploads/chart-example-text.png 697w, https://www.altova.com/blog/wp-content/uploads/chart-example-text-300x285.png 300w" sizes="(max-width: 523px) 100vw, 523px" /></a></figure>
  7515.  
  7516.  
  7517.  
  7518. <p>These examples can suggest strategies for efficient completion of real-world development challenges, especially for projects where you need to consume larger JSON data files from external sources.</p>
  7519.  
  7520.  
  7521.  
  7522. <h3 class="wp-block-heading" id="h-analyze-json-data-retrieved-from-web-services">Analyze JSON Data Retrieved from Web Services</h3>
  7523.  
  7524.  
  7525.  
  7526. <p>Let’s say we’ve been tasked to process 5-day weather forecast data for some random number of cities anywhere in the world. Data like this might be useful to predict shipping schedules between major destinations or even for recreational sailors vacationing in the tropics. Many APIs are available to retrieve information about weather and they all provide data in somewhat different formats. For this post we will look at data from the openweathermap.org API. &nbsp;</p>
  7527.  
  7528.  
  7529.  
  7530. <p>We can issue a REST request to the API directly from the File/Open main menu selection in XMLSpy. Simply click the button labeled Switch to URL at the bottom of the Open dialog and enter the API call as the File URL:</p>
  7531.  
  7532.  
  7533.  
  7534. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/URL-open-dialog.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/URL-open-dialog.png" alt="Opening a JSON file from a Web service  URL in XMLSpy" class="wp-image-4820" width="599" height="188" srcset="https://www.altova.com/blog/wp-content/uploads/URL-open-dialog.png 799w, https://www.altova.com/blog/wp-content/uploads/URL-open-dialog-300x94.png 300w, https://www.altova.com/blog/wp-content/uploads/URL-open-dialog-768x240.png 768w, https://www.altova.com/blog/wp-content/uploads/URL-open-dialog-705x221.png 705w" sizes="(max-width: 599px) 100vw, 599px" /></a></figure>
  7535.  
  7536.  
  7537.  
  7538. <p>The result of the API call will be opened in the main editing window. There is no prolog for JSON data to identify the format or version, so it won’t automatically be recognized, but you can use File/Save As and apply a .jsonc file extension:</p>
  7539.  
  7540.  
  7541.  
  7542. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/example1-1.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/example1-1.png" alt="JSON data retrieved from a URL by XMLSpy" class="wp-image-4822" width="524" height="147" srcset="https://www.altova.com/blog/wp-content/uploads/example1-1.png 698w, https://www.altova.com/blog/wp-content/uploads/example1-1-300x84.png 300w" sizes="(max-width: 524px) 100vw, 524px" /></a></figure>
  7543.  
  7544.  
  7545.  
  7546. <p>Clicking the Grid button changes to Grid View and the JSON data is immediately more comprehensible:</p>
  7547.  
  7548.  
  7549.  
  7550. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/example1-2.png" target="_blank"><img loading="lazy" decoding="async" width="698" height="730" src="https://www.altova.com/blog/wp-content/uploads/example1-2.png" alt="Analyze JSON data in XMLSpy Grid View" class="wp-image-4824" srcset="https://www.altova.com/blog/wp-content/uploads/example1-2.png 698w, https://www.altova.com/blog/wp-content/uploads/example1-2-287x300.png 287w, https://www.altova.com/blog/wp-content/uploads/example1-2-674x705.png 674w" sizes="(max-width: 698px) 100vw, 698px" /></a></figure>
  7551.  
  7552.  
  7553.  
  7554. <p>The first thing we might want to do is check to see if the temperature is predicted to go below freezing for this location. This is easily accomplished by applying a filter to the list array. We can click the filter icon to the right of [ ] list at the top of the array and type an XQuery expression, following the filter example in the XMLSpy Help as a guide to syntax. The filter is immediately applied to display only the predictions for temperatures below freezing:</p>
  7555.  
  7556.  
  7557.  
  7558. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/example1-3.png" target="_blank"><img loading="lazy" decoding="async" width="694" height="562" src="https://www.altova.com/blog/wp-content/uploads/example1-3.png" alt="Applying a filter to analyze JSON data" class="wp-image-4826" srcset="https://www.altova.com/blog/wp-content/uploads/example1-3.png 694w, https://www.altova.com/blog/wp-content/uploads/example1-3-300x243.png 300w, https://www.altova.com/blog/wp-content/uploads/example1-3-495x400.png 495w" sizes="(max-width: 694px) 100vw, 694px" /></a></figure>
  7559.  
  7560.  
  7561.  
  7562. <p>Since we are only interested in the temperature values right now, we also collapsed the view of each item in the array by clicking the gray scroll bars to the left of each item number, as shown above. It’s clear now this particular location will have some chilly nights!</p>
  7563.  
  7564.  
  7565.  
  7566. <p>Now we might want to find the lowest temperature predicted in this forecast. We can apply a formula to do that. In the image below we inserted a new node at the list array, changed its type to formula and gave the formula a name. Rather that type the formula directly into the Grid view, we can use the XQuery helper window to build, test, and debug an XQuery expression:</p>
  7567.  
  7568.  
  7569.  
  7570. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/example1-4.png" target="_blank"><img loading="lazy" decoding="async" width="694" height="560" src="https://www.altova.com/blog/wp-content/uploads/example1-4.png" alt="Building a formula using the XQuery helper window in JSON Grid view" class="wp-image-4828" srcset="https://www.altova.com/blog/wp-content/uploads/example1-4.png 694w, https://www.altova.com/blog/wp-content/uploads/example1-4-300x242.png 300w, https://www.altova.com/blog/wp-content/uploads/example1-4-495x400.png 495w" sizes="(max-width: 694px) 100vw, 694px" /></a></figure>
  7571.  
  7572.  
  7573.  
  7574. <p>We can paste the completed expression from the <a href="https://www.altova.com/xmlspy-xml-editor#xquery_editor">XQuery editor</a> into the JSON Grid view:</p>
  7575.  
  7576.  
  7577.  
  7578. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/example1-5.png" target="_blank"><img loading="lazy" decoding="async" width="692" height="558" src="https://www.altova.com/blog/wp-content/uploads/example1-5.png" alt="Build, test, and debug formulas in the XQuery window" class="wp-image-4832" srcset="https://www.altova.com/blog/wp-content/uploads/example1-5.png 692w, https://www.altova.com/blog/wp-content/uploads/example1-5-300x242.png 300w, https://www.altova.com/blog/wp-content/uploads/example1-5-495x400.png 495w" sizes="(max-width: 692px) 100vw, 692px" /></a></figure>
  7579.  
  7580.  
  7581.  
  7582. <p>Using a similar strategy and working from the Chart.jsonc example, we can add a chart to visualize the data:</p>
  7583.  
  7584.  
  7585.  
  7586. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/example1-6-2.png" target="_blank"><img loading="lazy" decoding="async" width="692" height="629" src="https://www.altova.com/blog/wp-content/uploads/example1-6-2.png" alt="Applying a chart to visualize JSON data" class="wp-image-4844" srcset="https://www.altova.com/blog/wp-content/uploads/example1-6-2.png 692w, https://www.altova.com/blog/wp-content/uploads/example1-6-2-300x273.png 300w" sizes="(max-width: 692px) 100vw, 692px" /></a></figure>
  7587.  
  7588.  
  7589.  
  7590. <p>The ChartConfig elements define parameters used by the chart function, but even the chart function itself can be built in the XQuery window:</p>
  7591.  
  7592.  
  7593.  
  7594. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/example1-6a.png" target="_blank"><img loading="lazy" decoding="async" width="695" height="200" src="https://www.altova.com/blog/wp-content/uploads/example1-6a.png" alt="Creating the chart expression in the XQuery window" class="wp-image-4834" srcset="https://www.altova.com/blog/wp-content/uploads/example1-6a.png 695w, https://www.altova.com/blog/wp-content/uploads/example1-6a-300x86.png 300w" sizes="(max-width: 695px) 100vw, 695px" /></a></figure>
  7595.  
  7596.  
  7597.  
  7598. <p>Successful evaluation displays the binary image data in the result window. You can also right-click the chart to export it as an image file. The dimensions of the image are set by the width and height parameters of ChartConfig.</p>
  7599.  
  7600.  
  7601.  
  7602. <p>Functions added to the .jsonc data are stored in comments, as seen here when we switch back to text view.</p>
  7603.  
  7604.  
  7605.  
  7606. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/example1-7.png" target="_blank"><img loading="lazy" decoding="async" width="692" height="628" src="https://www.altova.com/blog/wp-content/uploads/example1-7.png" alt="The chart expression as seen in Text view" class="wp-image-4836" srcset="https://www.altova.com/blog/wp-content/uploads/example1-7.png 692w, https://www.altova.com/blog/wp-content/uploads/example1-7-300x272.png 300w" sizes="(max-width: 692px) 100vw, 692px" /></a></figure>
  7607.  
  7608.  
  7609.  
  7610. <p>If we want to apply the same functions to other JSON data retrieved from the API we have two options. We can either use the XQuery helper window to temporarily hold an expression and apply it to another .jsonc document, or we can copy and paste the entire set of expressions.</p>
  7611.  
  7612.  
  7613.  
  7614. <p>First, let’s add more calculations to enhance the analysis:</p>
  7615.  
  7616.  
  7617.  
  7618. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/example1-8.png" target="_blank"><img loading="lazy" decoding="async" width="692" height="624" src="https://www.altova.com/blog/wp-content/uploads/example1-8.png" alt="JSON data with summary of values." class="wp-image-4838" srcset="https://www.altova.com/blog/wp-content/uploads/example1-8.png 692w, https://www.altova.com/blog/wp-content/uploads/example1-8-300x271.png 300w" sizes="(max-width: 692px) 100vw, 692px" /></a></figure>
  7619.  
  7620.  
  7621.  
  7622. <p>Copying the comments from the source document and pasting them into a new data set from the API generates an instant analysis:</p>
  7623.  
  7624.  
  7625.  
  7626. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/example1-9.png" target="_blank"><img loading="lazy" decoding="async" width="692" height="624" src="https://www.altova.com/blog/wp-content/uploads/example1-9.png" alt="Copying formulas and charts to a new JSON file" class="wp-image-4839" srcset="https://www.altova.com/blog/wp-content/uploads/example1-9.png 692w, https://www.altova.com/blog/wp-content/uploads/example1-9-300x271.png 300w" sizes="(max-width: 692px) 100vw, 692px" /></a></figure>
  7627.  
  7628.  
  7629.  
  7630. <p>You can easily share your discoveries with other team members. If you click the disk icon by the function definition, the results are embedded as JSON data in the file:</p>
  7631.  
  7632.  
  7633.  
  7634. <figure class="wp-block-image size-large"><a href="https://www.altova.com/blog/wp-content/uploads/example1-10.png" target="_blank"><img loading="lazy" decoding="async" width="692" height="624" src="https://www.altova.com/blog/wp-content/uploads/example1-10.png" alt="Embedding formula results in the JSON data" class="wp-image-4841" srcset="https://www.altova.com/blog/wp-content/uploads/example1-10.png 692w, https://www.altova.com/blog/wp-content/uploads/example1-10-300x271.png 300w" sizes="(max-width: 692px) 100vw, 692px" /></a></figure>
  7635.  
  7636.  
  7637.  
  7638. <p>Or you can save the chart as an image file to use in a report:</p>
  7639.  
  7640.  
  7641.  
  7642. <figure class="wp-block-image size-large is-resized"><a href="https://www.altova.com/blog/wp-content/uploads/Martinique-forecast.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/Martinique-forecast.png" alt="A chart image exported to use in a report." class="wp-image-4842" width="320" height="240" srcset="https://www.altova.com/blog/wp-content/uploads/Martinique-forecast.png 640w, https://www.altova.com/blog/wp-content/uploads/Martinique-forecast-300x225.png 300w" sizes="(max-width: 320px) 100vw, 320px" /></a></figure>
  7643.  
  7644.  
  7645.  
  7646. <p>Every data integration and reporting task needs to start with a clear understanding of the source data. Using XMLSpy to analyze JSON data can speed you to success with your own project. For another perspective, this <a href="https://www.youtube.com/watch?v=ZTt-_Te9a9c">video demo</a> presents filters, functions, charts, and many more powerful features of JSON Grid view.</p>
  7647.  
  7648.  
  7649.  
  7650. <p><a href="https://www.altova.com/download">Download a free trial</a> including the Online Help, Tutorial, and many real-world examples today! </p>
  7651.  
  7652.  
  7653.  
  7654. <p></p>
  7655. <p>The post <a href="https://www.altova.com/blog/analyze-json-data-in-xmlspy-grid-view/">Analyze JSON Data with Filters, Formulas, and Charts</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  7656. ]]></content:encoded>
  7657. </item>
  7658. <item>
  7659. <title>InfoPath Alternatives from Altova</title>
  7660. <link>https://www.altova.com/blog/infopath-alternatives/</link>
  7661. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  7662. <pubDate>Wed, 27 Apr 2022 15:30:00 +0000</pubDate>
  7663. <category><![CDATA[App Development]]></category>
  7664. <category><![CDATA[MobileTogether]]></category>
  7665. <category><![CDATA[XML]]></category>
  7666. <category><![CDATA[Authentic]]></category>
  7667. <category><![CDATA[enterprise apps]]></category>
  7668. <category><![CDATA[enterprise solutions]]></category>
  7669. <category><![CDATA[InfoPath]]></category>
  7670. <category><![CDATA[mobile forms]]></category>
  7671. <category><![CDATA[XML forms]]></category>
  7672. <guid isPermaLink="false">https://www.altova.com/blog/?p=26257</guid>
  7673.  
  7674. <description><![CDATA[<p>InfoPath, the popular business forms software from Microsoft, was sunset by the company starting in 2016. Without a direct replacement, customers have turned to InfoPath alternatives to facilitate forms creation and automated data collection. Altova offers two alternatives that meet different customer implementation requirements. This article will walk you through some background information and help [&#8230;]</p>
  7675. <p>The post <a href="https://www.altova.com/blog/infopath-alternatives/">InfoPath Alternatives from Altova</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  7676. ]]></description>
  7677. <content:encoded><![CDATA[
  7678. <p>InfoPath, the popular business forms software from Microsoft, was sunset by the company starting in 2016. Without a direct replacement, customers have turned to InfoPath alternatives to facilitate forms creation and automated data collection.</p>
  7679.  
  7680.  
  7681.  
  7682. <p>Altova offers two alternatives that meet different customer implementation requirements. This article will walk you through some background information and help you decide which product to choose.</p>
  7683.  
  7684.  
  7685.  
  7686. <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/FillablePDFForms01.png" alt="XML forms " class="wp-image-2610" srcset="https://www.altova.com/blog/wp-content/uploads/FillablePDFForms01.png 700w, https://www.altova.com/blog/wp-content/uploads/FillablePDFForms01-300x144.png 300w, https://www.altova.com/blog/wp-content/uploads/FillablePDFForms01-450x215.png 450w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  7687.  
  7688.  
  7689.  
  7690. <span id="more-26257"></span>
  7691.  
  7692.  
  7693.  
  7694. <h2 class="wp-block-heading" id="h-what-is-infopath">What is InfoPath?</h2>
  7695.  
  7696.  
  7697.  
  7698. <p>Microsoft InfoPath is software for creating, distributing, and recording data from electronic forms containing structured data (i.e., XML). It includes a WYSIWYG, drag-and-drop designer for creating forms that take advantage of separation of data and presentation, streamlining the automation of data collection. InfoPath forms also support validation of data rules and business logic, allowing for the collection of consistent and reusable data.</p>
  7699.  
  7700.  
  7701.  
  7702. <p>Originally introduced as part of Microsoft Office 2003, the final release of InfoPath was in 2016. The company has promised support for InfoPath clients through 2026, but there is no guarantee that all features of existing forms will work during that time. This article on <a href="https://www.skybow.com/blog-en/five-reasons-why-you-need-to-migrate-infopath-forms-today-rather-than-tomorrow">reasons to migrate away from InfoPath</a> sooner rather than later provides more specifics.</p>
  7703.  
  7704.  
  7705.  
  7706. <p>As a possible InfoPath replacement, Microsoft offers PowerApps, but there are inherent differences in the way PowerApps manages data, and the software doesn&#8217;t provide all the features utilized by InfoPath users.</p>
  7707.  
  7708.  
  7709.  
  7710. <p>The Altova product portfolio includes two XML-driven tools for developers and power users that are attractive alternatives to InfoPath. For desktop, forms-driven needs, Authentic fits the bill. For mobile forms or enterprise data solutions, customers should consider MobileTogether.&nbsp;</p>
  7711.  
  7712.  
  7713.  
  7714. <h3 class="wp-block-heading" id="h-mobiletogether-as-an-infopath-replacement">MobileTogether as an InfoPath Replacement</h3>
  7715.  
  7716.  
  7717.  
  7718. <p>Clearly, the way the world does business has evolved since InfoPath was introduced to the market. We’ve seen the definition of “the office” become more flexible and workers become productive on a wide variety of devices. For customers who need to <a href="https://www.altova.com/mobiletogether/enterprise-apps">deploy forms to mobile users</a>, or to build forms and dashboards as part of a comprehensive <a href="https://www.altova.com/mobiletogether/enterprise-apps">enterprise solution</a>, Altova MobileTogether is a great InfoPath replacement.</p>
  7719.  
  7720.  
  7721.  
  7722. <p><a href="https://www.altova.com/mobiletogether">MobileTogether</a> is a rapid application development (RAD) framework for building data-centric solutions for all platforms: apps built with MobileTogether are simultaneously available on iOS and Android, as well as Windows and any web browser. Supported backend data sources are XML as well as JSON, relational databases, HTML, and Web services.</p>
  7723.  
  7724.  
  7725.  
  7726. <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="646" height="366" src="https://www.altova.com/blog/wp-content/uploads/how-mobiletogether-works.png" alt="MobileTogether as an InfoPath replacement for mobile and desktop users" class="wp-image-26259" srcset="https://www.altova.com/blog/wp-content/uploads/how-mobiletogether-works.png 646w, https://www.altova.com/blog/wp-content/uploads/how-mobiletogether-works-300x170.png 300w" sizes="(max-width: 646px) 100vw, 646px" /></figure>
  7727.  
  7728.  
  7729.  
  7730. <p>For software engineers and citizen developers, creating an app or enterprise solution in MobileTogether Designer is an easy-to-learn, straightforward process combining drag-and-drop UI design, the visual <a href="https://www.altova.com/mobiletogether/enterprise-apps#action-trees">Action Tree visual programming language</a> for event handling, and standardized functional programming for data selection and processing.</p>
  7731.  
  7732.  
  7733.  
  7734. <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="700" height="393" src="https://www.altova.com/blog/wp-content/uploads/mobiletogether-app-development.png" alt="MobileTogether rapid app development" class="wp-image-4146" srcset="https://www.altova.com/blog/wp-content/uploads/mobiletogether-app-development.png 700w, https://www.altova.com/blog/wp-content/uploads/mobiletogether-app-development-300x168.png 300w, https://www.altova.com/blog/wp-content/uploads/mobiletogether-app-development-450x253.png 450w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  7735.  
  7736.  
  7737.  
  7738. <p>Once a design is created, MobileTogether does the heavy lifting by generating an app for all mobile and desktop platforms based on that single design.</p>
  7739.  
  7740.  
  7741.  
  7742. <p>Customers can definitely replicate InfoPath forms functionality in MobileTogether – and the framework offers <a href="https://www.altova.com/mobiletogether/features">so much more</a> for empowering users and adding new value to your data.</p>
  7743.  
  7744.  
  7745.  
  7746. <p>If you’re in search of a Windows desktop application and don’t need mobile support, Altova Authentic offers another interesting alternative to InfoPath.</p>
  7747.  
  7748.  
  7749.  
  7750. <h3 class="wp-block-heading" id="h-infopath-alternative-altova-authentic">InfoPath Alternative: Altova Authentic</h3>
  7751.  
  7752.  
  7753.  
  7754. <p>As a WYSIWYG XML forms tool for business users, Altova <a href="https://www.altova.com/authentic">Authentic</a> offers a clear path to migrate away from InfoPath. Like InfoPath, Authentic shields users from the XML markup behind each form, allowing them to focus on content and data entry.</p>
  7755.  
  7756.  
  7757.  
  7758. <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="700" height="679" src="https://www.altova.com/blog/wp-content/uploads/authentic-xml-form.png" alt="Altova Authentic XML forms as an InfoPath alternative" class="wp-image-26260" srcset="https://www.altova.com/blog/wp-content/uploads/authentic-xml-form.png 700w, https://www.altova.com/blog/wp-content/uploads/authentic-xml-form-300x291.png 300w, https://www.altova.com/blog/wp-content/uploads/authentic-xml-form-36x36.png 36w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  7759.  
  7760.  
  7761.  
  7762. <p>Authentic is a modern application with new versions released by Altova 1-3 times each year. It shares numerous features with InfoPath, including:</p>
  7763.  
  7764.  
  7765.  
  7766. <ul><li>Interactive electronic forms based on structure data</li><li>User-friendly data entry interface</li><li>XML and business logic validation</li><li>Advanced e-forms layout options</li><li>Conditional formatting</li><li>Dynamic tables</li><li>Project management</li><li>Visual Studio integration</li><li>Database integration</li><li>Advanced developer options (scripting, APIs, etc.)</li></ul>
  7767.  
  7768.  
  7769.  
  7770. <p>It additionally offers:</p>
  7771.  
  7772.  
  7773.  
  7774. <ul><li>Built-in support for industry standards (DITA, DocBook, NewsML, etc.)</li><li>Multi-channel output of forms content in HTML, PDF, and Word</li><li>Portable XML Forms (PXF) that embed all associated files (XML, XSD, XSL, etc.) in one archive for convenient distribution</li></ul>
  7775.  
  7776.  
  7777.  
  7778. <p>Using <a href="https://www.altova.com/stylevision">Altova StyleVision</a>, developers or other technical users can create Authentic forms without writing code. A powerful drag-and-drop design interface makes it easy to create advanced, attractive forms based on an underlying XML data model. Forms can be started from scratch or based on the blueprint of a paper form or an existing Word doc.</p>
  7779.  
  7780.  
  7781.  
  7782. <h3 class="wp-block-heading" id="h-try-these-infopath-replacements">Try These InfoPath Replacements</h3>
  7783.  
  7784.  
  7785.  
  7786. <p>Altova offers two options for replacing InfoPath, and you can try one or both for free, based on your requirements: </p>
  7787.  
  7788.  
  7789.  
  7790. <p>Download the free <a href="https://www.altova.com/mobiletogether/download">MobileTogether Designer</a> if you need to create mobile forms or full-fledged enterprise solutions for mobile and/or desktop users.&nbsp;</p>
  7791.  
  7792.  
  7793.  
  7794. <p>Download a free trial of <a href="https://www.altova.com/stylevision/download">StyleVision</a> and <a href="https://www.altova.com/authentic/download">Authentic</a> to create XML forms for business users in a desktop environment.</p>
  7795. <p>The post <a href="https://www.altova.com/blog/infopath-alternatives/">InfoPath Alternatives from Altova</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  7796. ]]></content:encoded>
  7797. </item>
  7798. <item>
  7799. <title>How to Debug XSLT and XQuery</title>
  7800. <link>https://www.altova.com/blog/how-to-debug-xslt-xquery/</link>
  7801. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  7802. <pubDate>Wed, 13 Apr 2022 15:30:00 +0000</pubDate>
  7803. <category><![CDATA[Development]]></category>
  7804. <category><![CDATA[Software]]></category>
  7805. <category><![CDATA[XML]]></category>
  7806. <category><![CDATA[data mapping]]></category>
  7807. <category><![CDATA[XML Editor]]></category>
  7808. <category><![CDATA[XMLSpy]]></category>
  7809. <category><![CDATA[XQuery]]></category>
  7810. <category><![CDATA[XSLT]]></category>
  7811. <guid isPermaLink="false">https://www.altova.com/blog/?p=2975</guid>
  7812.  
  7813. <description><![CDATA[<p>Nothing’s more frustrating than getting unintended results from an XSLT or XQuery transformation and having to spend hours tracking down the issue – especially if you’ve inherited the project from another developer or haven’t looked at the code in a few months.  Of course, XMLSpy has long included an XSLT debugger and XQuery debugger for [&#8230;]</p>
  7814. <p>The post <a href="https://www.altova.com/blog/how-to-debug-xslt-xquery/">How to Debug XSLT and XQuery</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  7815. ]]></description>
  7816. <content:encoded><![CDATA[<p>Nothing’s more frustrating than getting unintended results from an XSLT or XQuery transformation and having to spend hours tracking down the issue – especially if you’ve inherited the project from another developer or haven’t looked at the code in a few months.  Of course, XMLSpy has long included an <a href="https://www.altova.com/xmlspy-xml-editor#xslt_debugger">XSLT debugger</a> and <a href="https://www.altova.com/xmlspy-xml-editor#xquery_debug">XQuery debugger</a> for setting break points and stepping through transformations to identify problems.</p>
  7817. <p>For a more interactive debugging process, XMLSpy also includes <a href="https://www.altova.com/xmlspy-xml-editor#xslt_back-mapping">XSLT/XQuery back-mapping</a>.</p>
  7818. <p>With back-mapping enabled, you can simply click on or hover over the portion of your output document you want to zero in on, and XMLSpy will immediately highlight the source XML and XSLT or XQuery instruction that is responsible. Let’s see how it works.</p>
  7819. <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2976" src="https://www.altova.com/blog/wp-content/uploads/v2017R3_backmapping.jpg" alt="Debug XSLT with back-mapping " width="700" height="335" srcset="https://www.altova.com/blog/wp-content/uploads/v2017R3_backmapping.jpg 700w, https://www.altova.com/blog/wp-content/uploads/v2017R3_backmapping-300x144.jpg 300w, https://www.altova.com/blog/wp-content/uploads/v2017R3_backmapping-450x215.jpg 450w" sizes="(max-width: 700px) 100vw, 700px" /></p>
  7820. <p><span id="more-2975"></span></p>
  7821. <h2>Debugging XSLT and XQuery with Back-mapping</h2>
  7822. <div class="col-12 px-0">
  7823. <p class="pt-2">Because XSLT and XQuery documents are frequently long and complex, it can be difficult to identify the source of unintended output. For targeted debugging, back-mapping makes it easy to immediately see which nodes and instructions are driving the output.</p>
  7824. </div>
  7825. <div class="col-12 px-0">
  7826. <p class="pt-2">With back-mapping enabled, XSLT transformations and XQuery executions are carried out so that the result document can be mapped back on to the originating XSLT+XML or XQuery+XML documents. When you hover over a section in the result document, the XSLT/XQuery instruction and the XML source data for that result node will be highlighted.</p>
  7827. </div>
  7828. <div class="col-12 px-0">
  7829. <p class="pt-2">Let&#8217;s give it a shot. Prior to initiating an XSLT or XQuery transformation, click the “Enable Back-mapping” button on the XMLSpy toolbar.</p>
  7830. </div>
  7831. <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2978" src="https://www.altova.com/blog/wp-content/uploads/debug-xquery-backmapping.png" alt="Debugging with XQuery back-mapping" width="700" height="335" srcset="https://www.altova.com/blog/wp-content/uploads/debug-xquery-backmapping.png 700w, https://www.altova.com/blog/wp-content/uploads/debug-xquery-backmapping-300x144.png 300w, https://www.altova.com/blog/wp-content/uploads/debug-xquery-backmapping-450x215.png 450w" sizes="(max-width: 700px) 100vw, 700px" /></p>
  7832. <p>XMLSpy will give you the option to tile the source and output documents so you can easily visualize related elements in one window. Then, run the transformation.</p>
  7833. <p>In the XSLT transformation shown below, I&#8217;ve hovered over one of the radio buttons in the output document in Browser view, and XMLSpy automatically highlighted the source node and instruction in the XML and XSLT documents.</p>
  7834. <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2979" src="https://www.altova.com/blog/wp-content/uploads/debug-xslt-back-mapping.png" alt="Debug XSLT with back-mapping" width="700" height="382" srcset="https://www.altova.com/blog/wp-content/uploads/debug-xslt-back-mapping.png 700w, https://www.altova.com/blog/wp-content/uploads/debug-xslt-back-mapping-300x164.png 300w, https://www.altova.com/blog/wp-content/uploads/debug-xslt-back-mapping-450x246.png 450w" sizes="(max-width: 700px) 100vw, 700px" /></p>
  7835. <p>The process works the same in Text View for XSLT and XQuery output &#8211; simply select the portion of the output document you need to analyze.</p>
  7836. <p>The ability to simply click into your output to identify its source is a huge time saver for testing and debugging XSLT and XQuery code. Best of all,<strong> XMLSpy accomplishes <a href="https://www.altova.com/xmlspy-xml-editor#xslt_back-mapping">back-mapping</a> without modifying your output document in any way.</strong></p>
  7837. <p>See how this works for both XSLT and XQuery in this quick back-mapping video.</p>
  7838. <div class='avia-iframe-wrap'><iframe loading="lazy" title="XSLT / XQuery Back-mapping in Altova XMLSpy" width="1500" height="844" src="https://www.youtube.com/embed/lK1EDLbxxyo?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>
  7839. <p>The post <a href="https://www.altova.com/blog/how-to-debug-xslt-xquery/">How to Debug XSLT and XQuery</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  7840. ]]></content:encoded>
  7841. </item>
  7842. <item>
  7843. <title>New Features Increase Developer Productivity</title>
  7844. <link>https://www.altova.com/blog/new-features-increase-developer-productivity/</link>
  7845. <dc:creator><![CDATA[Erin Cavanaugh]]></dc:creator>
  7846. <pubDate>Tue, 08 Mar 2022 15:22:57 +0000</pubDate>
  7847. <category><![CDATA[Development]]></category>
  7848. <category><![CDATA[Regulatory Solutions]]></category>
  7849. <category><![CDATA[Servers]]></category>
  7850. <category><![CDATA[Tools]]></category>
  7851. <category><![CDATA[MapForce]]></category>
  7852. <category><![CDATA[MissionKit]]></category>
  7853. <category><![CDATA[new features]]></category>
  7854. <category><![CDATA[XMLSpy]]></category>
  7855. <guid isPermaLink="false">https://www.altova.com/blog/?p=26793</guid>
  7856.  
  7857. <description><![CDATA[<p>The latest release of Altova desktop developer tools, server software, and regulatory solutions introduces a host of productivity-boosting features across the product line, as well as updated support for standards, databases, and integration with popular IDEs. Let’s take a look at the highlights. New in Version 2022 Release 2 Support for MongoDB clusters in MapForce [&#8230;]</p>
  7858. <p>The post <a href="https://www.altova.com/blog/new-features-increase-developer-productivity/">New Features Increase Developer Productivity</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  7859. ]]></description>
  7860. <content:encoded><![CDATA[
  7861. <p>The latest release of Altova desktop developer tools, server software, and regulatory solutions introduces a host of productivity-boosting features across the product line, as well as updated support for standards, databases, and integration with popular IDEs.</p>
  7862.  
  7863.  
  7864.  
  7865. <p>Let’s take a look at the highlights.</p>
  7866.  
  7867.  
  7868.  
  7869. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/software-developer-2022.jpg" alt="Altova software developer tools" class="wp-image-26795" srcset="https://www.altova.com/blog/wp-content/uploads/software-developer-2022.jpg 700w, https://www.altova.com/blog/wp-content/uploads/software-developer-2022-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  7870.  
  7871.  
  7872.  
  7873. <span id="more-26793"></span>
  7874.  
  7875.  
  7876.  
  7877. <h2 class="wp-block-heading" id="h-new-in-version-2022-release-2">New in Version 2022 Release 2</h2>
  7878.  
  7879.  
  7880.  
  7881. <p><strong>Support for MongoDB clusters in MapForce</strong></p>
  7882.  
  7883.  
  7884.  
  7885. <p>Recently added support for <a href="https://www.altova.com/mapforce/database-mapping">NoSQL database mapping</a> and conversion in MapForce has been enhanced with support for MongoDB clusters. In contrast to a single-server MongoDB database, a MongoDB cluster allows the database to either horizontally scale across many servers with sharding or to replicate data to increase performance and availability.</p>
  7886.  
  7887.  
  7888.  
  7889. <p>MapForce can now connect to MongoDB clusters as well as single-server databases.</p>
  7890.  
  7891.  
  7892.  
  7893. <p><strong>Convenient features for working with images</strong></p>
  7894.  
  7895.  
  7896.  
  7897. <p>Multiple Altova software products include support for projects that group related files and allow for easy batch operations. Now, when a project includes images, the user can mouseover the image in the Project Window to preview it or double-click it to open the image in an external editing application.</p>
  7898.  
  7899.  
  7900.  
  7901. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="273" height="599" src="https://www.altova.com/blog/wp-content/uploads/images-project.png" alt="New features in XMLSpy Project Window" class="wp-image-26796" srcset="https://www.altova.com/blog/wp-content/uploads/images-project.png 273w, https://www.altova.com/blog/wp-content/uploads/images-project-137x300.png 137w" sizes="(max-width: 273px) 100vw, 273px" /></figure>
  7902.  
  7903.  
  7904.  
  7905. <p></p>
  7906.  
  7907.  
  7908.  
  7909. <p>This new functionality is found in XMLSpy, MapForce, StyleVision, and Authentic.</p>
  7910.  
  7911.  
  7912.  
  7913. <p>XMLSpy has also been updated with a new Project toolbar (shown above) as well as enhanced support for saving images directly from its Grid and Text editing views (below).</p>
  7914.  
  7915.  
  7916.  
  7917. <p></p>
  7918.  
  7919.  
  7920.  
  7921. <figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="598" height="673" src="https://www.altova.com/blog/wp-content/uploads/save-as-image.jpg" alt="Save-as-image " class="wp-image-26797" srcset="https://www.altova.com/blog/wp-content/uploads/save-as-image.jpg 598w, https://www.altova.com/blog/wp-content/uploads/save-as-image-267x300.jpg 267w" sizes="(max-width: 598px) 100vw, 598px" /></figure>
  7922.  
  7923.  
  7924.  
  7925. <p><strong>Code generation for Visual Studio 2022 and .NET 6</strong></p>
  7926.  
  7927.  
  7928.  
  7929. <p>Products that provide code generation, including XMLSpy and MapForce, can now target the latest releases of these environments.</p>
  7930.  
  7931.  
  7932.  
  7933. <p><strong>Updated database support</strong></p>
  7934.  
  7935.  
  7936.  
  7937. <p>Relational database support across the product line has been updated for the latest versions of:</p>
  7938.  
  7939.  
  7940.  
  7941. <ul><li>IBM DB2 11.5.7</li><li>MySQL 8.0.28</li><li>MariaDB 10.6.5</li><li>SQLite 3.37</li><li>PostgreSQL 14.1</li></ul>
  7942.  
  7943.  
  7944.  
  7945. <p><strong>Support for macOS Monterey 12</strong></p>
  7946.  
  7947.  
  7948.  
  7949. <p>Altova Server Software is available on Windows, Linux, and macOS platforms with support added in v2022r2 for macOS Monterey 12.</p>
  7950.  
  7951.  
  7952.  
  7953. <p><strong>And much more</strong></p>
  7954.  
  7955.  
  7956.  
  7957. <p>Check out the per-product <a href="https://www.altova.com/whatsnew">What’s New</a> pages for more details.</p>
  7958.  
  7959.  
  7960.  
  7961. <p>Customers can visit the <a href="https://www.altova.com/download">Download</a> page to update their software to the latest version now.</p>
  7962. <p>The post <a href="https://www.altova.com/blog/new-features-increase-developer-productivity/">New Features Increase Developer Productivity</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  7963. ]]></content:encoded>
  7964. </item>
  7965. <item>
  7966. <title>Mobile App Themes Improve User Satisfaction</title>
  7967. <link>https://www.altova.com/blog/mobile-app-themes-improve-user-satisfaction/</link>
  7968. <dc:creator><![CDATA[David McGahey]]></dc:creator>
  7969. <pubDate>Wed, 02 Mar 2022 18:57:54 +0000</pubDate>
  7970. <category><![CDATA[App Development]]></category>
  7971. <category><![CDATA[mobile development]]></category>
  7972. <category><![CDATA[MobileTogether]]></category>
  7973. <category><![CDATA[mobile app themes]]></category>
  7974. <category><![CDATA[mobile app user interface]]></category>
  7975. <category><![CDATA[mobile development tools]]></category>
  7976. <guid isPermaLink="false">https://www.altova.com/blog/?p=26768</guid>
  7977.  
  7978. <description><![CDATA[<p>Mobile app themes improve user satisfaction by letting each user customize the app appearance with personal preferences. One way to implement multiple themes in apps that report and visualize data is to offer users a choice of color palettes for charts and graphs. MobileTogether uses a combination of drag-and-drop UI design, the powerful Action Tree [&#8230;]</p>
  7979. <p>The post <a href="https://www.altova.com/blog/mobile-app-themes-improve-user-satisfaction/">Mobile App Themes Improve User Satisfaction</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  7980. ]]></description>
  7981. <content:encoded><![CDATA[
  7982. <p>Mobile app themes improve user satisfaction by letting each user customize the app appearance with personal preferences. One way to implement multiple themes in apps that report and visualize data is to offer users a choice of color palettes for charts and graphs. MobileTogether uses a combination of drag-and-drop UI design, the powerful Action Tree visual programming language for event handling, and standardized functional programming for data selection and processing. Developers use MobileTogether every day to <a href="https://www.altova.com/mobiletogether">create elegant cross-platform apps</a> with rich charts and graphs in all popular formats.</p>
  7983.  
  7984.  
  7985.  
  7986. <p>The main chart configuration settings let mobile app developers choose any of four built-in color palettes or even define a custom color palette for charts and graphs as they design an app. Combined with dark mode and light mode display settings, that creates ten colorful possibilities for display customization. Rather than impose a design-time color choice, developers can leverage MobileTogether features to let users choose for themselves. Let’s look at an example.</p>
  7987.  
  7988.  
  7989.  
  7990. <figure class="wp-block-image size-full is-style-default"><img loading="lazy" decoding="async" width="700" height="335" src="https://www.altova.com/blog/wp-content/uploads/mt_darktheme_blog_3.jpg" alt="" class="wp-image-26317" srcset="https://www.altova.com/blog/wp-content/uploads/mt_darktheme_blog_3.jpg 700w, https://www.altova.com/blog/wp-content/uploads/mt_darktheme_blog_3-300x144.jpg 300w" sizes="(max-width: 700px) 100vw, 700px" /></figure>
  7991.  
  7992.  
  7993.  
  7994. <span id="more-26768"></span>
  7995.  
  7996.  
  7997.  
  7998. <p>The image below shows the Mobile Together Color Schema selection dialog and a chart from a mobile app that reports production for rooftop solar power systems.</p>
  7999.  
  8000.  
  8001.  
  8002. <figure class="wp-block-image size-full is-resized is-style-default"><a href="https://www.altova.com/blog/wp-content/uploads/user-schema-def.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/user-schema-def.png" alt="Define mobile app themes by chart color schemas" class="wp-image-26772" width="469" height="336" srcset="https://www.altova.com/blog/wp-content/uploads/user-schema-def.png 700w, https://www.altova.com/blog/wp-content/uploads/user-schema-def-300x215.png 300w, https://www.altova.com/blog/wp-content/uploads/user-schema-def-260x185.png 260w" sizes="(max-width: 469px) 100vw, 469px" /></a><figcaption><strong>Click image to view full-size</strong></figcaption></figure>
  8003.  
  8004.  
  8005.  
  8006. <p>The developer assigned a custom Color Schema in the Chart Settings dialog, where the background area chart is filled with orange and the bars are blue. If the chart included additional elements, the next colors would be green, yellow, violet, etc.</p>
  8007.  
  8008.  
  8009.  
  8010. <p>The developer could have selected any built-in Color Schema from the drop-down menu:</p>
  8011.  
  8012.  
  8013.  
  8014. <figure class="wp-block-image size-full is-resized is-style-default"><a href="https://www.altova.com/blog/wp-content/uploads/schema-choose.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/schema-choose.png" alt="Built-in color schemas can create a variety of mobile app themes" class="wp-image-26777" width="410" height="244" srcset="https://www.altova.com/blog/wp-content/uploads/schema-choose.png 613w, https://www.altova.com/blog/wp-content/uploads/schema-choose-300x178.png 300w" sizes="(max-width: 410px) 100vw, 410px" /></a><figcaption><strong>Click image to view full-size</strong></figcaption></figure>
  8015.  
  8016.  
  8017.  
  8018. <h3 class="wp-block-heading" id="h-creating-mobile-app-themes"><strong>Creating Mobile App Themes</strong></h3>
  8019.  
  8020.  
  8021.  
  8022. <p>Let’s look at a strategy to empower users on any mobile device to pick a color schema when the app executes. This app already has a Settings page, so that’s a natural place to add a selector for appearance themes. We can start by creating a table with radio buttons and color swatches for each color schema. Here is a view of the completed table in the MobileTogether Designer:</p>
  8023.  
  8024.  
  8025.  
  8026. <figure class="wp-block-image size-full is-style-default"><a href="https://www.altova.com/blog/wp-content/uploads/theme-buttons-1.png" target="_blank"><img loading="lazy" decoding="async" width="383" height="368" src="https://www.altova.com/blog/wp-content/uploads/theme-buttons-1.png" alt="Mobile app themes selector table as seen in the MobileTogether Designer" class="wp-image-26779" srcset="https://www.altova.com/blog/wp-content/uploads/theme-buttons-1.png 383w, https://www.altova.com/blog/wp-content/uploads/theme-buttons-1-300x288.png 300w, https://www.altova.com/blog/wp-content/uploads/theme-buttons-1-36x36.png 36w" sizes="(max-width: 383px) 100vw, 383px" /></a></figure>
  8027.  
  8028.  
  8029.  
  8030. <p>MobileTogether supports all familiar selection controls. For instance, a combo box appears immediately above the table. We chose a set of radio buttons&nbsp; for mobile app themes to concurrently display all the color options.</p>
  8031.  
  8032.  
  8033.  
  8034. <p>The charts in this app only include one or two elements each, so each color pair illustrates the first two colors in the list for each schema. Here is a view of the same portion of the Settings page in the MobileTogether Simulator window:</p>
  8035.  
  8036.  
  8037.  
  8038. <figure class="wp-block-image size-full is-style-default"><a href="https://www.altova.com/blog/wp-content/uploads/theme-buttons-2.png" target="_blank"><img loading="lazy" decoding="async" width="389" height="250" src="https://www.altova.com/blog/wp-content/uploads/theme-buttons-2.png" alt="Color theme selector as seen in the MobileTogether Simulator" class="wp-image-26782" srcset="https://www.altova.com/blog/wp-content/uploads/theme-buttons-2.png 389w, https://www.altova.com/blog/wp-content/uploads/theme-buttons-2-300x193.png 300w" sizes="(max-width: 389px) 100vw, 389px" /></a></figure>
  8039.  
  8040.  
  8041.  
  8042. <p>The main Chart Setting dialog lets developers quickly design the best chart to visualize virtually any data set, including area charts, bar charts, candlestick charts, gauge charts, and pie charts. Chart types can even be combined in layers. The Monthly Production chart shown above is a layer chart with a bar chart overlay.</p>
  8043.  
  8044.  
  8045.  
  8046. <p>But any individual chart feature can also be defined as the result of an XPath expression processed during app execution. Assignments in the Dynamic XPath Settings dialog override the original basic Chart Settings.</p>
  8047.  
  8048.  
  8049.  
  8050. <figure class="wp-block-image size-full is-resized is-style-default"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/dynamic-xpath-settings.png" alt="Dynamic XPath Setting to choose a color theme" class="wp-image-26784" width="456" height="402" srcset="https://www.altova.com/blog/wp-content/uploads/dynamic-xpath-settings.png 680w, https://www.altova.com/blog/wp-content/uploads/dynamic-xpath-settings-300x265.png 300w" sizes="(max-width: 456px) 100vw, 456px" /><figcaption><strong>Click image to view full-size</strong></figcaption></figure>
  8051.  
  8052.  
  8053.  
  8054. <p>The Dynamic XPath Settings dialog lets us specify the color schema for each chart in the XML element called graphColorBase. The table of radio buttons on the app Settings page assigns one of the following string values to graphColorBase: “Default”, “Grayscale”, “Colorful”, “Pastel”, or “User”.</p>
  8055.  
  8056.  
  8057.  
  8058. <p>Here are screenshots of the final app showing selection of mobile app themes on an Android phone in Dark Mode:</p>
  8059.  
  8060.  
  8061.  
  8062. <figure class="wp-block-image size-full is-resized is-style-default"><a href="https://www.altova.com/blog/wp-content/uploads/android-example.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/android-example.png" alt="Selection of mobile app themes on an Android phone" class="wp-image-26787" width="536" height="482" srcset="https://www.altova.com/blog/wp-content/uploads/android-example.png 800w, https://www.altova.com/blog/wp-content/uploads/android-example-300x270.png 300w, https://www.altova.com/blog/wp-content/uploads/android-example-768x690.png 768w, https://www.altova.com/blog/wp-content/uploads/android-example-705x634.png 705w" sizes="(max-width: 536px) 100vw, 536px" /></a><figcaption><strong>Click image to view full-size</strong></figcaption></figure>
  8063.  
  8064.  
  8065.  
  8066. <p>And Standard and Grayscale color schema examples on an iPhone in Light Mode:</p>
  8067.  
  8068.  
  8069.  
  8070. <figure class="wp-block-image size-full is-resized is-style-default"><a href="https://www.altova.com/blog/wp-content/uploads/iphone-example.png" target="_blank"><img loading="lazy" decoding="async" src="https://www.altova.com/blog/wp-content/uploads/iphone-example.png" alt="Mobile app themes viewed on an iPhone" class="wp-image-26789" width="536" height="484" srcset="https://www.altova.com/blog/wp-content/uploads/iphone-example.png 800w, https://www.altova.com/blog/wp-content/uploads/iphone-example-300x271.png 300w, https://www.altova.com/blog/wp-content/uploads/iphone-example-768x694.png 768w, https://www.altova.com/blog/wp-content/uploads/iphone-example-705x637.png 705w" sizes="(max-width: 536px) 100vw, 536px" /></a><figcaption><strong>Click image to view full-size</strong></figcaption></figure>
  8071.  
  8072.  
  8073.  
  8074. <p>The Grayscale color schema might be perfect for colorblind users!</p>
  8075.  
  8076.  
  8077.  
  8078. <p>Take a look at our MobileTogether&nbsp;<a href="https://www.altova.com/mobiletogether/demos#video_Demos">video demos</a>, more&nbsp;<a href="https://www.altova.com/mobiletogether/demos">sample apps</a>, or even the&nbsp;<a href="https://www.altova.com/manual/MobileTogether/mobiletogetherdesigner/">online manual</a>&nbsp;for a deep dive into all the info about MobileTogether. When you’re ready to improve user satisfaction with mobile app themes in your own cross-platform apps,&nbsp;<a href="https://www.altova.com/mobiletogether/download">download the MobileTogether Designer</a>.</p>
  8079. <p>The post <a href="https://www.altova.com/blog/mobile-app-themes-improve-user-satisfaction/">Mobile App Themes Improve User Satisfaction</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  8080. ]]></content:encoded>
  8081. </item>
  8082. <item>
  8083. <title>Transforming and Converting Protobuf</title>
  8084. <link>https://www.altova.com/blog/data-mapping-protocol-buffers/</link>
  8085. <dc:creator><![CDATA[David McGahey]]></dc:creator>
  8086. <pubDate>Thu, 10 Feb 2022 13:55:00 +0000</pubDate>
  8087. <category><![CDATA[Data Integration]]></category>
  8088. <category><![CDATA[Database]]></category>
  8089. <category><![CDATA[JSON]]></category>
  8090. <category><![CDATA[protocol buffers]]></category>
  8091. <category><![CDATA[XML]]></category>
  8092. <category><![CDATA[data integration]]></category>
  8093. <category><![CDATA[data mapping]]></category>
  8094. <category><![CDATA[FlowForce Server]]></category>
  8095. <category><![CDATA[MapForce]]></category>
  8096. <category><![CDATA[MapForce Server]]></category>
  8097. <guid isPermaLink="false">https://www.altova.com/blog/?p=4005</guid>
  8098.  
  8099. <description><![CDATA[<p>MapForce supports mapping protocol buffers (Protobuf) to and from other structured data formats as mapping sources or targets. In the constant quest for more efficient ways to transfer, manipulate, and manage large structured data sets, Google has created a language- and platform-neutral data format similar to XML, but smaller, faster, and simpler than even JSON [&#8230;]</p>
  8100. <p>The post <a href="https://www.altova.com/blog/data-mapping-protocol-buffers/">Transforming and Converting Protobuf</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  8101. ]]></description>
  8102. <content:encoded><![CDATA[<p>MapForce supports mapping protocol buffers (Protobuf) to and from other structured data formats as <a href="https://www.altova.com/mapforce">mapping sources or targets</a>. In the constant quest for more efficient ways to transfer, manipulate, and manage large structured data sets, Google has created a language- and platform-neutral data format similar to XML, but smaller, faster, and simpler than even JSON data. Tools are available to generate and work with Protobuf using Java, Python, C++, C#, Ruby, and other programming languages.</p>
  8103. <p>The structure of any Protobuf message is defined in a .proto file that defines each field name and value type. Altova MapForce lets users drop these .proto files into a data mapping as a source or target along with any other data, including XML, JSON, relational databases, Excel, flat files, REST and SOAP web services, and others.  .proto files versions 2 and 3 are supported.</p>
  8104. <p>A MapForce data mapping creates compatibility between existing XML, JSON, database or legacy data formats and new applications leveraging the efficiency of Protobuf.</p>
  8105. <p><a href="https://www.altova.com/blog/wp-content/uploads/shutterstock_59314045.jpg"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1929" src="https://www.altova.com/blog/wp-content/uploads/shutterstock_59314045.jpg" alt="" width="700" height="335" srcset="https://www.altova.com/blog/wp-content/uploads/shutterstock_59314045.jpg 700w, https://www.altova.com/blog/wp-content/uploads/shutterstock_59314045-300x144.jpg 300w, https://www.altova.com/blog/wp-content/uploads/shutterstock_59314045-450x215.jpg 450w" sizes="(max-width: 700px) 100vw, 700px" /></a></p>
  8106. <p><span id="more-4005"></span></p>
  8107. <p>To get started converting and transforming Protobuf, simply use the Insert menu or the quick access toolbar button to insert a .proto file into the mapping.</p>
  8108. <p><a href="https://www.altova.com/blog/wp-content/uploads/insert-new.png"><img loading="lazy" decoding="async" class="alignnone wp-image-4007 size-full" src="https://www.altova.com/blog/wp-content/uploads/insert-new.png" alt="Data mapping protocol buffers in Altova MapForce" width="690" height="134" srcset="https://www.altova.com/blog/wp-content/uploads/insert-new.png 690w, https://www.altova.com/blog/wp-content/uploads/insert-new-300x58.png 300w, https://www.altova.com/blog/wp-content/uploads/insert-new-450x87.png 450w" sizes="(max-width: 690px) 100vw, 690px" /></a></p>
  8109. <p>MapForce includes an example Protobuf data mapping, shown here:</p>
  8110. <p><a href="https://www.altova.com/blog/wp-content/uploads/protocol-buffers-data-mapping.png"><img loading="lazy" decoding="async" class="alignnone wp-image-4008 size-full" src="https://www.altova.com/blog/wp-content/uploads/protocol-buffers-data-mapping.png" alt="Data mapping protocol buffers example in MapForce" width="667" height="516" srcset="https://www.altova.com/blog/wp-content/uploads/protocol-buffers-data-mapping.png 667w, https://www.altova.com/blog/wp-content/uploads/protocol-buffers-data-mapping-300x232.png 300w, https://www.altova.com/blog/wp-content/uploads/protocol-buffers-data-mapping-450x348.png 450w" sizes="(max-width: 667px) 100vw, 667px" /></a></p>
  8111. <p>The .proto file used as the output target matches the example described in the online documentation for the Persons contact list. The source data is an XML file with many additional elements not needed for this Protobuf stream. When the data mapping is executed, the necessary elements are extracted from the XML file to create the output stream.</p>
  8112. <p>Note that the file type for the Protobuf output is BLOB, or <u>B</u>inary <u>L</u>arge <u>Ob</u>ject. MapForce allows developers to create protocol buffer data streams, or read protocol buffer input data, without generating source code in Java, C++, or any other language, then compiling and executing the code for each protobuf binary based on a new .proto file.</p>
  8113. <h3>View the Converted Data </h3>
  8114. <p>Clicking the Output button at the bottom of the main MapForce data mapping window executes the mapping, supplying the file Altova_Hierarchical.xml as the data source. The resulting data stream is opened in the output preview window in a JSON-like representation:</p>
  8115. <p><a href="https://www.altova.com/blog/wp-content/uploads/output-preview.png"><img loading="lazy" decoding="async" class="alignnone wp-image-4009 size-full" src="https://www.altova.com/blog/wp-content/uploads/output-preview.png" alt="Output preview of data mapping protocol buffers" width="558" height="644" srcset="https://www.altova.com/blog/wp-content/uploads/output-preview.png 558w, https://www.altova.com/blog/wp-content/uploads/output-preview-260x300.png 260w, https://www.altova.com/blog/wp-content/uploads/output-preview-450x519.png 450w" sizes="(max-width: 558px) 100vw, 558px" /></a></p>
  8116. <p>For one-off requirements, MapForce users can save the binary file via an option in the Output menu:</p>
  8117. <p><a href="https://www.altova.com/blog/wp-content/uploads/data-mapping-save-output.png"><img loading="lazy" decoding="async" class="alignnone wp-image-4010 size-full" src="https://www.altova.com/blog/wp-content/uploads/data-mapping-save-output.png" alt="Save binary output created by data mapping protocol buffers" width="557" height="417" srcset="https://www.altova.com/blog/wp-content/uploads/data-mapping-save-output.png 557w, https://www.altova.com/blog/wp-content/uploads/data-mapping-save-output-300x225.png 300w, https://www.altova.com/blog/wp-content/uploads/data-mapping-save-output-450x337.png 450w" sizes="(max-width: 557px) 100vw, 557px" /></a></p>
  8118. <p>Here is a partial representation of the actual generated binary data as displayed in a common hexadecimal viewer tool:</p>
  8119. <p><a href="https://www.altova.com/blog/wp-content/uploads/protocol-buffers-binary-view.png"><img loading="lazy" decoding="async" class="alignnone wp-image-4011 size-full" src="https://www.altova.com/blog/wp-content/uploads/protocol-buffers-binary-view.png" alt="View of binary output created from data mapping protocol buffers" width="629" height="151" srcset="https://www.altova.com/blog/wp-content/uploads/protocol-buffers-binary-view.png 629w, https://www.altova.com/blog/wp-content/uploads/protocol-buffers-binary-view-300x72.png 300w, https://www.altova.com/blog/wp-content/uploads/protocol-buffers-binary-view-450x108.png 450w" sizes="(max-width: 629px) 100vw, 629px" /></a></p>
  8120. <p>The efficiency of the Protobuf stream is evident in the binary data. All the overhead of XML or JSON element names is removed, along with spaces, tabs, brackets, and other characters normally included to enable human readability.</p>
  8121. <h3>Map and Transform Protobuf </h3>
  8122. <p>If you receive a Protobuf stream, you can map it to your internal enterprise data format. The image below shows a mapping to a database:</p>
  8123. <p><a href="https://www.altova.com/blog/wp-content/uploads/protobuf-source-mapping.png"><img loading="lazy" decoding="async" class="alignnone wp-image-4055 size-full" src="https://www.altova.com/blog/wp-content/uploads/protobuf-source-mapping.png" alt="A protocol buffer data mapping where the protobuf is the source and the target is a database table." width="683" height="435" srcset="https://www.altova.com/blog/wp-content/uploads/protobuf-source-mapping.png 683w, https://www.altova.com/blog/wp-content/uploads/protobuf-source-mapping-300x191.png 300w, https://www.altova.com/blog/wp-content/uploads/protobuf-source-mapping-450x287.png 450w" sizes="(max-width: 683px) 100vw, 683px" /></a></p>
  8124. <p>The mapping uses several data processing conversion functions to manipulate the incoming binary data to match the structure of the existing database table. MapForce supports data mapping to or from all popular relational databases and NoSQL databases. Click here to <a href="https://www.altova.com/mapforce#db_mapping">see the complete list</a>.</p>
  8125. <p>The output of this mapping is a SQL script to insert data from the binary to a database:</p>
  8126. <p><a href="https://www.altova.com/blog/wp-content/uploads/db-insert-script.png"><img loading="lazy" decoding="async" class="alignnone wp-image-4056 size-full" src="https://www.altova.com/blog/wp-content/uploads/db-insert-script.png" alt="A SQL script as the output of a protobuf to database mapping." width="662" height="471" srcset="https://www.altova.com/blog/wp-content/uploads/db-insert-script.png 662w, https://www.altova.com/blog/wp-content/uploads/db-insert-script-300x213.png 300w, https://www.altova.com/blog/wp-content/uploads/db-insert-script-260x185.png 260w, https://www.altova.com/blog/wp-content/uploads/db-insert-script-450x320.png 450w" sizes="(max-width: 662px) 100vw, 662px" /></a></p>
  8127. <p>After the script is executed, we can verify the database contents using DatabaseSpy, Altova’s <a href="https://www.altova.com/databasespy">SQL editor</a>:</p>
  8128. <p><a href="https://www.altova.com/blog/wp-content/uploads/table-contents.png"><img loading="lazy" decoding="async" class="alignnone wp-image-4057 size-full" src="https://www.altova.com/blog/wp-content/uploads/table-contents.png" alt="Table contents after execution of the protobuf to database mapping." width="556" height="768" srcset="https://www.altova.com/blog/wp-content/uploads/table-contents.png 556w, https://www.altova.com/blog/wp-content/uploads/table-contents-217x300.png 217w, https://www.altova.com/blog/wp-content/uploads/table-contents-510x705.png 510w, https://www.altova.com/blog/wp-content/uploads/table-contents-450x622.png 450w" sizes="(max-width: 556px) 100vw, 556px" /></a></p>
  8129. <h3>Automated Execution</h3>
  8130. <p>Production workflows may require <a href="https://www.altova.com/mapforce-server">repeated execution of data mappings</a> to generate new data streams based on the same .proto definition, but using different source data. In the first example above, a different XML instance document could be supplied. A data mapping from a database or from a REST Web service to Protobuf may need to be executed on a regular schedule to include the updated source data.</p>
  8131. <p>In those or other cases where repeated execution is required, MapForce users can save the data mapping as a <a href="https://www.altova.com/mapforce-server">MapForce Server</a> execution file via a simple menu selection:</p>
  8132. <p><a href="https://www.altova.com/blog/wp-content/uploads/MapForce-Server-execution-file.png"><img loading="lazy" decoding="async" class="alignnone wp-image-4012 size-full" src="https://www.altova.com/blog/wp-content/uploads/MapForce-Server-execution-file.png" alt="MapForce Server execution file for data mapping protocol buffers" width="330" height="70" srcset="https://www.altova.com/blog/wp-content/uploads/MapForce-Server-execution-file.png 330w, https://www.altova.com/blog/wp-content/uploads/MapForce-Server-execution-file-300x64.png 300w" sizes="(max-width: 330px) 100vw, 330px" /></a></p>
  8133. <p>The execution file defines the inputs, outputs, and any intermediary processing steps that must be applied to the data (including sorting, filtering, custom functions, or others) in a form optimized for execution in a server environment. MapForce Server automates execution of these compiled data mappings via a command line or API interface.</p>
  8134. <p>MapForce Server may also be configured with FlowForce Server, RaptorXML Server, or StyleVision Server, depending on the needs of the enterprise. When MapForce Server operates under the management of FlowForce Server, data mappings are executed as FlowForce Server job steps that can be triggered at a specific time or time interval, or based on an event such as the arrival of a new file in a watched folder.</p>
  8135. <p>For Protobuf data mappings where the source is a database query or REST request, the query is executed as part of the mapping. When the input is a file such as a JSON or XML document, the new file is specified as a FlowForce job parameter at runtime.</p>
  8136. <p>You can try this all now with a <a href="https://www.altova.com/mapforce/download">fully-functional MapForce free trial</a>. </p>
  8137.  
  8138.  
  8139. <p></p>
  8140. <p>The post <a href="https://www.altova.com/blog/data-mapping-protocol-buffers/">Transforming and Converting Protobuf</a> appeared first on <a href="https://www.altova.com/blog">Altova Blog</a>.</p>
  8141. ]]></content:encoded>
  8142. </item>
  8143. </channel>
  8144. </rss>
  8145.  
  8146. <!--
  8147. Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/
  8148.  
  8149. Object Caching 49/2067 objects using Disk
  8150. Page Caching using Disk: Enhanced (Page is feed)
  8151. Minified using Disk
  8152. Database Caching 1/149 queries in 0.048 seconds using Disk (Request-wide modification query)
  8153. Fragment Caching 0/1 fragments using Disk
  8154.  
  8155. Served from: blog.altova.com @ 2024-05-06 14:13:02 by W3 Total Cache
  8156. -->

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid RSS" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=http%3A//blog.altova.com/feed/

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda