Zum Hauptinhalt springen

DocFileHelper

Die ou.sp.DocFileHelper bietet eine kleine Ansammlung an hilfreichen Funktionen für documents Mappen.

Verwendung

Für was genau kann ich diese Klasse denn verwenden?

  • Im decreaseFieldRightOnFileViewScript Skript, um beispielsweise Felder auszublenden
  • Im hideRegisterOnFileViewScript Skript, um Register auszublenden
  • Im approvedButtons Skript, um benutzerdefinierte Aktionen auszublenden

DocFileHelper Members

setFieldAccess

Mittels dieser Funktion kann ein spezifisches Feld berechtigt werden. Die Berechtigung erfolgt über den zweiten Parameter. Folgende Werte stehen zur Auswahl:

  • hidden: Versteckt
  • readOnly: Schreibgeschützt
  • visible: Sichtbar
  • writeable: Bearbeitbar
warnung

Dieses Skript sollte ausschließlich in einem decreaseFieldRightOnFileViewScript Skript verwendet werden!

DocFileHelper.setFieldAccess(fieldName: string, access: "hidden" | "visible" | "readOnly" | "writeable"): boolean;

Beispiel decreaseFieldRightOnFileViewScript Skript ou.cust.filetype.property.dFROnFileViewScript

context.enableModules();
const { DocFileHelper } = require("ou.sp.DocFileHelper");

const docFile = context.file;

DocFileHelper.setFieldAccess("Mappenfeld1", "hidden");
hinweis

Wird das Feld nicht gefunden, wird ein false zurückgegeben.

setFieldsAccess

Diese Funktion iteriert die Mappenfelder ( enumval ) und ruft für jedes Feld die Parameter Callback Funktion auf.

Je nach Rückgabewert wird das Feld:

  • access.hidden: Versteckt
  • access.readOnly: Schreibgeschützt
  • access.visible: Sichtbar
  • access.writeable: Bearbeitbar
warnung

Dieses Skript sollte ausschließlich in einem decreaseFieldRightOnFileViewScript Skript verwendet werden!

DocFileHelper.setFieldsAccess(callback: (
options: {
fieldName: string;
fieldIndex: number;
enumval: Array<string>;
},
access: {
hidden: "-rw";
visible: "+rw";
readOnly: "-w";
writeable: "+w";
}
) => string | undefined);

Beispiel decreaseFieldRightOnFileViewScript Skript ou.cust.filetype.property.dFROnFileViewScript

context.enableModules();
const { DocFileHelper } = require("ou.sp.DocFileHelper");

const docFile = context.file;

DocFileHelper.setFieldsAccess((options, access) => {
// Mappenfeld1 in Status 20 ausblenden
if (options.fieldName === "mappenFeld1" && docFile.globalState === "20") {
return access.hidden;
}

// Alle Mappenfelder schreibgeschützt
if (docFile.globalState === "100") {
return access.readOnly;
}
});

setRegisterVisibility

Diese Funktion setzt die Sichtbarkeit eines Registers (im enumval ).

warnung

Dieses Skript sollte ausschließlich in einem hideRegisterOnFileViewScript Skript verwendet werden!

DocFileHelper.setRegisterVisibility(registerName: string, visible: boolean): boolean;

Beispiel hideRegisterOnFileViewScript Skript ou.cust.filetype.property.hROnFileViewScript

context.enableModules();
const { DocFileHelper } = require("ou.sp.DocFileHelper");

const docFile = context.file;

// duplicates Register ausblenden, wenn nicht in Status 95
DocFileHelper.setRegisterVisibility("duplicates", docFile.globalState !== "95");
hinweis

Wird visible=true übergegeben und das Register nicht sichtbar ist, wird es weiterhin nicht angezeigt.

setRegistersVisibility

Diese Funktion iteriert die Register ( enumval ) und ruft für jedes Register die Parameter Callback Funktion auf.

Je nach Rückgabewert wird das Register:

  • options.visibility.hidden: Ausgeblendet
  • options.visibility.visible: Angezeigt
warnung

Dieses Skript sollte ausschließlich in einem hideRegisterOnFileViewScript Skript verwendet werden!

DocFileHelper.setRegistersVisibility(callback: (
options: {
registerName: string;
registerIndex: number;
enumval: Array<string>;
visibility: {
visible: true;
hidden: false;
}
}
) => boolean | undefined);

Beispiel hideRegisterOnFileViewScript Skript ou.cust.filetype.property.hROnFileViewScript

context.enableModules();
const { DocFileHelper } = require("ou.sp.DocFileHelper");

const docFile = context.file;

DocFileHelper.setRegistersVisibility((options, access) => {
// duplicates Register ausblenden, wenn nicht in Status 95
if (options.registerName === "duplicates" && docFile.globalState !== "95") {
return options.visibility.hidden;
}
});
hinweis

Wird options.visibility.visible zurück gegeben, aber das Register ist nicht sichtbar, wird es nicht angezeigt.

setButtonVisibility

Diese Funktion setzt die Sichtbarkeit eines Buttons im enumval .

warnung

Dieses Skript sollte ausschließlich in einem approvedButtons Skript verwendet werden!

DocFileHelper.setButtonVisibility(buttonName: string, visible: boolean): boolean;

Beispiel approvedButtons Skript ou.cust.filetype.action.approvedButtons

context.enableModules();
const { DocFileHelper } = require("ou.sp.DocFileHelper");

const docFile = context.file;

// delete Button ausblenden, wenn in Status 100
DocFileHelper.setButtonVisibility("delete", docFile.globalState !== "100");
hinweis

Wird visible=true übergegeben, die benutzerdefinierte Aktionen ist jedoch nicht sichtbar, bleibt diese ausgeblendet.

setButtonsVisibility

Diese Funktion iteriert die Benutzerdefinierte Aktionen ( enumval ) und ruft für jede Aktion die Parameter Callback Funktion auf.

Je nach Rückgabewert wird das Feld:

  • options.visibility.hidden: Ausgeblendet
  • options.visibility.visible: Angezeigt
warnung

Dieses Skript sollte ausschließlich in einem approvedButtons Skript verwendet werden!

DocFileHelper.setButtonsVisibility(callback: (
options: {
ButtonsName: string;
ButtonsIndex: number;
enumval: Array<string>;
visibility: {
visible: true;
hidden: false;
}
}
) => boolean | undefined);

Beispiel approvedButtons Skript ou.cust.filetype.action.approvedButtons

context.enableModules();
const { DocFileHelper } = require("ou.sp.DocFileHelper");

const docFile = context.file;

DocFileHelper.setButtonsVisibility((options, access) => {
// Alle Buttons ausblenden, wenn in Status 100
if (docFile.globalState === "100") {
return false;
}

// delete Button ausblenden, wenn in Status 100
if (options.ButtonsName === "delete" && docFile.globalState === "100") {
return options.visibility.hidden;
}
});
hinweis

Wird options.visibility.visible zurück gegeben, die benutzerdefinierte Aktionen ist jedoch nicht sichtbar, bleibt diese ausgeblendet.

validateMandatoryFields

Diese Funktion validiert, dass alle übergebenen Felder in einer Mappe gefüllt sind.

DocFileHelper.validateMandatoryFields(docFile: DocFile, fields: string[]): { isValid: boolean; missingFields: string[] }

Beispielverwendung in einem Skript:

context.enableModules();
const { DocFileHelper } = require("ou.sp.DocFileHelper");

try {
const result = DocFileHelper.validateMandatoryFields(docFile, ["recipient", "vatCode"]);

if (!result.isValid) {
throw new Error(
context.getFromSystemTable("VALIDATION_ERROR_MANDATORY_FIELDS") + "\n" + result.missingFields.join("\n")
);
}
} catch (error) {
context.errorMessage = error.message;
context.returnValue = -1;
}
hinweis

Felder, die nicht auf dem Mappentypen existieren, werden ignoriert und nicht als leer behandelt.