Quick Integration - Extension Data Help
The Extension Data 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 an 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
SupplierName (*) Enter the name of the supplier.

The rest of the columns can be populated with Client-created supplier user defined data. NOTE: use the Field Name not the Display Name as the column names.

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
EngagementNumber (*) Engagement number of the Engagement. NOTE: this field is required. This field will be used over EngagementName.
EngagementName (*) Engagement name of the Engagement. NOTE: this field is required.
ExternalReference (*) Enter the unique reference key to link to external systems (ERP system, etc). NOTE: this field is required but can be left blank if the SupplierName is populated.
SupplierName (*) Enter the name of the supplier. NOTE: this field is required but can be left blank if the ExternalReference is populated.

The rest of the columns can be populated with Client-created candidate supplier user defined data. NOTE: use the Field Name not the Display Name as the column names.

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
RelationshipName (*) Enter the name of the relationship.
RelationshipNumber (*) Enter the unique reference number.

The rest of the columns can be populated with Client-created relationship user defined data. NOTE: use the Field Name not the Display Name as the column names.

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
EngagementName (*) Enter the name of the engagement.
EngagementNumber (*) Enter the unique reference number.

The rest of the columns can be populated with Client-created engagement user defined data. NOTE: use the Field Name not the Display Name as the column names.

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.
  • This will be the userID.
  • Email address must be valid to receive emails.
  • User ID is case sensitive; enter the email address in lowercase letters.
  • The rest of the columns can be populated with Client-created user user defined data. NOTE: use the Field Name not the Display Name as the column names.

    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
    SupplierName (*) Enter the name of the supplier. NOTE: This field is required but can be left blank if the ExternalReference is populated.
    ExternalReference Enter the unique reference key to link to external systems (ERP system, etc). NOTE: this field is required but can be left blank if the SupplierName is populated.
    Type Enter the location type. Must match an existing address type defined under Setup Data Management.
    Address1 Enter the first line of the supplier address.
    City Enter the location city.

    The rest of the columns can be populated with Client-created location user defined data. NOTE: use the Field Name not the Display Name as the column names.

    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
    OrganizationName (*) Enter the name of the organization. Must match an existing organization defined under Organization Unit Management.
    Type (*) Enter the type of organization unit. Must match an existing organization type defined under Setup Data Management.

    The rest of the columns can be populated with Client-created organization user defined data. NOTE: use the Field Name not the Display Name as the column names.

    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
    PartNumber (*) Enter the name of the product.

    The rest of the columns can be populated with Client-created product user defined data. NOTE: use the Field Name not the Display Name as the column names.

    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
    ProductPartNumber (*) Enter the name of the product part number.
    SupplierPartNumber (*) Enter the name of the supplier part number.

    The rest of the columns can be populated with Client-created supplier product user defined data. NOTE: use the Field Name not the Display Name as the column names.

    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-ExtensionData' group.  The QuickIntegration group allows an account to access all Quick Integration resources.  The QuickIntegration-ExtensionData group limits access to only the Quick Integration ExtensionData 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/ExtensionData/user";
                String filePath = "c:\\hiperos\\outbox\\ExtensionData\\user_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/ExtensionData/user";
                const string fileName = @"c:\\hiperos\\outbox\\ExtensionData\\user_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);
            }
        }
    }