Procedure
Copying personalizations from one LN environment to another when the user names differ between the two tenants. Steps 1–4 run in the old environment, steps 5–6 here, and steps 7–11 in the new environment.
Before you start
- You know the user names in both tenants. They are case sensitive, so copy them out of LN rather than typing from memory.
- You are authorized to run Export Personalizations (ttaad7201m000) and Import Personalizations (ttaad7202m000) in the respective environments, and File Manager (ttfmafileman) for moving the zip to and from the application server.
- The target user exists in the new tenant and has signed in at least once.
- The target user has Allow Application Personalization selected in their user data template — User Data Template (ttams1110m000) on the LN server. Without it, personalization is switched off for that user and an import has nothing to attach to.
Old environment — export
-
Start Export Personalizations (ttaad7201m000)
Sign in to the old tenant and start the session. It opens as a wizard: the first page sets what to export, and each following page narrows whose personalizations to take.
-
First page — choose what to export
Set the page exactly like this:
Export Range of Roles clear Leave cleared. You are exporting a user, not a role. Export Specific Roles clear Leave cleared. Personalizations to Export ✓ Session Personalizations
✓ Report Personalizations
✓ Menu Personalizations
✓ Conditional Formatting
✓ Filters
clear Graphs — tick this too if the user has personalized graphs.Specific Selection
the second column of check boxes✓ Tick it next to every type you ticked on the left. This is what gives you a page per type on which to set the user range — without it you cannot restrict the export to one user. Enum Domain Coloring clear Leave cleared. It is a tenant-wide setting, not a user personalization. Export to › File ✓ ticked, with a path like ${BSE}/appdata/Personalization/n072.zip. Name the file after the user so you can tell exports apart later.Export to › Download ✓ Tick it. This is what puts the zip on your machine. Without it the file is written to the application server only, and you have to fetch it with File Manager (ttfmafileman). Additional File clear Leave cleared. Click Next.
-
Following pages — set the user on every one
You now get one page per type you ticked. The critical part is the same on all of them: under Level, tick User and put the same user name in both the From and the To box. Leave Role and Company cleared.
The one mistake to avoid. If the From and To user boxes do not both hold the user name, you export either nothing or everybody. Check both boxes on every page before clicking Next.Page Set the ranges to Personalization Session From blank, To ZZZZZZZZZZZZZ.
Type From blank, To the last entry in the list (Toolbar Settings) — that spans every personalization type.
Level › User:n072ton072.Report Report From blank, To zzzzzzzzzzzzz.
Variant From blank, ToZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ.
Level › User:n072ton072.Menu Menu From blank, To ZZZZZZZZZZZZZ.
Level › User:n072ton072.Conditional Formatting Session From blank, To ZZZZZZZZZZZZZ.
Company: leave All cleared, range-001to9999.
Level › User:n072ton072.Filter Session From blank, To ZZZZZZZZZZZZZ.
Level › User:n072ton072.On the last page click Finish. The zip downloads, and a copy is written to the path you set on the first page.
Several users at once: put the first user name in the From box and the last in the To box, on every page. The range is alphabetical, so it will also pick up anyone whose name sorts between the two. That is fine — the converter lists everybody it finds and lets you tick only the users you actually want, dropping the rest from the import file.
-
Check what you got
The zip holds one file per package —
personalization_user_tc_01,personalization_user_td_01,personalization_user_tp_01and so on — plusExportConfiguration_h, the header LN writes to record what was exported. They have no file extension. That is normal; do not rename them or repackage the zip.If you cleared Download on the first page, open File Manager (ttfmafileman), browse to
${BSE}/appdata/Personalization/and download the zip from there.
Here — rewrite the user names
-
Convert the zip
On the Converter page, upload the zip. The tool reads the user names out of it and adds a row for each one.
Choose who goes into the import file. Every user starts ticked. Untick anyone you do not want and their records are cut out of the output entirely — not merely left alone. A range export of eighty users can be cut down to the ten you actually want: use Select none, then tick those ten. The filter box narrows a long list by ID or name, and the counter shows how many are included.
Untick rows — do not delete them. A deleted row leaves that user neither renamed nor excluded, so their personalizations land in the new tenant still carrying their old user ID. An unticked row is properly cut out. If any user in the zip ends up on neither list, the summary names them — do not ignore that warning.Fill in the new user name for each one you kept. Excluded rows need nothing.
Optionally connect either tenant with its
.ionapifile:- The new tenant turns the right-hand column into a search box — type a person’s name and pick them from the list. Anything not in that tenant is flagged before you convert.
- The old tenant labels each ID from the zip with who it belongs to, so you can confirm you exported the right person.
Both are optional; you can type the IDs instead. The names come from each tenant’s Infor Federation Services directory, whose
lnUserproperty is the LN login code — the same value astccom001.locoon the employee record.With both tenants connected each row is matched for you, on surname:
One person with that surname Filled in automatically, highlighted, and marked “check it”. Several share the surname Narrowed by first name. If that leaves one person, it is filled in the same way. Still more than one Left empty, with the field offering just those people — click it and choose. The name carries a trailing number Tried again without it, so “Alex Carter1” still finds Alex Carter. Nobody matches Left empty and marked, so you search for them yourself. Check every auto-filled row. A shared surname is not proof of the same person, and the old and new IDs frequently belong to different people. An auto-filled ID is highlighted until you confirm or change it; typing or picking anything yourself clears the mark.Check the summary before downloading. The replacement count should be in the hundreds for a well-used account; zero or a handful usually means a user name was mistyped or has different casing.
-
Employee numbers in saved filters
A saved filter often searches on an employee — a sales representative, a buyer, a planner. Employee numbers do not survive a tenant change: the same person is employee
1150in one tenant andNFRIEDMin another. Left alone, those filters arrive pointing at somebody who does not exist.With both tenants connected the tool translates them for you. Set the LN company below the tenant pickers first — employee numbers are company-specific, and both tenants are read with that company. It defaults to 2100.
Employees are paired two ways: through the user mapping you just made, and, for people you are not migrating at all, by matching the two employee tables on name. A name two people share is never guessed — it is reported instead.
“could not be matched to an employee in the new tenant” That person has no counterpart in the new tenant. The filter comes across unchanged and will return nothing until it is re-saved. “does not translate” A value on a field the tool does not treat as an employee reference. Review it; if it really is one, ask for the field to be added. “Removed n saved filters” See below — these were deliberately left out. Some filters are removed on purpose. A filter that searches a user or employee with anything other than is equal to — a range, a greater-than, a “starts with” — cannot survive the renumbering, because1150becomingNFRIEDMdestroys any ordering or spelling the filter relied on. Carrying it over would produce a filter that looks right and quietly returns the wrong rows, so the whole filter is dropped and named in the summary. Re-save those in the new tenant. Filters on ordinary fields are untouched whatever they ask for.
New environment — import
-
Upload the converted zip
Sign in to the new tenant and open File Manager (ttfmafileman). Upload the converted zip — the zip itself, do not extract it — into the folder you use for imports, for example:
${BSE}\appdata\personalizations_119\Naming the folder after the source tenant keeps successive migrations apart. Create a
backups\subfolder inside it at the same time — the next step writes the rollback file there, and the import fails if the folder does not exist.${BSE}\appdata\personalizations_119\backups\ -
Import Personalizations (ttaad7202m000) — first page
Point the session at the file, and always take the backup:
Import (from) › File Selected, with the full path to the zip you just uploaded, e.g. ${BSE}\appdata\personalizations_119\personalizations_nfriedm.zipAdditional File clear Leave cleared. Options › Backup File ✓ Tick this. Give it a path in the backups\subfolder, e.g.${BSE}\appdata\personalizations_119\backups\personalizations_nfriedm_backup.zipThe backup is your undo. It captures the target user’s personalizations as they are now, before the import overwrites them. If the import goes wrong, import that backup file to put the user back exactly as they were. Skip it and there is no way back. Give every run its own backup file name so one does not overwrite another. -
Second page — choose what to import
This mirrors the export. Set it the same way:
Import Roles clear Leave cleared, along with Include Personalizations beneath it. You are importing a user, not a role. Data to Import ✓ Session
✓ Report
✓ Menu
✓ Conditional Formatting
✓ Filters
clear Graphs — tick it only if you ticked it on the export.Specific Selection ✓ Tick it next to every type you ticked on the left, exactly as on the export. This is what gives you a page per type on which to set the user range. Enum Domain Coloring clear Leave cleared. -
Following pages — set the NEW user on every one
One page per type, as on the export. Under Level, tick User and enter the new user name — the name the converter produced, not the original. Leave Role and Company cleared.
Check every page. These pages do not all carry the user name forward — it is easy to set it on the first two and leave an old value sitting on Conditional Formatting or Filter. Any page still holding the wrong name silently imports nothing for that type, and you will not find out until the user says half their screens are missing.Page Set the ranges to Personalization Session From blank, To ZZZZZZZZZZZZZ.
Type From blank, ToToolbar Settings(the last entry).
Level › User: the new name in both boxes.Report Report From blank, To zzzzzzzzzzzzz.
Variant From blank, ToZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ.
Level › User: the new name in both boxes.Menu Menu From blank, To ZZZZZZZZZZZZZ.
Level › User: the new name in both boxes.Conditional Formatting Session From blank, To ZZZZZZZZZZZZZ.
Company: leave All cleared, range-001to9999.
Level › User: the new name in both boxes.Filter Session From blank, To ZZZZZZZZZZZZZ.
Level › User: the new name in both boxes.Where a page offers Copy Company Personalizations to, leave it on The Same Companies and leave Copy to Specific Companies empty.
Importing more than one user? A single name in both boxes imports that one person and silently ignores everyone else in the file. Open the range instead: leave From blank and set To toZZZZZZZZZZZZZZZZon every page, which takes every user the file contains. That is safe here because the converter already removed everyone you did not tick — the file holds exactly the people you chose, and nobody else.On the last page (Filter) click Finish, then review the import log for rejected records before telling anyone it is done.
-
Verify with the user
Have the user sign out and back in, then open a session they had personalized — one with an obviously changed grid or a saved filter is the fastest check. Personalizations are applied at session start, so a session left open from before the import will still show the old layout.
If something does not look right
| Symptom | Likely cause |
|---|---|
| The converter reports zero replacements | The old user name is wrong or the casing differs. Use the names the tool detected in the file rather than typing one in. |
| The export zip is far smaller than expected | A From/To user box was left empty on one of the wizard pages, so that personalization type exported nothing. Re-run the export and check both boxes on every page. |
| The export contains users you did not ask for | The User From and To boxes held different names, so LN took the whole alphabetical range. Expected — untick the ones you do not want and they are removed from the import file. |
| Someone's personalizations arrived who should not have | They were left ticked in step 4. Re-convert from the original export with only the intended users selected, and re-import. |
| Import runs clean, but the user sees nothing | Most often the new user name was wrong, so the records imported onto a user nobody signs in as. Re-check the target name in the new tenant and convert again from the original export. |
| Only some types came across — menus but no filters, say | A page of the import wizard still held the wrong user name, so that type matched nothing. Re-run the import with the new name set on every page. |
| Only one person arrived out of several | The User From and To boxes held a single name. Re-run with the range
open — From blank, To ZZZZZZZZZZZZZZZZ — on
every page. |
| The import made things worse | Run Import Personalizations (ttaad7202m000) again, pointing at the backup file written in step 7. That restores the target user to exactly how they were before. This only works if you ticked Backup File. |
| The import fails writing the backup | The backups\ subfolder does not exist yet. Create it in
File Manager (ttfmafileman) and run the import again. |
| Import rejects records | The session does not exist in the target environment, or is at a different release. Personalizations for sessions that are not installed cannot be imported. |
| Only some sessions came across | A Session or Report range was narrower than you thought. Re-export with the ranges set as in the table above. |
| Personalization menu options are missing for the user | Allow Application Personalization is not selected in the user's data template (ttams1110m000). |
Notes
- The tool rewrites only
username=in thepersonalization_user_<pkg>_01files, and removes the whole<user>element of anyone you excluded. ExportConfiguration_his never modified. It is the export’s header — who ran it, when, and the selection used — kept for reference when an import goes wrong, so the user range it names still shows the original user. That is correct and expected; it does not mean the conversion missed something.- Keep the original export zip until the user has confirmed the import. It is the only way to redo the conversion if a name was wrong.
- Keep the backup zip too, for as long as the user might notice something missing. It is the only way back to how they were before the import.
- A
.ionapifile holds a client secret and service-account keys. This app uses it for a single request and never stores it, but use a read-only service account regardless. The service account needs access to the IFS Service API in ION API › Authorized Apps; without it the tool falls back to a partial user list drawn from LN module data and carries no names.
Session codes verified against Infor LN UI User Guide (Cloud and On-premises) and the Infor Enterprise Server Administration Guide (Cloud). Wizard settings taken from a live ttaad7201m000 run.