[AAE-10089] Process variables values are not shown for old tasks and … (#7744)

* [AAE-10089] Process variables values are not shown for old tasks and processes

* fix unit test and variable names

* change variableId
This commit is contained in:
Ketevani Kvirikashvili 2022-08-11 11:33:32 +01:00 committed by GitHub
parent fd0110e5c7
commit 26c46cfb9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 12 deletions

View File

@ -20,6 +20,7 @@ import { ProcessInstanceVariable } from '../models/process-instance-variable.mod
export const getProcessInstanceVariableMock = (variable: Partial<ProcessInstanceVariable> = {}): ProcessInstanceVariable => ({ export const getProcessInstanceVariableMock = (variable: Partial<ProcessInstanceVariable> = {}): ProcessInstanceVariable => ({
id: 1, id: 1,
variableDefinitionId: 'variableDefinitionId', variableDefinitionId: 'variableDefinitionId',
processDefinitionKey: 'processDefinitionKey',
value: 'value', value: 'value',
appName: 'appName', appName: 'appName',
createTime: 'createTime', createTime: 'createTime',

View File

@ -22,6 +22,7 @@ export type WithVariablesMap<T> = T & {
export interface ProcessInstanceVariable { export interface ProcessInstanceVariable {
id: number; id: number;
variableDefinitionId: string; variableDefinitionId: string;
processDefinitionKey: string;
value: string; value: string;
appName: string; appName: string;
createTime: string; createTime: string;

View File

@ -31,7 +31,8 @@ describe('VariableMapperService', () => {
it('should map variables by column title', () => { it('should map variables by column title', () => {
const variable: ProcessInstanceVariable = getProcessInstanceVariableMock({ const variable: ProcessInstanceVariable = getProcessInstanceVariableMock({
variableDefinitionId: 'variableDefinitionIdOne' processDefinitionKey: 'processKey',
name: 'variableName'
}); });
const objectWithVariables = { const objectWithVariables = {

View File

@ -26,7 +26,7 @@ export class VariableMapperService {
instancesList: T[] = [], instancesList: T[] = [],
columnsSchema: DataColumn<ProcessListDataColumnCustomData>[] = [] columnsSchema: DataColumn<ProcessListDataColumnCustomData>[] = []
): Array<WithVariablesMap<T>> { ): Array<WithVariablesMap<T>> {
const columnsByVariableId = this.mapColumnKeysByVariableId(columnsSchema); const columnsByVariables = this.mapColumnKeysByVariable(columnsSchema);
const rowsViewModel = instancesList.map<WithVariablesMap<T>>((instance) => { const rowsViewModel = instancesList.map<WithVariablesMap<T>>((instance) => {
if (!instance.variables?.length) { if (!instance.variables?.length) {
@ -34,9 +34,9 @@ export class VariableMapperService {
} }
const variablesMap = (instance.variables ?? []).reduce<{[columnTitle: string]: ProcessInstanceVariable}>((variableAccumulator, variable) => { const variablesMap = (instance.variables ?? []).reduce<{[columnTitle: string]: ProcessInstanceVariable}>((variableAccumulator, variable) => {
const processVariableDefinitionId = variable.variableDefinitionId; const processVariableDefinitionPayload = `${variable.processDefinitionKey}/${variable.name}`;
const column = columnsByVariableId[processVariableDefinitionId]; const column = columnsByVariables[processVariableDefinitionPayload];
if (column) { if (column) {
variableAccumulator[column] = { variableAccumulator[column] = {
...variable, ...variable,
@ -56,23 +56,23 @@ export class VariableMapperService {
return rowsViewModel; return rowsViewModel;
} }
private mapColumnKeysByVariableId( private mapColumnKeysByVariable(
columnsSchema: DataColumn<ProcessListDataColumnCustomData>[] columnsSchema: DataColumn<ProcessListDataColumnCustomData>[]
): { [variableId: string]: string } { ): { [key: string]: string } {
const columnsByVariableId = columnsSchema const columnsByVariables = columnsSchema
.filter(column => !!column.customData) .filter(column => !!column.customData)
.reduce<{ [variableId: string]: string }>((columnsByVariable, column) => { .reduce<{ [key: string]: string }>((columnsByVariable, column) => {
const columnTitle = column.title; const columnTitle = column.title;
const variableIds = column.customData.assignedVariableDefinitionIds; const variables = column.customData.variableDefinitionsPayload;
variableIds.forEach((variableId) => { variables.forEach((key) => {
columnsByVariable[variableId] = columnTitle; columnsByVariable[key] = columnTitle;
}); });
return columnsByVariable; return columnsByVariable;
}, {}); }, {});
return columnsByVariableId; return columnsByVariables;
} }
private mapProcessVariableTypes(variableType: string): DataColumnType { private mapProcessVariableTypes(variableType: string): DataColumnType {