Unvired Digital Enterprise Platform 4.0 Achieves SAP-Certified Integration with SAP S/4HANA®

Houston, February 06, 2018 —Unvired Inc., a Digital Solutions provider of Mobile Applications and Artificial Intelligence–enabled chatbots, announced today that the Unvired Digital Enterprise Platform 4.0 has achieved SAP certification as integrated with SAP S/4HANA®. The integration helps ensure that transactions in SAP S/4HANA are performed in a secure manner from mobile devices.

The SAP® Integration and Certification Center (SAP ICC) has certified that Unvired Digital Platform 4.0 integrates with SAP S/4HANA using standard integration technologies. SAP S/4HANA is the next-generation business suite, built for the SAP HANA® platform, with on-premise and cloud deployment options. It is designed to act as the digital core, helping customers drive digital transformation across their entire organizations, taking advantage of the award-winning, role-based user experience of SAP Fiori®.

According to Praveen Kale, Vice President Products, “Unvired Mobile Platform 3.0 was previously certified by SAP to integrate with SAP ERP via SAP NetWeaver®. As customers adopt SAP S/4HANA, it has become very important for us to integrate with it. This certification will help assure our customers about Unvired’s ability to integrate with SAP S/4HANA that conforms to the high standards set by SAP.”

The Unvired Digital Enterprise Platform 4.0 helps create the digital enterprise easily and affordably. It helps enterprises to mobilize business processes and data from various enterprise back-end systems at a significantly lower cost and less time to deploy than competing solutions, supporting enhanced employee engagement and greater employee productivity. Organizations can build user-friendly mobile applications for iOS, Android and Windows devices (smartphones, tablets, smartwatches, and smartglasses) as well as Web apps in a secure and integrated manner. Also, artificial intelligence-enabled text and voice chatbots or conversational interfaces can be engineered into mobile apps.

According to Alok Pant, CEO, Unvired, “We are deploying Unvired’s mobile apps for SAP Enterprise Asset Management (plant maintenance) for our customers that have implemented SAP S/4HANA. Additionally, we have several customers who have requested us to migrate our existing mobile apps that integrate with SAP ERP 6 to now integrate with SAP S/4HANA. With this certification, we aim to give our customers peace of mind as it confirms our ability to integrate with the next-generation business suite from the SAP.”

The demos for Unvired Mobile apps for the SAP Enterprise Asset Management solution/plant maintenance can be viewed using the links Unvired Rounds Manager, Unvired Work Orders Manager & Unvired Inventory Manager.

 

 

 

 

 

 

 

 

 

 

 

 

 

About Unvired:

Unvired is a certified SAP software partner that delivers solutions to enable the Digital Enterprise. Unvired has developed a Bots Platform called Chyme, on top of which, Digital Assistants for Help Desk, Sales, Customer Service, and Procurement have been built.  Chyme powered bots are Omni-channel and can be invoked from Slack, Microsoft Skype for Business, Facebook Messenger, Facebook Workplace, Salesforce Chatter, and Cisco Spark.  Unvired also offers a Digital Enterprise Platform and Out of the Box as well as custom Mobile apps. Unvired enables businesses to Work Smarter by turning Artificial Intelligence (AI) enabled conversations with Enterprise systems into actions. Headquartered in Houston, Texas, and with customers in N. America, Europe, S. Africa, ANZ, Middle East and APAC, Unvired enables its clients to realize the benefits of enterprise mobility as well as deploy intelligent chatbots that integrate with systems like SAP, ServiceNow, Oracle, Salesforce, and others. For more information, visit us on the web at http://unvired.com/, http://chymebot.com/ and follow us on Twitter at https://twitter.com/unvired, and https://twitter.com/ChymeBot.

SAP, SAP S/4HANA, SAP HANA, SAP Fiori, SAP NetWeaver and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. See http://www.sap.com/corporate-en/legal/copyright/index.epx for additional trademark information and notices. All other product and service names mentioned are the trademarks of their respective companies.

For more information, press only:

Ritu Pant, +1 (408) 933-8607, ritu@unvired.com, CST

Media Contact: Ritu Pant, Unvired Inc., +1 (408) 933-8607, ritu@unvired.com

Press Release Link: Click here

 

Read More

Unvired Digital Enterprise Platform is now fully integrated with the Vault Project from Hashicorp to enhance the security

The Unvired Digital Enterprise Platform (UDEP) encrypts all configuration and messages before persistence. Industry best practices are followed for the encryption. All data for a company is AES 256 encrypted (the same technology your bank uses to secure your transactions) and decrypted with a symmetric key. Each company has its own symmetric key so that data across companies can never be accessed under any circumstances. Further to secure the keys, they are stored in key files in a landscape that is physically separate from the servers running the UDEP. For e.g. in an AWS environment, they are stored in S/3. The passwords to these key files are stored separately after encrypting with a landscape key.

To further harden this, UDEP is now fully integrated with the VaultProject from Hashicorp. From the Hashicorp website: “Vault secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets in modern computing. Vault handles leasing, key revocation, key rolling, and auditing. Through a unified API, users can access an encrypted Key/Value store and network encryption-as-a-service, or generate AWS IAM/STS credentials, SQL/NoSQL databases, X.509 certificates, SSH credentials, and more.”

So how exactly does UDEP use Vault?

The passwords for the key files are now stored in Vault.  Each company has its own password stored in Vault. The access tokens for Vault are passed to UDEP via environment variables. These access tokens have tightly configured policies to ensure that the tokens can only access and perform the permitted operations.

Additionally, the auth tokens can be response wrapped. In this case, the real tokens are inserted in a “cubby hole” in Vault and a temporary one-time access token is instead configured for UDEP. UDEP unwraps the token and then uses the “real access token” to access the keys. In case the unwrap operation fails, this indicates that some other operator has intercepted the key and the system can be shut down immediately and the vault sealed to prevent any further compromise. This also ensures that the environment variables that are configured are practically useless for a hacker as they cannot be reused.

To prevent leakage of data in case a token is compromised, the tokens can also be configured to be renewable periodically. Issued tokens can be revoked and then access of keys via these tokens is not permitted.

Further UDEP also supports rotating keys used via Vault. Keys of all companies can be rotated and ensures that your data is as secure as required.

To summarize:

  1. Keys are stored in a separate Vault.
  2. Access is provided via response wrapped one time tokens.
  3. Access tokens can be periodic to facilitate revocation in case of a compromise.
  4. Keys can be rotated according to your security policy.
  5. Vault provides a detailed audit log that records all access operations for monitoring and verification.

So with the UDEP and Vault integration, all your configuration information and business data is protected to the maximum. Stay safe.

Read More

Unvired Integrates Chyme Bots Platform with Slack to Enhance Productivity

Enterprise Users can now Access Apps and Perform Work from within Slack

Houston, January 23, 2018 —Unvired Inc., a Digital Solutions provider of Artificial Intelligence (AI) enabled chatbots and Mobile Applications for enterprises, announced today that it has integrated its Chyme Bots Platform with the leading messaging application, Slack.

According to Alok Pant, CEO, Unvired, “Businesses have embraced messaging platforms as a means of collaboration, and Slack is one of the most popular ones.  We want to give enterprise users the ability to access their applications and perform their work using natural language (NLP) from within Slack itself.  The integration of Chyme powered Chatbots with Slack will greatly enhance productivity and Simplify Work”.

The Chyme app can be downloaded from the Slack App Directory using the link:

https://slack.com/apps/A2Q5APB32-chymebot

The highlights of the Chyme-Slack Integration include:

  • Users can access leading IT Help Desk systems like ServiceNow and others from within Slack to Create Incidents, Update Incidents, Reset passwords, or Search the Knowledge Base
  • Users can also perform Sales/CRM/HR related tasks from within Slack like Creating or Updating leads in systems like Salesforce and applying for leave in SAP

For more information about Chyme Chatbots and Slack integration, visit http://chymebot.com/slack/

About Unvired Inc.

Unvired delivers solutions to enable the Digital Enterprise. Unvired has developed Chyme, an Enterprise Bots Platform to easily build Digital Assistants(Chatbots) for IT Helpdesk, Sales, Customer Service, Procurement, and other scenarios.  Chyme powered bots are omnichannel and can be invoked from Slack, Microsoft Skype for Business, Facebook Messenger and Workplace, Salesforce Chatter, Cisco Spark, Chyme Messenger, and other Messaging apps.  Unvired also offers a Mobile Application Development Platform and Out of the Box as well as custom Mobile Apps. Unvired enables businesses to Work Smarter by turning Artificial Intelligence (AI) enabled conversations with Enterprise systems into actions. Headquartered in Houston, Texas, and with customers in N. America, Europe, S. Africa, ANZ, Middle East and APAC, Unvired enables its clients to realize the benefits of enterprise mobility as well as deploy intelligent chatbots that integrate with systems like SAP, ServiceNow, Oracle, Salesforce, and others. For more information, visit us on the web at http://unvired.comhttp://chymebot.com/ and follow us on Twitter at https://twitter.com/unvired & https://twitter.com/chymebot.

Media Contact: Ritu Pant, Unvired Inc., 408.933.8607, ritu@unvired.com

Press Release Link: Click here

Read More

Customer Case Study- Part 3: Integrating BLE in Hybrid Mobile Apps

In Part 1 of this blog, we looked at building Hybrid Mobile Apps and the technologies one could use.  In part 2, we looked at the translation of the app so users can interface with the app in the language of their choice.  In this concluding part of the blog, we will look at peripheral integration in Hybrid Mobile Apps.

The app that we developed connects to a smart pillbox which is essentially a Bluetooth Low Energy (BLE) device. Ionic Native BLE plugin (https://ionicframework.com/docs/native/ble/) comes in handy.

A little background on the data organization in a BLE device:

Every BLE device advertises something called as services. Each service corresponds to a feature. Usually one of these services deals with device discovery, which holds device identifying information in one of its characteristics. Services and characteristics are UUIDs and they are specific to a class of BLE devices that your application supports. Typically, you get this information from your BLE device manufacturer. So, before you start integrating to a BLE device, you should have this information ready.

Some of the best practices for integrating a BLE device:

  1. Always scan for a specific service for connecting to a BLE device. Scanning for all services slows down the discovery process.
  2. Some BLE devices require you to connect with them before they give out device identifying information. In those cases, if you are connected to a wrong BLE device, you should disconnect and continue with the discovery process. Remember that BLE devices can only connect to one device (master) at a time, if you do not disconnect, then this BLE device will not be discoverable.
  3. A very important usability aspect is the information you provide to the user. You need to have the Bluetooth turned on in the device before you initiate any BLE discovery process. As a developer, you need to identify the start of Bluetooth in the device and provide options for the user to turn on Bluetooth. On mobile devices, turning on Bluetooth can only be user initiated, so you can put up messages, possibly navigate to the settings screen where the user can turn on Bluetooth.
  4. Always display the state of the Bluetooth discovery process to the user. The user needs to know if you are searching for devices, whether you discovered any devices or if you are connected to the target device, the battery state of the connected device etc.
  5. It is always a good practice to create a common service/module to deal with Bluetooth connection. Encapsulate all the methods and data in this module so that it can be imported into other apps if required.

If you have any query regarding Hybrid Mobile Apps, please write to us at developers@unvired.com and we shall answer your queries at earliest.

Read More

Customer Case Study- Part 2: Translating a Hybrid Mobile App

In Part 1 of this blog, we looked at building Hybrid Mobile Apps and the technologies one could use.  In this part, we will look at the translation of the app so users can interface with the app in the language of their choice.

To start, you need to add translation support to your app in order to render your app in multiple languages. Here’s how we did it @ Unvired for Hybrid Mobile app.

1. Identify and enable strings for translation:

All user-facing strings need to be translated. However, some strings could be embedded in HTML, while others are in Typescript code. We need to enable strings in both these places for translation. Angular JS provides an internationalization library (i18n) (https://github.com/ngx-translate/core) specifically for this purpose. For enabling translation,

we used a translate pipe in HTML:

<div>{{ “Messages” | translate }}</div>

we used a method call for strings in code:

this.translate.instant(“Messages”)

In both these cases, we are translating the string “Messages”.  The way it works, this library looks up for translation for the key “Messages” in a special strings file (which we will be constructing next), and once located, replaces the “Messages” string with the translated value.

2. Construct Strings file:

Strings file in an ionic app is a JSON file containing key-value pairs. The value containing the translation for the key. We need to add a strings file for every language the app supports. Each of these files should have the translation for all strings which require translation.

We automated the process of extracting all translatable strings onto a strings file with the help of an npm tool called angular-translate-extract (https://www.npmjs.com/package/angular-translate-extract) which can be configured as a grunt task. However, this project was published two years ago and not in active development and was only able to extract strings from HTML and JavaScript code, which we didn’t have in our project. Luckily, this project supported adding of a custom parser which accepts a pattern (Regular expression) for extracting strings. We used this excellent website https://regex101.com and constructed a regex pattern to match the translatable strings in the code. Depending on the number of languages to support, you will need to configure the grunt tasks to generate required output files.  For e.g. en.json (English), es.json (Spanish) etc.

We ran the grunt task and we were able to extract all the strings in the app to the required files.   These json files can then be handed off to the translators to provide the translated strings.  Note that the files need to be saved as UTF8 encoding to ensure the strings are saved correctly.

In the last step, we added a way for the user to select his preferred language.

3. Select preferred language in the app:

We created a new page in the app to select the preferred language and made it as the very first screen of the app. Only after the user selects a language, she can continue with using the app. Once a user selects the language, we made that language as the default language for the app so that all strings get displayed in that language. We also stored this selected language code locally, so that next time the user starts the app she does not have to choose the language again. The app also allows the user to switch languages after login if they desire.

Note that some apps take the approach of using locale to figure out the language to use.  For e.g. German in Germany or French in Paris could be obvious choices once can make in these countries. While this is a very valid approach we feel that it’s better to use this mechanism to default a choice for the user but still permit them to choose their language of choice (for e.g. Spanish in the US) rather than the tie to local.

3. How do we know all strings are covered?

Instead of manually updating strings in json files and verifying, one can generate something called as pseudo-localized strings file. There are various online tools available which can generate this file for you. These tools make the value visually distinguishable from the original by replacing the original characters with accented characters. We replaced our Spanish son file with pseudo-localized strings file and executed the project.

We tested and enabled few other strings for translation. Ran the grunt tool to extract these strings. Re-generated pseudo-localized strings. We did this cycle many times until we were sure that all strings are covered for translation.

4. Translating Dates:

While translating messages can be done by language experts and complete coverage can be achieved, the dates (Month and Day names) were in fact not translated and had to be handled programmatically. We had used Moment.js library for formatting dates and this library supports internationalizing by means of calling a very simple function:

moment.locale(‘es’)

After this point, all day and month names were translated into Spanish.

5. The last mile, let the server know what language to speak:

Few messages that were displayed in the app were sent from the server (this could also be true for errors).  Since all the messages from the server to the user have to be in the user’s preferred language, so we created a new API in the server to accept and store user’s preferred language. We added Internationalization support for all the user-facing strings sent by the server and got it display in the user’s preferred language in the device.  This can be achieved with standard web app internationalization (similar to some of the details above).

Read Part 3 of this blog about Integrating BLE in Hybrid Mobile Apps.

Read More