Symptom
How can I correctly prepare a zip file for importing attachments to a specific portlet in Employee Profile?
"Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental."
Environment
SAP SuccessFactors Employee Profile
Reproducing the Issue
List with possible error message during the Import process:
- "Problem found during zip file processing"
- "... Java.lang.IllegalArgumentException: MALFORMED ..."
- "The import file has an invalid file. Please provide Zip file"
- "The user ID is invalid, unknown, or unauthorized"
- "UserName XXXXX: Invalid username"
- "To upload a CSV file, you should deselect the "Upload attachments along with data" option in the Job Parameters section."
Cause
Currently, attachments can only be bulk imported via backend job. The only way to add them via UI is to add in the profile.
Resolution
1- Prepare the File and SFTP Details:
Importing attachments to the Employee Profile can be done by engaging SuccessFactors Support for running a job in the backend of your instance to bulk upload a list of attachments all at the same time. This is done by zipping all the files that need to be imported together with a .csv that maps the filenames to the ID of the user they belong to.
Below are the full steps for this process:
- Gather all the files that need to be imported on the same folder - It means, please ensure the attached file has NO subfolder.
- Log into SuccessFactors and go to Admin Center > Export Extended User Information > click on “Background Information” > click ok “Export Template”.
This returns a template for all the portlets (background-elements) available in the instance. Remove all except the one that corresponds to the portlet for which the attachments should be imported.
This is an example of how the .csv header would look:
First column: always the userID of the employee for which you are uploading attachments.
Second column: stands for the portlet’s name in the XML code of the instance. Needs to have the same value as the header in all entries.
Third column and so on: will respect the order of the fields of this portlet. In the example above, the portlet only has the attachments field. Other portlets can have other fields such as dates, comments, etc. The attachment field will be used to add the filename, so the mapping can be made between the UserID → filename.
So, as an example, below is how the built .csv file would look like in relation to the files being imported:
Files to be imported
Mapping
- Once the .csv mapping file and the attachments that should be imported are all in the same folder, select all files in the folder and zip them.
- With the zip file ready, upload it to your company’s FTP site and create an case with Support for requesting the upload of these attachments.
2- Configure the Job:
From the 1H 2023 Release:
- You can configure, run and monitor the required job from the Admin Center via Scheduled Job Manager.
This was introduced with the following enhancement: WNV: EDU-18623 - Import and Export Background Information in Scheduled Job Manager - For the steps on how to configure, run and monitor this job please follow the step in the following guide:
Managing User Information: Importing or Exporting Background Information with Attachments
Details to Provide:
- Job Owner: ?
- "The Job Owner will be used to authenticate all submitted jobs. They will also be the default user to receive E-mail notifications."
- Job Parameters:
- If Background Information the below information need to be provided:
Please note:
If you select the "Import by incrementally adding data" option, every data in the import file will be simply added to the profile block.
Now, if you select the "Import by overwritting existing data" option, you have to upload a full file every time you are going to import.
Ex: Say you have imported records A, B and C. Then you run another import, with changes on B and C only, the system will change the last modified date of B and C but not A. However, in your import file, all A, B, C records should still be included. This is to improve the task efficiency of the job.
- If Background Information the below information need to be provided:
- SFTP details - Please note it is highly recommended to use SAP's FTP and if not you can use external FTPs.
- SFTP Host Address ?
- -SFTP credentials ?
- -SFTP Path?
- -SFTP Filename?
- Date Format:
- "A date can be used as the file extension to "version" the file.Example: company_id_EMP_01012008.csv"
- File encryption: None or PGP ?
- Additional E-mail Recipients:
- "Enter additional E-mail addresses, separated by commas, for all the users who want to receive the notifications."
General tips and best practices
- Ensure the User ID from the import is from an Active user. If the Employee is not on the Instance and/or if it is not Active, the job will show this the error message: "The user ID is invalid, unknown, or unauthorized";
- Ensure the Job Owner used to run the job has full edit permission for the documents field with target population of the entire instance. You can request to your implementation partner to check the Job Owner and provide the permission in Manage Permission Roles. If the Job Owner does not have enough permission, the job might fail with below error:
- "The user ID is invalid, unknown, or unauthorized"
- Do not include non-ASCII characters (special characters) on the .csv mapping file or in the filenames. The system does not support the use of this characters for attachments import, so if any are included in the name of the files being imported or in the .csv mapping file, the import will fail;
- Do not save the Excel file in "xls" or "xlsx" format as only "csv" format is supported;
- File Size Limit: Avoid importing files where each individual files are over 740mb. Files that are larger than 740mb can, depending on several factors (such as network and datacenter usage), time out due to the size of the file being imported. For this reason, it is suggested to split archives that are over 740mb. The whole zip file recomended size is 1.7Gb. Please note that files grater than those size limits can be uploaded depending of momentary network traffic, but it doesn't mean it would be a consistent behavior.
- Always use the header provided in the template available for download in SuccessFactors (steps are listed above). Sometimes third-party systems can create the .csv mapping file with hidden characters in the header section, which causes the import to fail.
- Make sure that the file can be unzipped before uploading it to the FTP site. If the file can’t be unzipped, it means that there were errors in the compression of the files and the import will not be able to retrieve the content inside it;
- Make sure to have a full backup of all Attachment for all users before proceeding with the import. Currently no option to restore deleted information.
- Please note that Cloud Support will only run 1 zip file (one job) per ticket. If a number of jobs need to be run, you will need to engage with your Partner/Professional Services.
See Also
- 3044333 - Error when importing data from zip via Live Profile Import job
- 2087993 - SFTP: Automating Data Imports & Exports via a Scheduler in SuccessFactors
- 2884845 - Live Profile Export (Including Attachments) - Employee Profile
- 2212605 - Understanding and using the generic sections - Scheduled Job setup - Partner & Support
- Guide: Managing User Information
Keywords
Attachment; Document; Bulk; Zip; Mass; Employee Profile; Import; Folder; Subforlder; SFTP; MALFORMED; ASCII; Provisioning; Backend; Invalid File; EDU-11350,pdf, word, problem found during zip file processing, csv format, problem found, subfolder, No file from FTP server matched this file name pattern , KBA , LOD-SF-EP-JOB , Scheduled jobs , LOD-SF-EP-UI , People Profile UI (PP3 UI) , How To