AKIOMA.DOCS! (EHEMALS DOCXFACTORY) EINFACHE DOKUMENTENGENERIERUNG MIT OPENEDGE - WWW.AKIOMA.COM - PROGRESS SOFTWARE

 
WEITER LESEN
AKIOMA.DOCS! (EHEMALS DOCXFACTORY) EINFACHE DOKUMENTENGENERIERUNG MIT OPENEDGE - WWW.AKIOMA.COM - PROGRESS SOFTWARE
www.akioma.com

                                   AKIOMA.DOCS!
                                (ehemals DocxFactory)
                          Einfache Dokumentengenerierung
                                    mit OpenEdge

Webinar, 22. April 2021
AKIOMA.DOCS! (EHEMALS DOCXFACTORY) EINFACHE DOKUMENTENGENERIERUNG MIT OPENEDGE - WWW.AKIOMA.COM - PROGRESS SOFTWARE
Introduction

 Housekeeping
Sie können uns nicht hören? Versuchen Sie,
sich mit dem Computer-Audio und nicht mit
dem Telefon-Audio zu verbinden

Fragen? Reichen Sie sie im Fragen-Panel auf
der rechten Seite Ihres Bildschirms ein

Aufzeichnung? Diese Sitzung wird
aufgezeichnet und innerhalb von 24
Stunden zur Verfügung gestellt

    .DOCS!-Webinar                                           2
AKIOMA.DOCS! (EHEMALS DOCXFACTORY) EINFACHE DOKUMENTENGENERIERUNG MIT OPENEDGE - WWW.AKIOMA.COM - PROGRESS SOFTWARE
▪ Name          Philipp Schmoldt

                 ▪ Position      CPO

                 ▪ E-Mail        philipp.schmoldt@akioma.de

                 Als Chief Product Officer der AKIOMA Software GmbH
                 ist Philipp für die kontinuierliche Verbesserung und
                 Erweiterung der Produkt- und Service-Pipeline
                 verantwortlich.
                 Als Diplom-Informatiker verfügt er über mehr als 15
                 Jahre Erfahrung in den Bereichen Cloud- und SaaS-
                 Architekturen, Geschäftsprozessoptimierung, sowie
                 Projekt- und Kundenanforderungsmanagement.

.DOCS!-Webinar                                                          3
AKIOMA.DOCS! (EHEMALS DOCXFACTORY) EINFACHE DOKUMENTENGENERIERUNG MIT OPENEDGE - WWW.AKIOMA.COM - PROGRESS SOFTWARE
Die Firma

 Gegründet im Jahr 2013 als AKIOMA Software KG

 Multiple awards

 Wachstum > 40 % (Ø über die letzten vier Jahre)

 Langjähriger Progress™ Partner

 Namhafte Kunden aller Größenordnungen in mehreren Ländern

  .DOCS!-Webinar                                             4
AKIOMA.DOCS! (EHEMALS DOCXFACTORY) EINFACHE DOKUMENTENGENERIERUNG MIT OPENEDGE - WWW.AKIOMA.COM - PROGRESS SOFTWARE
Unser Produktportfolio deckt alle Aspekte moderner             Portfolio

Geschäftsanwendungen

  LOW-CODE/NO-CODE PLATTFORM

  AKIOMA                                             AKIOMA.DOCS!
                                                     Lösung für die Erstellung jeder
  Next Generation                                    Art von strukturierten
  Agile Business Applications                        Geschäftsdokumenten wie z. B.
                                                     Verträge, Berichte, Handbücher,
                                                     Bewertungen.

                                                     Bestandteil von AKIOMA.SWAT!

  TOOLS & PROZESSE
  Modernste Software-Entwicklungsprozesse
  und Architektur-Best-Practices. Cloud-
  Deployment, SCM-Integration, Branching-
  Modelle, Versionierung, CI/CD, Marktplätze

  DIENSTLEISTUNGEN
  Schulung, Beratung, Customizing

          .DOCS!-Webinar                                                               5
AKIOMA.DOCS! (EHEMALS DOCXFACTORY) EINFACHE DOKUMENTENGENERIERUNG MIT OPENEDGE - WWW.AKIOMA.COM - PROGRESS SOFTWARE
AKIOMA-basierte Anwendungen profitieren von zahlreichen Funktionen                                                                                       Produkt

                                                                    Security:
                                                                     ▪ Authorization    Integration:
                                                                     ▪ Authentication                                  Logic:                              Deployment:
                                                                                         ▪ Connectivity-Layer
                                                                     ▪ Single-Sign-On                                    ▪ Business-Logic                   ▪ Versioning
                                                                                         ▪ REST/ODBC/JDBC…
                                        Documents:                   ▪ Role-based                                        ▪ UI-Logic                         ▪ Continues Integration
                                                                                         ▪ Prebuilt connectors:
                                         ▪ Create Word/Excel/PDF…    ▪ Auditing                                          ▪ Business-Rules                   ▪ Continues Deployment
   LOW-CODE/NO-CODE PLATTFORM                                                              SAP, MS-Navision,
                                         ▪ Multi-lingual                                   Salesforce, Office365,                                           ▪ Docker/Kubernetes
                                         ▪ Template based                                  Exchange…                  Development:                          ▪ Multi-Tenancy

   AKIOMA                                ▪ Richtext-Editor
                                         ▪ DocumentViewer
                                                                                                                        ▪ Source code management
                                                                                                                        ▪ Development workflows
                                                                                                                                                            ▪ Hosting AKIOMA Cloud
                                                                                                                                                            ▪ Azure, AWS…
   Die Lösung für die                                                                                                   ▪ Agile processes                   ▪ on premise
                                                                                                                        ▪ Web-based tools
   Erstellung agiler                                                                                                    ▪ Templates              Internationalization:
   Geschäftsanwendungen der                                                                                           End-user Customizing:
                                                                                                                                                          ▪ Multi-Language Data
                                                                                                                                                          ▪ UI-Languages
   nächsten Generation                                                                                                 ▪ Custom-wording                   ▪ Custom translations
                                                                                                                       ▪ Custom-logic                     ▪ Locales/Time zones
                                                                                                                       ▪ Custom-Rules
                                                                                                                       ▪ Custom-Styling
                                                                                                                       ▪ Custom-Screens                   Marketplace:
                                                                                                                       While keeping update-cabability     ▪ Deploy to Marketplaces
   TOOLS & PROCESSES                                                                                                                                       ▪ Integrate with Marketplaces
   Modernste Software-Entwicklungsprozesse                                                                              Design:                            ▪ auto-provisioning
   und Architektur-Best-Practices.                                                                                       ▪ UI & UX                         ▪ Trials
   AKIOMA ist das Framework für die                                                                                      ▪ Multi-Windowing                 ▪ buy subscriptions, users…
   Entwicklung aller Arten von komplexen,                                                                                ▪ 100+ UI-Controls                ▪ Add-Ons
   webbasierten Geschäftsanwendungen.
                                                                                                                Onboarding:
                                                                                                                    ▪ Setup
                                                                                                                    ▪ Customizing
                                                                                                                    ▪ Multi-Tenancy
          .DOCS!-Webinar                                                                                                                                                            6
AKIOMA.DOCS! (EHEMALS DOCXFACTORY) EINFACHE DOKUMENTENGENERIERUNG MIT OPENEDGE - WWW.AKIOMA.COM - PROGRESS SOFTWARE
Winner of:
Innovator‘s Award EMEA,           “We attribute a considerable part of our                                                          Unsere Mission
Rising Star Award                 success to AKIOMA”
Computerwoche:
Best in Cloud Award               Christoph Müssener, Managing Director Lucas-Nülle GmbH

 EINZIGARTIGES,                    UNERREICHTE                                             VOLLSTÄNDIG                         ABSOLUT
 MARKTFÜHRENDES                    PRODUKTIVITÄT                                           INDIVIDUALISIERBAR                  ZUKUNFTSSICHER
 USER INTERFACE
 ✓ Abbildung der komplexesten      ✓ Verkürzung der Time-to-                               ✓ Vollständig dynamisches UX        ✓ Vollständige Abstraktion des
   Daten- und UI-Strukturen          Market durch intelligente                                                                   verwendeten UI-Frameworks
                                                                                           ✓ Dynamische
   möglich                           Business-Objekte                                                                            durch unsere Rendering
                                                                                             Datendefinitionen
 ✓ Parallele Verarbeitung einer    ✓ Einsparung von IT-Ressourcen                                                                Engine
                                                                                           ✓ Feature-toggling
   beliebigen Anzahl von             durch Citizen Development                                                                 ✓ UI Repository
   unterschiedlichen                                                                       ✓ Kundenspezifische Logiken
                                   ✓ Parallele Entwicklung,                                                                    ✓ Erweiterbar
   Datensätzen                                                                             ✓ Regelbasierte Screens
                                     kontinuierliche Auslieferung
                                                                                                                               ✓ Model-driven
 ✓ Richtiges multi-windowing                                                               ✓ Updatefähig trotz individualler
                                   ✓ Reduktion der Komplexität
                                                                                             Anpassungen stets gegeben         ✓ Backend unabhängig
 ✓ Geeignet für                      und schnelle Umsetzung
   geschäftskritische                neuer Anforderungen an
   Anwendungen                       geschäftskritische
 ✓ Jeder Formfaktor möglich,         Anwendungen
   vollständig responsive

            .DOCS!-Webinar                                                                                                                                      7
AKIOMA.DOCS! (EHEMALS DOCXFACTORY) EINFACHE DOKUMENTENGENERIERUNG MIT OPENEDGE - WWW.AKIOMA.COM - PROGRESS SOFTWARE
Why AKIOMA.DOCS!?

Erstellung von Office-Dokumenten seit vielen Jahren ein wichtiges Merkmal der AKIOMA-
Anwendungen
Nach Modernisierung und Migration von GUI zu Web/Cloud: Wir haben ein Problem...
OLE Automation, ActiveX, OCX etc. sind im Web nicht verfügbar
Mögliche Alternativen:
     Progress Appserver mit dot.net und Ähnlichem → Ansätze benötigen Word/Excel zur
     eigentlichen Erstellung der Dokumente
     Reporting-Tools
          Programmierung notwendig
          Design in proprietären Tools
          Ergebnis oft nicht geeignet (bspw. Angebote)
          Ergebnis nicht (weiter) editierbar

 .DOCS!-Webinar                                                                                            8
AKIOMA.DOCS! (EHEMALS DOCXFACTORY) EINFACHE DOKUMENTENGENERIERUNG MIT OPENEDGE - WWW.AKIOMA.COM - PROGRESS SOFTWARE
Die Entscheidung
   Praktisch alle Kunden und Anwender kennen Word/Excel
   Das MS Office-Format ist dokumentiert, allerdings:
        es ist sehr komplex
        Die Spezifikation hat über 2.000 Seiten

Trotzdem wählten wir den harten Weg: Wir schufen einen Weg, Word- und Excel-Dokumente eigenständig
ohne Office generieren zu können
   20+ person-years development
   Volle Flexibilität

Das Ergebnis: AKIOMA.DOCS! zur Erstellung komplexer Office-Dokumente jeder Art. Verfügbar als
   Cloud service mit REST API
   Command line
   Bibliothek für verschiedene Programmiersprachen
   Dedizierte OpenEdge ABL-Bibliothek (Procedural + OO)

       .DOCS!-Webinar                                                                                  9
Die Entscheidung

Was heißt Word-Dokumente ohne Word erstellen?

                               .docx-Dokumente sind gezippte Dateien

    .DOCS!-Webinar                                                               10
Office Dokumente in
                   Katalogqualität

.DOCS!-Webinar                         11
So funktioniert‘s

            Stepp I:
    Designe die Vorlage
       in MS Word

  Erstellen Sie unterschiedliche
 Word-Vorlagen in Ihrem CI für
   jede Art von Dokument und
 Inhalt (Struktur, Layout, Bilder,
     Inhaltsverzeichnis etc.).

 Keine Einschränkungen: Nutzen
Sie jede Word-Funktionalität, die
           Sie wollen.
                                     Das Video dazu finden Sie hier
        .DOCS!-Webinar                                                                    12
So funktioniert‘s

              Stepp II:
          Erstelle den
       Dokumenteninhalt

  Machen Sie sich keine Gedanken
       über Layout und Styling:
Konzentrieren Sie sich ganz auf Inhalt
   und Struktur Ihrer Dokumente.
   Nutzen Sie alle leistungsstarken
 Funktionalitäten von AKIOMA.Docs!
  bereichsübergreifend mit all Ihren
  Kollegen - ohne eine einzige Zeile
                Code.
                                         Das Video dazu finden Sie hier
          .DOCS!-Webinar                                                                      13
So funktioniert‘s

          Stepp III:
     Generiere das
   Geschäftsdokument

 Wählen Sie die richtige Vorlage
für den Druck des Angebots und
  lassen Sie AKIOMA.Docs! die
         Arbeit machen:

    1. Die Strukturanalyse

                                   Das Video dazu finden Sie hier
       .DOCS!-Webinar                                                                   14
So funktioniert‘s

           Step III:
     Generiere das
   Geschäftsdokument

 Wählen Sie die richtige Vorlage
für den Druck des Angebots und
  lassen Sie AKIOMA.Docs! die
         Arbeit machen:

    1. Die Strukturanalyse

2. Inhalt und Daten dazuladen

3. Office-Dokument erstellen

                                   Das Video dazu finden Sie hier
       .DOCS!-Webinar                                                                   15
So funktioniert‘s

           Stepp IV:
    Überzeugen Sie Ihre
    Kollegen und Kunden

  Liefern Sie Ihrem Kunden ein
       100 % gültiges und
professionelles Office-Dokument
     auf Basis der von Ihnen
     gewählten Vorlage mit
 hunderten von Seiten, Bildern,
      Texten, Diagrammen,
    Unterkapiteln und das in
           Sekunden…
                                  Das Video dazu finden Sie hier
       .DOCS!-Webinar                                                                  16
OpenEdge Beispielapplikation                                                       Integration

               Verkauf von komplexen Produkten
               OpenEdge Backend + Web-UI
               Entwickelt mit der AKIOMA Low-Code/No-Code-Plattform
               AKIOMA.DOCS! zur Erstellung von anspruchsvollen Angeboten

           Schauen wir uns eine OpenEdge-Anwendung an, die AKIOMA.DOCS! zur Erstellung
           von Dokumenten verwendet.

     .DOCS!-Webinar                                                                              17
Live-Demo

.DOCS!-Webinar               18
Features

AKIOMA.DOCS! unterstützt insbesondere folgende Word-
Funktionalitäten:
  Beliebige strukturierte/verschachtelte Dokumente
  Kopf- und Fußzeilen
  Unterschiedliche Seitenabschnitte (z. B. mit unterschiedlichen
  Ausrichtungen, Papiergrößen etc.)
  Inhaltsverzeichnis, Bilder, (verschachtelte) Tabellen
  Beliebigen HTML-formatierten Text
  Integration kompletter (Sub-)Word-Dokumente
  Diagramme, Barcodes, QR-Codes
  Macro-Support
  …
      .DOCS!-Webinar                                                          19
Live-Demo

.DOCS!-Webinar               20
Integration von Progress OpenEdge                                           Integration

               Dedizierte Bibliothek für ABL
                      Integrierbar mit nur wenigen Zeilen Code
                      Prozedural und/oder objektorientiert
               Extreme Performance (100+ Seiten pro Sekunde)
               Läuft auf allen Progress-unterstützten Betriebssystemen
               (Windows, Linux, Unix)
               Umgebungen: GUI-client, TTY, Appserver, PASOE, Web
               Beachte: Veraltete DocxFactory-Version bringen aktuellen PASOE
               zum Absturz

     .DOCS!-Webinar                                                                       21
Integration ohne Coding                                            Integration

               Die einfachste und schnellste Art DOCS zu nutzen:
                      Erstellung des Templates in Word
                      Export der Daten als JSON
                      Nutzung der Merge-Funktionalität per CLI

           → Kein Coding notwendig

     .DOCS!-Webinar                                                              22
Coding-Stuff

.DOCS!-Webinar                  23
OE-Integration: Word                                                                                    Code Sample 1
                              {slibooxml/slibdocx.i}

                              do on error undo, leave:

                                 etime(yes).

Compile .DOCX to .DFW            run docx_compileIfChanged(search("samples/templates/special_fields.docx"), "").

Load the template                run docx_load(search("samples/templates/special_fields.dfw")).

                                 run   docx_setClipboardValue("Webinar",   “Date", "2021-04-22T10:00:00").
                                 run   docx_setClipboardValue("Webinar",   "Active", no).
                                 run   docx_setClipboardValue("Webinar",   “Logo", search("samples/webinar_logo.png")).
                                 run   docx_setClipboardValue("Webinar",   “Description",
Load the parts, fields                 "An unordered list:" +
and the values                         "" +
                                       "List item" +
                                       "List item" +
                                       "List item" +
                                       "").

Paste it to the document         run docx_paste("Webinar").

Save to .docx                    run docx_save(session:temp-dir + "special_fields_new.docx").

                                 message "Completed (in" round(etime(no) / 1000, 3) "seconds)".

                              end. /* on error undo, leave */

                              if docx_getLastErrorFlag() then
                                  message docx_getLastErrorDesc() view-as alert-box.

             .DOCS!-Webinar                                                                                               24
OE-Integration: Word (objektorientiert)                                                              Code Sample 1
                              DEFINE VARIABLE i AS INTEGER NO-UNDO.
                              ETIME(TRUE).

Load the template             WordProcessingMerger:loadTemplate("/opt/DocxFactory/exercises/templates/word_paging.dfw").

                              WordProcessingMerger:paste("Account").
                              DO i = 1 to 10:
                                  WordProcessingMerger:paste("Withdraw").
                              END. /* 1 to 10 */

                              DO i = 1 to 9:
                                  WordProcessingMerger:paste("Deposit").
                              END. /* 1 to 9 */

                              WordProcessingMerger:paste("Total").
Loading and pasting           WordProcessingMerger:paste("Summary").
Parts, fields and values
                              DO i = 1 to 3:
                                  WordProcessingMerger:setClipboardValue("Comment", "Comment",
                                      "CommentLine1~n" +
                                      "CommentLine2~n" +
                                      "CommentLine3~n" +
                                      "CommentLine4~n" +
                                      "CommentLine5").
                                  WordProcessingMerger:paste("Comment").
                              END. /* 1 to 3 */

Save to .docx                 WordProcessingMerger:saveDoc("/tmp/word_paging.docx").

                              CATCH oErr AS Progress.Lang.AppError:
                                  MESSAGE oErr:ReturnValue VIEW-AS ALERT-BOX.
                              END CATCH.
             .DOCS!-Webinar                                                                                                25
OE-Integration: Excel                                                                                                                      Code Sample 2
                                 /* (c) Copyright AKIOMA Software GmbH */
                                 {slibooxml/slibxlsx.i}
                                 {slib/slibos.i}
                                 {slib/sliberr.i}
                                 define var cError       as char no-undo.
                                 define var cErrorMsg    as char no-undo.
                                 define var cStackTrace as char no-undo.
 It‘s a query                    open query qOrder
                                     for each Customer
                                         no-lock,
                                         each Order
                                         where Order.CustNum = Customer.CustNum
                                         no-lock,
                                         each OrderLine
                                         where OrderLine.OrderNum = Order.OrderNum
                                         no-lock,
                                         first Item
                                         where Item.ItemNum = OrderLine.ItemNum
                                         no-lock.

                                 /* 1. Every file starts out as a template */
                                 etime( yes ).
                                 run xlsx_copyTemplate(
                                     input "stXlsx",                                     /* Stream name */
                                     input "samples/templates/replace_pivot.xlsx" ).     /* Template file */
                                 /* The field columns location and ranges are defined in Excel, using named ranges. */

                                 /* 2. Replace template data with temp-table data */
                                  run xlsx_replaceLongRange(
                                      input "stXlsx",                                     /* Stream name */
                                     input query qOrder:handle,                          /* Dataset or temp-table/query/buffer handle */
                                     input "OrderNum         = Order.OrderNum,"          /*  =  mapping */
 Lets have a look to                     + "LineNum          = OrderLine.LineNum,"
                                         + "OrderDate        = Order.OrderDate,"
 the relevant part                       + "ItemName         = Item.ItemName,"
                                         + "CustName         = Customer.Name,"
                                         + "Country          = Customer.Country,"
                                         + "ExtendedPrice    = OrderLine.ExtendedPrice",
                                     input "",                                           /* Buffer can-do list */
                                     input "" ).
                                                                      /* Field can-do list */
                                  /* 3. Save file */
                                  run xlsx_save(

                                     input "stXlsx",
                                     input os_getNextFile( session:temp-dir + "replace_pivot_new.xlsx" ) ).

                                        /* os_getNextFile( ) adds a counter to the file name incase the file already exists */
                .DOCS!-Webinar    message etime( no ) view-as alert-box.                                                                                   26
OE-Integration: Excel                                                                                     Code Sample 2
                                 /* 1. Every file starts out as a template */

                                 etime( yes ).
                                 run xlsx_copyTemplate(
                                     input "stXlsx",                                      /* Stream name */
Load the template                    input "samples/templates/replace_pivot.xlsx" ).      /* Template file */

                                 /* 2. Replace template data with temp-table data */

                                 run xlsx_replaceLongRange(

                                    input   "stXlsx",                             /* Stream name */
                                    input   query qOrder:handle,                  /* Dataset or temp-table/query/buffer handle */
                                    input   "OrderNum         = Order.OrderNum," /*  =  mapping */
                                        +   "LineNum          = OrderLine.LineNum,"
Merge data                              +   "OrderDate        = Order.OrderDate,"
                                        +   "ItemName         = Item.ItemName,"
                                        +   "CustName         = Customer.Name,"
                                        +   "Country          = Customer.Country,"
                                        +   "ExtendedPrice    = OrderLine.ExtendedPrice",
                                    input   "",                                            /* Buffer can-do list */
                                    input   "" ).                                          /* Field can-do list */

                                 /* 3. Save file */

                                 run xlsx_save(

Save to .xlsx                       input "stXlsx",
                                    input os_getNextFile( session:temp-dir + "replace_pivot_new.xlsx" ) ).

                                        /* os_getNextFile( ) adds a counter to the file name incase the file already exists */
                                 message etime( no ) view-as alert-box.
                .DOCS!-Webinar                                                                                                   27
Zusammenfassung

        Template-Gestaltung komplett in Word/Excel, ohne Programmierung
        Sämtliche Word-Funktionalitäten stehen zur Verfügung
             Beliebige strukturierte/verschachtelte Dokumente, inkl. Kopf- und Fußzeilen
             Unterschiedliche Seitenabschnitte (z. B. mit unterschiedlichen Ausrichtungen,
             Papiergrößen etc.)
             Inhaltsverzeichnis, Bilder, (verschachtelte) Tabellen
             Beliebigen HTML-formatierten Text
             Diagramme, Barcodes, QR-Codes
             Macro-Support

        Die Vorlage enthält nicht nur einfache Platzhalter, sondern auch Bereiche
        AKIOMA analysiert die Word-Vorlage und zerlegt sie in ihre Einzelteile
        Die Daten werden mit den einzelnen Teilen zu einem neuen Dokument
        zusammengeführt

.DOCS!-Webinar                                                                                                 28
                                                                                                  Slide 28
Zusammenfassung

The only way for generating business documents easily and efficiently
        .DOCS!-Webinar                                                                    29
Contact us

    Kontaktieren Sie uns
für eine Trial-Version oder
 einen Proof of Concept!

    AKIOMA Software GmbH
                                      CEO & Founder               Chief Product Officer
    Mönchsbergstraße 1/2
    71691 Freiberg am Neckar
                                         Mike Liewehr                 Philipp Schmoldt
    Fon: +49 (0) 7141 / 30 995 - 10
    Fax: +49 (0) 7141 / 30 995 – 19      +49 (7141) 30995-10          +49 (7141) 30995-10
    www.akioma.de                        Mike.Liewehr@akioma.de       Philipp.Schmoldt@akioma.de
    mike.liewehr@akioma.de               www.akioma.de                www.akioma.de

       .DOCS!-Webinar                                                                          30
Questions? Please ask!

Mike Liewehr             Philipp Schmoldt
+49 (7141) 30995-10      +49 (7141) 30995-10
Mike.Liewehr@akioma.de   Philipp.Schmoldt@akioma.de
Sie können auch lesen