Upgrade auf Version 25.1.0
Unbedingt die aktuellen Installationsvoraussetzungen vorab prüfen!
Diese Anleitung berücksichtigt immer nur den Sprung von der vorhergehenden Version zu der gerade beschriebenen Version. Bei Upgrades über mehrere Versionen hinweg müssen alle Änderungen der Zwischenversionen ebenfalls beachtet werden! Siehe genereller Ablauf von Upgrades.
Was wurde gemacht ?
Zusammenfassung
- Alle Vue-Gadgets wurden auf React migriert bzw. auf die schon vorhandene React-Variante umgestellt REQ-15
- Das Gadget-Skript
Gadget_ou.spc.filetype.folder.html.Counter, welches an dem OrdnerptpRequestverwendet wurde, wurde durch das neue SkriptGadget_ou.spc.ptpREQ.folder.html.Counterersetzt POM-442 - Wenn der fachliche Prüfer gleichzeitig der Freigeber ist und den Betrag freigeben darf, wird der Freigabepfad nun korrekt geupdated INV-609
Manuell auszuführende Schritte
Scripting
Gadget_ou.cust.ptpREQ.filetype.field.cover (REQ-15)
Siehe Migration React File-Cover.
ou.cust.ptpINV.lib.gadgets.verification (REQ-15)
Um den neuen React-MultiTable im Register "Informationen" zu verwenden muss folgender Import hinzugefügt werden:
var ou_sp_gadget_TableGadgetReact_1 = require("ou.sp.gadget.TableGadgetReact");
Anschließend muss die Instanziierung des Gadgets ausgetauscht werden.
InformationVerificationGadgetBuilder.createGadget = function (entries) {
/* Neuer Code */
return new ou_sp_gadget_TableGadgetReact_1.TableGadgetReact(this.getOptions(entries));
/* Ende neuer Code */
};
Gadget_ou.spc.ptpREQ.folder.html.Counter (POM-442)
Da das Skript Gadget_ou.spc.filetype.folder.html.Counter durch ein neues Skript Gadget_ou.spc.ptpREQ.folder.html.Counter ersetzt wurde, muss überprüft werden, ob ein zugehöriges cust-Skript Gadget_ou.cust.filetype.folder.html.Counter mit Customizing existiert (Vergleich mit Inhalt von Gadget_ou.spc.ptpREQ.folder.html.Counter).
Sofern das genannte cust-Skript vorhanden ist UND Customizing enthält, muss ein neues cust-Skript Gadget_ou.cust.ptpREQ.folder.html.Counter mit dessen Customizing angelegt werden (hierbei die Library SDK Dokumentation zu spc-Skripten mit direkt ausführbarem Code beachten).
Achtung: Das alte Skript Gadget_ou.spc.filetype.folder.html.Counter sowie dessen zugehöriges cust-Skript wurde auch in den Produkten OUSP Postman (bis einschl. Version 25.0.1) und OUSP Invoice (bis einschl. Version 24.0.1) verwendet. Sofern diese Produkte installiert sind, dürfen die beiden Skripte nur dann gelöscht werden, wenn die installierten Versionen neuer als die eben Genannten sind.
ou.cust.ptpREQ.workflow.decision.checkAfterVerify (INV-609)
Folgender Import kann entfernt werden:
var ou_spc_ptpREQ_lib_release_list_functions_1 = require("ou.spc.ptpREQ.lib.release.list.functions");
Anschließend muss diese If-Bedingung angepasst werden.
Vorher:
// Wenn der aktuelle Benutzer der Freigeber ist und den Betrag freigeben darf, ist keine weitere Freigabe notwendig.
/* Code ab hier anpassen */
if (context.currentUser === docFile.releaseUser && isUserAllowedToReleaseAmount(context.currentUser, docFile.requestedAmount)) {
var allowedMessage = "Fachlicher Freigeber ".concat(context.currentUser, " darf Betrag ").concat(docFile.requestedAmount, " freigeben");
logger.info(allowedMessage);
docFile.insertStatusEntry("Betragsfreigabe", allowedMessage);
// In diesem Fall müssen alle Freigabeeinträge als inaktiv markiert werden.
var updatedList = (0, ou_spc_ptpREQ_lib_release_list_functions_1.markAllAsInactive)(JSON.parse(docFile.verifications || "[]"));
docFile.setFieldValue("verifications", JSON.stringify(updatedList));
return false;
}
/* Ende Code anpassen */
Nachher:
// Wenn der aktuelle Benutzer der Freigeber ist und den Betrag freigeben darf, ist keine weitere Freigabe notwendig.
/* Neuer Code */
if (context.currentUser === docFile.releaseUser && isUserAllowedToReleaseAmount(context.currentUser, docFile.requestedAmount) && ou_spc_ptpREQ_settings_1.settings.minimumNumberOfReleaseUsers === 1) {
var allowedMessage = "Fachlicher Freigeber ".concat(context.currentUser, " darf Betrag ").concat(docFile.requestedAmount, " freigeben");
logger.info(allowedMessage);
docFile.insertStatusEntry("Betragsfreigabe", allowedMessage);
var updatedList = (0, ou_spc_ptpREQ_lib_release_list_1.markCurrentAsReleased)({
amount: docFile.requestedAmount,
file: docFile,
releaseList: JSON.parse(docFile.verifications || "[]"),
executingReleaseUser: docFile.releaseUser
});
docFile.setFieldValue("verifications", JSON.stringify(updatedList));
docFile.sync();
return false;
}
/* Ende neuer Code */
ou.cust.ptpINV.lib.gadgets.verification (INV-609)
Hier muss der Spalte message der Optionen, die in der Funktion
CockpitVerificationGadgetBuilder.getOptions zurückgegeben werden, das
Attribut disableInternationalization: true, hinzugefügt werden, damit
html-Tags, die Strichpunkte enthalten, korrekt angezeigt werden.
/* ... */
CockpitVerificationGadgetBuilder.getOptions = function (entries, maxNumberOfVerificationRows) {
var verifications = this.parseEntries(entries, maxNumberOfVerificationRows);
return {
showOptions: false,
showHeader: false,
showFooter: false,
hover: false,
border: false,
bordered: false,
striped: false,
id: "verification",
allowEdit: false,
allowInsert: false,
allowDelete: false,
select: false,
rows: verifications,
rowStyle: function rowStyle(opt) {
return opt.row.isCurrent ? "font-weight: bold;" : "";
},
columns: {
status: {
type: "icon",
label: "Status",
width: "30px"
},
message: {
label: "Info",
/* Neuer Code */
disableInternationalization: true,
/* Ende neuer Code */
attributes: {
title: function title(value, opts) {
/* ... */