Unitfly_logo_color

Getting Started with M-Files HTTP Integration: Understanding the Basics of HTTP Methods and Body Types

Introduction

In order to fully utilize a system, whether it is a Document Management System (DMS), Enterprise Resource Planning (ERP), Customer Relationship Management (CRM) or any other, it needs to be integrated with existing systems or third-party solutions.

System integration, in this case, HTTP integration, refers to the use of HTTP to communicate and exchange data between different software components and applications.

To put it in simple terms – HTTP is like a language that both sides understand and that ensures two systems can exchange the data. Just like two people using English to communicate with each other.

HTTP integration, on the other hand, refers to different programs using that language to talk to each other and work together, like people from different countries/language areas who can still communicate with each other by speaking a language they both understand.

Here we’ll show how you can integrate M-Files with external systems simply and securely using HTTP integration.

Main HTTP methods

Data exchange, or integration may seem complicated, but breaking it down to its basics, there are four main HTTP methods:

  • GET
  • POST
  • PUT
  • DELETE

Let’s dive into each of them.

  1. The GET method is used to retrieve information from a server. It is the most widely used HTTP method and it is used to request information from a resource, such as a web page or an image. The GET method is considered to be safe and idempotent, meaning that multiple identical requests should return the same result.
  2. The POST method is used to send information to a server for processing. It is used to submit data to a resource, such as a form submission or the upload of a file. Unlike GET requests, POST requests can modify the state of the server, and therefore are not considered to be safe or idempotent.
  3. The PUT method is used to update an existing resource on a server. It is used to replace an existing resource with a new one, and is also considered to be idempotent.
  4. The DELETE method is used to delete a resource on a server. Multiple identical requests should result in the deletion of the same resource.

By using only these four actions, you are able to bring a lot of value to your end-users.

HTTP integration with M-Files

Now let’s put all of the above into the M-Files environment and see how we can integrate M-Files with other systems using the Extension Kit and its HTTP integration module.

Extension Kit is a solution that provides additional functionalities to M-Files, including HTTP integrations, without the need for custom coding. The HTTP integration module supports four fundamental HTTP methods (GET, POST, PUT, DELETE) which are essential in establishing a seamless connection between M-Files and other systems.

m-files http integration - main http methods are post, get, put, delete
                                 *Picture 1: Extension Kit supporting main HTTP methods*

Thus, with the Extension Kit, you can easily and efficiently integrate M-Files with third-party systems for any desired use case, without any coding. The key benefit of using the Extension Kit is that it eliminates the need for custom coding and provides a straightforward and errorless setup process.

What is your body type?

Now that we know the language we speak and who we want to exchange the information ‘back and forth’ with, let’s talk about the “tone of the voice” we can use while making all of this happen. What we’re trying to say is that there are certain formats in which the data is being transferred between two systems. We referred to it as “a tone of the voice”, but you will find it more often as the message body or body type.

To successfully transfer the data, both systems should know how to interpret the data sent from one service to another. In order to do that, there are several standard body types used. Note that body is sent only with POST and PUT methods. HTTP Integration supports:

  • JSON

(JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write, and easy for machines to parse and generate. JSON is used to transfer data between a client and a server in a text format.

  • XML

Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a structured format that is both human-readable and machine-readable,

  • RAW

Raw data can consist of anything. As the name suggests: raw, unprocessed data.

  • FORMURLENCODED

The URL-encoded data sends encoded data to the server, and uses the same encoding as that of the URL parameters.

XPATH and JSON Path

To be able to successfully parse the data on the M-Files side, Extension Kit supports both XPATH and JSON Path query languages.

XPATH

XPath uses path expressions to select nodes or node-sets in an XML document. The node is selected by following a path or steps.

Example

/customers/customer[age>35.00]

JSONPath

Query language for JSON, similar to Xpath for XML. Allows you to select and get data from JSON document.

Example

$.customers.customer[0].email

Security in the first place

There is no system integration without the right security in place. We are witnesses of more and more security attacks in the world. As a result, Security Engineer has become a very hot role in the labor market, and with companies being more aware of the importance of security, it is here to stay.

In order to be able to support integrations with as many systems as possible, Extension Kit HTTP Integration module supports all relevant security standards.

OAuth 2.0

OAuth 2.0 is the industry-standard protocol for authorization. It focuses on client developer simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and living room devices.

Basic

Simplest technique for enforcing access controls to web resources in case your legacy systems only work with this type of authentication.

Digest

Unlike Basic, Digest authentication does not required sending the username and password with every request. MD5 hashing algorithm is used and has is sent together with username.

NTLM

Windows New Technology LAN Manager – suite of security protocols offered by Microsoft to authenticate users´ identity.

Kerberos

Kerberos is a protocol for authenticating service requests between trusted hosts across an untrusted network. It support is built in to all major computer operating systems, including Microsoft Windows, Apple macOS, FreeBSD and Linux.

Negotiate

Negotiate authentication automatically selects between the Kerberos protocol and NTLM authentication, depending on availability.

ApiKey

Some APIs use API keys for authorization. An API key is a token that a client provides when making API calls. The key can be sent in the query string, request header or as a cookie.

Conclusion

HTTP plays a crucial role in web-based application development, enabling various systems to exchange information and data in a standardized format.

The ability to integrate different systems through HTTP enables organizations to build complex and scalable systems that can be easily maintained and extended.

M-Files as an Intelligent Document Management System can be fully utilized if exchanged with other systems. That is what Extension Kit for M-Files is for. With the support of four main HTTP methods and various standard body types, the Extension Kit ensures successful data exchange between systems.

Additionally, the support for XPATH and JSON Path query languages, and the various security standards, make the Extension Kit a secure and reliable choice for system integration.

How to Make a Great Solution with an Agile Approach

In order to understand our customer’s demands and requests, we need to understand the fast-changing markets and the need for fast information flow. Since “cheap” is rarely going to be in the same sentence with “great”, we decided to focus on an amazing solution done in time – with an agile approach.

WooCommerce & M-Files integration

WooCommerce is a free WordPress plugin for e-commerce. It provides advanced on-line store management for physical, digital, and even subscription-based products in a clean and easy-to-understand package. Integration with M-Files is pretty straightforward using Azure integration stack, for example Logic Apps (check out our connector for Logic Apps and M-Files).

woocommerce mfiles integration


The communication between WooCommerce and M-Files starts when an order is placed. That’s when the two systems exchange data based on business process state, as described in this use case.

WooCommerce & M-Files real life use cases

Customer is using WooCommerce as an on-line store for offering workshops and similar services. M-Files has operating purpose for managing Workshops – Scheduling, People, E-mails, Invoices, Taxes, etc.


woocommerce & m-files integration use case


When an order is placed, WooCommerce sends all information to M-Files. If there are available slots, M-Files opens a new Workshop, adds the client to the waiting list or automatically rejects the client if there are no available slots or future workshops. It’s based on a business rules of specific Workshop. M-Files will inform the customer whether they are accepted, added to the waiting list or rejected.

When an order is accepted by M-Files, information is passed to WooCommerce and payment gateway to accept payment. Payment gateway, after successful payment, sends information to M-Files and then M-Files sends receipt to customer.

Workshop is automatically scheduled and created in M-Files.


Conclusion

With M-Files you can solve almost every business challenge and WooCommerce M-Files integration brings a new perspective in the information management field. Let’s talk!

Introduction to Azure Data Factory

Every successful company bases its decision-making process on data. To make use of all the data flowing around us, we need to understand its core meaning, gather, and analyze it. To ensure you have the data transferred, organized and the whole process scheduled and monitored, the best solution is Azure Data Factory.

Create and Restore Virtual Machine Image with Azure

Here is an easy way how you can simply snapshot, “freeze” your Azure Virtual Machine and then restore it whenever you want. This can be useful for creating Virtual Machines for testing purpose. With this process, you can still use your Virtual Machine Image after creating Snapshot.

Create Image from Azure Virtual Machine

Prepare you Virtual Machine

This is really important process where you prepare you Virtual machine:

  1. In the Azure portal, Connect to the virtual machine. For instructions, see How to sign into a virtual machine running Windows Server.
  2. Open a Command Prompt window as an administrator.
  3. Change the directory to %windir%\system32\sysprep and then run sysprep.exe.
  4. The System Preparation Tool dialog box appears. Do the following:
  • In System Cleanup Action, select Enter System Out-of-Box Experience (OOBE) and make sure that Generalize is checked. For more information about using Sysprep, see How to Use Sysprep: An Introduction.
  • In Shutdown Options, select Shutdown.
  • Click OK.
system preparation tool

Sysprep shuts down the virtual machine, which changes the status of the virtual machine in the Azure portal to Stopped.

Create Snapshot

In the Azure portal, navigate to your Virtual Machine.

Then, select:

  1. Disks on Virtual Machine menu, after selecting your Virtual Machine.
  2. Select your OS disk on the right (You could go directly to you disk from Azure portal)
  3. Create snapshot command from action menu on the top right

5. Name your snapshot and select Create

Now you have Snapshot of your Virtual machine (Disk).

Create Image

Best way to create Image from snapshot is with PowerShell:

  1. Create variables
$rgName = "myResourceGroup"
$location = "EastUS"
$snapshotName = "mySnapshot"
$imageName = "myImage"
  1. Connect to Azure
Login-AzureRmAccount

2. Get the snapshot

$snapshot = Get-AzureRmSnapshot -ResourceGroupName $rgName -
SnapshotName $snapshotName

3. Create the Image configuration

$imageConfig = New-AzureRmImageConfig -Location $location
$imageConfig = Set-AzureRmImageOsDisk -Image $imageConfig -OsState 
Generalized -OsType Windows -SnapshotId $snapshot.Id

4. Create the Image

New-AzureRmImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig

Image with $imageName is created and store on Azure portal.

Create/Restore Virtual Machine from Image

If you want to restore Azure Virtual Machine or create new one from Image, on All resources select your image.

On up right Menu select Create VM and follow instruction same as creating new Virtual Machine.

That’s all, now you have your “new” Virtual Machine created.

[Errors]

Azure Virtual Machine is not running / starting

If you’ve followed this article be aware that after this process Virtual machine is not usable and you’ll get errors and Virtual Machine will not run or start.

If you have any of the errors below, your virtual machine is not usable anymore.

Set-AzureRmVMAccessExtension : Long running operation failed with status 'Failed'.
ErrorCode: VMAgentStatusCommunicationError
ErrorMessage: VM '' has not reported status for VM agent or extensions. Please verify the VM has a running VM agent, and can establish outbound connections to Azure storage.
StartTime: 8/1/2017 12:41:40 PM
EndTime: 8/1/2017 1:07:06 PM
OperationID: 54486c40-20b6-4a97-be62-b4fcf23a68d0
Status: Failed
At line:1 char:1
+ Set-AzureRmVMAccessExtension -ResourceGroupName "" -VMName ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Set-AzureRmVMAccessExtension], ComputeCloudException
    + FullyQualifiedErrorId : 
Microsoft.Azure.Commands.Compute.SetAzureVMAccessExtensionCommand

How to Automate HR Employee Management

This is a series of blog posts by Unitfly in which we are describing stories of Digital Transformation – stories about improving business using the power of technology. Have in mind that in these articles, we are not referring to any of our specific clients – these are examples how we see the potential of technology in business context. Today we talk about Human resources automation.

Human resources departments spend most of their time on administration, instead on what should be at the core of their business – employees. M-Files provides complete automation of human resources processes from hiring to managing each employee.

What is the current situation?

The customer is a flight agency with more than 1000 people in their division. They are using a legacy HR application where they keep all the records of their employees. Current HR application stores all the data in the relational database (they are using Oracle database).

Moreover, all documents are stored on a file share and these documents are referenced in the HR application. The customer is also using Microsoft Active Directory, a solution for rights delegation, managing sign-on and defining and representing hierarchy.

Time consuming manual updating and searching for documents

HR department is simply spending too much time on manual updates of data and documents. Since they don’t have everything needed for their tasks, they often have issues with finding the right information and documents.

All mentioned would not be a huge problem for HR department if they had plenty of time to waste. Manual updates in several places are very time-consuming. By spending time on administration, HR department cannot focus on what should be their core business – their employees.

Ineffective HR department results with a whole set of different issues throughout the company.

What does the client need?

The customer understands that they need improvements and modernization of current HR application and they want to invest in a solution which can satisfy these needs in long-term:

  • Central system with all employee information and related documents
  • Solution for automation of their human resources processes in order to better track individual employee
  • “Smooth” integration with existing solutions.
  • Solution which will perfectly work within their network and existing security solutions

M-Files document management system – solution for human resources automation

process of human resources automation

Having the customer’s goals in mind, we proposed the M-Files platform as a central system for HR processes and document management system. M-Files provides easy-to-use solution and complete automation of human resources processes from hiring to managing each employee.

In order to connect all existing systems with M-Files we decided to use Microsoft BizTalk which allowed us to connect to the existing database, file share and configure everything within existing corporate network.

Results of the implementation of M-Files

After the successful implementation of HR processes within the department using our solution, employees in the HR department finally have everything organized and easily accessible, therefore, they are spending less time on administration and more time with the employees.

On corporate level, company is finally improving their employee performance, as HR is providing care and tracking of employees on the individual level.

Implemented solution does not only impact HR. Effective HR department led to a better employee satisfaction, which, consequently, created a more efficient company and increased customer’s satisfaction. Moreover, implemented solution allows us as a provider and client to continue working on further improvements in other departments, in order to digitally transform the whole company.

What do you think of this example? Leave us a comment about your thoughts of digital transformation in HR.

Do you think your company would benefit from this solution?

How to Integrate BizTalk Server with M-Files

Expanding throughout markets and industries results in more and more needs to connect M-Files with other systems, especially legacy systems. Ever since the 2000s, Microsoft has had “a horse in a race” in the integration world – BizTalk Server.

For the past few years, we have witnessed the growing popularity of M-Files. Their global partner network is rapidly expanding. Of course, all the talk surrounding M-files is absolutely justified. Expanding throughout markets and industries results in more and more needs to connect M-Files with other systems, especially legacy systems. Migration from old legacy systems to M-Files is becoming a common need.

Therefore, integration becomes one of the leading trends in terms of market share. However, inadequate integration can affect the whole business greatly. ZDNet sums it up well:

“A poorly-planned integration could result in siloed apps that do not communicate with each other, which wipes out the benefits of using SaaS.”

Ever since the 2000s, Microsoft has had “a horse in a race” in the integration world. Today it is one of the best enterprise integration engines – Microsoft BizTalk Server. With BizTalk you can solve any kind of enterprise integration, and handle any kind of business process.

Microsoft is building quite an impressive (Azure) array, especially in the integration perspective. Microsoft BizTalk engine is the foundation of that array with all functionalities like stability, orchestration, real time processing and a lot of out the box adapters/connectors. The 2020 version of BizTalk Server has the adapter for Logic Apps already included in the installation and can use over a hundred Logic apps connectors.

In the view of the impressive and well-deserved M-Files expansion and Microsoft Integration road map, building a Microsoft BizTalk M-Files adapter was a logical decision for us. In a clever way, with our BizTalk M-Files Adapter all M-Files and Microsoft BizTalk strengths can be easily used.

Connect M-Files and BizTalk

biztalk mfiles integration

BizTalk M-Files adapter can communicate with Microsoft BizTalk server in both ways: send and receive.

Receive data or files from M-Files

One of primary and certainly the largest M-Files purpose is document management. BizTalk can pull every file, based on search condition, from M-Files, and push it to a different system. For example, we could drag out the files marked for an archive and push files to a blob storage, FTP or to a different file storage. After we pull it, the file property can be updated in M-Files with relevant information.

BizTalk adapter has the option to pull M-Files objects in .xml format to BizTalk. This can be useful for updating other systems with relevant metadata from M-Files. Then M-Files could be used as a central Enterprise Content Management platform.

Check out a use case with Restaurant Chain Management described here.

Send data or files to M-Files

With the growth of different systems, especially with a trend of IoT, data integration has become very popular. Data integration is gathering data from different places, for example from IoT devices and storing it at one place. That place is usually database. With our BizTalk M-Files adapter we can now use M-Files as our centralized place. Objects can be created or updated; files can be pushed to M-Files with their metadata. The opportunity to send any information from anywhere to M-Files offers a variety of new ideas and capabilities.

Read our use case of how to use M-Files as a central place for Travel Orders here.

For more information on BizTalk M-Files Adapter and other integration products check out our M-Files solutions catalog.

If you need a custom-made solution aligned with your business needs and wants, we’re here to help.

How to Automate Chain Restaurant Business Processes

This is a series of blog posts by Unitfly in which we are describing stories of Digital Transformation – stories about improving business using the power of technology. Have in mind that in these articles, we are not referring to any of our specific clients, these are examples how we see potential of technology in business context. Today we talk about restaurant business process automation.

How can a chain restaurant with offers and procedures that differ from country to country connect all the data in one system? M-Files and BizTalk implementation solves that problem.

What is current situation?

Let’s introduce our use case customer; it is a one of the top restaurant chains with more than 10 000 restaurants in 50 countries across the world. They have standardized their offers throughout restaurants, with slight differences from country to country. The main reason for the differences is that they need to adapt their recipes to get closer to the local eating habits and customer needs.

When a new recipe, menu, or even a new item on the menu is added, that information needs to be synchronized with all the systems in all the restaurants per country. Every cashier needs to have updated information, as well as all other departments within their systems (finance, marketing, etc.).

chain restaurant process automation

In order to achieve data and application integration, the customer is using Microsoft BizTalk server, enterprise grade solution for integration of different systems and solution for secure data transfer.

Every change needs to be inserted manually

Even small enterprises can’t rely only on sending emails with updated information to different departments that then have to update their own systems.

That issue is even more highlighted within big enterprises with complex business processes where every second matters, and absence of updated information is unacceptable.

In this case, the customer doesn’t have a fully automatized process which would allow them to make changes and distribute changes on a daily basis. They are not only spending time to make changes and distribute them. But they also can’t rely on current solution in terms of agility and adaptability.

What does the client need?

The customer needs a robust but easy-to-use solution which will allow them to have

  • sustainable and smooth processes
  • automated and orchestrated processes
  • a quick and agile response to market
  • all the systems integrated and data collected
restaurant business process

Implementation of automated workflows with M-Files

After seeing their challenges, business needs and desires, and their possibilities in terms of technology, we were sure that M-Files is what they needed in order to easily connect with all other systems through Microsoft BizTalk. M-Files platform was the right solution for business processes of their central business environment.

We implemented workflows using M-Files which follow customer’s business processes. Teams were collaborating on several items, documents and procedures and were involved in a quick approval process with clearly defined actions and responsibilities.

All created menus were then integrated with all the restaurants during non-working hours and their prices and websites updated automatically with new menus and all the details.

Full restaurant process automation

Customer’s primary objective was to have a quick and agile response to market demands. With implemented solution they were able to easily create new menus, introduce new type of food and change existing menus in a second. Their workflow is completely automatized (and also customizable for future business changes), intuitive and simple to use. Changes made in one system were immediately visible in all enterprise systems.

If you are interested in a complete solution and details about technologies that we used in this use case, let’s talk!

How to Manage your Travel Orders

This is a series of blog posts by Unitfly in which we are describing stories of Digital Transformation – stories about improving business using the power of technology. Have in mind that in these articles, we are not referring to any of our specific clients – these are examples of how we see the potential of technology in business context. Today, it’s about managing travel orders through automation.

Read on to see how M-Files solves the challenges of manual handling of documents, in this case, travel orders and invoices with document management and digitalization.

What is current situation?

The customer is an intermediary company with more than 300 employees where at least half of them are commercial travelers. They are generating around 50 – 100 travel orders per day, so keeping records and logistic is very challenging. To get from point A to a point B in logistic terms employee has a few steps to go through before actually going on the road.

graphic representation of travel orders process

Customer has solved almost every manual step in their process using BizTalk integration solution where they also connected all the systems needed for travel orders process.

Huge number of documents piling up

Employee satisfaction and productivity has increased with the implementation of BizTalk, and now the only thing to do manually is to create a request in travel orders application. With one part solved we still have problems with managing travel orders, a situation that could potentially give the finance department lots of headache.

Finance department has to deal with a big number of travel order documents (.pdf-s) that are arriving on a daily basis. Also, there is a huge number of additional receipts and documentation for each travel order. Papers pile up.

What does the client need?

The customer needs to digitally archive all the travel orders (.pdf-s) that are sent through BizTalk to the finance department. They also need a place where they can digitally save all the receipts and documentation of each travel order.

M-Files for document management and digitalization process

Knowing what customers need, we have proposed the M-Files platform for document management and digitalization process. The missing piece was a connection between BizTalk and M-Files, so customer purchased BizTalk M-Files adapter.

At the end, the integration process was set up to send data to two asynchronous systems:

  • to M-Files, where .pdf is pushed with all their available metadata
  • to financial system, where cost logic is done

Effortless processes and satisfied employees

After a successful implementation of the travel order process, employees are more satisfied. Finance department got all travel orders and all documentation digitalized in one place. Travel orders are searchable, easily accessed so that employee can effortlessly go through travel orders process. Employees can even scan their receipts and required documentation and upload or send to the finance department by email.

Implemented solution significantly reduced employees’ completion time for travel order process. It’s not only that company “saves” money, but the company has more focused and relaxed employees for their ongoing work.

Are you interested in our solutions and details about technologies used in this use case?

What is System Integration?

Let’s focus on human communication for a second. If two people who speak in two different languages want to communicate, they can try communicating with their arms, legs, and facial expressions (which we surely all had to do a few times in our lives). Or they need a person who can understand them both. That person, the translator has the same role as the integration system.

Integration is communication (translator) between systems.

Every system has its own language, the way it understands input commands and responds with output. If another system wants to communicate, that system would need to know how, it needs to know the language of other system.

translation between systems display

However, integration doesn’t always have to act as a middleman, it can be done on one side only. In technical terms, when a solution can connect to a database or some other system, integration module is present inside that solution. Then, integration module translates to a language of other system.

We will introduce the three types of system integration.

Three types of system integration

Based on the area and the type of use, integration services can be divided into three categories:

  • Enterprise Application Integration (EAI)
  • Data Integration (DI)
  • Electronic Document Integration/Interchange (EDI)

Enterprise Application Integration (EAI)

Enterprise Application Integration is a service-based integration. It’s a process that communicates with different services, gathers data, and then proceeds with further steps based on desired action or a workflow. Process can be triggered with the exposed service.

Data Integration (DI)

Usually, every company has a lot of different data sources (or databases). When you want to consolidate your services into one central point of access you need data integration. Data integration enables gathering of data from all services, aggregating, and transforming them into a central place for interactive reporting, most commonly used for management.

Electronic Data Interchange (EDI)

Electronic Document Interchange is core business to business-oriented process. It functions on paperless exchange of documents and electronic standards. By automating paper-based business, companies save time and eliminate cost and errors.

If you are new to system integration world or you want to know how system integration can help your business, talk with one of our solutions architects.