Updated: March 2, 2023

Upload Set

sap.m.UploadSet

Intro

The upload set control allows users to upload single or multiple files from a device (desktop, tablet, or phone) to an SAP Fiori app.

Despite its name, the upload set is not limited to upload scenarios. Depending on the context or the access rights, some users may only be allowed to download the files uploaded by others. You can use the upload set control for both cases.

When to Use

Use the upload set control if:

  • You want to show a list of uploaded files that can be modified.
  • You want to allow users to add or remove several files, and to change the file names.
  • You are still using one of the older upload controls:
    • sap.ca.ui.FileUpload
    • sap.m.UploadCollection (deprecated since SAPUI5 version 1.88)

Do not use the upload set control if:

  • The user can upload only one file to the app. In this case, use the sap.ui.unified.FileUploader control instead.

Components

  1. Toolbar with upload and download controls
  2. Edit and delete actions
  3. Technical status
  4. Attributes and statuses

Toolbar

The toolbar (1) can contain manual upload and download controls. The user can download one or several items selected in the list.

Developer Hint
Unlike the deprecated Upload Collection control, the Upload Set control allows you to implement a custom uploader.
Upload set anatomy
Upload set anatomy

List

Actions (2)

By default, each item has an Edit button and a Delete button  . Edit turns the title into an editable field so the item can be renamed.

Technical statuses (3)

Technical statuses are not bound to a workflow or business process. They are mainly used to show the current editing status of an object (Draft, Locked, Unsaved Changes). For further uses and more details, see Object Display Components and Draft Handling.

Attributes and statuses (4)

You can display additional attributes and statuses below the file name. Attributes or statuses can include the name of the person who uploaded the file, the upload date, the version number, file size, and the object state in a workflow (such as “Approved” or “Overdue”).

Statuses can be shown in different colors, based on the visual guideline for semantic colors.

If multiple attributes or statuses are displayed, they are separated by a bullet.

Information
Unlike the attribute, the object status differentiates its label and value with a different color, improving readability. You can use the object status to display any type of information.

Behavior and Interaction

Uploading Files

The upload set offers two basic working modes:

  • Instant upload (default): Files are uploaded as soon as they the user drops them onto the control or clicks the OK button in the file selection dialog.
  • Manual upload: All added files are first collected in the front-end list, where the user needs to trigger the upload.

If some users are only allowed to download the files uploaded by others, you can disable the upload option.

Unlike the deprecated Upload Collection control, the Upload Set control allows you to use a custom uploader.

Developer Hint

  • Using the Boolean property instantUpload, you can determine whether files are uploaded immediately or whether the user needs to trigger the upload explicitly.
  • The Boolean property uploadEnabled controls whether or not users are able to upload files.
  • For an example of a custom uploader, see the SAPUI5 sample.

Empty State

If empty, the upload set provides a hint to use the Upload button or drag and drop to upload files. This hint already provides a large enough zone for users to drop their files.

Interaction - No items
Interaction - No items

Drag and Drop

Users can easily select one or multiple files from their computer and drag them onto the upload set to start the upload.

As the user hovers over the drop zone, a border appears around the upload set to indicate that the file can be released.

The upload process itself is the same as if a file had been added via the Upload button.

Interaction - Drag and drop
Interaction - Drag and drop

Opening Files

Files are opened by clicking the file name of the attachment. How the files open depends on the operating system and browser settings.

On desktop devices, clicking the file name opens the program that has been assigned to this file type. In some cases, the files are opened directly in the browser if they are among the supported file types, like jpg, png or pdf. However, this also depends on the individual browser and its settings.

Mobile devices usually open a dialog in which the user can select an app that supports the respective file type.

Renaming Files

The Edit function works identically on desktop and mobile devices.

  1. The user clicks the Edit button  .
  2. The file name becomes an input field in which the existing name is highlighted. The icon buttons for Edit  and Delete  are replaced by two text buttons: Rename and Cancel.
  3. When the user starts typing, the highlighted text is overwritten. Alternatively, the user can use the mouse or keyboard to change the selected text.
  4. The new file name can be validated in two ways:
    • The user clicks Rename.
    • The user presses Enter.
Interaction - Renaming a file
Interaction - Renaming a file

Deleting Files

The Delete function works identically on desktop and mobile devices.

After clicking the Delete button  for a file, the user is prompted to confirm the deletion.

Delete confirms the deletion and the file is removed from the list. Cancel aborts the process, closes the dialog, and brings the user back to the file list without making any changes. For more information on the pattern, see Message Box – Confirmation for “Delete”.

Clickable Attributes

Object attributes can be made clickable. This can be very helpful to provide users with a direct way to access certain information, such as a person’s profile and contact data, or the version history of a file.

Examples:

  • Uploaded By: John Miller
  • Last Edited By: Donna Moore
  • Version 1.1
Guidelines

  • Use a quick view to show this additional information.
  • Don’t use more than two or three linked attributes per item. Excessive use of clickable attributes overloads the UI with interactive elements and has a negative impact on usability.

Responsiveness

The upload set control offers full responsive behavior from small phones to large desktop screens. Uploading, downloading, renaming, and deleting works on all screen sizes. Texts that no longer fit into the available space are truncated.

Size S
Size S
Size M
Size M
Size L
Size L

Example

You can use the upload set control whenever users need to be able to upload multiple files. The example below shows the object page of a product, in this case a machine, with an Attachments tab containing several documents relating to the material specification and requirements.

Upload set in object page
Upload set in object page

Other possible scenarios:

  • Warranty claim: Users need to upload images of a damaged item.
  • Product details: Editors can upload product pictures that will be shown in the online shop.
  • Service history: Whenever maintenance is carried out, the service worker attaches a document to the object.

Top Tips

When to Show, Disable, and Hide Actions

The Edit button  and Delete button  are visible and enabled by default. If you don’t want to allow users to edit or delete uploaded files, hide the corresponding buttons.

Don’t leave buttons enabled and then show an error message when the function isn’t available.

Do
Vertically align all actions
Vertically align all actions
Don't
Don't position buttons differently. Place identical actions directly underneath one another.
Don't position buttons differently. Place identical actions directly underneath one another.
Do
If an action is unavailable, disable it (for example, if a file was uploaded by another user).
If an action is unavailable, disable it (for example, if a file was uploaded by another user).
Don't
Don't disable all actions. If users aren't allowed to use a certain action, don't show the corresponding button.
Don't disable all actions. If users aren't allowed to use a certain action, don't show the corresponding button.
Do
If users aren't allowed to use a certain function, hide the corresponding button.
If users aren't allowed to use a certain function, hide the corresponding button.

Related Links

Elements and Controls

Implementation