Skip to content

Commit 3b60c06

Browse files
committed
fix: assessment flow
1 parent 568ba7a commit 3b60c06

27 files changed

+588
-285
lines changed

messages/assess.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,15 +123,15 @@
123123
"errorEvaluatingExpression": "Error evaluating expression: %s, %s",
124124
"foundFlexiPages": "Found %s FlexiPages to assess",
125125
"assessingFlexiPages": "Assessing FlexiPages",
126-
"completedProcessingAllFlexiPages": "Completed processing all flexipage files. Total processed: %s",
127-
"completedProcessingFlexiPage": "Completed processing %s - Errors: %s",
128-
"processingFlexiPage": "Processing flexipage file: %s",
129-
"startingFlexiPageProcessing": "Starting to process flexipage: %s",
126+
"completedProcessingAllFlexiPages": "Completed processing all FlexiPages. Total processed: %s",
127+
"completedProcessingFlexiPage": "Completed processing %s. Errors: %s",
128+
"processingFlexiPage": "Processing FlexiPage: %s",
129+
"startingFlexiPageProcessing": "Starting to process FlexiPage: %s",
130130
"readFlexiPageContent": "Read file content, size: %s characters",
131-
"updatedModifiedContent": "updated content in file: %s",
132-
"generatedDiffForFile": "Generated diff for file: %s",
133-
"errorProcessingFlexiPage": "Error processing flexipage file: %s, %s",
134-
"flexipagesWithChanges": "Found %s flexipage files with changes",
131+
"updatedModifiedContent": "updated content in %s file",
132+
"generatedDiffForFile": "Generated difference for the file: %s",
133+
"errorProcessingFlexiPage": "Error processing FlexiPage: %s, %s",
134+
"flexipagesWithChanges": "Found %s FlexiPages with changes",
135135
"migratingFlexiPages": "Migrating FlexiPages",
136136
"experienceSiteMetadataConsent": "The consent for exp site is %s",
137137
"experienceSiteConsentNotProvidedWarning": "Consent for experience sites is not provided. Experience sites will not be processed",

messages/migrate.json

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -117,15 +117,15 @@
117117
"migrationConsentNotGiven": "Couldn't confirm whether assessment errors are resolved",
118118
"foundFlexiPages": "Found %s FlexiPages to migrate",
119119
"migratingFlexiPages": "Migrating FlexiPages",
120-
"completedProcessingAllFlexiPages": "Completed processing all flexipage files. Total processed: %s",
121-
"completedProcessingFlexiPage": "Completed processing %s - Errors: %s",
122-
"processingFlexiPage": "Processing flexipage file: %s",
123-
"startingFlexiPageProcessing": "Starting to process flexipage: %s",
120+
"completedProcessingAllFlexiPages": "Completed processing all flexipages. Total processed: %s",
121+
"completedProcessingFlexiPage": "Completed processing %s. Errors: %s",
122+
"processingFlexiPage": "Processing FlexiPage: %s",
123+
"startingFlexiPageProcessing": "Starting to process FlexiPage: %s",
124124
"readFlexiPageContent": "Read file content, size: %s characters",
125-
"updatedModifiedContent": "updated content in file: %s",
126-
"generatedDiffForFile": "Generated diff for file: %s",
127-
"errorProcessingFlexiPage": "Error processing flexipage file: %s, %s",
128-
"flexipagesWithChanges": "Found %s flexipage files with changes",
125+
"updatedModifiedContent": "updated content in %s file",
126+
"generatedDiffForFile": "Generated difference for the file: %s",
127+
"errorProcessingFlexiPage": "Error processing FlexiPage: %s, %s",
128+
"flexipagesWithChanges": "Found %s FlexiPages with changes",
129129
"omniGlobalAutoNumberPrefEnabled": "Successfully enabled OmniGlobalAutoNumberPref org preference",
130130
"errorEnablingOmniGlobalAutoNumberPref": "We couldn’t enable the Global Auto Number setting. Turn on the Global Auto Number setting manually, and try again. See <a href='https://help.salesforce.com/s/articleView?id=xcloud.os_standard_global_auto_number.htm&type=5' target='_blank'>Set Up Omni Global Auto Number</a>.",
131131
"performingPreMigrationChecks": "Performing pre-migration checks for Global Auto Number...",
@@ -188,16 +188,16 @@
188188
"errorCheckingGlobalAutoNumber": "We couldn’t check whether the Global Auto Number setting is enabled: %s. Try again later.",
189189
"errorMigrationMessage": "Error migrating object: %s",
190190
"nameMappingUndefined": "Name Mapping is undefined",
191-
"autoDeployConsentMessage": "Do you want to auto deploy the related objects? [y/n]",
192-
"errorDeployingComponents": "Error deploying related objects post migration",
191+
"autoDeployConsentMessage": "Do you want to deploy the related objects automatically? [y/n]",
192+
"errorDeployingComponents": "We couldn’t deploy related objects after migration.",
193193
"installingDependency": "Installing node dependency %s",
194194
"dependencyInstalled": "Node dependency %s installed",
195195
"deployingFromManifest": "Deploying from metadata packages",
196-
"manifestDeployFailed": "Metadata packages deployment failed, check logs or status for more details",
196+
"manifestDeployFailed": "We couldn’t deploy metadata packages. Check the logs or the status for more details.",
197197
"installingRequiredDependencies": "Installing required node dependencies",
198-
"creatingNPMConfigFile": "Creating npm config file",
198+
"creatingNPMConfigFile": "Creating npm configuration file",
199199
"npmConfigFileCreated": "Npm config file created",
200-
"authKeyEnvVarNotSet": "OMA_AUTH_KEY environment variable is not set, LWCs will not be deployed",
200+
"authKeyEnvVarNotSet": "The OMA_AUTH_KEY environment variable isn’t set. LWCs won't be deployed.",
201201
"experienceSiteException": "Exception occurred while processing experience sites",
202202
"reservedKeysFoundInPropertySet": "Reserved keys found in any of output response transformation fields: %s.",
203203
"incompleteMigrationDetected": "We couldn't complete the migration process",
@@ -210,7 +210,7 @@
210210
"skipFlexcardAngularOmniScriptDependencyWarning": "Skipping FlexCard %s due to Angular OmniScript dependencies",
211211
"flexCardMigrationProcessingMessage": "Processing %s FlexCards for migration (%s skipped due to Angular dependencies)",
212212
"noMetadataToDeploy": "No metadata to deploy",
213-
"manifestDeployementStarted": "Manifest deployment started with id: %s",
213+
"manifestDeployementStarted": "Manifest deployment started with ID: %s",
214214
"migrationConsentMessage": "Make sure that all records listed in the Assessment Status column in the Assessment Report are marked as Green before proceeding with the migration. Do you want to proceed? Yes or No?",
215215
"truncationFailed": "Truncation failed for %s: %s",
216216
"invalidTypeMigrateErrorMessage": "We couldn't migrate your Omnistudio components in the %s namespace. Select the correct namespace and try again",
@@ -231,4 +231,4 @@
231231
"enableStandardRuntimeAfterDesigner": "Standard designer setup successful, proceeding with Standard Runtime enablement",
232232
"skipStandardRuntimeDueToFailure": "Skipping Standard Runtime enablement due to designer setup failure",
233233
"errorCheckingStandardDesigner": "Failed to check standard designer status for package %s: %s"
234-
}
234+
}

src/commands/omnistudio/migration/migrate.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -646,10 +646,10 @@ export default class Migrate extends OmniStudioBaseCommand {
646646
const mergedResults: MigratedRecordInfo[] = [];
647647

648648
for (const record of Array.from(migrationResults.records.values())) {
649-
const obj = {
649+
const obj: MigratedRecordInfo = {
650650
id: record['Id'],
651651
name: migrationTool.getRecordName(record),
652-
status: messages.getMessage('labelStatusSkipped'),
652+
status: 'Skipped',
653653
errors: record['errors'],
654654
migratedId: undefined,
655655
warnings: [],
@@ -663,11 +663,11 @@ export default class Migrate extends OmniStudioBaseCommand {
663663
errors = errors.concat(recordResults.errors || []);
664664

665665
if (recordResults?.skipped) {
666-
obj.status = messages.getMessage('labelStatusSkipped');
666+
obj.status = 'Skipped';
667667
} else if (!recordResults || recordResults.hasErrors) {
668-
obj.status = messages.getMessage('labelStatusFailed');
668+
obj.status = 'Failed';
669669
} else {
670-
obj.status = messages.getMessage('labelStatusComplete');
670+
obj.status = 'Complete';
671671
}
672672
obj.errors = errors;
673673
obj.migratedId = recordResults.id;

src/javascripts/reportGeneratorUtility.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,11 @@ function filterAndSearchTable(tableId) {
102102
const visibleRows = Array.from(table.rows).filter(
103103
(row) => row.style.display !== 'none' && row.id !== 'no-rows-message'
104104
);
105-
reportTable.querySelector('#row-count').textContent = `Showing ${visibleRows.length} record${
106-
visibleRows.length !== 1 ? 's' : ''
105+
106+
// filter only distinct classes from visibleRows
107+
const distinctClasses = [...new Set(visibleRows.map((row) => row.classList[0]))];
108+
reportTable.querySelector('#row-count').textContent = `Showing ${distinctClasses.length} record${
109+
distinctClasses.length !== 1 ? 's' : ''
107110
}`;
108111
}
109112

@@ -153,6 +156,21 @@ document.addEventListener('DOMContentLoaded', () => {
153156
document.querySelectorAll('.rpt-table-container').forEach((tableContainer) => {
154157
filterAndSearchTable(tableContainer.id);
155158
});
159+
160+
document.querySelectorAll('tr').forEach((row) => {
161+
row.addEventListener('mouseover', (event) => {
162+
const className = event.currentTarget.classList[0];
163+
document.querySelectorAll(`.${className}`).forEach((r) => {
164+
r.classList.add('highlight');
165+
});
166+
});
167+
row.addEventListener('mouseout', (event) => {
168+
const className = event.currentTarget.classList[0];
169+
document.querySelectorAll(`.${className}`).forEach((r) => {
170+
r.classList.remove('highlight');
171+
});
172+
});
173+
});
156174
});
157175

158176
function openReport(ele) {

src/migration/dataraptor.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ export class DataRaptorMigrationTool extends BaseMigrationTool implements Migrat
288288
Logger.info(this.messages.getMessage('processingDataRaptor', [drName]));
289289
const warnings: string[] = [];
290290
const existingDRNameVal = new StringVal(drName, 'name');
291-
let assessmentStatus = 'Ready for migration';
291+
let assessmentStatus: 'Ready for migration' | 'Warnings' | 'Needs Manual Intervention' = 'Ready for migration';
292292

293293
if (!existingDRNameVal.isNameCleaned()) {
294294
warnings.push(
@@ -302,7 +302,7 @@ export class DataRaptorMigrationTool extends BaseMigrationTool implements Migrat
302302
}
303303
if (existingDataRaptorNames.has(existingDRNameVal.cleanName())) {
304304
warnings.push(this.messages.getMessage('duplicatedName') + ' ' + existingDRNameVal.cleanName());
305-
assessmentStatus = 'Need Manual Intervention';
305+
assessmentStatus = 'Needs Manual Intervention';
306306
} else {
307307
existingDataRaptorNames.add(existingDRNameVal.cleanName());
308308
}

src/migration/flexcard.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,13 +211,13 @@ export class CardMigrationTool extends BaseMigrationTool implements MigrationToo
211211
infos: [],
212212
warnings: [],
213213
errors: [],
214-
migrationStatus: '',
214+
migrationStatus: 'Ready for migration',
215215
};
216216

217217
// Check for name changes due to API naming requirements
218218
const originalName: string = flexCardName;
219219
const cleanedName: string = this.cleanName(originalName);
220-
let assessmentStatus = 'Ready for migration';
220+
let assessmentStatus: 'Ready for migration' | 'Warnings' | 'Needs Manual Intervention' = 'Ready for migration';
221221
flexCardAssessmentInfo.name = this.allVersions ? `${cleanedName}_${version}` : cleanedName;
222222
if (cleanedName !== originalName) {
223223
flexCardAssessmentInfo.warnings.push(
@@ -229,7 +229,7 @@ export class CardMigrationTool extends BaseMigrationTool implements MigrationToo
229229
// Check for duplicate names
230230
if (uniqueNames.has(cleanedName)) {
231231
flexCardAssessmentInfo.warnings.push(this.messages.getMessage('duplicateCardNameMessage', [cleanedName]));
232-
assessmentStatus = 'Need Manual Intervention';
232+
assessmentStatus = 'Needs Manual Intervention';
233233
}
234234
uniqueNames.add(cleanedName);
235235

@@ -302,7 +302,7 @@ export class CardMigrationTool extends BaseMigrationTool implements MigrationToo
302302
flexCardAssessmentInfo.warnings.push(
303303
this.messages.getMessage('integrationProcedureManualUpdateMessage', [originalIpMethod])
304304
);
305-
flexCardAssessmentInfo.migrationStatus = 'Need Manual Intervention';
305+
flexCardAssessmentInfo.migrationStatus = 'Needs Manual Intervention';
306306
}
307307
}
308308
} else if (dataSource.type === Constants.ApexRemoteComponentName) {

src/migration/omniscript.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -470,15 +470,15 @@ export class OmniScriptMigrationTool extends BaseMigrationTool implements Migrat
470470
const existingSubTypeVal = new StringVal(existingSubType, 'sub type');
471471
const omniScriptName = omniscript[this.namespacePrefix + 'Name'];
472472
const existingOmniScriptNameVal = new StringVal(omniScriptName, 'name');
473-
let assessmentStatus = 'Ready for migration';
473+
let assessmentStatus: 'Ready for migration' | 'Warnings' | 'Needs Manual Intervention' = 'Ready for migration';
474474

475475
const warnings: string[] = [];
476476

477477
// Check for Angular OmniScript dependencies
478478
for (const osDep of dependencyOS) {
479479
if (this.nameRegistry.isAngularOmniScript(osDep.name)) {
480480
warnings.push(this.messages.getMessage('angularOmniScriptDependencyWarning', [osDep.location, osDep.name]));
481-
assessmentStatus = 'Need Manual Intervention';
481+
assessmentStatus = 'Needs Manual Intervention';
482482
}
483483
}
484484

@@ -557,7 +557,7 @@ export class OmniScriptMigrationTool extends BaseMigrationTool implements Migrat
557557
const type = omniscript[this.namespacePrefix + 'IsLwcEnabled__c'] ? 'LWC' : 'Angular';
558558
if (type === 'Angular') {
559559
warnings.unshift(this.messages.getMessage('angularOSWarning'));
560-
assessmentStatus = 'Need Manual Intervention';
560+
assessmentStatus = 'Needs Manual Intervention';
561561
}
562562
}
563563

@@ -627,7 +627,9 @@ export class OmniScriptMigrationTool extends BaseMigrationTool implements Migrat
627627
value.migrationSuccess = true;
628628
}
629629

630-
let finalKey = `${nameMapping.oldType}${nameMapping.oldSubtype}${nameMapping.oldLanguage}`;
630+
let finalKey = `${nameMapping.oldType}${nameMapping.oldSubtype}${this.cleanLanguageName(
631+
nameMapping.oldLanguage
632+
)}`;
631633

632634
finalKey = finalKey.toLowerCase();
633635
if (storage.osStorage.has(finalKey)) {
@@ -647,6 +649,11 @@ export class OmniScriptMigrationTool extends BaseMigrationTool implements Migrat
647649
StorageUtil.printAssessmentStorage();
648650
}
649651

652+
private cleanLanguageName(language: string): string {
653+
// replace -, ( and ) and space with _
654+
return language.replace(/[-() ]/g, '');
655+
}
656+
650657
async migrate(): Promise<MigrationResult[]> {
651658
// Get All Records from OmniScript__c (IP & OS Parent Records)
652659
const omniscripts = await this.getAllOmniScripts();
@@ -1039,7 +1046,7 @@ export class OmniScriptMigrationTool extends BaseMigrationTool implements Migrat
10391046

10401047
let finalKey = `${oldrecord[this.namespacePrefix + 'Type__c']}${
10411048
oldrecord[this.namespacePrefix + 'SubType__c']
1042-
}${oldrecord[this.namespacePrefix + 'Language__c']}`;
1049+
}${this.cleanLanguageName(oldrecord[this.namespacePrefix + 'Language__c'])}`;
10431050

10441051
finalKey = finalKey.toLowerCase();
10451052
if (storage.osStorage.has(finalKey)) {

src/migration/related/ExperienceSiteMigration.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ export class ExperienceSiteMigration extends BaseRelatedObjectMigration {
120120
path: file.location,
121121
diff: JSON.stringify([]),
122122
hasOmnistudioContent: false,
123-
status: 'Can be Automated',
123+
status: 'Ready for migration',
124124
};
125125

126126
const lookupComponentName = `${this.namespace}:vlocityLWCOmniWrapper`;
@@ -179,7 +179,7 @@ export class ExperienceSiteMigration extends BaseRelatedObjectMigration {
179179
path: file.location,
180180
diff: JSON.stringify([]),
181181
hasOmnistudioContent: false,
182-
status: 'Errors',
182+
status: 'Failed',
183183
};
184184

185185
experienceSiteAssessmentInfos.push(experienceSiteAssessmentInfo);
@@ -256,7 +256,7 @@ export class ExperienceSiteMigration extends BaseRelatedObjectMigration {
256256
experienceSiteAssessmentInfo.warnings.push(
257257
'Target exists as empty string. Please check experience site configuration'
258258
);
259-
experienceSiteAssessmentInfo.status = 'Errors';
259+
experienceSiteAssessmentInfo.status = 'Needs Manual Intervention';
260260
return;
261261
}
262262

@@ -287,7 +287,7 @@ export class ExperienceSiteMigration extends BaseRelatedObjectMigration {
287287
if (this.shouldAddWarning(targetDataFromStorageFC)) {
288288
const warningMsg: string = this.getWarningMessage(flexcardName, targetDataFromStorageFC);
289289
experienceSiteAssessmentInfo.warnings.push(warningMsg);
290-
experienceSiteAssessmentInfo.status = 'Errors';
290+
experienceSiteAssessmentInfo.status = 'Needs Manual Intervention';
291291
} else {
292292
component.componentName = TARGET_COMPONENT_NAME_FC;
293293

@@ -316,7 +316,7 @@ export class ExperienceSiteMigration extends BaseRelatedObjectMigration {
316316
if (this.shouldAddWarning(targetDataFromStorage)) {
317317
const warningMsg: string = this.getWarningMessage(targetName, targetDataFromStorage);
318318
experienceSiteAssessmentInfo.warnings.push(warningMsg);
319-
experienceSiteAssessmentInfo.status = 'Errors';
319+
experienceSiteAssessmentInfo.status = 'Needs Manual Intervention';
320320
} else {
321321
component.componentName = TARGET_COMPONENT_NAME_OS;
322322

0 commit comments

Comments
 (0)