@topconsultnpm/sdkui-react 6.21.0-dev2.22 → 6.21.0-dev2.24
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.
|
@@ -91,6 +91,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
91
91
|
const formDataRef = useRef([]);
|
|
92
92
|
const fromDTDRef = useRef();
|
|
93
93
|
const dcmtFileRef = useRef(null);
|
|
94
|
+
const metadataDcmtOriginRef = useRef(null);
|
|
94
95
|
const [isOpenDistinctValues, setIsOpenDistinctValues] = useState(false);
|
|
95
96
|
const [isOpenFormulaEditor, setIsOpenFormulaEditor] = useState(false);
|
|
96
97
|
const [currentTIDHasDetailRelations, setCurrentTIDHasDetailRelations] = useState();
|
|
@@ -135,7 +136,30 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
135
136
|
if (!did)
|
|
136
137
|
return;
|
|
137
138
|
TMSpinner.show({ description: 'Loading Metadata...' });
|
|
138
|
-
let res = getMetadataResult
|
|
139
|
+
let res = getMetadataResult;
|
|
140
|
+
if (!res) {
|
|
141
|
+
try {
|
|
142
|
+
res = await SDK_Globals.tmSession?.NewSearchEngine().GetMetadataAsync(TID, did, true);
|
|
143
|
+
}
|
|
144
|
+
catch (metadataError) {
|
|
145
|
+
// Estrai ErrorCode dal campo detail se disponibile
|
|
146
|
+
let errorCode = undefined;
|
|
147
|
+
if (metadataError?.isApiException && metadataError?.response?.detail) {
|
|
148
|
+
try {
|
|
149
|
+
const detailObj = JSON.parse(metadataError.response.detail);
|
|
150
|
+
errorCode = detailObj?.ErrorCode;
|
|
151
|
+
}
|
|
152
|
+
catch (parseError) {
|
|
153
|
+
console.log("Impossibile parsare il detail dell'eccezione:", parseError);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// Se ErrorCode è -5, ignora silenziosamente, altrimenti mostra l'eccezione originale
|
|
157
|
+
if (errorCode !== -5) {
|
|
158
|
+
TMExceptionBoxManager.show({ exception: metadataError });
|
|
159
|
+
}
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
139
163
|
const origin = { fromName: res?.fromName, fromTID: res?.fromTID };
|
|
140
164
|
let dtd = res?.dtdResult;
|
|
141
165
|
let rows = dtd.rows ? dtd.rows[0] : [];
|
|
@@ -307,7 +331,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
307
331
|
}
|
|
308
332
|
else {
|
|
309
333
|
const renderedMetadata = dtd?.metadata?.filter((metadata) => handleArchiveVisibility(metadata)) ?? [];
|
|
310
|
-
const metadataList = searchResultToMetadataValues(dtd?.id, undefined, [], [], renderedMetadata, layoutMode, isReadOnlyOriginCallback(
|
|
334
|
+
const metadataList = searchResultToMetadataValues(dtd?.id, undefined, [], [], renderedMetadata, layoutMode, isReadOnlyOriginCallback(metadataDcmtOriginRef.current?.fromTID));
|
|
311
335
|
setFormDataOrig(structuredClone(metadataList));
|
|
312
336
|
setFormData(structuredClone(metadataList));
|
|
313
337
|
formDataOrigRef.current = structuredClone(metadataList);
|
|
@@ -322,7 +346,7 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
322
346
|
setIsInitialLoading(false);
|
|
323
347
|
setIsNavigating(false);
|
|
324
348
|
}
|
|
325
|
-
}, [TID, DID, layoutMode, inputFile, setMetadataList, handleReset, allowButtonsRefs, isReadOnlyOriginCallback
|
|
349
|
+
}, [TID, DID, layoutMode, inputFile, setMetadataList, handleReset, allowButtonsRefs, isReadOnlyOriginCallback]);
|
|
326
350
|
const currentSearchResults = useMemo(() => {
|
|
327
351
|
if (!formData || formData.length === 0 || !TID || !DID)
|
|
328
352
|
return [];
|
|
@@ -477,6 +501,9 @@ const TMDcmtForm = ({ TID, DID, groupId, layoutMode = LayoutModes.Update, formMo
|
|
|
477
501
|
useEffect(() => {
|
|
478
502
|
dcmtFileRef.current = dcmtFile;
|
|
479
503
|
}, [dcmtFile]);
|
|
504
|
+
useEffect(() => {
|
|
505
|
+
metadataDcmtOriginRef.current = metadataDcmtOrigin;
|
|
506
|
+
}, [metadataDcmtOrigin]);
|
|
480
507
|
useEffect(() => {
|
|
481
508
|
if (!inputFile || inputFile === null)
|
|
482
509
|
return;
|