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
decreaseFieldRightOnFileViewScriptSkript, um beispielsweise Felder auszublenden - Im
hideRegisterOnFileViewScriptSkript, um Register auszublenden - Im
approvedButtonsSkript, 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: VerstecktreadOnly: Schreibgeschütztvisible: Sichtbarwriteable: Bearbeitbar
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");
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: Verstecktaccess.readOnly: Schreibgeschütztaccess.visible: Sichtbaraccess.writeable: Bearbeitbar
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 ).
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");
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: Ausgeblendetoptions.visibility.visible: Angezeigt
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;
}
});
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 .
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");
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: Ausgeblendetoptions.visibility.visible: Angezeigt
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;
}
});
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;
}
Felder, die nicht auf dem Mappentypen existieren, werden ignoriert und nicht als leer behandelt.