Zum Hauptinhalt springen

Upgrade auf Version 25.1.0

gefahr

Unbedingt die aktuellen Installationsvoraussetzungen vorab prüfen!

tipp

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 Ordner ptpRequest verwendet wurde, wurde durch das neue Skript Gadget_ou.spc.ptpREQ.folder.html.Counter ersetzt 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) {

/* ... */