Voraussetzungen
Du brauchst
pdf.js als externe Bibliothek auf Ihrer Simplifier-Instanz verfügbar:
Schritt 1 – Clientseitiges Business Objekt
Erstellen Sie eine
Clientseitiges Business Objekt (BO)
Funktionsaufruf zur Implementierung der Logik der Volltextsuche:
// input: 'base64' (String), 'searchValue' (String) // output: 'result' (Boolean) var base64 = oPayload.base64; base64 = base64.replace("data:application/pdf;base64,", ""); var pdfData = atob(base64); function searchPage(doc, pageNumber) { return doc.getPage(pageNumber).then(function(page){ return page.getTextContent();}).then(function(content) { var text = content.items.map(function(i) {return i.str;}).join(''); var re = new RegExp(oPayload.searchValue); return re.test(text);}); } var loading = pdfjsLib.getDocument({data: pdfData}); loading.promise.then(async function(doc) { var result = false; for (var i = 1; i <= doc.numPages; i++) { result = await searchPage(doc, i); if (result) { break; } } return result;}).then(function(searchResult) { fnSuccess({ result: searchResult }) }).catch(console.error);
Schritt 2 – Anwendungseditor: Fügen Sie pdf.js als externe Bibliothek hinzu
Hinzufügen pdf.js als
externe Bibliothek zu Ihrer Simplifier-App (
Knowledge Base-Artikel):
Schritt 3 – UI Designer: Benutzereingabe
Verwenden Sie das Widget FileUploader (1), damit der Benutzer ein PDF-Dokument zur Analyse auswählen kann.
Fügen Sie zusätzlich ein Eingabe-Widget (2) zur Eingabe des Suchwerts hinzu.
Mit dem ‘Suchen’-Button (3) startet der Nutzer die Volltextsuche.
Schritt 4 – Process Designer: Story
Erstellen Sie eine Story für den Workflow:
- Presseveranstaltung des ‘search’-Buttons abonnieren
- Extrahieren Sie die Datei aus FileUploader mit einem Skriptblock:
// replace "FileUploader" with the ID of your FileUploader widget var uploaderInput = this.getView().byId("FileUploader"); if (uploaderInput.getValue() !== "") { var files = uploaderInput.oFileUpload.files; if (files.length === 1) { var file = files[0]; } } // create a global variable "uploaderFile" (String) to store the file this.getGlobals().setVar("uploaderFile", file);
- Verwenden Sie den Funktionsaufruf ‘readFileAsDataUrl’ aus dem BO ‘SIMP_FileHelper, um den Base64-String des ausgewählten PDF-Dokuments abzurufen
- Eingabe: ‘uploaderFile’ (globale Variable)
- Ausgabe: ‘base64’ (neue globale Variable, String)
- Verwenden Sie den clientseitigen Funktionsaufruf “fullTextSearch” aus Schritt 1 , um das Ergebnis der Volltextsuche abzurufen
- Eingabe: ‘base64’ (globale Variable), Suche ‘Wert’ (Eingabe-Widget)
- Ausgabe: Volltextsuche ‘Ergebnis’
Schritt 4 – Ergebnis
Um das Ergebnis anzuzeigen, können Sie eine
Widget “ObjectStatus” und geben Sie die Status- und Symboleigenschaft mit einer Bedingungsform im Prozess-Designer an
(1):
- status = ‘Erfolg’ bei positivem Ergebnis (true) (2)
- status = ‘Fehler’ bei negativem Ergebnis (falsch) (3)