Quick Integration - Users Help
The Users quick integration import allows Hiperos 3PM users to directly upload spreadsheets via the HTTPS protocol.  This allows customers to perform inbound imports in an automated manner without the need of a user interface.  The various code snippets below provide working examples of how this is performed using a variety of popular programming languages.

The first row of the worksheet must include the field names as the column headers.  Hiperos 3PM Quick Integration reads this text to import the data to the appropriate fields.  NOTE: When importing setup data values, the setup code must be used rather than the display name.


Note: Required fields are marked with an asterisk (*).

Field Description
EmailAddress (*) Enter the email address of the user.
AlternateEmail Enter the alternate email address of the user; this value sets the email address different from the username. NOTE: this field populates the Email field on the User Profile page and also the Contacts page (for suppliers).
FirstName (*) Enter the first name of the user.
Middle Enter the middle name of the user.
LastName (*) Enter the last name of the user.
Prefix Enter the prefix. Must match an existing prefix defined under Setup Data Management.
Title Enter the title of the user.
Activated (*) [Yes or No] Enter Yes to activate the user.
IsSupplierUser (*) [Yes or No] Enter Yes to indicate the user is a supplier user.
ExternalSupplierReference Enter the unique reference key to link to external systems (ERP system, etc).
SupplierName Enter the name of the supplier. Must match an existing supplier.
IsAdministrator (*) [Yes or No] Enter Yes to indicate the user is an administrator .
Culture Enter the user language.
TurnOffEmails [Yes or No] Enter Yes to not send custom emails.
NoticeLinkMode Enter Default, Direct or SSO. See SSO Notice Link Mode.
DefaultDashboardView Enter Action Items or Personal to set the default tab on the home page.
PersonalizationMode Enter Open, Locked or Restricted; default value is Open. See Personalization Mode/Template.
PersonalizeTemplateName Enter the template name. Must be a string no longer than 256 characters.
EnableTabQuickAccess Enter Yes to use the quick access Relationships tab.
BusinessPhone Enter the business phone number.
MobilePhone Enter the mobile phone number.
FaxNumber Enter the fax number.
HomePhone Enter the home phone number.
Country Enter the country of the user.
Address1 Enter the first line of the user address.
Address2 Enter the second line of the user address.
City Enter the city of the user.
State Enter the state of the user.
PostalCode Enter the zip code of the user.
County Enter the county of the user.
UserGroup Enter the name of the user group. Must match an existing group name defined under Group Management.
SSOUsername Enter the SSO username of the user. See Single Sign On (SSO).
Username Enter the name of the username of the user logging into Coupa Risk Assess.
NewUsername Enter the name of the new username of the user logging into Coupa Risk Assess.

Authentication

Valid credentials must be supplied for each Hiperos 3PM Quick Integration request issued in order to succeed.

The 3PM user supplied must be a member of either the 'QuickIntegration' group or the 'QuickIntegration-Users' group.  The QuickIntegration group allows an account to access all Quick Integration resources.  The QuickIntegration-Users group limits access to only the Quick Integration Users resource.  If these groups currently do not exist in your Hiperos 3PM instance, please contact your local 3PM administrator or your Hiperos Customer Services representative to have them created.


HTTP Header Description
username Valid Hiperos 3PM Username
password Valid Hiperos 3PM Password

Content Type

The content type header must contain one of the following types listed below.  This is used to identify the file format that is being uploaded.  Note: If sending data as an octet-stream, filename is required in the Content-Disposition header.


Content Type Header File Type
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Excel 2007 or later versions (xlsx)
application/vnd.ms-excel Excel 2003 or earlier versions (xls)
text/csv Comma separated values (csv)
application/octet-stream File format determined by filename value in Content-Disposition
e.g. Content-Disposition: form-data; name="file"; filename="user_import.xlsx"
The following HTTP response status codes are utilized by quick integration to communicate import status back to the caller.  They are as follows...
Status Code Result Description
201 Created New objects succesfully created.
202 Accepted Data has been queued for import (system-generated e-mail confirmation to follow).
204 No Content No new or updated data to import was found or the file was not in the correct format.
400 Bad Request Problem rows and/or columns were found. Review returned validation message in response.
401 Unauthorized Username & password http headers were not found in the request.
403 Forbidden Login failed, was not found or not authorized.
500 Server Error Failed to save import data to database.

Java

package httpPostExample;

import java.io.File;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;

public class uploadFile
{
    public static void main(String[] args)
    {
        try
        {
            String url = "https://rportal.hiperos.com/QuickIntegration/Users";
            String filePath = "c:\\hiperos\\outbox\\Users_import.xlsx";

            HttpClient httpClient = HttpClientBuilder.create().build();
            HttpContext httpContext = new BasicHttpContext();

            HttpPost httpPost = new HttpPost(url);
            httpPost.setHeader("username""Your_3PM_Username_Here");
            httpPost.setHeader("password""Your_3PM_Password_Here");

            httpPost.setHeader("Connection""close");

            MultipartEntityBuilder builder = MultipartEntityBuilder.create();
            builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);

            final File file = new File(filePath);
            FileBody fb = new FileBody(file, "text/csv");

            builder.addPart("file", fb);

            final HttpEntity entity = builder.build();
            httpPost.setEntity(entity);

            HttpResponse postResponse = httpClient.execute(httpPost, httpContext);

            HttpEntity responseEntity = postResponse.getEntity();
            System.out.println(EntityUtils.toString(responseEntity));
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
    }
}

C#

using System;
using System.Net;

namespace QuickIntegration_Sample
{
    class Program
    {
        static void Main()
        {
            const string uriString = "https://rportal.hiperos.com/QuickIntegration/Users";
            const string fileName = @"c:\\hiperos\\outbox\\Users_import.xlsx";

            // Create a new WebClient instance.
            WebClient client = new WebClient();

            // Add authentication headers to request.
            client.Headers.Add("username""Your_3PM_Username_Here");
            client.Headers.Add("password""Your_3PM_Password_Here");

            // Upload the file to the URI.
            // The 'UploadFile(uriString,fileName)' method implicitly uses HTTP POST method.
            byte[] responseArray = client.UploadFile(uriString, fileName);

            string response = System.Text.Encoding.ASCII.GetString(responseArray);

            // Decode and display the response.
            Console.WriteLine("\nResponse Received.  The contents of the file uploaded are:\n{0}", response);
        }
    }
}