@topconsultnpm/sdkui-react-beta 6.16.64 → 6.16.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -589,7 +589,7 @@ const WFDiagram = ({ xmlDiagramString, currentSetID, readOnly = false, zoomLevel
|
|
|
589
589
|
return;
|
|
590
590
|
}
|
|
591
591
|
}, [wfDiagram, selectedItems, selectedConnections, handleUndo, handleRedo, handleDelete, updateDiagram, handleCopy, handleCut, handlePaste, readOnly]);
|
|
592
|
-
const handleExportDiagram = useCallback(() => {
|
|
592
|
+
const handleExportDiagram = useCallback(async () => {
|
|
593
593
|
if (!wfDiagram) {
|
|
594
594
|
// Visualizza un errore se il diagramma non è stato caricato o è vuoto
|
|
595
595
|
TMExceptionBoxManager.show({ exception: new Error('Diagram not loaded.') });
|
|
@@ -597,7 +597,7 @@ const WFDiagram = ({ xmlDiagramString, currentSetID, readOnly = false, zoomLevel
|
|
|
597
597
|
}
|
|
598
598
|
try {
|
|
599
599
|
// 1. Serializza il diagramma in XML
|
|
600
|
-
const xmlString = serializeWfDiagramToXml(wfDiagram);
|
|
600
|
+
const xmlString = await serializeWfDiagramToXml(wfDiagram);
|
|
601
601
|
// 2. Determina il nome del file (usa l'ID o un UUID se non disponibile)
|
|
602
602
|
const filename = `WorkflowDiagram_${wfDiagram.Info?.ID || generateUUID()}.xml`;
|
|
603
603
|
// 3. Avvia il download (la cartella è scelta dal browser)
|
|
@@ -8,4 +8,4 @@ export declare const getWFAppTypesNumber: (appType: WFAppTypes | undefined) => n
|
|
|
8
8
|
export declare const mapCultureIDs: (cultureIDValue: number) => CultureIDs;
|
|
9
9
|
export declare const serializeQueryDescriptorXml: (qd: QueryDescriptor | undefined) => Promise<string>;
|
|
10
10
|
export declare const parseWfDiagramXml: (xmlString: string) => WfDiagram;
|
|
11
|
-
export declare const serializeWfDiagramToXml: (wfDiagram: WfDiagram | null) => string
|
|
11
|
+
export declare const serializeWfDiagramToXml: (wfDiagram: WfDiagram | null) => Promise<string>;
|
|
@@ -174,12 +174,16 @@ const mapWFAppTypes = (appTypeValue) => {
|
|
|
174
174
|
}
|
|
175
175
|
};
|
|
176
176
|
export const serializeQueryDescriptorXml = async (qd) => {
|
|
177
|
-
|
|
177
|
+
// try {
|
|
178
178
|
if (!qd)
|
|
179
179
|
return '';
|
|
180
180
|
let xml = await SDK_Globals.tmSession?.NewDcmtPlatformEngine().UtilsSerializeQdAsync(qd) ?? '';
|
|
181
|
-
console.log('serializeQueryDescriptorXml xml', xml);
|
|
182
181
|
return xml;
|
|
182
|
+
// } catch (error) {
|
|
183
|
+
// console.error('Error serializing QueryDescriptor to XML:', error);
|
|
184
|
+
//TODO: gestire errore
|
|
185
|
+
// return '';
|
|
186
|
+
// }
|
|
183
187
|
};
|
|
184
188
|
// Placeholder per la serializzazione di MetadataValues in XML (DA MODIFICARE CON LA LOGICA REALE)
|
|
185
189
|
const serializeMetadataValuesXml = (values) => {
|
|
@@ -192,7 +196,6 @@ const serializeMetadataValuesXml = (values) => {
|
|
|
192
196
|
export const parseWfDiagramXml = (xmlString) => {
|
|
193
197
|
const parser = new DOMParser();
|
|
194
198
|
const xmlDoc = parser.parseFromString(xmlString, "application/xml");
|
|
195
|
-
console.log('xmlDoc', xmlDoc);
|
|
196
199
|
const wfDiagram = {
|
|
197
200
|
Info: {
|
|
198
201
|
ID: "",
|
|
@@ -336,11 +339,10 @@ export const parseWfDiagramXml = (xmlString) => {
|
|
|
336
339
|
return wfDiagram;
|
|
337
340
|
};
|
|
338
341
|
// Funzione di serializzazione (inclusa per completezza, se l'avevi)
|
|
339
|
-
export const serializeWfDiagramToXml = (wfDiagram) => {
|
|
342
|
+
export const serializeWfDiagramToXml = async (wfDiagram) => {
|
|
340
343
|
if (!wfDiagram) {
|
|
341
344
|
return '<?xml version="1.0" encoding="utf-8"?>\n<Root></Root>';
|
|
342
345
|
}
|
|
343
|
-
console.log('qd', escapeXml('<QueryDescriptor xmlns="http://schemas.datacontract.org/2004/07/TopConsult.TM5.Server.WEBSDK.Contracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Description i:nil="true"/><ID>0</ID><Name i:nil="true"/><Fetch>0</Fetch><From><TID>8601</TID></From><IsDistinct>false</IsDistinct><IsLexProt>0</IsLexProt><Join i:nil="true"/><MaxDcmtsToBeReturned>1000</MaxDcmtsToBeReturned><Offset>0</Offset><OrderBy i:nil="true"/><Params i:nil="true"/><Select><SelectItem><Alias i:nil="true"/><As i:nil="true"/><Function>None</Function><MID>8601001</MID><TID>8601</TID><Visibility>Visible</Visibility></SelectItem><SelectItem><Alias i:nil="true"/><As i:nil="true"/><Function>None</Function><MID>8601002</MID><TID>8601</TID><Visibility>Visible</Visibility></SelectItem><SelectItem><Alias i:nil="true"/><As i:nil="true"/><Function>None</Function><MID>8601006</MID><TID>8601</TID><Visibility>Visible</Visibility></SelectItem><SelectItem><Alias i:nil="true"/><As i:nil="true"/><Function>None</Function><MID>8601003</MID><TID>8601</TID><Visibility>Visible</Visibility></SelectItem><SelectItem><Alias i:nil="true"/><As i:nil="true"/><Function>None</Function><MID>8601004</MID><TID>8601</TID><Visibility>Visible</Visibility></SelectItem><SelectItem><Alias i:nil="true"/><As i:nil="true"/><Function>None</Function><MID>8601005</MID><TID>8601</TID><Visibility>Visible</Visibility></SelectItem></Select><Where><WhereItem><Alias i:nil="true"/><LeftBrackets>(</LeftBrackets><MID>8601006</MID><Operator>GreaterOrEqual</Operator><Or>false</Or><RightBrackets>)</RightBrackets><TID>8601</TID><Value1>100</Value1><Value2 i:nil="true"/></WhereItem></Where></QueryDescriptor>'));
|
|
344
346
|
let xml = '<?xml version="1.0" encoding="utf-8"?>\n';
|
|
345
347
|
xml += '<Root>\n';
|
|
346
348
|
// 1. Serializzazione WfInfo
|
|
@@ -354,7 +356,8 @@ export const serializeWfDiagramToXml = (wfDiagram) => {
|
|
|
354
356
|
}
|
|
355
357
|
// 2. Serializzazione DiagramItems
|
|
356
358
|
xml += ' <DiagramItems>\n';
|
|
357
|
-
|
|
359
|
+
// Usa Promise.all con map invece di forEach
|
|
360
|
+
for (const item of wfDiagram.DiagramItems) {
|
|
358
361
|
xml += ' <DiagramItem>\n';
|
|
359
362
|
xml += ` <ID>${escapeXml(item.ID)}</ID>\n`;
|
|
360
363
|
xml += ` <L>${item.Left}</L>\n`;
|
|
@@ -414,15 +417,18 @@ export const serializeWfDiagramToXml = (wfDiagram) => {
|
|
|
414
417
|
if (item.EndWFInstance !== undefined)
|
|
415
418
|
xml += ` <EndWFInstance>${item.EndWFInstance}</EndWFInstance>\n`;
|
|
416
419
|
// QueryDescriptor (QD)
|
|
417
|
-
if (item.QD)
|
|
418
|
-
|
|
420
|
+
if (item.QD) {
|
|
421
|
+
let qdXmlContent = await serializeQueryDescriptorXml(item.QD);
|
|
422
|
+
let qdEscaped = escapeXml(qdXmlContent);
|
|
423
|
+
xml += ` <QD>${qdEscaped}</QD>\n`;
|
|
424
|
+
}
|
|
419
425
|
if (item.SOD)
|
|
420
426
|
xml += ` <SOD>${escapeXml(item.SOD)}</SOD>\n`;
|
|
421
427
|
// MetadataValues
|
|
422
|
-
if (item.MetadataValues && item.MetadataValues.length > 0) {
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
}
|
|
428
|
+
// if (item.MetadataValues && item.MetadataValues.length > 0) {
|
|
429
|
+
// const mvXmlContent = serializeMetadataValuesXml(item.MetadataValues);
|
|
430
|
+
// xml += ` <MetadataValues><![CDATA[${mvXmlContent}]]></MetadataValues>\n`;
|
|
431
|
+
// }
|
|
426
432
|
if (item.Severity !== undefined)
|
|
427
433
|
xml += ` <Severity>${getSeveritiesNumber(item.Severity)}</Severity>\n`;
|
|
428
434
|
if (item.RegAsWfInstPart !== undefined)
|
|
@@ -454,7 +460,7 @@ export const serializeWfDiagramToXml = (wfDiagram) => {
|
|
|
454
460
|
if (item.Trunc !== undefined)
|
|
455
461
|
xml += ` <Trunc>${item.Trunc}</Trunc>\n`;
|
|
456
462
|
xml += ' </DiagramItem>\n';
|
|
457
|
-
}
|
|
463
|
+
}
|
|
458
464
|
xml += ' </DiagramItems>\n';
|
|
459
465
|
// 3. Serializzazione Connections
|
|
460
466
|
xml += ' <Connections>\n';
|