Technical FAQs

Question

I’m receiving the error “Uncaught TypeError: Cannot read property ‘viewer’ of undefined” when trying to embed the PrizmDoc Viewer in my web application. What could be the issue?

Answer

This indicates that the template property in the viewer initialization has not been specified or is undefined.

To fix this, ensure you are loading viewerCustomizations.js.

If the version you are working with predates viewerCustomizations.js, you can get a copy of viewerCustomizations.js from the viewer assets, hosted here, and update your viewer initialization code.

Though artificial intelligence has been part of our technology lexicon since the 1950s, it seems its impact on our personal and business lives only increases with each passing year. Smart algorithm-augmented applications and devices have evolved through many stages including:

  • Understanding natural language queries, and applying them to get more accurate results than with Boolean or programmatic queries
  • Visual recognition, machine learning, and robotic process automation
  • Virtual assistants and chat bots with speech to text and text to speech abilities
  • Reasoning through vast amounts of data, recognizing patterns to classify it, and applying its programming to retrieve and present data when a query matches

Looking back through history is interesting, yet looking forward to what is on the horizon for AI is fascinating. Let’s look at five of the most compelling advances in AI, and how these innovations could influence our day-to-day business processes.

1. Industry-Specific Open Data Realms

Commercial enterprises are highly competitive in the real world, and their intellectual property is generally kept extremely private. Yet there are many industries where responsible data sharing between entities can turn risks into opportunities. They can benefit not just the organizations that run AI platforms, but their patients, constituents, and clients. Industries like healthcare, government, legal, education, and many more are benefiting from data sharing with peers.

One of the biggest obstacles to the advance of AI in these industries is fear of change. People worry that personal data will get into the wrong hands, or that their organizations will lose their strategic advantage by sharing information with similar or competing organizations. Strategies around how to manage documents in public repositories, like redactions, watermarks, and viewers must be considered.

Many data scientists and business leaders are discovering how they can benefit from participating in data sharing hubs and leveraging standards-based AI programming methods. They often do so to avoid being disrupted by their competitors and peer organizations that do.

2. AI and Data Privacy

Open data sharing has its place, yet data privacy regulations like GDPR in the AI era adds complexity around information governance. Structured and unstructured data are created rapidly by not only a company’s employees but its partners, customers, and other external parties.

Many organizations are anonymizing certain data to comply with privacy regulations. Others are trying out ways to allow their machine learning algorithms to process data while it is still encrypted. Many are leveraging workflow engines to classify their files and data and control internal and external accessibility.

3. Image Recognition

There is a lot more to AI image recognition technology than determining whether something is or isn’t a hot dog. AI-enabled applications are recognizing items to search for products on eBay, helping police and government intelligence officers track down suspects, and even guide autonomous vehicles to navigate streets, pedestrians, signs, and other vehicles.
One of the most exciting applications for business is image recognition in healthcare. According to IBM, medical images account for nearly 90 percent of all medical data. AI processes billions of X-Rays, CT scans, and MRIs with deep learning, then uses them to better diagnose patient symptoms and anomalies. Doing so is helping physicians to better treat patients with skin cancer, brain tumors, and many other ailments.

4. Neural Networks

The concept of neural networks, which are algorithms modeled on human brains, is one of the hottest developments in AI these days. They are going beyond data processing and learning how to apply limited bias to a customer’s tone of voice on a service call, or getting trained by industry experts to understand industry lingo, like when a stock “is heading for the moon” or when the market is “recovering from a crash.”

AI platforms are helping companies to:

  • Find better employment candidates
  • Empower their information workers to find the information they need faster
  • Help their sales and marketing teams to opportunistically identify customers that have a need for their products and services based on late-breaking news stories
  • AI may be destined to take over many of the high-volume, low-value tasks which AI algorithms are ideally suited for. Yet experts say that 80 percent of the jobs people will be doing in 2030 have yet to be invented.

5. The Future of AI Governance and Ethics

Movies like Terminator and 2001: A Space Odyssey, and TV series like Black Mirror paint bleak pictures of AI. AI-driven robots which deviate from their programming and rise up against mankind. Even visionaries like Stephen Hawking and Elon Musk have warned against what could happen if AI developers aren’t cautious with innovation in this space.
Governments are partnering with industry leaders to create policies for AI governance. Since the impact of AI advancement is all around us in our work and personal lives, it is imperative that AI technology benefits society, not just commercial interests. There are a variety of innovations on the horizon that can help you and your company extend your business applications with document management functions using AI platforms and machine learning algorithms. Keep a lookout for more information on these developments.

Managing and viewing documents is critical to providing a quality user experience in today’s applications. Without some way of controlling the presentation of digital files like PDFs, organizations put themselves in a situation where they must rely on external solutions that may not be responsive to their needs. PDF integration into their applications helps developers to maintain control over their documents while providing a more consistent viewing experience for users.

What Are Your PDF Reader Options?

Sharing and viewing PDFs online has become much easier with the development of HTML5 viewing technology and PDF.js-based software. For many years, the only way to view a PDF was to download a file and open it using a dedicated PDF reader application. Although many of these readers could be added to a web browser using a plug-in, this wasn’t always a reliable solution and inconsistent support for these extensions often created security risks.

After Mozilla introduced the PDF.js open-source library in 2011, integrated PDF viewing quickly became an essential feature for web browsers. Most users now simply take PDF viewing for granted, trusting that their browser will be able to open and read any file. For some organizations, relying on a browser PDF reader is a perfectly reasonable solution, especially if they don’t have any concerns over controlling the document viewing experience.

But for many developers building web applications, these browsers and external PDF readers put them at the mercy of third-party providers. Changes or security problems with these solutions can leave development teams scrambling to implement workarounds that could have been avoided if they had their own dedicated viewing solution. That’s why applications increasingly feature a built-in PDF reader that allows them to better manage and present important digital documents.

Why Your Application Needs a Built-in PDF Reader

The core problem with relying on an external viewing solution comes down to control. In order to view a PDF in a dedicated reader, the file needs to be downloaded. Once that document is removed from a secure application, it could easily be distributed or altered without any authorization or oversight. This often results in serious version confusion that leaves everyone wondering which version of a PDF is the most up-to-date. By keeping documents within a controlled application, developers can ensure that the files viewed there are current.

Relying on external PDF viewers can also create an inconsistent user experience. Since not all viewers render documents, in the same way, it’s impossible to control what someone will see when they open a given PDF. In some cases, that could result in wrong fonts being displayed or some image layers failing to render properly. But it may also prevent someone from even viewing a file at all. For example, browser-based viewers that use the base PDF.js library without making any improvements to it often struggle to render lengthy or complex files. 

When applications incorporate a built-in PDF reader, developers can ensure that every document viewed within that solution will look the same on every device (and that it will open in the first place!). This level of control is incredibly important for organizations looking to build a frictionless and compelling user experience.

Integrating a PDF Reader

By incorporating a PDF reader into their web-based applications, developers are able to both retain full control over the viewing experience and keep files within a protected environment. When users are interacting with the application, all PDF viewing can be handled by the built-in viewer rather than handed off to external software. This makes it easier to manage access effectively and limits the number of downloads. 

Since every user will be viewing documents through the same built-in PDF reader, developers can also craft a consistent experience across multiple platforms. With more and more people accessing their applications with mobile devices, it’s important for development teams to offer responsive viewing solutions that can accommodate various screen sizes and interfaces.

In order to maintain complete control over files and deliver better performance, a built-in PDF reader should be able to operate as an entirely client-side solution. Whether it’s running within an on-premises technology stack or as part of an application’s cloud deployment, a PDF viewer without any complicated dependencies never has to worry about connecting to a third-party service to facilitate viewing. 

But why stop at PDF viewing?

PDF Editing

Often users need the ability to view as well as collaborate on their PDF documents, and providing the ability to edit those documents presents a challenge for developers. In a recent survey conducted amongst developers, there appears to be a disconnect between the PDF editing features that are available in most applications, to what developers actually need to fulfill and enhance their applications. So what’s the solution? 

Third-party Integrated PDF Viewing and Editing

A PDF solution provider has already worked out the challenges associated with viewing and editing PDF documents within an application. They’ve also devoted their resources to improving their document capabilities and expanding features to offer greater flexibility.

A good third-party provider also offers extensive support during and after the implementation process. If the developer needs to add a new PDF-related capability to their application or if they encounter a problem, they can quickly resolve the issue by working with their provider rather than wasting valuable resources trying to identify and fix the problem themselves. That combination of expertise and service means that developers can spend more time focusing on their application’s unique features rather than continuously wrestling with PDF-related challenges.

Enhance Your Application with PDF Integrations from Accusoft

With more than three decades of experience managing documents and images, Accusoft has been building innovative PDF solutions since the format was first introduced. Whether you need to add flexible front-end viewing and editing features to your application or are looking to add powerful programmatic PDF capabilities into the back end of your software, we provide a wide range of PDF solutions that address multiple development needs.

To learn more about how Accusoft can solve your PDF document management challenges, talk to one of our PDF specialists today and find the integration that works best for your software project.

 

Question

In PrizmDoc, why do I fail to load/convert Excel documents with the error “Exception from HRESULT: 0x800AC472”?

Answer

The error message Exception from HRESULT: 0x800AC472 is usually associated with a failure involving an Excel document, found in the MsOfficeConverter.log. Below are some known triggers of it:

If the user is logged in as “SYSTEM”, “LocalSystem”, or any other non-user-account variant, this will cause PrizmDoc to fail when using MSO services. This is expected behavior when working with Microsoft Office documents in PrizmDoc. Please see step 6 of the Windows Installation documentation regarding this:

http://help.accusoft.com/PrizmDoc/latest/HTML/webframe.html#windows-installation.html

“Specify the login account (account name and password) that PrizmDoc Server will run under. If you are using the Microsoft Office (MSO) Conversion add-on, please make sure that the “login account” is a real user account with Administrator rights. Running PrizmDoc under the LocalSystem user or another Microsoft Windows integrated service account is not supported for this option.”

It’s also crucial that the copy of Microsoft Office on the system has been activated. A not-licensed, not-activated, expired, or trial license will all cause Microsoft Office to not work with PrizmDoc.

More information: https://help.accusoft.com/PrizmDoc/latest/HTML/windows-requirements.html

“The installed copy of Microsoft Office must be activated in order for PrizmDoc’s Microsoft Office Conversion Service to work properly. Not licensed, not activated, an expired or trial version of Microsoft Office will not work with PrizmDoc.”

Your default printer must be the Microsoft XPS Document Writer when working with Excel documents in PrizmDoc. Specifying another printer could possibly lead to this exception.

More information: http://help.accusoft.com/PrizmDoc/latest/HTML/natively-render-mso-documents.html

“The Microsoft Office Conversion Service requires the Microsoft XPS Document Writer printer driver to be installed for the best conversion performance and rendering fidelity of MS Excel documents”

Ensure the Print Spooler service is started and the Microsoft XPS Document Writer is the default printer.

There is a known issue with version 13.3 of PrizmDoc where completely blank Excel files are not loadable in the Viewer. They will fail to load and throw the aforementioned HRESULT exception. This has been fixed in PrizmDoc version 13.6.

In short, please set up the PrizmDoc service correctly to run with a real user account, ensure the copy of Microsoft Office has been activated, and make sure the default printer is set to “Microsoft XPS Document Writer”, then restart the service. This should fix this particular issue in most cases.


For more reading on considerations that Microsoft recommends when running their client-side MSO applications on the server, see this article:

Considerations for server-side Automation of Office

Question

In PrizmDoc, why do I fail to load/convert Excel documents with the error “Exception from HRESULT: 0x800AC472”?

Answer

The error message Exception from HRESULT: 0x800AC472 is usually associated with a failure involving an Excel document, found in the MsOfficeConverter.log. Below are some known triggers of it:

If the user is logged in as "SYSTEM", "LocalSystem", or any other non-user-account variant, this will cause PrizmDoc to fail when using MSO services. This is expected behavior when working with Microsoft Office documents in PrizmDoc. Please see step 6 of the Windows Installation documentation regarding this:

http://help.accusoft.com/PrizmDoc/latest/HTML/webframe.html#windows-installation.html

"Specify the login account (account name and password) that PrizmDoc Server will run under. If you are using the Microsoft Office (MSO) Conversion add-on, please make sure that the "login account" is a real user account with Administrator rights. Running PrizmDoc under the LocalSystem user or another Microsoft Windows integrated service account is not supported for this option."

It’s also crucial that the copy of Microsoft Office on the system has been activated. A not-licensed, not-activated, expired, or trial license will all cause Microsoft Office to not work with PrizmDoc.

More information: https://help.accusoft.com/PrizmDoc/latest/HTML/windows-requirements.html

"The installed copy of Microsoft Office must be activated in order for PrizmDoc’s Microsoft Office Conversion Service to work properly. Not licensed, not activated, an expired or trial version of Microsoft Office will not work with PrizmDoc."

Your default printer must be the Microsoft XPS Document Writer when working with Excel documents in PrizmDoc. Specifying another printer could possibly lead to this exception.

More information: http://help.accusoft.com/PrizmDoc/latest/HTML/natively-render-mso-documents.html

"The Microsoft Office Conversion Service requires the Microsoft XPS Document Writer printer driver to be installed for the best conversion performance and rendering fidelity of MS Excel documents"

Ensure the Print Spooler service is started and the Microsoft XPS Document Writer is the default printer.

There is a known issue with version 13.3 of PrizmDoc where completely blank Excel files are not loadable in the Viewer. They will fail to load and throw the aforementioned HRESULT exception. This has been fixed in PrizmDoc version 13.6.

In short, please set up the PrizmDoc service correctly to run with a real user account, ensure the copy of Microsoft Office has been activated, and make sure the default printer is set to "Microsoft XPS Document Writer", then restart the service. This should fix this particular issue in most cases.


For more reading on considerations that Microsoft recommends when running their client-side MSO applications on the server, see this article:

Considerations for server-side Automation of Office

Barcode Xpress Python

Barcode Xpress 13.1 recently released for Linux, Java, and .NET Core, and with it came an exciting new component in the Linux version: official Python support. It has always been possible to use the ctypes module in Python or other modules built upon it to utilize native C libraries, but Barcode Xpress Linux now ships with an official Python sample script as well as a small library you can use to take the pain out of analyzing barcodes from your Python scripts. 

You can browse the included samples, located in the ReadBarcodesPython directory, for examples, but in this article we’ll go into some additional depth explaining how everything works and how to get started reading barcodes.


Including Barcode Xpress In Your Python Project

When adding Barcode Xpress to a Python script, there are two primary files you’ll need to locate and be aware of: BarcodeXpress.py, the wrapper library, and libbarcodexpress.so, the native library.

BarcodeXpress.py is a small wrapper library that utilizes the ctypes module to find, load, and call the Barcode Xpress for Linux native library. The simplest way to use it is to simply copy it into the directory containing your script or application and then include it normally.

import BarcodeXpress

When imported, BarcodeXpress.py will attempt to search for libbarcodexpress.so or either of the versioned names of the library associated with it’s release. It will first look in the same directory containing BarcodeXpress.py. If it does not find it there, it will attempt to locate the library in the recommended default location: ~/Accusoft/BarcodeXpress13-64/bin. It will always attempt to use the version of the library it was released with as it’s first choice, falling back to any version of the same major release and finally to any version at all. We recommend that you not rely on those fallbacks, though, and always use it with the version it was released with for maximum compatibility.

If you’ve installed Barcode Xpress in the recommended location then you should have no problem using the native library from there. For any other location make sure to copy one of the libbarcodexpress.so files to the folder your script is running from.


Barcode Xpress Licensing From Python

Barcode Xpress requires you to have either a paid or evaluation license before analyzing any barcodes. The simplest way to get started out of the box for a new user is to use the License Manager included with your Barcode Xpress installation to install an evaluation license on your computer. If you haven’t requested an evaluation license yet, you can do so at the main Barcode Xpress site: https://www.accusoft.com/products/barcode-xpress-collection/barcode-xpress/

For other licensing scenarios BarcodeXpress.py provides a set of functions mirroring the ones found in the native library which accept normal Python strings and integers:

BarcodeXpress.SetSolutionName("YourSolutionName")
BarcodeXpress.SetSolutionKey(key1, key2, key3, key4)
BarcodeXpress.SetOEMLicenseKey("2.0.AStringForOEMLicensingContactAccusoftSalesForMoreInformation...")


Setting Analysis Parameters

While the native Barcode Xpress library requires filling out fields in a struct to define any non-default parameters you would like to pass to the engine, the Python wrapper allows you to pass in values in a standard Python dictionary which it will then translate into a struct for you. Additionally, several classes containing static members are present in BarcodeXpress.py which correspond to the enums present in the main library.

options = {
"Orientation": BarcodeXpress.Orientation.HorizontalVerticalDiagonal,
"BarcodeTypes": [BarcodeXpress.BarcodeType.All]
}

 

For a full list of options and their values, check the full reference documentation.


Passing Images into Barcode Xpress

There are currently two ways of passing your images into Barcode Xpress from Python: passing the path to a bmp file as a string, or passing an image loaded from disk by OpenCV:

# With an image path
results = BarcodeXpress.AnalyzeFile(“my-image.bmp”, options)
# With an OpenCV image
myImage = cv2.imread(“my-image.png”, cv2.IMREAD_GRAYSCALE)
results = BarcodeXpress.AnalyzeOpenCV(myImage, options)


Interpreting Barcode Results

Either Analyze function will return a Python list containing Barcode objects, the class for which is defined in BarcodeXpress.py. This class has members for all of the fields in a normal Barcode Xpress Result struct except they have been converted into Python friendly equivalents. For the complete list of returned properties and their types, see the complete reference documentation.

And that should be everything you need to know to detect barcodes in Python with Barcode Xpress! BarcodeXpress.py is completely open so feel free to look around inside that file to see how we’re using ctypes to give you access to the full API of Barcode Xpress for Linux. Feel free to contact us with any questions or for evaluation licensing, and good luck decoding barcodes!

Question

How do I submit a bug if I’m using your free version?

Answer

Please submit bugs here.

Are you getting the most out of your business processes? If you’re still stuck using email for document collaboration or – worse – getting lost in a paper trail, there is an easier alternative that doesn’t disrupt your current application landscape. What if you could enhance productivity, facilitate collaboration, and mitigate risk using an integration to your current application?

Integrate Productivity

When you ask employees to work within multiple applications to complete projects, productivity often gets lost. Think about all the time it takes to search for documents in file repositories and navigate multiple applications to collaborate and approve documents. Not to mention ensuring that only authorized personnel have access to sensitive data. It can force companies to buy unnecessary software licenses to systems they only use occasionally.

However, applications that companies use on a day-to-day basis can be extended with SDKs, APIs, and business process automation solutions. By integrating content processing, conversion, and automation toolkits into your existing application, you’re giving your end-users the ability to create a more productive business process.

With PrizmDoc Viewer, end users can view, mark up, and sign off on documents without opening a third party application. This reduces the potential for human error and minimizes the need to flip from screen to screen. Enable your team’s productivity with the ability to compare, redact, and collaborate on documents in real-time from a single platform.

In addition, using Adobe Reader or Microsoft Office isn’t the most cost-effective alternative, especially on mobile devices. As mobility becomes more and more of a necessity, PrizmDoc Viewer APIs ensure document accessibility and control are an extension to your core applications. Need to apply watermarks or digital rights management controls on documents? PrizmDoc Viewer has you covered.

Reduce Physical Space and Convert Digital Records

You are likely tired of shuffling paper between employees, departments, and external clients and partners. Capturing and converting these files into text-searchable documents or extracting key data from forms like invoices is what smart document management is all about. ImageGear makes it easy for organizations to gather key insights from documents in context with structured data.

For many companies, a project can comprise multiple file types like images, text documents, or PDFs which are better assessed as a sum of many parts. By bundling multiple documents into a single, cohesive file, employees can spend less time browsing folders and searching, and spend more time providing value to their projects.

Buy, Don’t Build to Extend SaaS and Software Solutions

For organizations that want to enhance the value of their SaaS applications, buying proven, supported APIs and UI components or comprehensive developer toolkits accelerates deployment and scaling of content processing, conversion, and automation functionalities.

By leveraging document management APIs, you can also reduce development costs and overhead for small to mid-sized organizations and enable software companies to provide customers with extended functionality under their own brand with white-labeling. All while supporting familiar language protocols like .NET, HTML5, JavaScript, JSON, JQuery, and C#.

Provided your cloud-based application supports these common standards, you will be well on your way to facilitating collaborative document lifecycle governance with minimal effort and complexity.

Need more guidance on how to best address document viewing, conversion, and markup without having developers spend hundreds of man-hours building APIs in-house? Download our eGuide, Discover the Solution to Your Digital Document Dilemmas, to learn more about integrating document management functionalities into your current application today.

Long resistant to technological change, the insurance industry has made great strides over the last decade to implement innovative InsurTech solutions that upend longstanding market practices. As insurance providers explore new strategies for attracting a new generation of customers, they continue to rely heavily upon InsurTech developers to build the solutions that help them expand their customer base.

The Insurance Industry’s “Protection Gap”

Today’s insurance companies are offering more products and services than ever before, and yet at the same time, most people are carrying less insurance they need to protect themselves from risk. This “protection gap” is at least partially the result of large amounts of friction when it comes to purchasing insurance. People are either choosing to not buy insurance products, or they don’t know what options are available to them.

Part of this problem is the result of outdated models many organizations use to sell insurance. There’s an old adage that insurance is something that is “sold” rather than something that is “bought.” In this model, customers are expected to interact with an insurance agent who actively sells them a particular coverage.

Unfortunately, this model is becoming less and less effective in an increasingly digitized world, especially when it comes to younger generations of customers who expect the same level of frictionless convenience from insurers that they now get from many financial services (especially those powered by FinTech solutions).

What Is Embedded Insurance?

One potential solution to this challenge is a new strategy known as embedded insurance. This approach first identifies purchases or situations where insurance is required or would present clear added value. Some examples could include the purchase of an automobile, a vacation package, or even a potentially hazardous activity like skiing. An appropriately risk-adjusted insurance package is then offered to customers at the point of sale, or “embedded” within the customer experience.

There are tremendous advantages to this strategy. In the first place, it allows insurers to offer their products to customers who need them most at the precise point when they need them. Rather than having to go through the laborious process of contacting an insurance agent to get a quote for a new automotive policy after someone buys a new car, they can simply update their plan or add insurance services at the same time they’re purchasing the car itself. Customers are less likely to put off getting insurance (and then often forgetting to do so later), and the insurance provider has an opportunity to offer services to the people most likely to purchase them. For the provider, it’s a much more efficient approach than relying on outdated cold calling techniques to sell policies that may or may not meet the current needs of a customer.

Technical Challenges of Embedded Insurance

In order to embed insurance offerings effectively, however, providers first need to overcome a few technology challenges. From improved data capture tools that allow them to conduct faster, more customized underwriting to integrations that connect their applications to partner ecosystems, a new generation of InsurTech solutions will be needed to remake insurance business models.

Better Data Capture

Having accurate information is essential to insurance underwriting. This is even more important when it comes to embedded insurance because rates need to be calculated quickly so they can be provided along with other purchases. In many cases, form information may need to be processed quickly to obtain key data on the customer and the details of their purchase. When InsurTech applications are equipped with automated forms processing tools, they can quickly extract key information and use it to make faster, more data-driven decisions.

Versatile Viewing Capabilities

Whether an InsurTech application stands on its own or is integrated into another service offering, customers will often need to view information about their policy options in order to make an informed decision. On the firm’s end, insurance agents may need to review application details or bring up other resources to review when finalizing rates. By building viewing capabilities into their InsurTech applications with integrations like an HTML5 viewer, developers can ensure that their customers will never be caught depending upon external platforms for document viewing or sharing.

Expanded Contract Automation

Many insurance policies still require some form of contract, even if digital signature technology allows these forms to exist entirely in electronic format. Having the ability to rapidly assemble a contract as part of an embedded insurance solution can further enhance the streamlined customer experience. InsurTech developers can integrate automated document assembly tools to rapidly build contracts from pre-existing templates and quickly fill in the necessary details or add additional clauses.

Accusoft InsurTech Solutions for Embedded Insurance

Accusoft’s collection of SDK and API integrations give InsurTech developers the tools they need to enhance the flexibility of their applications. Our software solutions provide proven, market-ready viewing and processing features so development teams can keep their focus on refining their platform’s innovative core functionality. Whether it’s the versatile forms processing features of FormSuite, the powerful HTML5 viewing capabilities of PrizmDoc Viewer, or the automated document assembly tools of PrizmDoc Editor, Accusoft integrations can help InsurTech developers get their applications to market faster and explore the possibilities of embedded insurance.

We’ve been working hard to design software integrations that meet the needs of the insurance industry and InsurTech developers. Download our InsurTech solutions fact sheet to see how our constantly evolving family of SDKs and APIs can improve your application’s capabilities and performance.

Enterprises leverage an abundance of documents in their operations, record-keeping, and analysis activities. From customer forms, to agreements, purchasing data, and internal reports, companies generate a lot of documentation. With companies generating so many pieces of documentation, it can be difficult for humans to derive information from the masses. Companies have to structure these documents and their contents into formats that provide the desired online viewing functionalities and data capture.

For this reason, enterprises leverage document processing and imaging software to allow document contents to be searched, edited, and annotated in web applications. These solutions provide intuitive viewing and collaboration functionality in content management systems, while also structuring data from documents into a format that can be used in analyses.

Processing Documents

Imaging solutions produce digital copies of hardcopy documents. Digitizing these documents allows them to be further viewed and edited. Optical character recognition then generates computer-recognizable records of their content. This allows the contents to be searched and for instances of text to be tagged and categorized as variables in quantitative analysis. Document imaging also allows businesses to produce forms with interactive fields that can be completed online. Data entered into these fields will already exist in digital form as strings of text, where it can be organized into records for datasets.

Accessing Content

Intuitive content management systems with collaborative access provide internal teams a means to reference data sources (the documents) and how information is organized in them. It is important for businesses to leverage these intuitive viewing and collaborative functionalities so individuals can easily locate needed information.

The viewing functionalities enabled by software like PrizmDoc Viewer allows firms to determine what information and fields should be included in the datasets they create and subsequently feed into an ERP system for reporting and analysis. These systems provide modules to report, track, and analyze data structured from documents and other sources in one central tool. The ease in viewing, annotating, and comparing documents through PrizmDoc Viewer adds to the ability to communicate reporting needs and database construction for the ERP system.

Keeping Records and Generating Insights

Businesses organize information from fields or text-based instances into tabular databases for easier record-keeping. For example, a company in the medical field may need to pull a patient’s name, birthdate, insurance, and visit details from documents completed by staff for digital record keeping or presentation to the patient. Storing document data in this format also enables it to be queried for statistical analysis. A financial services firm may want to record data from past transaction-related documents so it can run tests to determine the probability of closing certain types of deals, as well as forecast expected earnings.

To complete these data captures, Accusoft suites and SDKs can digitize hard copy documents into their underlying structured data. This software can also detect fields in digital forms that automatically extract the text entered on their behalf. Using these tools, businesses organize documents into content management systems and structure data for analysis and reporting.

Guest Blogger: Michael Johns, Content Specialist, Leading Computer Technology Corporation

Michael Johns is a marketing and content specialist working in the technology industry. With an interest in data, he has an appreciation for software solutions that help structure information and facilitate valuable analysis in creating better products and services.

Communication With Development
Ashley David, QA Analyst

Communication With Development.  I’ve been lucky enough to have a great team of developers who are passionate about the quality of their applications as much as I am. This blog post will introduce a few simple ideas that I have found to be effective in facilitating a productive relationship with development. At Accusoft, we have adopted a Quality Assistance mindset towards testing, similar to Atlassian’s. For the purposes of this blog post, QA will refer to Quality Assistance.

 

Ask Questions

This may seem obvious, however, I notice it is often neglected. Furthermore, asking the right questions gives the developer an opportunity to explain their thought process and fully think through their solution. Talking out any solution to a problem gives the listener a better understanding, as well as the speaker. I can’t tell you how many times I have had a developer explain a piece of code, or test, and they went, “oh wait… that’s a problem” or “this isn’t going to work… I didn’t account for x”. It’s up to us, as Quality Assistants, to ask the right questions that expose the areas at high risk for failure or lacking test coverage.

Some examples of questions I typically ask are:

  • What are you trying to test?
  • Will this affect x?
  • Can you explain what this piece does?
  • I saw you did this over there but not here. Why?
  • How did you come up with that solution?
  • What would happen if this piece fails?
  • How would this affect a user?
  • Let’s say x happened, how would this account for y?
  • Star Wars or Star Trek?

Be selective in your questions. Sometimes one good question can address two issues you are seeing. This also may seem obvious, but these questions should never be condescending. This is a collaborative effort to ensure quality. I’ve had the experience where many of my questions were answered, by a developer, with very eloquent solutions and almost all edge cases considered. These situations can happen when you have a very quality conscious developer and that’s okay! It doesn’t mean you are going to lose your job, it means you are doing your job right!

Be prepared to answer questions as well. A developer may come back asking why you asked that question and you’ll have to explain your thought process. Don’t be afraid to explain your thinking. Collaboration is all about perspective. Many times people get stuck and just need another person to provide some new eyes to arrive at a solution. As QA, you have the perspective of the business and a user—this is valuable to a developer.

 

Provide Scope

The functional definition of scope varies across groups. A developer may consider scope as affected services and libraries; whereas, a product owner may consider scope as target demographics. From the perspective of QA, scope is domain knowledge of our company’s products, what other teams are working on, and technical and business goals.

Domain knowledge is the key to our success as quality assistants. We have to know how the product works as a whole. This knowledge will help when it comes to planning a new project. If there’s a small change to one part of the application that may affect another, we have to be able to provide this knowledge. We will also need to explain how our customers use our products. I typically like to go through future projects and look at what we’re going to be working on and try to gain as much general knowledge of that product or application. I find when I obtain this knowledge, I can help fill in the gaps of missing information for the team during planning. Obviously we are not super humans and we will miss some things. Along the way as we learn more about the product (perhaps through exploratory testing), we will continue to assist the team in filling in more holes and answering more questions. The end goal from both the QA and developer perspective is the same thing: the person “buying” this solution considers it valuable.

Knowing what other teams are working on can help your team during your planning meetings to set realistic expectations on outside dependencies. Let’s say the business wants to add a new feature. However, it’s affected by another part being worked on by another team. We need to communicate this dependency/relationship. Having the opportunity to test, and use most of Accusoft’s products, has given me the knowledge to prepare my team for external dependencies. If another team develops something new, and I don’t have a lot of knowledge of it, I take the opportunity to learn this new item. To do so, I first find and read any documentation. Then, I may download the product and try it out myself. Sometimes I’ll ask the QA member or developer on the team about the new item. Once armed with this new knowledge, I will share it with my team. My reasoning for sharing is to provide better visibility on what solutions and features the rest of the company is working on.

Having a good relationship with your business is important. Knowing why you are working on a project can provide insight on what problem you are really trying to solve. Sometimes the business has your team work on a solution to a problem but never actually communicates what the problem is in the first place. Once again, asking the right questions can solve a lot of this. I combat this by looking at an upcoming project and point these issues out early. I will ask our Product Owner questions like “What are we trying to accomplish with this?” or “What is our ultimate goal with this new feature?” Many times just knowing and communicating the overall goal can save your developers from a lot headache.

 

Show an Impact and Risk Assessment

Risk and impact analysis is extremely beneficial to developers in giving visibility into the risk of failure and impact of change to an application. This affects the decisions your developers make when planning a new project and gives perspective on what type of test coverage a particular product needs. A risk and impact matrix (like the one below) conveys the severity of a particular area of an application to your developers.

 

For example, let’s say you have an application that is very fragile and has high impact. You can provide an analysis, using the matrix above, to support that this application may need better automated test coverage or need to be redesigned to reduce complexities. This matrix helps support the claims of where your application is doing very well or where it could use some work. There is a lot more to risk and impact analysis than a matrix, but maybe that will be covered in a future blog.

 

Communicate Testing Strategy

At Accusoft, we have adopted the Quality Assistance mindset but are still transitioning from the traditional Quality Assurance mindset when it comes to testing. We are slowly transitioning our developers to write and perform tests. However, our QA Analysts and Leads still handle a fair portion of the testing.

If the developers are creating tests, QA and development have a collaboration session where we talk about edge cases, risk, test coverage, and any other scenarios that need to be covered. I find that the developers who have these session early on tend to close out tasks faster and deliver higher quality code. In my experience many developers like this method, since they don’t have to deploy code several times and wait for it to be reviewed. I also find developers typically want to collaborate as often as possible once they see the benefit.

If QA is creating the tests, we make sure the developers are aware of the testing criteria. We will share edge cases, areas of high risk, and scenarios that need to be addressed. I share my test cases with the developers so they can see exactly what steps my test will be executing. Now some people in the QA community will say that’s cheating, but I believe it is transparency. We don’t need to keep our tests a secret; We aren’t trying to trick our developers or show how superior QA is. They need to know what scenarios need handling and the proper way to fail. We should assist our developers as much as possible, and that means providing them with enough knowledge to produce high quality software.

 

In Closing

These are all simple approaches on what and how to communicate with development. I have tried these and can attest that they work. The important thing to remember is that developers are people too (even if they seem scary and weird sometimes). They can make mistakes and learn new things. As much as they can learn from us, we can always learn from them too. Some of the best testers I have ever met have been developers. Be open to discussions that will help you better assist your developers. We want our teams to succeed in producing amazing, quality software and that can only be possible when we effectively communicate.


Ashley has been a QA Analyst at Accusoft for a year. She is relatively new to the industry. However, in the short time she has been at Accusoft, she has implemented some of the first automated tests on her team, increased quality of deliverables, and helped release an internal CRM system successfully. Outside of work, Ashley plays piccolo and flute with the Wind Symphony of St. Petersburg College. She loves theme parks and visits them regularly.