arrow-left

Only this pageAll pages
gitbookPowered by GitBook
triangle-exclamation
Couldn't generate the PDF for 422 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

brixxbox documentation

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Mandanten und Währungsfähigkeit

Ein IT-System, das mandanten- und währungsfähig ist, bietet viele Vorteile für Unternehmen, die in verschiedenen Ländern oder Märkten tätig sind.

Ein mandantenfähiges IT-System ermöglicht es, mehrere rechtlich selbstständige Einheiten innerhalb eines Systems zu verwalten, ohne dass Daten oder Prozesse vermischt werden. Dies erleichtert die Konsolidierung, das Reporting und die Compliance.

Ein währungsfähiges IT-System ermöglicht es, Transaktionen in verschiedenen Währungen durchzuführen, zu bewerten und abzurechnen, ohne dass manuelle Umrechnungen oder Anpassungen erforderlich sind.

Dies erhöht die Genauigkeit, die Effizienz und die Transparenz. Ein IT-System, das sowohl mandanten- als auch währungsfähig ist, kann also die Flexibilität, die Skalierbarkeit und die Wettbewerbsfähigkeit eines Unternehmens verbessern.

Sofern Ihr Einsatz-Szenario es erfordert können Sie mit brixxbox Mehr-Mandantensysteme erstellen, sowie Systeme die mit mehreren Währungen agieren müssen.

Einstieg und Feature-Übersicht

chevron-rightWas ist brixxbox?hashtag

Die brixxbox ist eine App-Builder Low-Code-Plattform, mit der kommerzielle oder administrative Anwendungen erstellt werden können.

Auszug möglicher Anwendungsfälle:

  • Web-Apps

  • online-Formulare mit Backend

  • B2B-Portale

  • AddOns zu bestehenden Systemen

  • ganzheitliche Systeme, wie z.B: ERP-Systeme, CRM-Systeme, SaaS-Lösungen, etc.

Die Plattform bietet eine intuitive Benutzeroberfläche, mit der man die gewünschten Funktionen per Drag-and-Drop auswählen und anpassen kann. Die erstellten Anwendungen sind cloudbasiert, skalierbar und sicher.

chevron-rightWelche Zielgruppe hat brixxbox?hashtag

Zu unseren Kunden gehörten IT-Unternehmen und Freelancer. Unsere Kunden nutzen unsere Plattform für Ihre Kundenprojekte.

Unsere Kunden erstellen Ihre eigenen Lösungen (White-Labeling möglich) und vermarkten Diese an Ihre Kunden.

chevron-rightHinweise zur Projektmethodikhashtag

Dank unserer Low-Code-Technologie können unsere Partner jedes Kundenprojekt individuell betrachten, die bedeutet im Detail:

Spezielle Kundenanforderungen können individuell umgesetzt werden, ohne Rücksicht auf andere Projekte nehmen zu müssen

  • Gerade bei vielen Standard-Anbietern ist dies der Fall und individuelle Wünschen können nur in einem ganz engen Rahmen realisiert werden

Egal welche Anwendung erstellen wollen, Sie profitieren stets von unseren integrierten Feautures (Auszug):


Viele unserer free-Trial User interessieren sich auch für folgende Themengebiete:

Anforderungen werden direkt mit dem Berater besprochen, der die Wünsche sodann auch umsetzt.

  • ·Bei Standard-Anbietern werden die Anforderungen in der Regel von der Entwicklung realisiert, was zu Informationsverlust und Verzögerung führen kann

  • Rollen und Rechtkonzept bis auf Feldebene
  • Mandanten und Währungsfähigkeit

  • Multi-Language (automatische Übersetzung)

  • Integrierte KI

  • Umfassende Schnittstellen-Technologie

  • Integriertes Archiv

  • Modernes Design
    cloudbasierte Webanwendung (responsive)
    Integrierte MS-SQL Datenbank
    Technische Übersicht
    Praxisbeispiele

    Responsive Design

    Mit brixxbox erstellte Anwendungen sind responsive, das heißt sie passen sich automatisch an die Bildschirmgröße an.

    brixxbox setzt dabei auf die Bootstrap- Methodik.

    Bootstrap enthält ein reaktionsfähiges, für Mobilgeräte geeignetes, flüssiges Rastersystem, das mit zunehmender Größe des Geräts oder des Ansichtsfensters auf bis zu 12 Spalten skaliert.

    Integrierte KI

    KI (künstliche Intelligenz) ist in vielen Bereichen der Software-Entwicklung von großer Bedeutung und der Low Code-Anwendungsbereich ist keine Ausnahme. Low Code-Software bietet visuelle Drag-and-Drop-Tools, die es Benutzern ermöglichen, benutzerdefinierte Anwendungen ohne tiefgreifende Programmierkenntnisse zu erstellen und zu verwalten. KI kann in diesen Prozess eingebunden werden, um die Entwicklung von Anwendungen noch schneller und einfacher zu gestalten.

    Eines der Hauptanwendungsgebiete von KI in Low Code ist die Automatisierung von Workflows. Mit Hilfe von KI-Technologien wie maschinellem Lernen und natürlicher Sprachverarbeitung können Low Code-Anwendungen automatisiert werden, um Daten einzugeben, Prozesse auszuführen und Benachrichtigungen zu senden. Dies kann die Effizienz von Unternehmen erheblich verbessern und den Bedarf an manueller Arbeit reduzieren.

    KI kann auch in der Analyse von Daten eingesetzt werden, um Unternehmen dabei zu helfen, bessere Entscheidungen zu treffen. Low Code-Anwendungen können mit KI-Algorithmen ausgestattet werden, die große Mengen von Daten analysieren und wichtige Insights bereitstellen, die für die Geschäftsführung von großer Bedeutung sein können.

    Insgesamt bietet der Einsatz von KI in Low Code-Anwendungen viele Vorteile für Unternehmen. Es kann die Effizienz erhöhen, den Bedarf an manueller Arbeit reduzieren und wichtige Insights liefern, die bei der Entscheidungsfindung helfen. Wenn Sie mehr über die Möglichkeiten von KI in Low Code-Anwendungen erfahren möchten, empfehlen wir Ihnen, sich mit uns in Verbindung zu setzen. Wir stehen Ihnen gerne zur Verfügung, um Ihnen bei der Entwicklung von Low Code-Anwendungen mit KI-Unterstützung zu helfen.

    Unser brixxbot ist nur ein Beispiel, wie KI Sie innerhalb der brixxbox unterstützen kann:

    Multi-Language

    Dank automatischer Übersetzung sind Ihre brixxbox-Anwendungen direkt multilingual! Natürlich steht aber auch einem manuellen Feinschliff der Übersetzungen nichts im Weg.

    Hinweis:

    Wir empfehlen die Konfiguration in englisch vorzunehmen, um die besten Ergebnisse im Hinblick auf die Übersetzung zu erhalten.

    Sie können die Übersetzung innerhalb des App-Designers oder im globalen Bereich steuern, siehe Screenshot:

    click to expand

    Technische Übersicht

    Hier erhalten Sie einen technischen Überblick. Wenn Sie konkrete Einzelfragen haben, kontaktieren Sie uns gerne.

    chevron-rightTechnologiehashtag

    brixxbox setzt auf modernste, zukunftsorientierte Technologien wie das ASP.NET-Core-Framework sowie SQL-Datenbanken und Cloud-Computing von Microsoft.

    Ihre Anwendungen erhalten eine eigene, Firewall-geschützte Datenbank in der Microsoft-Azure-Cloud. Ihr Daten werden selbstverständlich verschlüsselt.

    Anwendungen, die mit der brixxbox erstellt wurden, sind Web-Anwendungen. Daher gibt es grundsätzlich keinerlei Beschränkungen hinsichtlich Gerätetyp und Betriebssystem. Lediglich eine dauerhafte Internetverbindung muss gewährleistet werden.

    Die erstellten Anwendungen sind responsive, so dass eine automatische Anpassung an die Bildschirmgröße erfolgt.

    chevron-rightFrameworkhashtag

    Da brixxbox von Haus aus etliche Funktionalitäten mitbringt, können Nutzer ohne Umwege direkt mit der eigentlichen Erstellung der Apps und Business-Logik beginnen.

    Es ist keine manuelle Einrichtung des Workspaces notwendig.

    Zu nennen sind in diesem Zusammenhang insbesondere folgende:

    Nutzer und Rechteverwaltung

    chevron-rightKeine Kompilierung mit brixxbox nötig!hashtag

    Mit brixxbox erstellte Anwendungen benötigen keine Kompilierung – sobald Sie Ihre Arbeit gespeichert haben, kann das Programm in der jeweils aktuellen Version verwendet werden!

    Auf wünsch können Sie selbstverständlich Echt-, und Testsysteme bzw. andere gängige Sicherheitskonzepte integrieren.

    Hinweis:

    Die Anwendungsentwicklung mit brixxbox geschieht hauptsächlich anhand grafischer Methoden – so gestalten Sie etwa die Benutzeroberfläche ganz einfach per Drag-and-drop.

    hashtag
    Schnittstellen

    Über verschiedene Schnittstellen wie Rest- oder Third-Party-APIs können Ihre Anwendungen mit anderen Systemen kommunizieren.

    Node-RED ist ein Flow-Editir, mit dem JavaScript-Funktionen erstellt werden können. Anwendungselemente können zur Wiederverwendung gespeichert oder geteilt werden.

    Webservices ermöglichen es, dass Maschinen oder Anwendungen miteinander kommunizieren könnenDie Laufzeitumgebung wurde auf Node. js gebaut und die in Node-RED erstellten Flows werden in JSON gespeichert

    Ein Web Service ist eine Software, die über das Internet mit anderen Programmen kommunizieren kann.

    Ein Web Service bietet eine standardisierte Schnittstelle, die unabhängig von der Programmiersprache, dem Betriebssystem oder der Plattform ist.

    hashtag
    Infrastruktur

    Im Standard hosten wir die Applikationen und Daten in unserer Microsoft-Azure-Cloud. Je nach Setup und konkreten Kundenwunsch sind auch individuelle Konzepte möglich, die je nach Einzelfall geklärt werden müssen. Als Datenbank wird nur der Microsoft SQL-Server unterstützt.

    brixxbox unterstützt 2 Setups, die sich primär hinsichtlich der zu Grunde liegenden Datenhaltungsstrategie unterscheiden:

    hashtag
    Hinweis: In Ausnahmefällen können wir auch eine komplette on-premise (Daten & Web-Service) Installation durchführen.

    Rollen und Rechte

    Das brixxbox Rollen- und Rechteskonzept kann bis auf Feldebene definiert werden, um die Zugriffsrechte von verschiedenen Benutzern oder Gruppen auf bestimmte Daten oder Funktionen zu steuern. Die Vorteile eines solchen Konzepts sind:

    • Es erhöht die Sicherheit, indem es verhindert, dass unbefugte Personen sensible oder vertrauliche Informationen einsehen oder manipulieren können.

    • Es verbessert die Effizienz, indem es den Benutzern nur die Daten oder Funktionen anzeigt, die sie für ihre Aufgaben benötigen, und so die Komplexität und den Aufwand reduziert.

    • Es fördert die Zusammenarbeit, indem es den Informationsaustausch und die Kommunikation zwischen verschiedenen Abteilungen oder Bereichen erleichtert, die gemeinsame Ziele verfolgen.

    • Es erleichtert die Verwaltung, indem es eine klare und konsistente Struktur für die Zuweisung und Überprüfung der Zugriffsrechte bietet, und so die Nachvollziehbarkeit und die Einhaltung von Richtlinien gewährleistet.

    Praxisbeispiele

    Screenshots fertiger Applikationen zur Ansicht.

    Die hier gezeigten Screenshots enthalten unser internes CI. Selbstverständlich können Sie unsere White-Label-, und Style-Funktionen nutzen, um die Optik Ihren Bedürfnissen anzupassen.

    Erstellen Sie mit brixxbox individuelle, rollenbasierte Dashboards.

    click to expand

    Unser Kanban-Board kann eine ideale Ergänzung für Ihren Workflow sein.

    Hier sehen Sie eine mögliche Variante des Adressenstamms.

    Hier sehen eine mögliche Variante des Kunden-Auftrags.

    Hier finden Sie einen Beispielfragebogen, der z.B. im Bereich QS eingesetzt werden kann.

    App Erstellung

    chevron-rightWelche Vorkenntnisse benötige ich?hashtag

    Die Erstellung der Benutzeroberflächen/ Apps geschieht hauptsächlich anhand grafischer Methoden – per Drag-and-drop.

    (Business-)Logik bringen Sie zum einen über die vereinfachte brixxbox-Sprache ins Spiel: Diese basiert im Grunde auf JavaScript.

    Darüber hinaus sollten Sie Grundkenntnisse im Bereich SQL besitzen.

    Hinweis:

    click to expand
    In brixxbox-Anwendungen vergeben Sie Lese- und Schreibrechte auf Basis von Nutzergruppen oder individuell für einzelne Nutzer – und das auf Wunsch bis ins kleinste Detail. So sieht jeder Nutzer nur genau das, was er für seine Arbeit benötigt. Neue Nutzer laden Sie zudem ganz einfach per E-Mail ein.

    Versionsverwaltung

    Alle durchgeführten Änderungen können Sie verfolgen und auf Wunsch rückgängig machen. Das gilt auch für die Daten in der fertigen Anwendung: Jede Änderung wird mit Zeitpunkt und Urheber dokumentiert.

    Automatische Übersetzungen

    Dank automatischer Übersetzung sind Ihre brixxbox-Anwendungen direkt multilingual! Wir empfehlen die Applikationserstellung in Englisch. Bei weiteren Fragen halten Sie gerne Rücksprache.

    Logik bringen Sie über die vereinfachte brixxbox-Sprache ins Spiel: Diese basiert im Grunde auf JavaScript und ist für jeden verständlich, der einigermaßen IT-affin ist.

    Im Fachjargon spricht man bei diesem Prinzip von „Low-Code-Entwicklung“: Sie arbeiten hauptsächlich mit vorgefertigten Code-Bausteinen und stecken diese über eine grafische Benutzeroberfläche zusammen.

    So realisieren Sie komplexe Anwendungen wie ERP-, Warenwirtschafts- und CRM-Systeme, ohne Experte in einer komplizierten Programmiersprache zu sein. Schließlich stellt Ihnen der brixxbox-Baukasten bereits alle Bausteine zur Verfügung, die Sie für die Entwicklung moderner Anwendungen brauchen – Sie müssen diese nur noch zusammensetzen.

    Ein Web Service kann verschiedene Funktionen erfüllen, wie zum Beispiel Daten austauschen, Geschäftsprozesse ausführen oder Anwendungen integrieren.

    Eine REST API ist eine Schnittstelle, die es einem Client ermöglicht, mit einem Server zu kommunizieren, indem er HTTP-Anfragen sendet und HTTP-Antworten empfängt.

    REST steht für Representational State Transfer, ein Architekturstil, der definiert, wie Ressourcen auf einem Server identifiziert, abgerufen, erstellt, aktualisiert und gelöscht werden können. Eine REST API basiert auf den Prinzipien von Zustandslosigkeit, Einheitlichkeit, Adressierbarkeit und Selbstbeschreibung.

    Eine REST API ermöglicht es einem Client, die Funktionalität eines Servers zu nutzen, ohne dessen interne Struktur oder Implementierung zu kennen.

    Zusätzlich können natürlich individuelle Schnittstellen besprochen werden.

    klcik to expand
    click to expand
    click to expand
    click to expand
    click to expand
    click to expand

    How Tos

    Custorm Grid-Spalte Datumsformat

    Create Resport REST

    Telerik Extension Functions

    Printing in LAN

    Telerik Extension Functions

    Functions

    Wenn Sie im Vorfeld bereits erweiterte Excell-, oder Access-Kenntnisse erlangt haben (z.B. Makros, VBA), ist dies eine ideale Grundlage für die Nutzung unserer Plattform.

    chevron-rightWie möchten Sie startenhashtag

    Übersicht des Design-Cockpits

    How Tos

    Grundsätzlich bedeutet die Anwendungsentwicklung mit brixxbox, dass Sie sich unabhängig von Standard-Software machen.

    Anpassungswünsche erfüllen Sie mit brixxbox direkt und ohne Kompromisse. Schließlich können Sie Prozesse und Funktionen genau so abbilden, wie Sie sie brauchen – ohne den überflüssigen Ballast, den standardisierte Software zwangsläufig mitbringt.

    Das bedeutet aber nicht, dass Ihre Anwendung isoliert ist: Verschiedene Schnittstellen ermöglichen den gegenseitigen Austausch von Daten zwischen Ihrer brixxbox-Anwendung und anderer Software.

    Nachfolgender Übersicht können Sie darüber hinaus die Unterschiede zur Individualentwicklung bzw. Standardsoftware entnehmen.

    click to expand

    Custom Grid Column Date Format

    Integriertes Archiv

    Sie können jede erstellte Applikation mit nur einem Click erweitern und eine Archiv-Funktion aktivieren.

    Die Daten können manuell oder über einen definierten Workflow zugefügt werden.

    Der nachfolgende Screenshot zeigt ein Beispiel im Bereich der Adressdaten:

    click to expand

    Create Report REST

    Example of a HTTP Request to the brixxbox

    hashtag
    Create Report REST

    You can create a report from 3rd party systems by using a http POST call to the brixxbox.

    We created a postman solution to demonstrate the call because you have to login first. Run in Postmanarrow-up-right

    3 Environment Variables have to be set in Postman: "UserEmail" and "UserPassword" for the login call an "Workspace" for the url part of the CreatePdf call

    You can specify if the report should be archived or not in the post parameters:

    Printing in LAN

    hashtag
    How to print on a local Printer in your LAN

    This video explains how to print in a local network, when using the brixxbox cloud service.

    Client API Reference

    hashtag
    brixxApi Functions

    The brixxApi provides a set of functions for each brixxbox. These functions can be used inside brixxbox events, to interact with the brixxbox and modify the behaviour of the application.

    hashtag

    hashtag

    hashtag

    • ) // Value can be of any javascript value type i.e. string, integer, Date etc.

    hashtag

    • // Id of report control which is to be printed.

    • // printDoc is a document which is to be printed.

    hashtag

    hashtag
    Build in Tools

    • composeEmail(emailOptions) // emailOptions is a JSON object, it contains options like to, cc, bcc, text, and subject etc which can be used to send an email.

    • getGeoLocation()

    • showWikiPage(string pageName, bool global) // If global is true, global wiki page is shown. Otherwise workspace wiki page is shown.

    hashtag
    Business Brixx

    • DhlShiping

      • CreateShipment → Creates a DHL Shipping Label.

      • GetLabel → Shows the shipment Label again.

    hashtag
    Starting brixxboxes

    • startBrixxbox(startOptions) // startOptions is a JSON object with start parameters.

    • addEventListener(string eventName, string controlId,function func) // ControlId is optional parameter.

    • closeModal()

    hashtag
    Date and Time

    • The moment.js Library

    hashtag
    Variables

    • userId

    • recordId

    • record

    hashtag
    Controls

    • NumBox

    • TextBox

    • Button

    hashtag
    ==

    • Common Functions →

    • App Functions →

    • Field Manipulation → Functions which manipulate properties, values or behaviors of a control.

    hashtag
    brixxApi Events

    The brixxApi Events are used to react on certain events. This way you can customize the behaviour of the brixxbox to your own purpose. Some events will be raised befor the brixxbox executes their own logic for this event. In that case, you can return 'true' to avoid the brixxbox build in event. Otherwise the brixxbox will do its own logic after your event.

    • onClick → When a control is clicked.

    • onRowClick → When a grid row is clicked.

    • onCellClick → When a grid cell is clicked.

    Design-Cockpit

    In den folgenden Unterpunkten erklären wir Schritt für Schritt die einzelnen Funktionen innerhalb des Design-Cockpits.

    click to expand

    Wählen Sie ein Themengebiet aus und starten Sie die Slide-Show.

    Telerik Page Header Sum

    Sums elements in a table up to this header (carry over from previous footer sum)

    circle-info

    Each page sum function can only be used once in a report. Using it multiple times will result in wrong calculated values!

    excludeFromReadonly([])
  • startScanner(string controlId, scanOptions)

  • isUserInRole(string role)

  • globalSearch(string searchTerm)

  • getDate(Date date)

  • getUserClaim(string claimName)

  • getSessionToken()

  • getBrowserToken()

  • logAdd()

  • enableNotifications()

  • setToolbarButtonMode(string toolbarButtonId, string mode)

  • addToolbarButton(toolbarButtonOptions)

  • readOnlyMode(bool readOnly, options)

  • excludeFromReadonly([])

  • startScanner(string controlId, scanOptions)

  • isUserInRole(string role)

  • globalSearch(string searchTerm)

  • getDate(Date date)

  • getUserClaim(string claimName)

  • getSessionToken()

  • getBrowserToken()

  • logAdd()

  • enableNotifications()

  • initAllControls()

  • initControl()

  • setControlUnmodifiedValue(string controlId, string valueToCompare) // Value can be of any javascript value type i.e. string, integer, Date etc.

  • getControlUnmodifiedValue(string controlId[[[[markAllControlsAsUnModified|markAllControlsAsUnModified()]]]]

  • getHtmlElement(string controlId)

  • setVisibility(string controlId, bool visible, string subControl) // visible(default True) and subControlare optional parameters.

  • setEnable(string controlId, bool visible, string subControl) // visible(default True) and subControl are optional parameters.

  • triggerEvent(string eventName, string controlId)

  • refresh(string controlId) // If used without parameter, refreshes all controls.

  • refreshBadges()

  • showTabPage(string controlId)setGridGrouping(string controlId, groupConfiguration) // groupConfiguration can either null, undefined or columnId.

  • setGridAutoRefresh(string controlId, Number autoRefreshSeconds ) // inputDate can be of Date type or a controlId of date/datetime control.

  • getCalcDateTime(inputDate, accuracy) // inputDate can be of Date type or a controlId of date/datetime control and accuracy can be seconds(default), minutes, or hours.

  • enableValidator(string controlId, string validatorName, bool enable) // enable can be true(default)/false.

  • reInitValidation()

  • setFieldUnit(string controlId, string unitName) // If no value is given for unitName then unit will be removed.

  • setDecimalDigits(string controlId, Number value)

  • addClassToGridRowCell(eventParameter, columnId, className)

  • showRowDetailButton(Row, bool show)

  • showRowDetailPanel(Row, bool show)

  • clearGridSelection(string controlId)

  • selectGridRows(string controlId, string columnId, value) // Value can be of any javascript value type i.e. string, integer, Date etc.

  • unselectGridRows(string controlId, string columnId, value) // Value can be of any javascript value type i.e. string, integer, Date etc.

  • toggleGridSelection(string controlId)

  • isRowSelected(string controlId, line)

  • switchTagControl(string controlId, bool editMode) // editMode is optional parameter.

  • setFocus(string controlId, bool select)

  • setTextColor(string controlId, string colorName) // colorName can be "default", "primary", "secondary", "success", "danger", or "warning".

  • setFontWeight(string controlId, string fontWeight) // fontWeight can be normal or bold.

  • setFontStyle(string controlId, string fontStyle) // fontStyle can be italic or normal.

  • setBackgroundColor(string controlId, string colorName) // colorName can be "default", "primary", "secondary", "success", "danger", or "warning".

  • disableGridHyperLinks(string controlId, bool disable)

  • getSignatureImageBlob(string controlId, string type) // Type can be of png(default) or svg.

  • cancelCalendarChanges(string controlId)

  • addCalendarEventSource(string controlId, eventSource) //eventSource is a JSON Object.

  • setFieldValue(string controlId, value) // Value can be of any javascript value type i.e. string, integer, Date etc.

  • getFieldValue(string controlId)

  • setLabelText(string controlId, string labelText)

  • initAllControls()

  • initControl()

  • setControlUnmodifiedValue(string controlId, string valueToCompare) // Value can be of any javascript value type i.e. string, integer, Date etc.

  • getControlUnmodifiedValue(string controlId[[[[markAllControlsAsUnModified|markAllControlsAsUnModified()]]]]

  • getHtmlElement(string controlId)

  • setVisibility(string controlId, bool visible, string subControl) // visible(default True) and subControlare optional parameters.

  • setEnable(string controlId, bool visible, string subControl) // visible(default True) and subControl are optional parameters.

  • triggerEvent(string eventName, string controlId)

  • refresh(string controlId) // If used without parameter, refreshes all controls.

  • refreshBadges()

  • showTabPage(string controlId)

  • setGridGrouping(string controlId, groupConfiguration) // groupConfiguration can either null, undefined or columnId.

  • setGridAutoRefresh(string controlId, Number autoRefreshSeconds ) // inputDate can be of Date type or a controlId of date/datetime control.

  • getCalcDateTime(inputDate, accuracy) // inputDate can be of Date type or a controlId of date/datetime control and accuracy can be seconds(default), minutes, or hours.

  • enableValidator(string controlId, string validatorName, bool enable) // enable can be true(default)/false.

  • reInitValidation()

  • setFieldUnit(string controlId, string unitName) // If no value is given for unitName then unit will be removed.

  • setDecimalDigits(string controlId, Number value)

  • addClassToGridRowCell(eventParameter, columnId, className)

  • showRowDetailButton(Row, bool show)

  • showRowDetailPanel(Row, bool show)

  • clearGridSelection(string controlId)

  • selectGridRows(string controlId, string columnId, value) // Value can be of any javascript value type i.e. string, integer, Date etc.

  • unselectGridRows(string controlId, string columnId, value) // Value can be of any javascript value type i.e. string, integer, Date etc.

  • toggleGridSelection(string controlId)

  • isRowSelected(string controlId, line)

  • switchTagControl(string controlId, bool editMode) // editMode is optional parameter.

  • setFocus(string controlId, bool select)

  • setTextColor(string controlId, string colorName) // colorName can be "default", "primary", "secondary", "success", "danger", or "warning".

  • setFontWeight(string controlId, string fontWeight) // fontWeight can be normal or bold.

  • setFontStyle(string controlId, string fontStyle) // fontStyle can be italic or normal.

  • setBackgroundColor(string controlId, string colorName) // colorName can be "default", "primary", "secondary", "success", "danger", or "warning".

  • disableGridHyperLinks(string controlId, bool disable)

  • getSignatureImageBlob(string controlId, string type) // Type can be of png(default) or svg.

  • cancelCalendarChanges(string controlId)

  • addCalendarEventSource(string controlId, eventSource) //eventSource is a JSON Object.

  • createReport(reportControlId, createOptions) // CreateOptions is a JSON object. It contains options like print, archive, saveFile etc. for report creation.

    deleteConfigRecordById(string configName, Number recordId)
  • copyConfigRecordById(string configName, Number recordId, additionalValues) // additionalValues is a JSON object, it contains values need to be modified in target record.

  • loadAndDisplayRecord(Number keyFieldId)

  • loadAndDisplayRecordById(Number recordId)

  • displayRecord(myRecord,string myKeyControlId)

  • deleteRecord(options) // options is a JSON object which include properties id, noConfirmationMessage.

  • validateInput()

  • saveCurrentRecord(string configName, record) // record is a JSON like object.

  • saveCurrentRecordWithoutEvents()

  • saveConfigRecord(string configName, Number recordId)

  • newRecord()

  • newGridEntry(string gridControlId)

  • executeStoredProcedure(string procedureName, procedureParameters, queryOptions) // procedureParameters and queryOptions are JSON objects.

  • queryStoredProcedure(string procedureName, procedureParameters, queryOptions) // procedureParameters and queryOptions are JSON objects.

  • refreshDataSource(string controlId) // Refreshes controlId. If used without parameters, it refreshes all controls with datasources.

  • localValue(string keyName, string keyValue)

  • sqlRead(string statementName, additionalParameters, queryOptions) // additionalParameters and queryOptions are JSON objects.

  • sqlWrite(string statementName, additionalParameters, queryOptions) // additionalParameters and queryOptions are JSON objects.

  • sqlReadValue(string statementName, additionalParameters, string columnName queryOptions)

  • showDiscussion(bool show) // Default show value is is true.

  • showAttachments(bool show) // Default show value is is true.

  • showMessage(messageOptions) // messageOptions is a JSON object.

  • showMessageBox(messageBoxOptions) // messageBoxOptions is a JSON object.

  • messageBox(messageBoxOptions) // messageBoxOptions is a JSON object.

  • refreshAttachments()

  • getAttachmentById(Number id)

  • getAttachmentByFileName(string fileName)

  • getAttachmentsForCurrentRecord()

  • getAttachmentId(string fileName)

  • getConfigRecordAttachmentIdByFileName(string appName, Number recordId, string fileName)

  • downloadAttachments(downloadOptions) //downloadOptions is a JSON object. It iscludes resquestedIds list and file name for downloaded file.

  • uploadAttachment(blob data,Number documentTypeId, string fileName) // documentTypeId and fileName are optional parameters.

  • deleteAttachment(Number attachmentId)

  • replaceText(string text, additionalReplacement) // additionalReplacement is a JSON object with key value pairs.

  • callWebHook(string url, string message)

  • getCustomMessage(string messageName, params, string targetLanguage) // params is a JSON object.

  • getCustomSetting(string settingName)

  • serverFunction(string funcName, funcParams, options) // funcParams and options are JSON objects and optional parameters.

  • DPDShipping

    • DPD Shipping

    isModal()
  • createPublicAppUrl(options) //options is a JSON object.

  • closePublicAppUrl(options) //options is a JSON object.

  • logout()

  • isLoadingRecord
  • isInitializing

  • CheckBox
  • ComboBox

  • Grid

  • TabControl

  • TabPage

  • Accordion

  • Badge

  • FullCalendar

  • Camera

  • Chart

  • DateTimeBox

  • DateBox

  • DocViewer

  • AppConfig

  • FileImport

  • FormGroup

  • FormGroupRow

  • GridConfig

  • GroupBox

  • HorizontalLine

  • HtmlTable

  • HtmlTemplate

  • Image

  • Label

  • LinkLabel

  • MultilineTextBox

  • Report

  • Row

  • Scanner

  • SignaturePad

  • Tag

  • TemplateGrid

  • TemplateGridElement

  • TimeBox

  • Unit

  • WedgeScanner

  • Widget

  • WidgetContainer

  • WysiwygText

  • Printing and Documents →
  • Data Storage →

  • Build in Tools →

  • Business Brixx →

  • Starting brixxboxes →

  • Date and Time →

  • Variables →

  • onChange → When a control content is changed.
  • onRecordLoad → Before a Record is loaded.

  • onRecordLoaded → After a Record is loaded.

  • onRecordSave → Before a Record is saved.

  • onRecordSaved → After a Record is saved.

  • onRowSelectionChanged → After a the selected row of a grid has changed.

  • onRowCreated → Modify a grid row. Apply a color for the row based on its values for example.

  • onRecordNew → After initializing the Form. The new Record is not saved yet but can be modified with initial values.

  • onRecordDelete → Before a record is deleted.

  • onRecordDeleted → After a record was deleted.

  • onChange → After a control value has changed.

  • onKeyPress → When a key is pressed

  • onKeyUp → When a key goes up

  • onKeyDown → When a key goes down

  • onModalClose → When a modal brixxbox app closes.

  • onAppStart → When the app is started but befor it is initialized.

  • onAppInitialized → When the app is initialized onAppStart has happend).

  • onScan → When a code is scanned.

  • onAttachmentsShow → Just before attachments panel opens.

  • onFileImport → When a file is uploaded for import.

  • onReturnFromModal → When a modal child app is closed, the parent will get this event

  • onAttachmentsShow → When the sidebar for attachments opens

  • onMailHistoryShow → When the sidebar for the mail history opens

  • onSubDataRequest → When the subdatasource of a control is requested

  • onChildAppClosed → When a childapp of your app closes.

  • onTabShown → Fires when a tab page is changing to visible.

  • onAttachmentDeleted → Triggers when the user deletes an attachment in the sidebar.

  • onAttachmentsHide → This event occurs when the attachment sidebar gets closed.

  • onDataTransform → The event can be used to transform a datasource line to a calender event.

  • onEventClick → The event occurs the user clicks on one of the events.

  • onEventChange → The event occurs the user moves or modifies an event.

  • onTimeSelected → The event triggers when the users selects a time period in the calendar.

  • Common Functions
    inviteUser(string email)
    App Functions
    setToolbarButtonMode(string toolbarButtonId, string mode)
    addToolbarButton(toolbarButtonOptions)
    readOnlyMode(bool readOnly, options)
    Field Manipulation
    setFieldValue(string controlId, value
    getFieldValue(string controlId)
    setLabelText(string controlId, string labelText)
    Printing and Documents
    print(string controlId)
    printBlob(printDoc)
    showBlob(string controlId, blobData)
    Data Storage
    loadRecord(string controlId)
    loadRecordById(Number recordId)
    loadConfigRecordById(string configName, Number recordId)

    DPD Shiping

    DPDCreateShipment -> Creates a DPD Shipping Label

    DHL Shiping

    • CreateShipment → Creates a DHL Shipping Label.

    • GetLabel → Shows the shipment Label again.

    // POST call to https://app.brixxbox.net/w/{{Workspace}}/c/default/reporting/CreatePdf
    {
       "reportName": "addresslist", 
    
       //optional parameters
       "archive": false, //optional, false is default
       "configName": "address", //optional, only if you want to archive
       "documentTypeId": 1, //optional, only valid if configName and parameter 'id' is set and archive is true
       "culture": "de-DE", //optional, report has its defaults
       "parameters": { //optional
           "id": 1
       }
    }
    //This function belongs in a PageHeaderSection of a telerik report
    =PageExec("textBoxValue",             //put in a textbox from your table row. Typically your value textbox, but whatever is in your row will work. This triggers the accumulation of the values
               BrixxPageHeaderSum(
                   Fields.yourValue,      //put in the Value Field you want to sum up
                   PageNumber,            //this is fix (the PageNumber variable from your report. this will tell the function when to take a sum)
                   ReportDefinition))     //this is fix (it will tell the sum to reset for each new report)

    brixxGPT

    Calls the OpenAI integration in brixxbox

    circle-info

    OpenAI API Key must be stored in the workspace settings!

    hashtag
    OpenAI API Key must

    hashtag
    Parameter

    gptOptions - Json object with parameters.

    • system - to set the stage. A promt to tell the model, how to behave

    • user - User input, examples and a query. This is the user promt

    hashtag
    Example Usages

    addClassToGridRowCell

    This function is used to color a single cell in a grid, or highlight it.

    hashtag
    Parameters

    1. eventParameter - this is the special parameter you get in OnRowCreated

    2. columnId - the name (id) of the column

    3. className - the classnaem to set

    hashtag
    Example Usages

    Example inside OnRowCreated

    addCalendarEventSource

    (Beta) Adds an event source object to the calendar

    hashtag
    Parameters

    1. controlId - The id of the calendar control

    2. eventSource - the Event source object

    hashtag
    Example Usages

    addEventListener

    Adds an Event Listener to the brixxbox or one of its controls

    hashtag
    Parameters

    1. Events

    2. Control Id (optional)

      • If the event is control specific (e.g. click on a buttton), this has to be the control id of that button

    3. Function

      • The code that should be executed in case of this event

      • The first parameter is the brixxApi

    hashtag
    Example Usages

    businessBrixx

    Business Brixxes provides special features for business usecases. Each Brixx has an individual set of parameters plus some parameters that are valid for all businessfunctions.

    hashtag
    Parameters

     functionName - the name of the businessBrixx module
     methodName - some businessBrixx functions provide several operations
     silentMode - if you set this to true, the brixxbox will not show a message if something goes wrong. You will still get the errorMessage, to handle the error case in your event code.

    hashtag
    Example Usages

    hashtag
    Business Brixx

    • DhlShiping

      • CreateShipment → Creates a DHL Shipping Label.

      • GetLabel → Shows the shipment Label again.

    Telerik Page Footer Sum

    How to use brixxbox custom functions in telerik

    hashtag
    BrixxPageFooterSum

    Sums elements in a table up to this footer

    circle-info

    Each page sum function can only be used once in a report. Using it multiple times will result in wrong calculated values!

    hashtag
    Demo

    Inventory Movement

    Stores an inventory movement in a table with a certain structure. The Function handles database transactions and generates movement ids.

    Mandatory fields: imItemId, imQuantity

    hashtag
    Example Usages

    addToolbarButton

    Add Toolbar Buttons with different functionalities.

    As we have already discussed in documentation of SetToolbarButtonMode. These are several buttons that are provided by Brixxbox for each app like adding new record, saving new record etc. These buttons provides general functionality needed by most of the apps but in case your app needs extra functionality, Brixxbox also allows this. It is provided by brixxApi function addToolbarButton. It takes a JSON object as a parameter. This JSON contains all the properties that defines this custom button as well as the functionality provided by it. The properties include name, id, and function to execute on clicking this button etc. Adds a custom button to the app toolbar.

    hashtag
    Example

    UPS Shiping

    hashtag
    Contents

    GetLabel

    Shows the shipment Label again.

    hashtag
    Example Usages

       let result = await brixxApi.businessBrixx({
          //Common Parameters for all functions
          functionName:"DhlShiping",
          methodName: "GetLabel",
          silentMode: true,  //false is default. If set to true, the brixxbox will not show an error message box. it is up to you to inform the user.
      
          //Individual paremeters for each business case. DHL Label as an example here.
          shipmentNumber: app.getFieldValue("cordShipmentNumber") //We saved this number before and stored it to our Order
       });
       window.open(result.labelUrl, "_blank");

    DPD Shipping

    • CreateShipment → Create a DPD Shipping Label.

  • UPS Shipping

    • CreateShipment → Create a UPS Shipping Label.

    • CancelShipment → Removes existing Shipment

    • GetLabel → Shows the shipment Label again.

  • InventoryManagement → Does Inventory Movements within an ERP Setup

    • Move

  • CurrencyConverter

    • Convert → Converts a currency to annother currency.

  • Datev Export

    • DatevExport → This function exports a Datev CSV file for a given timeframe.

      • sqlDataRead Example

      • sqlMainData Example

      • sqlGetCounter Example

  • GS1 Code Splitter

    • Split → Splits a barcode (or 2d code) into its GS1 AIs an Values.

  • Diamant

    • DiamantBusinessBrixx

  • SEPA Export

  • let response = app.brixxGPT({
        system: "Reply in a HTML snipped Text, that will be inserted in an existing div",
        user: "How to create a for loop in JS?"
    });
    
    // "output" is a brixxbox htmlTemplate control     
    $(app.getHtmlElement("output")).html(response);
    
             
       brixxApi.addClassToGridRowCell(eventArgs, "cordlnShippedQuantity", "success");
       app.addCalendarEventSource("myCal", {
          events: [
             {
                title: 'Sammple Event 1',
                start: '2020-12-08',
             },
             {
                title: 'Sammple Event 2',
                start: '2020-12-10',
             },
          ],
          id: 1,
          color: 'yellow',   // an option!
          textColor: 'black' // an option!
       });
       brixxApi.addEventListener("onRecordSaved", function (brixxApi, eventArgs) {
          alert("Record saved in " + brixxApi.appName);
       });
    //This function belongs in a PageFooterSection of a telerik report
    =PageExec("textBoxValue",             //put in a textbox from your table row. Typically your value textbox, but whatever is in your row will work. This triggers the accumulation of the values
               BrixxPageFooterSum(
                   Fields.yourValue,      //put in the Value Field you want to sum up
                   ReportDefinition))     //this is fix (it will tell the sum to reset for each new report)
       await brixxApi.businessBrixx({
            functionName:"InventoryMovement",
            movementTable:"inventoryMovement",
            movements:[
        {
                    imQuantity: app.getFieldValue("quantityToShip") * -1,
                    imAddressId: app.getFieldValue("companyId"),
                    imItemId: app.getFieldValue("itemId"),
            imImei: app.getFieldValue("imei"),
            },
            {
                    imQuantity: app.getFieldValue("quantityToShip"),
                    imAddressId: app.getFieldValue("customerId"),
                    imCustomerUserId: app.getFieldValue("customerUserId"),
                    imItemId: app.getFieldValue("itemId"),
            imCustomerOrderLineId: app.getFieldValue("orderLineId"),
            imImei: app.getFieldValue("imei"),
            },
            ]
        });
       let result = await brixxApi.businessBrixx({
          functionName:"DhlShiping",
          methodName: "GetLabel",
          shipmentNumber: app.getFieldValue("cordShipmentNumber")
       });
       window.open(result.labelUrl, "_blank");

    CreateShipment

    Creates a DHL Shipping Label.

    If shipService is omitted the default value ""V01PAK" will be set.

    hashtag
    Example Usages

       let result = await brixxApi.businessBrixx({
          functionName:"DhlShiping",
          methodName: "CreateShipment",
          weightInKG: "4",
          lengthInCM: "20",
          heightInCM: "20",
          widthInCM: "10",
          shipService: "V01PAK",
          recipientEmailAddress: "info@acme.com",
             senderAddress:{
             name1: app.getFieldValue("cordCompanyId.cusName"),
             streetName: app.getFieldValue("cordCompanyId.cusStreet"),
             streetNumber: app.getFieldValue("cordCompanyId.cusStreetNumber"),
             zip: app.getFieldValue("cordCompanyId.cusZip"),
             city: app.getFieldValue("cordCompanyId.cusCity"),
             countryCode: "DE",        
             },
             receiverAddress:{
             name1: app.getFieldValue("cordCustomerId.cusName"),
             streetName: app.getFieldValue("cordCustomerId.cusStreet"),
             streetNumber: app.getFieldValue("cordCustomerId.cusStreetNumber"),
             zip: app.getFieldValue("cordCustomerId.cusZip"),
             city:app.getFieldValue("cordCustomerId.cusCity"),
             countryCode: "DE",
             },
          });
       console.log("Shipment Number: " + result.shipmentNumber)
       window.open(result.labelUrl, "_blank");

    Currency Conveter

    Converts a currency to another currency

    Mandatory fields: fromCurrencySymbol, toCurrencySymbol

    hashtag
    Example Usages

     let rate = await brixxApi.businessBrixx({
         functionName:"CurrencyConverter",
         methodName: "Convert",
         fromCurrencySymbol: "EUR",
         toCurrencySymbol: "USD",
         date: moment().subtract(7, 'days') // optional, else current date
     });
     console.log(rate)
       brixxApi.addEventListener("onClick", "myButton", function (/*event parameters are optional*/) {
          alert("Button clicked");
       });
    hashtag
    Parameters
    1. toolbarButtonOptions - It is a JSON Object. In JSON object we passes parameters in the form of key value arguments.It include properties like name, id, function, etc.

    hashtag
    Example Usages

    As we have already seen a minimal custom print button in above example. Lets now add extra properties like group, css class, and shortcut for our print button. Now we also want this button to be added in our app toolbar on initialization. For this purpose goto current app properties and add onAppInitialized event. Now we need to add following code as a custom code to this event.

    Now when our app is initialized, we can see our custom button on the app toolbar and it should look like this.

    Example of the Button

    We can also add different custom buttons to our app depending upon our own requirements.

       brixxApi.addToolbarButton({
                title: "Print Invoice",
                icon: "print",
                id: "printInvoiceToolbarButton",
                onclick: async function () {
                    brixxApi.triggerEvent("click", "printInvoiceBtn");
                }
            });
    2 Business Brixx UPS Shipping -> CreateShipment
    • 2.1 Incomming Information

    • 2.2 Returning Information

    • 2.3 Example Usages

  • 3 CancelShipment

  • 4 GetLabel

  • hashtag
    Business Brixx UPS Shipping

    For accessing the UPS-Shipping brixxbox interface the UPS services need the following setup values (configuration -> settings).

    • UPSCustomerID Your customer number with UPS

    • UPSUsername A valid User for accessing the services

    • UPSPassword The corresponding password

    • UPSAccessLicenseNumber A license/access key provided by UPS on this page

    If no settings are available, a sample label will be generated.

    hashtag
    Business Brixx UPS Shipping -> CreateShipment

    Creates a UPS shipping label

    hashtag
    Incomming Information

    To create labels four groups of information are available:

    • 1. Settings with the following fields (If the group/field is not present default values will be assumed)

      • ServiceCode: default value "11" UPS Standard. Valid values according to UPS service codes.

      • MetricMeasurements: "1" sets to true. This is the default. Measurements will be metric e.g. kg, cm or nonmetric for lbs, inch

      • Language: Language code according to UPS. e.g. deu, eng, spa. this field will be set to user language by default. If the user language is not available for UPS, "eng" will be used.

    • 2. Shipper:

      • Name

      • Street

    • 3. ShipAddress:

      • Name

      • Street

    • 4. ParcelData:

      • Description

      • PackageType: Package type according to UPS. If no value is given, the default will be set to: "02" Customer Supplied Package

    hashtag
    Returning Information

    • In case of success (status 200) the following fields are returned

      • TrackingNumber: The UPS generated ID. This will be used for further references to this shipment.

      • LabelData: this is a blob response. It contains the actual label in GIF format and can directly be used for further processing. E.g. “brixxApi.printBlob(LabelData);”

    • In case of error (status 400) the following fields are returned:

      • error: a text showing the first error. E.g. “console.log(result.error);”

    hashtag
    Example Usages

    hashtag
    CancelShipment

    To cancel an existing shipment only the TrackingNumber is needed.

    hashtag
    GetLabel

    In case the label is needed again it can be retrieved with an existing TrackingNumber. The result will show LabelData (see CreateShipment results #Returning_Information for details)

    1 Business Brixx UPS Shipping

    Datev Export sqlMainData Example

    This is the script, which is responsible for collection all the address data, which needs to be exported.

    hashtag
    Available Parameters

    1. @company - If you work with multiple companies, you have to export each company by it's own.

    2. @dateFrom - Start date for the export

    3. @dateUntil - End date for the export

    hashtag
    Example Usages

    Datev Export SqlDataRead Example

    Example for a getDatevData script

    hashtag

    This is the main script, which is responible for collection all the data, which needs to be exported.

    hashtag
    Available Parameters

    1. @company - If you work with multiple companies, you have to export each company by it's own.

    2. @dateFrom - Start date for the export

    3. @dateUntil - End date for the export

    hashtag
    Example Usages

    Datev Export

    This function exports a Datev CSV file for a given timeframe. The fuction needs 3 customized SQL scripts to process the data.

    As this function calls customized SQL scripts, it will add SQL parameters from the function call to the SQL calls.

    • @company

    • @dateFrom

    • @dateUntil

    Those parameters can be used within the SQL statements.

    hashtag
    Needed output columns from SQL scripts

    • sqlDataRead script

      • Auftragsnummer

      • Artikelnummer

    hashtag
    SQL script examples

    • sqlDataRead Example

    • sqlMainData Example

    • sqlGetCounter Example

    hashtag
    Example Usages

    CreateShipment

    Creates a DPD Shipping Label

    For accessing the DPD-Shipping brixxbox interface the DPD services need the following setup values (configuration -> settings).

    • DPDUserCredentialsCloudUserID

    • DPDUserCredentialsToken

    • DPDPartnerCredentialsName

    • DPDPartnerCredentialsToken

    If no settings are available, a sample label will be generated.

    hashtag
    Incomming Information

    To create labels three groups of information are available:

    • 1. OrderSettings with the following fields (If the group is not present default values will be assumed)

      • language: Values „de_DE“ or „en_EN“ are allowed. If nothing is set „de_DE“ will be assumed.

      • ShipDate: if not available will be set to „today“

    Detailed informationen for field usage can be found at

    hashtag
    Returning Information

    • In case of success (status 200) the following fields are returned

      • ParcelNo: The DPD generated ID. This will be used for further references to this shipment.

      • YourInternalID: The same ID that was provided for the request

    hashtag
    Example Usages

    GS1 Code Splitter

    Splits a GS1 code into its AIs and values

    This is usually used in the event where you use the plain scan result as the input. The fnc1Char parameter is optional and only used, if the scanner sends an different (visible) character instead of the default fnc1 (CHAR29).

    Mandatory fields: gs1Code

    hashtag
    Example Usages

    SEPA Export

    This module creates a SEPA file in XML format.

       brixxApi.addToolbarButton({
                title: "Print Invoice",
                icon: "print",
                text: "Rechnung drucken",
                group: "invoice",
                id: "printInvoiceToolbarButton",
                cssClass: "btn-success",
                onclick: async function () {
                    brixxApi.triggerEvent("click", "printInvoiceBtn");
                },
                shortcut: "Ctrl-Alt-P"
            });
    var result = await brixxApi.businessBrixx({
          functionName:"UPSShipping",
          methodName: "CreateShipment",
    			Settings : {
    				Language: 'deu',
    				MetricMeasurements: 1,
    				ServiceCode: "11"
    			  },
    			Shipper : {
    				Name: 'Brixxbox GmbH',
    				Street: 'Husarenstraße',
    				HouseNo: '34a',
    				ZipCode: '41836',
    				City: 'Hückelhoven',
    				CountryCode: 'DE'
    			  },
    			ShipAddress : {
    				Name: 'Brixxbox GmbH',
    				Street: 'Husarenstraße',
    				HouseNo: '34b',
    				ZipCode: '41836',
    				City: 'Hückelhoven',
    				CountryCode: 'DE',
    				Phone: '+49 1234 5678-9',
    				Mail: 'm.mustermann@mustermann.com'			  
    			  },
    			ParcelData : {
    				Description: 'Product name',
    				Height : 10,
    				Length : 20,
    				Width  : 15,
    				Weight: '4.5',
    				ServiceCode: '9'			  
    			  }
          });
    	  
    console.log("Tracking Number: " + result.TrackingNumber);
    brixxApi.printBlob(result.LabelData);
    var result = await brixxApi.businessBrixx({
          functionName:"UPSShipping",
          methodName: "CancelShipment",
    	 TrackingNumber: app.getFieldValue("ExistingTrackingNumber")
          });
    var result = await brixxApi.businessBrixx({
          functionName:"UPSShipping",
          methodName: "GetLabel",
    	 TrackingNumber: app.getFieldValue("ExistingTrackingNumber")
          });
    HouseNo
  • ZipCode

  • City

  • CountryCode

  • StateProvinceCode

  • AttentionName

  • Phone

  • EMail

  • FaxNumber

  • TaxIdentificationNumber

  • HouseNo
  • ZipCode

  • City

  • CountryCode

  • StateProvinceCode

  • AttentionName

  • Phone

  • EMail

  • FaxNumber

  • TaxIdentificationNumber

  • Weight

  • Height

  • Length

  • Width

  • https://www.ups.com/upsdeveloperkitarrow-up-right
     SELECT adr.id AS Kundennummer,
           CASE WHEN adrIsCustomer = 1 THEN adr.adrDebitor ELSE adr.adrKreditor END AS Konto,
           adr.adrName AS Firmenname,
           adr.adrLastName as Nachname,
           adr.adrFirstName as Vorname,
           '' AS Anrede,
           'STR' AS Adresstyp,
           adrLoc.alocStreet AS Strasse,
           adrLoc.alocStreetNumber AS Hausnummer,
           adrLoc.alocZip AS PLZ,
           adrLoc.alocCity AS Stadt,
           adrLoc.alocAdditionalInfo AS Zusatzinformation
      FROM [dbo].[address] AS adr
      LEFT JOIN addressLocation AS adrLoc ON adrLoc.id = adr.adrDefaultInvoiceAddress
      LEFT JOIN country AS country ON country.id = adrLoc.alocCountryId
     WHERE adr.adrIsCustomer = 1 OR adr.adrIsSupplier = 1

    ArtikelRecordId

  • Paragraph13b

  • NettoWert

  • BruttoWert

  • Debitorenkonto

  • Kreditorenkonto

  • Sachkonto

  • SteuerID

  • Buchungsschluessel

  • Buchungstext

  • Rechnungsdatum

  • Rechnungsnummer

  • Leistungsdatum

  • AttachementId

  • BuchungszaehlerTabelle (nvarchar that defines the tabel, where the booking counter is stored)

  • BuchungszaehlerSpalte (nvarchar that devines the column for the booking counter)

  • IstAutomatikKonto

  • IstInnerbetrieblich

  • sqlMainData script

    • Kundennummer

    • Konto

    • Firmenname

    • Nachname

    • Vorname

    • Anrede

    • Adresstyp

    • Strasse

    • Hausnummer

    • PLZ

    • Stadt

    • Zusatzinformation

  • sqlGetCounter script

    • This script needs to return the actual booking counter as number.

  • LabelSize: „PDF_A4“ or „PDF_A6“. If nothing is set „PDF_A4“ will be assumed.

  • LabelStartPosition: “UpperLeft“, „UpperRight“, „LowerLeft“, „LowerRigh“

  • 2. ShipAddress:

    • Company

    • Gender

    • Salutation

    • FirstName

    • LastName

    • Name

    • Street

    • HouseNo

    • ZipCode

    • City

    • Country

    • State

    • Phone

    • Mail

  • 3. ParcelData:

    • YourInternalID: should be set to your own reference (e.g. order no). if no value is provided a timestamp will be set.

    • Content

    • Weight: in kg

    • Reference1

    • Reference2

    • ShipService: set to a valid DPD-Service. If nothing is set “Classic” will be assumed.

  • TimeStamp: an informational time stamp when the request was processed

  • LabelData: this is a blob response. It contains the actual label in PDF format and can directly be used for further processing. E.g. “brixxApi.printBlob(LabelPDF);”

  • In case of error (status 400) the following fields are returned:

    • TimeStamp: an informational time stamp when the request was processed

    • ErrorDataList: an array with detailed information what went wrong. Every error will show the following fields

      • ErrorID: an internal error no

      • ErrorCode: an internal error code

      • ErrorMsgShort: Error information short version

      • ErrorMsgLong: Error information long version

  • https://esolutions.dpd.com/dokumente/DPD_Cloud_Service_Webservice_Dokumentation_DE.pdfarrow-up-right
       await brixxApi.businessBrixx({
            functionName:'SEPAExport',
            accountName: 'MyCompanyAccountName',
            bic: 'INGDDEFFXXX',
            iban: 'DE89370400440532013000',
            sepaCounter: 32,
            company: 1,
            creditData: [{
                 creditName: 'Customer 1',
                 bic: 'INGDDEFFXXX',
                 iban: 'DE8937040044',
                 amount: 129.95,
                 description: 'some booking text'
            } , {
                 creditName: 'Customer 2',
                 bic: 'INGDDEFFXXX',
                 iban: 'DE8937040044',
                 amount: 129.95,
                 description: 'some booking text'
            }]
    
        });

    Diamant OpenStack

    Opens a booking stack and returns the number to the client

    hashtag
    Example Usages Get

     let result = await app.businessBrixx({
        functionName:"Diamant",
        methodName: "OpenStack",
    });
    app.setFieldValue("myBookungStackNumber", result.data); //result.data is the stackNumber

    Diamant CloseStack

    Closes a booking stack that qas previously open by OpenStack

    hashtag
    Example Usages Get

     let result = await app.businessBrixx({
        functionName:"Diamant",
        methodName: "CloseStack",
        stackNumber: app.getFieldValue("myBookungStackNumber")
    });

    Diamant Transaction

    Creates a transaction in diamant

    hashtag
    Example Usage

    The data is passed to the interface as a JSON array. All fields available in the documentation can be inserted here! Please not that several data sety can be transferred at the same time.

    closeModal

    If the current brixxbox app is startet in a modal window, that window will be closed.

    hashtag
    Example Usages

       brixxApi.closeModal();
    hashtag
    Example Usages with Split Char (FNC1)

    Especially with keyboard wedge scanners, it is often usefull to use a visible character as the FNC1 char.

    The result variable in this case:

     let result = await brixxApi.businessBrixx({
         functionName:"Gs1Splitter",
         methodName: "Split",
         gs1Code: "011234567890123417210521109988"
     });
     console.log(result)
    onScan
     let result = await brixxApi.businessBrixx({
         functionName:"Gs1Splitter",
         methodName: "Split",
         gs1Code: "011234567890123417210521109988X211234",
         fnc1Char: 'X'
     });
     console.log(result.applicationIdentifiers['10'])
     SELECT 
        head.id AS Auftragsnummer,
        ol.cordlnItemId AS Artikelnummer,
        ol.id AS ArtikelRecordId,
        ol.cordlnParagraph13b AS Paragraph13b,
        ol.cordlnNetOrderValue AS NettoWert,
        ol.cordlnGrossOrderValue AS BruttoWert,
        adr.adrDebitor AS Debitorenkonto,
        0 AS Kreditorenkonto,
        cordlnSalesAccount AS Sachkonto,
        adr.adrTaxId AS SteuerID,
        cordlnTaxKey as Buchungsschluessel,
        '' AS Buchungstext,
        head.cordInvoiceDate AS Rechnungsdatum,
        head.cordInvoiceNumber AS Rechnungsnummer,
        head.cordShippingDate AS Leistungsdatum,
        atta.id AS AttachementId,
        'customerOrder' AS BuchungszaehlerTabelle,
        'cordDatevExportId' AS BuchungszaehlerSpalte,
        CASE WHEN fiac.finaccIsAccountSplitting = 1 THEN fiacsplit.facsIsAutomaticAccount ELSE fiac.finaccIsAutomaticAccount END AS IstAutomatikKonto,
        head.cordInterCompanyOrder as IstInnerbetrieblich
     
     FROM dbo.bbv_customerOrderLine AS ol
     LEFT JOIN [dbo].[customerOrder] AS head ON head.id = ol.cordlnOrderId
     LEFT JOIN address AS adr ON adr.id = head.cordAddressId
     LEFT JOIN brixx_Attachments AS atta ON atta.id in (select AttachmentId from brixx_AttachmentLinks where RecordId = head.id AND TableName = 'customerOrder' ) AND atta.DocumentTypeId = 2
     LEFT JOIN financialAccount AS fiac ON fiac.finaccAccountNumber = cordlnSalesAccount
     LEFT JOIN financialAccountSplitting AS fiacsplit ON fiacsplit.facsAccountId = fiac.id AND fiacsplit.facsSplitAccount = fiac.finaccAccountNumber
     WHERE ol.cordlnOrderId IN 
     (
        SELECT id FROM [dbo].[customerOrder] 
        WHERE cordShippingDate >= @dateFrom AND cordShippingDate <= @dateUntil
        AND cordCompanyId = @company
     )
     AND ol.cordlnNetOrderValue > 0
     AND head.cordStatusId >= 4
     
     UNION
     
     SELECT 
        head.id AS Auftragsnummer,
        ol.sordlnItemId AS Artikelnummer,
        ol.id AS ArtikelRecordId,
        ol.sordlnParagraph13b AS Paragraph13b,
        ol.sordlnNetOrderValue AS NettoWert,
        ol.sordlnGrossOrderValue AS BruttoWert,
        0 AS Debitorenkonto,
        adr.adrKreditor AS Kreditorenkonto,
        sordlnitmProcurementAccount AS Sachkonto,
        adr.adrTaxId AS SteuerID,
        sordlnTaxKey AS Buchungsschluessel,
        '' AS Buchungstext,
        head.sordGoodsReceiptDate AS Rechnungsdatum,
        head.sordInvoiceNumber AS Rechnungsnummer,
        head.sordGoodsReceiptDate AS Leistungsdatum,
        atta.id AS AttachementId,
        'supplierOrder' AS BuchungszaehlerTabelle,
        'sordDatevExportId' AS BuchungszaehlerSpalte,
        CASE WHEN fiac.finaccIsAccountSplitting = 1 THEN fiacsplit.facsIsAutomaticAccount ELSE fiac.finaccIsAutomaticAccount END AS IstAutomatikKonto,
        head.sordInterCompanyOrder as IstInnerbetrieblich
     
     FROM dbo.bbv_supplierOrderLine AS ol
     LEFT JOIN [dbo].[supplierOrder] AS head ON head.id = ol.sordlnOrderId
     LEFT JOIN address AS adr ON adr.id = head.sordAddressId
     LEFT JOIN item AS itm on itm.id = ol.sordlnItemId 
     LEFT JOIN brixx_Attachments AS atta ON atta.id in (select AttachmentId from brixx_AttachmentLinks where RecordId = head.id AND TableName = 'supplierOrder' )
     LEFT JOIN financialAccount AS fiac ON fiac.finaccAccountNumber = ol.sordlnitmProcurementAccount
     LEFT JOIN financialAccountSplitting AS fiacsplit ON fiacsplit.facsAccountId = fiac.id AND fiacsplit.facsSplitAccount = fiac.finaccAccountNumber
     WHERE ol.sordlnOrderId IN 
     (
        SELECT id FROM [dbo].[supplierOrder] 
        WHERE head.sordGoodsReceiptDate >= @dateFrom AND head.sordGoodsReceiptDate <= @dateUntil
        AND sordCompanyId = @company
     )
     AND ol.sordlnNetOrderValue > 0
     AND head.sordStatusId = 5
     brixxApi.businessBrixx({
        functionName:"DatevExport",
        sqlDataRead:"getDatevData",
        sqlMainData:"getDatevMainData",
        sqlGetCounter:"getDatevBookingCounter",
        exportFromDate: moment().subtract(2,'months').startOf('month').format('YYYY-MM-DD'),
        exportUntilDate: moment().subtract(2,'months').endOf('month').format('YYYY-MM-DD'),
        consultantNumber: 1234567,
        clientNumber: 12345,
        company: 1,
        isDownload: true
     });
    /*----------------------------------------------------------------------------------------------
    /This example is minimalistic and will create a sample label. 
    /You need to check which fields are relevant for your process and assign the values accordingly.
    /----------------------------------------------------------------------------------------------*/
    
    var result = await brixxApi.businessBrixx({
          functionName:"DPDShipping",
          methodName: "CreateShipment",
    	  ShipAddress : {
    		Company: 'Mustermann AG',
    		Name: 'Max Mustermann',
    		Street: 'Wailandtstr.',
    		HouseNo: '1',
    		ZipCode: '63741',
    		City: 'Aschaffenburg',
    		Country: 'DEU'
    	  },
    	  ParcelData : {
    		Reference1: 'Customer email',
    		Content: 'Order number',
    		Weight: '13.5'
          }
          });
    console.log("Parcel Number: " + result.ParcelNo)
    brixxApi.printBlob(result.LabelData);
    
    
    /*----------------------------------------------------------------------------------------------
    /This example uses all fields
    /You need to check which fields are relevant for your process and assign the values accordingly.
    /----------------------------------------------------------------------------------------------*/
    var result = await brixxApi.businessBrixx({
          functionName:"DPDShipping",
          methodName: "CreateShipment",
    			OrderSettings : {
    				language: 'de_DE',
    				LabelSize : 'PDF_A4',
    				LabelStartPosition : 'UpperLeft',
    				ShipDate : app.getFieldValue("SomeFieldValue")
    			  },
    			ShipAddress : {
    				Company: app.getFieldValue("SomeFieldValue"),
    				Gender: app.getFieldValue("SomeFieldValue"),
    				Salutation: app.getFieldValue("SomeFieldValue"),
    				FirstName: app.getFieldValue("SomeFieldValue"),
    				LastName: app.getFieldValue("SomeFieldValue"),
    				Name: app.getFieldValue("SomeFieldValue"),
    				Street: app.getFieldValue("SomeFieldValue"),
    				HouseNo: app.getFieldValue("SomeFieldValue"),
    				ZipCode: app.getFieldValue("SomeFieldValue"),
    				City: app.getFieldValue("SomeFieldValue"),
    				Country: app.getFieldValue("SomeFieldValue"),
    				State: '',
    				Phone: app.getFieldValue("SomeFieldValue"),
    				Mail: app.getFieldValue("SomeFieldValue")			  
    			  },
    			ParcelData : {
    				Reference1: app.getFieldValue("SomeFieldValue"),
    				Reference2: app.getFieldValue("SomeFieldValue"),
    				Content: app.getFieldValue("SomeFieldValue"),
    				Weight: app.getFieldValue("SomeFieldValue"),
    				YourInternalID: app.getFieldValue("SomeFieldValue"),
    				ShipService: app.getFieldValue("SomeFieldValue")			  
    			  }
          });
    console.log("Parcel Number: " + result.ParcelNo)
    brixxApi.printBlob(result.LabelData);
    let result = await app.businessBrixx({
        functionName: "Diamant",
        methodName: "Transaction",
        company: 1,
        transactions: [{
            transactionType: 'AR',
            stacknumberSpecified: false,
            ///...,
    
            accountAssignmentTab: [{
                accountNo: '12345',
                taxCode: 19,
    
                //...,
    
                cAccDataTab: [{
                    costCenter: '123a',
                    //...
                },
                {
                    costCenter: '123b',
                    //...
                }],
    
                oIDataTab: [{
                    accountNo: '123456',
                    amount: 100.00,
                    amountFieldSpecified: true,
                    //...
                },
                {
                    accountNo: '333456',
                    amount: 150.00,
                    amountFieldSpecified: true,
                    //...
                }]
            },
            {
                transactionType: 'AR',
                stacknumberSpecified: false,
                ///...,
    
                accountAssignmentTab: [{
                    accountNo: '44345',
                    taxCode: 19,
    
                    //...,
    
                    cAccDataTab: [{
                        costCenter: '123a',
                        //...
                    },
                    {
                        costCenter: '123b',
                        //...
                    }],
    
                    oIDataTab: [{
                        accountNo: '123456',
                        amount: 100.00,
                        amountFieldSpecified: true,
                        //...
                    },
                    {
                        accountNo: '333456',
                        amount: 150.00,
                        amountFieldSpecified: true,
                        //...
                    }]
                }]
            }]
        }]
    });
    console.log(result);
    
    {
       "applicationIdentifiers":{
          "10":"9988",
          "17":"210521",
          "21":"1234",
          "01":"12345678901234",
          "01.packind":"1",
          "01.iln":"2345678",
          "17.date":"20210521"
       }
    }

    Diamant Connector

    This brixxbox module allows to retrieve data from the Diamant Accounting Software and post data to it

    hashtag
    Get Method

    The Method Retrieves the data specified with dataType (like Address, CostCenter and so on). The searchParams and fieldMatch JSON properties are valid for all methods, but the fields mentioned in it are depending on the datatype used. For example: postcode is a valid searchParam for addresses, but not for cost centers.

    The Get method will return the data it fetched from Diamant, so you get an array of JSON objects. The fieldMatch prameter will tell the brixxbox to change field names, so that it is more useful in an brixxbox environment.

    hashtag
    Example Usages Get

    This will retrieve all addresses from diamant. Field names are the original diamand field names

    This will retrieve all addresses with Postcode 61118 from diamant and return the result. Only the fields "key" and "Name1" will be returned.

    hashtag
    Write to Diamant

    This code will write an address to Diamant

    hashtag
    ImportTable Method

    This method allows you to retrieve the data and insert it into the database. Query parameters work the same and are optional but you must user fieldMatch to assign diamant names to brixxbox field names

    hashtag
    Example Usages Import Insert

    This will retrieve all addresses from diamant and insert it into the table address the table will be wiped right before the import.

    hashtag
    Example Usages Import Upsert

    This will retrieve all addresses from diamant and update the records with the same id as in fieldMatch.

    hashtag
    Supported dataTypes

    More types can be added at request.

    Request Data

    • Address (Adressen)

    • CostCenter (Kostenstellen)

    • GenLedgAccount (Sachkonten)

    Transctions

    cancelCalendarChanges

    (Beta) Cancels the drag or edit operation that triggered the OnEventChange event and moves all events back to their origin position. Must be used inside the OnEventChange event.

    hashtag
    Parameters

    1. controlId - The id of the calendar control

    hashtag
    Example Usages

    Datev Export sqlGetCounter Example

    This is the main script, which is responsible for collection all the data, which needs to be exported.

    hashtag
    Available Parameters

    1. @company - If you work with multiple companies, you have to export each company by it's own.

    2. @dateFrom - Start date for the export

    3. @dateUntil - End date for the export

    hashtag
    Example Usages

    changeHelpText

    Changes an existing help text for a control at runtime.

    hashtag
    Parameters

    1. controlId => Id of the control

    2. helpText => the new text, you want to set or empty to remove an existing text

    hashtag
    Example Usages

    cloudPrint

    Sends a PDF to a printer, that is connected by the BrixxboxCloudGateway. You can sent a document to a cloudprinter by using createReport as well

    hashtag
    Parameters

    A json object

    hashtag
    Example Usages

    hashtag
    Print an existing attachment

    hashtag
    Print an existing attachment with multiple copies

    hashtag
    Print a new created report without archiving

    callWebHook

    Calls a webhook to trigger a system to do anything like posting a message to a teams channel.

    hashtag
    Parameters

    1. url - The url of the teams or slack channel, see the video to learn how to get a WebHook url.

    2. the message you want to send. That depends on the service, you want to post to. here are some examples for Microsoft Teams(), but it can be as easy as seen in exampel 1

    hashtag
    Example Usages

    Plain text message

    full styled message with actions

    clearGridSelection

    Unselects all rows of a data grid.

    hashtag
    Parameters

    1. controlId - id of the grid control

    hashtag
    Example Usages

    createPublicAppUrl

    Creates an url, that leads to a standalone app for pulic use. There is still a valid user logged in. The public user has to be configured in the settings as a "valid external user" for security reason

    hashtag
    Parameters

    1. options - Json object with the same properties as [createPublicAppUrl](/globalDoc/function_createPublicAppUrl) options, plus:

    createReport

    Creates a report on the Server and retrieves it to the client. The only format, currently supported is pdf.

    hashtag
    Parameters

    1. reportControlId - the id of the reportControl in your app. This can be invisible, if you don't need a preview.

    cloudQuery

    Requests Data from a CloudGateway Enpoint

    hashtag
    Parameters

    displayRecord

    Displays a record in an brixxbox app. To get a record, you could use e.g.

    hashtag
    Parameters

    1. the record.

    CostObject (Kostenträger)
  • PrimCostElement (Primärkostenarten)

  • Project (Projekte)

  • Company (Mandanten)

  • Customer(Konten)

  • Vendor (Vendor)

  • Posting (Buchungen)

  • OpenStack
    Transaction
    CloseStack
        brixxApi.cancelCalendarChanges("myCalendar");
     SELECT MAX(DatevExportId) FROM
     (
        SELECT ISNULL(MAX(cordDatevExportId), 0) AS DatevExportId FROM customerOrder WHERE cordCompanyId = @company
        UNION ALL
        SELECT ISNULL(MAX(sordDatevExportId), 0) AS DatevExportId FROM supplierOrder  WHERE sordCompanyId = @company
     ) AS sub
       brixxApi.changeHelpText("myControl", "Hello World");
       brixxApi.clearGridSelection(myGrid);

    publicUser - the user email address of the brixxbox user, that will be used for the public app .

    hashtag
    Example Usages

       await brixxApi.createPublicAppUrl({appName: "survey", publicUser: "surveyuser@acme.com", id:1});
    createOptions - JSON Object with options
    • print - (bool, default = false) if set to true, this will trigger the print dialog after the report is create.

    • archive - (bool, default = false) if set to true, the report is saved as an attachment to the current record,

    • saveFile - if set. the report will be downloaded with a generic file name (brixxbox-print.pdf), except, if saveFileName is set.#

    • saveFileName - if set. the report will be downloaded with that file name.

    • reportId - (optional) if defined, this will overruled the reportId given for the control in the config editor. This is not the controlId, but the id (name) of the report definition

    • cloudPrinter - (optional) the created report will be send to the cloud printer right after creation.

    Like a on a dataRequest, all controls of the current app will bo automatically send as report parameters, plus the recordId of the current record as "id", even if you dont have a control "id" in your app.

    hashtag
    Example Usages

    hashtag
    Create a report and send it to a cloud printer

    hashtag
    Example Usages

    hashtag
    Query an address from a firebird database

    hashtag

    {
        AppName: "MyCloudGateway", //The Name in the ApiKey List
        Endpoint: "LocalFirebird", // Configured Endpoint
        SqlStatementId: "fbGetAddress", //Optional statemnt id, depending on the Plugin
        Parameters: { //Optional Parameters
          "id": 1  
        },
        
    }

    the current control. This control is excluded from the discard changes check, that occurs before the record is displayed

    hashtag
    Example Usages

    Simple (pay attention to the await keyword)

    loadRecordarrow-up-right
       await brixxApi.displayRecord(myRecord, "myKeyControlId");
     let result = await brixxApi.businessBrixx({
         functionName:"Diamant",
         methodName: "Get",
         company: "9018",
         dataType: "Address",
     });
     console.log(result)
     let result = await brixxApi.businessBrixx({
         functionName:"Diamant",
         methodName: "Get",
         dataType: "Address",
         searchParams:{
             postcode: "61118"
         },  
         usedFields:["key", "Name1"]
    
     });
     console.log(result)
    let result = brixxApi.businessBrixx({
       functionName: "Diamant",
       methodName: "Save",
       dataType: "Address",
       fields: {
          key: "12345",
          addresstype: "F",
          name1: "John Doe",
          street: "Elmstreet 123",
          postcode: "12345",
          town: "Berlin",
       },
    });
     let result = await brixxApi.businessBrixx({
         functionName:"Diamant",
         methodName: "ImportTable",
         dataType: "Address",
         tableName: "address",
         wipeTable: true,
         fieldMatch:{
             postcode: "adrZip",
             name1: "adrName"
         }, 
     });
     console.log(result)
     let result = await brixxApi.businessBrixx({
         functionName:"Diamant",
         methodName: "ImportTable",
         dataType: "Address",
         tableName: "address",
         upsert: true,
         wipeTable: true,
         fieldMatch:{
             key: "adrKey,id",
             postcode: "adrZip",
             name1: "adrName"
         }, 
     });
     console.log(result)
       brixxApi.cloudPrint({
          printerName: "HP LaserJet", //Printer NAme
          attachmentId: "1", //Attachment id
       });
       brixxApi.cloudPrint({
          printerName: "HP LaserJet", 
          attachmentId: "1", 
          copies: 5 // 1 copy is the default. Needs "cloudPrint Gateway" installer Version 1.0.1 or newer
       });
       let myReport = await brixxApi.createReport("myReport");
       brixxApi.cloudPrint({
          printerName: "HP LaserJet", //Printer NAme
          blob: myReport, //The report blob object
       });
       brixxApi.createReport("invoiceReport", {print: true}); //will create the invoiceReport as a pdf and prints it on the client side
       brixxApi.createReport("invoiceReport", {
          print: true,
          archive: true,
          documentTypeId: 1,
          saveFileName: "myPrint.pdf"
       }); 
       //will create the invoiceReport as a pdf and prints it on the client side, it will also save the pdf as an attachment to the current record.
       brixxApi.createReport("invoiceReport", {
          print: true,
          reportId: "invoiceReportSimple"
       }); 
       //In this case, we choose a different reportId
       brixxApi.createReport("invoiceReport", {
          cloudPrinter: "HP LaserJet",
       });
       brixxApi.cloudQuery({
        AppName: "MyCloudGateway",
        Endpoint: "LocalFirebird",
        SqlStatementId: "fbGetAddress",
        Parameters: {
          "id": 1  
        },
        
    })
       brixxApi.callWebHook(myUrl, {
          text: "Hello World"
       });
    https://docs.microsoft.com/de-de/microsoftteams/platform/webhooks-and-connectors/how-to/connectors-usingarrow-up-right

    deleteConfigRecordById

    Deletes a record of a given config

    hashtag
    Parameters

    1. configName - the name of the config

    2. id - the record id you want to delete

    hashtag
    Example Usages

    excludeFromReadonly

    It provides the functionality of excluding controls from being affected by the readOnlyMode.

    In our doc for readOnlyMode, we have seen how we can use it to disable all app controls or some of them. For that we will always have to make a call to readOnlyMode function, if we want anything to change. excludeFromReadonly function provides the functionality of excluding controls from being affected by the readOnlyMode. For example, we can set this function in appStart event then it will effect all readOnlyMode function calls after that. It means if we have set some controls to be excluded for readONly Mode function at app start, they will always be excluded from it influence during app life time and we do not have to make calls to this function again and again. If user wants to update excludeFromReadonly controls list then a new call to excludeFromReadonly will overwrite the previous setting.

    hashtag
    Exaample

    hashtag
    Parameters

    1. Control array - It is a json array of control ids.

    hashtag
    Example Usages

    As we have seen in ReadOnlyMode the example of address app and how we disabled every control using it without options. Now let say we want "Address Number" and "Name" controls to stay enabled. For this purpose, we will need to add these controls to our excludeFromReadOnly function and put this code in appStart event.

    As we can see in snapshot below Address number and name controls are editable after the app is started. We can use this functionality with any number of apps.

    disableGridHyperLinks

    Disables (or enables) the hyperlinks in grid cells, automatically generated for combo box controls. This function also refreshes the grid.

    hashtag
    Parameters

    1. controlId - The id of the grid control

    2. disable - true, if you want to disable the hyperlinks, false if you want to enable them again.

    hashtag
    Example Usages

    ZUGFeRD

    hashtag
    Introduction

    This documentation provides a complete overview of the xRechnung object used in the createPdf endpoint for generating ZUGFeRD-compliant invoices. The xRechnung object contains key information required to create a legally compliant electronic invoice, following the specifications of the XRechnung format.

    hashtag
    Payload Structure

    The xRechnung object is part of the main payload sent to the createPdf endpoint. Below is the structure and detailed explanation of all properties within the xRechnung object.

    hashtag
    Main Payload Structure

    hashtag
    xRechnung Object Details

    hashtag
    1. invoiceMain

    This object contains the main details of the invoice, including invoice number, dates, buyer, seller, and payment terms.

    • Type: object

    • Properties:

      • invoiceNo (string

    hashtag
    2. additionalReferencedDocuments

    This array contains documents that reference the invoice, such as orders or contracts.

    • Type: array

    • Properties:

      • id (string

    hashtag
    3. tradeLineItems

    This array contains items or services billed in the invoice.

    • Type: array

    • Properties:

      • globalID (object

    hashtag
    4. taxes

    This array contains detailed tax information applied to the invoice.

    • Type: array

    • Properties:

      • basisAmount (decimal

    hashtag
    5. serviceCharges

    This array contains additional charges applied to the invoice.

    • Type: array

    • Properties:

      • tax (object

    hashtag
    6. receivableSpecifiedTradeAccountingAccounts

    This array contains accounting accounts related to the trade, either receivable or payable.

    • Type: array

    • Properties:

      • tradeAccountID (string

    hashtag
    Enumerations

    hashtag
    1. currency

    Represents currency codes.

    Value
    Description

    hashtag
    2. schemeID

    Identification schemes for IDs.

    Value
    Description

    hashtag
    3. country

    Country codes.

    Value
    Description

    hashtag
    4. subjectCode

    Subject codes for notes.

    Value
    Description

    hashtag
    5. contentCode

    Content codes for notes.

    Value
    Description

    hashtag
    6. profile

    Invoice profiles.

    Value
    Description

    hashtag
    7. type

    Invoice types.

    Value
    Description

    hashtag
    8. referenceTypeCode

    Reference type codes for documents.

    Value
    Description

    hashtag
    9. taxCategoryCode

    Tax category codes.

    Value
    Description

    hashtag
    10. taxType

    Tax types.

    Value
    Description

    hashtag
    11. electronicAddressSchemeID

    Electronic address schemes.

    Value
    Description

    hashtag
    12. typeCode

    Document type codes.

    Value
    Description

    hashtag
    13. unitCode

    Unit codes for line items.

    Value
    Description

    hashtag
    14. paymentMeansTypeCode

    Payment means type codes.

    Value
    Description

    hashtag
    15. tradeAccountTypeCode

    Trade account type codes.

    Value
    Description

    This documentation provides a complete and structured overview of the xRechnung object, including all properties and enumerations used in the payload.

    copyConfigRecordById

    Creates a deep copy from a config record. Typical example is to create a copy of an "order" record, with a copy of all the "orderLines" from that source "order". brixxbox will use the "Cascade Copy" flag of a grid control, to decide if which referenced records will be copied.

    hashtag
    Parameters

    1. configName

    2. recordId - the id of the source record

    3. additionalValues - json object of values in the target record that should be modified. e.g. an "orderDate" field. Can be null, in this case you get a 1:1 copy except the record id.

    hashtag
    Example Usages

    Exact copy:

    Copy with new date for header data and manipulating two columns of line item data:

    composeEmail

    Shows the email compose Dialog, or sends an email without an interface popup.

    hashtag
    Parameters

    1. emailOptions - (optional) Json object with email parameters.

      • to - array of email addresses

      • cc - array of email addresses

      • bcc - array of email addresses

      • text - message text

      • subject - subject

      • from - single string with an email address

      • replyTo - single email, that will be used as to reply to

      • autoSend - if set to true, the mail will be send automatically. You will not see a dialog at all. (Default is false)

      • hideToEmail - if set to true. The recipients email address is hidden in the email dialog

      • attachmentIds - an array of attachment ids that will be sent as an attachment,

      • attachmentBlobs - an array of blobs objects that will be sent as an attachment, {name: myFileName, blob: myBlob}

      • recordId - RecordId if you would like to attach the email to an record. If empty, this is the current record Id (available from 18.11.2021)

      • appName - AppName if you would like to attach the email to an record. If empty, this is the current App Name (available from 18.11.2021)

    hashtag
    Example Usages

    hashtag
    Example 1

    Shows the dialog without any predefined values

    Shows the dialog text and to addresses

    hashtag
    Example 2

    Sends the email without a dialog

    hashtag
    Example 3 - attachment blobs

    hashtag
    Example 4 - attachment ids

    deleteRecord

    Deletes a record from the database.

    hashtag
    Parameters

    1. options - json object

      • id - the record id. Optional. By default, this is the current record id. (The current record id can be accessed here: brixxApi.actualRecordId)

      • noConfirmMessage - Optional. By default, this is false. If set to true, you will not get a confirm MessageBox. the record will be deleted.

    hashtag
    Example Usages

    1. Simple

    2. Simple - No Confirmation

    3. Without displaying the record

    downloadAttachments

    Downloads a list of attachment ids as a zip file.

    hashtag
    Parameters

    1. downloadOptions - JSON object

      • requestedIds - list of ids to download

      • fileName - (optional) name of the downloaded file

    hashtag
    Example Usages

    deleteAttachment

    Deletes an attachment and its link to a record.

    hashtag
    Parameters

    • attachmentId - the id of the attachment you want to delete

    hashtag
    Example Usages

    enableNotifications

    This function is used to disable or enable app messages, that are displayed automatically, like the "record Saved" message, after a successful save operation.

    hashtag
    Parameters

    1. param - The type of message. The following messages types are supported

    getAttachmentById

    Gets and attachment by its unique id.

    hashtag
    Parameters

    id - id of the attachment

    hashtag

    getAttachmentId

    Returns the id of an attachment of the current record by looking for the given file name.

    hashtag
    Parameters

    fileName - the name of the file attachmentApp - name of the app for the attachment (optional) recordId - Record id, where the attachment is linked to

    hashtag

    getCustomMessage

    Returns a custom message from the message manager. It replaces possibly passed parameters in the message. The target language can also be set.

    hashtag
    Example Usages

    getAttachmentByFileName

    Retrieves the blob of an attachment from the attachments of the current record

    hashtag
    Parameters

    fileName - the file name you are looking for

    hashtag

    enableValidator

    Enables or disables field validator.

    hashtag
    Parameters

    1. controlId - The control id of the field

       brixxApi.callWebHook(myUrl, {
          "@type": "MessageCard",
          "@context": "http://schema.org/extensions",
          "themeColor": "006E7E",
          "summary": "A new message from brixxbox",
          "sections": [{
             "activityTitle": "![TestImage](https://47a92947.ngrok.io/Content/Images/default.png)A new message from brixxbox",
             "activitySubtitle": "Volkers Sandbox",
             "activityImage": "https://teamsnodesample.azurewebsites.net/static/img/image5.png",
             "facts": [{
                "name": "Assigned to",
                "value": app.userId
            }],
            "markdown": true
          }],
          "potentialAction": [{
             "@type": "ActionCard",
             "name": "Add a comment",
             "inputs": [{
                "@type": "TextInput",
                "id": "comment",
                "isMultiline": false,
                "title": "Add a comment here for this task"
            }],
            "actions": [{
                "@type": "HttpPOST",
                "name": "Add comment",
                "target": "http://..."
            }]
          }, {
            "@type": "ActionCard",
            "name": "Set due date",
            "inputs": [{
                "@type": "DateInput",
                "id": "dueDate",
                "title": "Enter a due date for this task"
            }],
            "actions": [{
                "@type": "HttpPOST",
                "name": "Save",
                "target": "http://..."
            }]
          }, {
            "@type": "ActionCard",
            "name": "Change status",
            "inputs": [{
                "@type": "MultichoiceInput",
                "id": "list",
                "title": "Select a status",
                "isMultiSelect": "false",
                "choices": [{
                    "display": "In Progress",
                    "value": "1"
                }, {
                    "display": "Active",
                    "value": "2"
                }, {
                    "display": "Closed",
                    "value": "3"
                }]
            }],
            "actions": [{
                "@type": "HttpPOST",
                "name": "Save",
                "target": "http://..."
            }]
          }]
       });
       brixxApi.deleteConfigRecordById("address", 123);
       brixxApi.disableGridHyperLinks("myGrid", true); //disable links
       brixxApi.disableGridHyperLinks("myGrid", false); //enable links again
    ): The unique identifier of the invoice.
  • invoiceDate (DateTime): The date the invoice was issued.

  • paymentReference (string): Reference used for payments.

  • orderNo (string): The related order number.

  • orderDate (DateTime): The date of the related order.

  • currency (enum): The currency of the invoice. See currency enum.

  • buyer (object): Information about the buyer.

  • seller (object): Information about the seller.

  • notes (array): Notes related to the invoice.

  • paymentTerms (object): The terms of payment.

  • grandTotalAmount (decimal): The total amount of the invoice.

  • duePayableAmount (decimal): The amount due for payment.

  • Other related invoice properties.

  • ): Identifier of the referenced document.
  • issueDateTime (DateTime): Date and time the document was issued.

  • referenceTypeCode (enum): Reference type code. See referenceTypeCode enum.

  • attachmentBinaryObject (string): Base64 encoded binary object of the attachment.

  • filename (string): Filename of the attachment.

  • typeCode (enum): Type code for the document. See typeCode enum.

  • ): Global ID of the item or service.
  • sellerAssignedID (string): ID assigned by the seller.

  • name (string): Name of the item or service.

  • billedQuantity (decimal): Quantity billed.

  • lineTotalAmount (decimal): Total amount for the line item.

  • taxCategoryCode (enum): Tax category code. See taxCategoryCode enum.

  • netUnitPrice (decimal): Net unit price of the item.

  • unitCode (enum): Unit code for the item. See unitCode enum.

  • Other related line item properties.

  • ): Amount on which the tax is calculated.
  • percent (decimal): Tax percentage.

  • typeCode (enum): Type of tax. See taxType enum.

  • categoryCode (enum): Tax category code. See taxCategoryCode enum.

  • exemptionReasonCode (enum): Reason for tax exemption. See exemptionReasonCode enum.

  • ): Tax information related to the service charge (similar to
    taxes
    object).
  • amount (decimal): Amount of the service charge.

  • description (string): Description of the service charge.

  • ): ID of the trade account.
  • tradeAccountTypeCode (enum): Type of trade account. See tradeAccountTypeCode enum.

  • 0

    Euro (EUR)

    1

    US Dollar (USD)

    2

    British Pound (GBP)

    3

    Swiss Franc (CHF)

    4

    Japanese Yen (JPY)

    0

    Unknown

    1

    GLN (Global Location Number)

    2

    DUNS (Data Universal Numbering System)

    3

    VAT ID

    4

    National Tax ID

    5

    Other

    0

    Germany (DE)

    1

    Austria (AT)

    2

    Switzerland (CH)

    3

    United States (US)

    4

    United Kingdom (GB)

    0

    General Information

    1

    Legal Information

    2

    Payment Information

    0

    Free Text

    1

    Legal Notice

    2

    Payment Instruction

    3

    Delivery Information

    1

    Basic Profile

    2

    Comfort Profile

    3

    Extended Profile

    4

    EN 16931 Profile (XRechnung)

    0

    Invoice

    1

    Credit Note

    2

    Debit Note

    3

    Correction Invoice

    0

    Order Reference

    1

    Despatch Advice Reference

    2

    Delivery Note Reference

    3

    Contract Reference

    0

    Standard Rate

    1

    Reduced Rate

    2

    Zero Rate

    3

    Exempt

    4

    Reverse Charge

    0

    Value-Added Tax

    1

    Sales Tax

    2

    Service Tax

    88

    Email

    89

    EDI (Electronic Data Interchange)

    90

    Web Address

    50

    Attachment

    51

    Image

    52

    PDF Document

    0

    Piece (PCE)

    1

    Kilogram (KGM)

    2

    Liter (LTR)

    3

    Hour (HUR)

    4

    Day (DAY)

    0

    Bank Transfer

    1

    Direct Debit

    2

    Credit Card

    3

    Cash

    0

    Debtor Account

    1

    Creditor Account

    2

    General Ledger Account

    3

    Cash Account

       let newOrder = brixxApi.copyConfigRecordById("customerOrder", 1376);
       let newOrder = brixxApi.copyConfigRecordById("customerOrder", 1376, {
          cordOrderDate: new Date(),
          cordlnOrderQuantity: "1",
          cordlnDeliveredQuantity: null
       });
       brixxApi.deleteRecord(); //deletes the current displayed record
       brixxApi.deleteRecord({id: brixxApi.actualRecordId}); //deletes the current displayed record
       brixxApi.deleteRecord({noConfirmMessage: true}); //deletes the current displayed record without confirmation
       brixxApi.downloadAttachments({
          requestedIds:[196, 197, 200]
       });
       brixxApi.downloadAttachments({
          requestedIds:[196, 197, 200],
          fileName: "myDownload.zip"
       });
       brixxApi.deleteAttachment(42);
       let msg = brixxApi.getCustomMessage("messageName", {"param1": "text1", "param2": "text2"}, "en-Us");
       brixxApi.setFieldValue("controlId", msg);

    getControlUnmodifiedValue

    Gets the unmodified value of the control.

    hashtag
    Example Usages

       let unmodifiedCompareValue = brixxApi.getControlUnmodifiedValue("myControlId");

    getBrowserToken

    Gets a GUID Token, that identifies the browser. This token will NOT be different, when you close all browser tabs and start the brixxbox again. But it will be different, when you delete the local storage for that url. You could use this to identify a shopping cart, for example.

    hashtag
    Example Usages

       let myToken = brixxApi.getBrowserToken();

    hashtag
    brixxApi.getSessionToken

    GUID stands for Global Unique Identifier. A GUID is a 128-bit integer (16 bytes) that you can use for authentication purposes. There are many types of GUID tokens, one of them is browser token. We can use this token to identify a user for same browser because his token will NOT be different, when you close all browser tabs and start the Brixxbox again. But it will be different, when you delete the local storage for that url. This function can be used to get GUID for browser. It can then be used to keep user session open. Another usecase is that it could be used to identify a shopping cart. An important aspect here to note is that when when you close all browser tabs and start the Brixxbox again, this token will not be different.

    hashtag
    Example Usages

    An example user is that user can get access tokens using this getBrowserToken functions from two apps and compare them to confirm user identity i.e after login this can be used as authenticate the user between different browser sessions.

    "save" - The save Message

    hashtag
    Example Usages

       brixxApi.enableNotifications("save", false); //Disable the save message
    
       brixxApi.enableNotifications("save", true); //Enable the save message (This is the default)
    Example Usages
       brixxApi.getAttachmentById(1234);
       let allAttachmentsForThisRecord = brixxApi.getAttachmentsForCurrentRecord();
       let invoices = allAttachmentsForThisRecord.filter(singleAttachment => {return singleAttachment.documentTypeId == 2}); //We assume, that there is just one invoice
       let attachmentBlob = brixxApi.getAttachmentById(invoices[0].id);
       brixxApi.printBlob(attachmentBlob)
    Example Usages
       brixxApi.getAttachmentId("Invoice1.pdf", "attachmentApp", 1)
    Example Usages
       brixxApi.getAttachmentByFileName("Invoice1.pdf")
    validatorName - the name of the validator
  • enable - enable (true=default) or disable (false) the validator

  • hashtag
    Example Usages

       brixxApi.enableValidator("firstName", "notEmpty", false); //disables the validation of notEmpty for the control firstName
       brixxApi.excludeFromReadonly(["myFirstControl", "mySecondControl"]);
       brixxApi.excludeFromReadonly(["adrNumber", "adrName"]);
    {
      "report": "string",
      "reportName": "string",
      "configName": "string",
      "archive": true,
      "documentTypeId": 0,
      "culture": "string",
      "parameters": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
      "mainHostUrl": "string",
      "xRechnung": {
        "invoiceMain": { ... },
        "additionalReferencedDocuments": [ ... ],
        "despatchAdviceReferencedDocument": { ... },
        "profile": 1,
        "tradeLineItems": [ ... ],
        "taxes": [ ... ],
        "serviceCharges": [ ... ],
        "receivableSpecifiedTradeAccountingAccounts": [ ... ]
      }
    }
    
       composeEmail({
          text: `This is the messsage text and this is a link: <a href='http://www.brixxbox.net' target='_blank'>www.brixxbox.net</a>`, 
          to:["john.doe@acme.com", "jane.doe@acme.com"], 
          subject: "This is the mail subject",
          from: "noreply@acme.com"
       });
       composeEmail({
          text: "This is the messsage text", 
          to:["john.doe@acme.com", "jane.doe@acme.com"], 
          subject: "This is the mail subject",
          from: "noreply@acme.com",
          replyTo: "reply@acmy.com", 
          autoSend: true //Set this to avoid the dialog
       });
       composeEmail({
          text: "This is the messsage text", 
          to:["john.doe@acme.com", "jane.doe@acme.com"], 
          subject: "This is the mail subject",
          from: "noreply@acme.com",
          autoSend: true,
          attachmentBlobs: [
             {
                name: "Test1.pdf", 
                blob: app.createReport("report")
             },
             {
                name: "Test2.pdf", 
                blob: app.getAttachmentById(2)
             }
          ],
       });
       composeEmail({
          text: "This is the messsage text", 
          to:["john.doe@acme.com", "jane.doe@acme.com"], 
          subject: "This is the mail subject",
          from: "noreply@acme.com",
          autoSend: true,
          attachmentIds: [1, 2, 3]
       });
       let myRecord = await brixxApi.laodRecord("myKeyControl"); loads a record into myRecord
       brixxApi.deleteRecord({id: myRecord.id}); //deletes the loadedRecord

    getCalcDateTime

    Gets a DateTime as a compareable number with a given accuracy.

    hashtag
    Parameters

    1. dateTime value or controlId

    2. accuracy - "seconds" (default), "minutes" or "hours"

    hashtag
    Example Usages

    hashtag
    Example 2 calculation

    executeStoredProcedure

    Executes a stored procedure.

    hashtag
    Parameters

    1. procedureName - The name of the stored procedure

    2. procedure parameters - If you need to add parameters, you can use this json object to set them

    3. queryOptions - (optional) a json object with options for the request

      • timeout - (optional) timeout for the SQL Request. Default is 30 seconds

      • connectionKey - (optional) a key to a custom settings entry with the connection string to an external MSSQL database

    hashtag
    Example Usages

    1. Simple (pay attention to the await keyword)

    2. With parameters (pay attention to the await keyword)

    3. Short version (pay attention to the await keyword)

    4. With Timeout

    getLastAttachmentByRecordId

    Retrieves the most recent attachment for a given record ID as a blob.

    This function queries the database to find the latest attachment associated with a specific record ID. If the documentTypeId is 0, the document type filter is ignored.

    Parameters

    • tableName: string

      • The name of the table where the record is stored.

    • recordId: number

      • The ID of the record for which the attachment is being retrieved.

    • documentTypeId: number

      • The ID of the document type to filter by. If 0 or null, this filter is ignored.

    Returns

    • Promise<Blob>

      • A promise that resolves to a blob containing the attachment, or null if no attachment is found.

    Example

    getAttachmentsForCurrentRecord

    Returns a list of all the attachments of the current record. The list is ordereb by id desc. so the newest documents will be the first you will find while iterating over the array.

    hashtag
    Example Usages

    hashtag
    Example 1

       console.log(brixxApi.getAttachmentsForCurrentRecord());

    hashtag
    Example 2 Filtering

    getCalcDate

    Converts a date to the total days since 1.1.1970 to make it easy comparable. You can use Date, or DateTime as input and even if two datetime values do have different times.

    hashtag
    Parameters

    inputDate - This can be a date or datetime in any format or a controlId to a date or dateTime control

    hashtag

    getGeoLocation

    Returns the geo location and additional information like speed and altitude if available. Be aware, that this is an asynchronous function and you have to use await.

    The Result looks like this:

    hashtag
    Example Usages

    To Visualize a geo location in google maps, see this documentation() for possible url parameters, You could use the following commands in an event:

    getCustomSetting

    Retrieve a value for a specific custom setting.

    hashtag
    Parameters

    1. settingName - the key for the setting

    getSessionToken

    GUID stands for Global Unique Identifier. A GUID is a 128-bit integer (16 bytes) that you can use for authentication purposes. We use this token to identify a user for same browser session. This function can be used to get GUID for current user sessions. It can then be used to authenticate user between different apps. Another usecase is that it could be used to identify a shopping cart. An important aspect here to note is that when when you close all browser tabs and start the Brixxbox again, this token will be different.

    hashtag
    Example Usages

    An example user is that user can get access tokens using this getSessionToken functions from two apps and compare them to confirm user identity i.e after login this can be used as authenticate the user.

    getHtmlElement

    Gets the html element for this brixxbox control.

    Note: Usually it is not necessary to get the Html element itself. Make sure there is no better way to do the things you want to do by using the brixxApi functions!

    hashtag
    Example Usages

    getDate

    As the name suggests, this functions is to get date. This function when used without any arguments returns a date in this format 'yyyy-mm-dd'.

    It is very important to be cautious because different date formats can lead into worng results when in comparison.

    hashtag
    Parameters

    1. param - (optional). If empty it will return todays date. User is also allowed to provide a date or moment object of javascript.

       brixxApi.getCalcDateTime(myDateTimeControl);
       brixxApi.getCalcDateTime(myDateTimeControl, "minutes");
       brixxApi.getCalcDateTime(myDateTimeControl, "hours");
       let durationInSeconds = brixxApi.getCalcDateTime(myDateTimeEnd) - brixxApi.getCalcDateTime(myDateTimeStart);
       let durationInMinutes = brixxApi.getCalcDateTime(myDateTimeEnd, "minutes") - brixxApi.getCalcDateTime(myDateTimeStart, "minutes");
       let durationInHours = brixxApi.getCalcDateTime(myDateTimeEnd, "hours") - brixxApi.getCalcDateTime(myDateTimeStart, "hours");
       await brixxApi.executeStoredProcedure("procedureName");
       let allAttachmentsForThisRecord = brixxApi.getAttachmentsForCurrentRecord();
       let invoices = allAttachmentsForThisRecord.filter(singleAttachment => {return singleAttachment.documentTypeId == 2}); //We assume, that there is just one invoice
       let attachmentBlob = brixxApi.getAttachmentById(invoices[0].id);
       brixxApi.printBlob(attachmentBlob)
       coords
          accuracy: 33
          altitude: null
          altitudeAccuracy: null
          heading: null
          latitude: 51.073834399999996
          longitude: 6.0768204
          speed: null
       timestamp: 1557477072518
       let myGeoLocation = await brixxApi.getGeoLocation();
       console.log(myGeoLocation.coords.latitude);
       console.log(myGeoLocation.coords.longitude);
       let myLocation = await brixxApi.getGeoLocation();
       window.open("http://maps.google.de/maps?q=" + myLocation.coords.latitude + "," + myLocation.coords.longitude,'_blank');
    http://www.joerg-buchwitz.de/temp/googlemapssyntax.htmarrow-up-right
       let myToken = brixxApi.getSessionToken();
       let myField = brixxApi.getHtmlElement("myFieldId");
       myField.disabled = true; // just for demonstration. Please use brixxApi.setFieldEnable("myFieldId", false) instead

    initAllControls

    Initializes all controls within a brixxbox App to their empty states.

    hashtag
    Example Usages

       brixxApi.initAllControls();
    Example Usages

    hashtag
    Example Results

       let calcDate1 = brixxApi.getCalcDate(brixxApi.getFieldValue("myDateTime1"));
       let calcDate2 = brixxApi.getCalcDate(brixxApi.getFieldValue("myDate2"));
       if(calcDate1 === calcDate2){
          //Do something
       }
       brixxApi.getCalcDate(new Date('1995-12-17 03:24:00')) //9481 (days since 1.1.1970)
       brixxApi.getCalcDate('1995-12-17 03:24:00')           //9481
       brixxApi.getCalcDate('1995-12-17 12:44:30')           //9481
       brixxApi.getCalcDate(myControlId)                     //?
    hashtag
    Example Usages
       let settingValue = brixxApi.getCustomSetting("groupOne.setting1");
       console.log(settingValue);

    hashtag
    Example Usages

    Following examples shows all three usages of getDate function. Lets suppose we want to know the new order placement date which is today then we can use 1st or second example. We also suppose that our order delivery date is after one month then we can use the third example and use this date as a delivery date.

       brixxApi.getDate();
       brixxApi.getDate(new Date());
       brixxApi.getDate(new moment().add(1, "month"));
       let parameterJson = {
          myCustomSqlParameter: 12345
       };
       await brixxApi.executeStoredProcedure("procedureName", parameterJson);
       await brixxApi.executeStoredProcedure("procedureName", {
          myCustomSqlParameter: 12345
       });
       await brixxApi.executeStoredProcedure("procedureName", {
          myCustomSqlParameter: 12345
       },{
          timeout: 45
       });
      try {
        // Retrieve the last attachment for a record with ID 123 in the 'Orders' table, ignoring document type filter
        const blob = app.getLastAttachmentByRecordId('Orders', 123, 0);
        if (blob) {
          app.printBlob(blob);
        } else {
          console.log('No attachment found for the given record ID.');
        }
      } catch (error) {
        console.error('Error retrieving attachment:', error);
      }

    getUserClaim

    Brixxapi allows user to set a claim value. This claim Value gets added when user gets logged in. It is used to identify users claim. For example, to check whether a user is someone who he claims to be or not. By using this function, we can get userClaim and make useful comparisons in our apps.

    hashtag
    Parameters

    1. claimName - This is the only paramter this function takes. It is the claiName which should be in the form of string.. Brixxapi allows user to add claim name with or with out "claim_" prefix.

    hashtag
    Example

    hashtag
    Example Usages

    We can use "getUserClaim" function to get user's claim, a way to check user identity. As a parameter, we need to provide the claimName to this function. We can provide only the claimName or the claimName plus "claim_" as prefix. Lets see both of them in action. We have a claimName "EfitDealerNumber", now we want to get userClaim:

    Lets first do it without prefix "claim_".

    It is ame as the previous example but now we use prefix.

    An important thing to notice here is that it is required by Brixxbox that for using SQL Parameters for claims must have to start with the "claim_" prefix.

    For example, Userclaims can also be used as SQL parameters:

    getConfigRecordAttachmentIdByFileName

    Returns an id of an attachment of a record in a config.

    hashtag
    Parameters

    1. appName - the name of the config with the attachment

    2. recordId - the id of the record with the attachment

    3. fileName - the name of the requested attachment

    hashtag
    Example Usages

    getFieldValue

    Gets a value to a specific field

    hashtag
    Parameters

    1. controlId => String with the control id. Some controls (like Comboboxes) do have sub information. in that case the controlId is combined with a ".". e.g. comboBoxId.subcontrolId

    hashtag
    Example Usages

    globalSearch

    This functions is used to trigger global search of the whole workspace. It only takes one parameter which is a search keyword. This function is directly used in the each Brixxbox workspace. User can find it in top right corner of each workspace page. It is a textbox accompanied by search button. User needs to enter a string in the global search field at the top of the screen and it will trigger the search function. It can be useful if you want to search for a scan result or anything within your workspace in seconds.

    hashtag
    Parameters

    1. searchTerm - It is of type string.

    hashtag
    Example Usages

    User can find this button on top right corner. It looks like this.

    User can enter any keyword and it with return thespecific results. User can also use this function in their apps. For this user need to provide a search keyword and can use it to retreive data from the global workspace. If user want to search "address" the code will look like this

    isUserInRole

    All users in any Brixxbox workspace shoyuld have been assigned a specific user role. isUserInRole takes a string argument role. On the basis of this role parameter, it determines whether a logged user

       brixxApi.isUserInRole("Management");

    hashtag
    Parameters

    1. role - It is a string parameter. It is the name of logged in user role which needs to be checked.

    hashtag
    Example Usage

    We have seen address app in the docs of ReadOnlyMode function. Now we will build upon that functionality. In it we have used readOnlyMode function to disable all ap controls. Now we want tht if user is of admin role then all the controls should be enabled and disabled otherwise. For this we need to update our custom code. It should look like this.

    Now If user 'raghib' has an admin role assigned to him then address app will be enabled for him and for all other non admin users. It will be disabled.

    Let suppose we have a claimName parameter "EFitDealer" then Brixxapi will consider both "EFitDealer" and "claim_EFitDealer" as same.
       brixxApi.getConfigRecordAttachmentIdByFileName("customerOrder", 1234, "invoice.pdf");
       let myText = "Hello World!";
       brixxApi.setFieldValue("myControlId", myText);
       value = brixxApi.getFieldValue('fieldId');
       let myFieldId = 'fieldId';
       let value = brixxApi.getFieldValue(myFieldId);
       let itemId = brixxApi.getFieldValue('itemCombobox'); //like any other control
       let taxKeyId = brixxApi.getFieldValue('itemCombobox.itmTaxKeyId'); //get the itmTaxKeyId value of the selected entry in acomboBox
       let itemName = brixxApi.getFieldValue('itemCombobox.itmName');
       brixxApi.globalSearch("address"); //triggers a search for "address" in global address space.
    if(brixxApi.isUserInRole("Admin")){
        brixxApi.readOnlyMode(false);
        console.log("raghib")
    }
    else{
        brixxApi.readOnlyMode();
    }

    initControl

    Initializes a control to its empty state

    hashtag
    Example Usages

       brixxApi.initControl();
       let dealerNumber = brixxApi.getUserClaim("EfitDealerNumber");
       console.log("The dealer Number is: " + dealerNumber);
       let dealerNumber = brixxApi.getUserClaim("claim_EfitDealerNumber");
       console.log("The dealer Number is: " + dealerNumber);
       select @claim_EfitDealerNumber
       let taxKeyId = brixxApi.getFieldValue('itemList').itmTaxKeyId; //get the itmTaxKeyId value of the selected entry in a grid
       let allRowsFromMyGrid = brixxApi.getFieldValue('itemList.allRows'); //get an array of all rows in a grid
       let selectedRowsFromMyGrid = brixxApi.getFieldValue('itemList.selectedRows'); //get an array of all selected rows in a grid
       let unselectedRowsFromMyGrid = brixxApi.getFieldValue('itemList.unselectedRows'); //get an array of all unselected rows in a grid
       let myRowJsonObject = brixxApi.getFieldValue('itemList.clickedRow'); //get the clicked row as a json object (only valid in onRowClick and onCellClick events)
       let myCellValue = brixxApi.getFieldValue('itemList.clickedCell'); //get the clicked cells formatted value (only valid in onCellClick events)
       let myCellId = brixxApi.getFieldValue('itemList.clickedCellId'); //get the clicked cells id (only valid in onCellClick events)
       for(let i = 0; i < allRowsFromMyGrid.length; i++){
       console.log(allRowsFromMyGrid[i].itmTaxKeyId);
       }

    isRowSelected

    Checks if a row in a grid is selected or not.

    hashtag
    Parameters

    1. controlId - The id of the grid

    2. line - This can be either a whole line from a "myGrid.allRows" call or a single id from a record.

    hashtag
    Example Usages

    Used in a loop

    Used with an id

    inviteUser

    hashtag
    inviteUser(string email)

    This function takes a string as a parameter. This string should be an email address of a new user to whom admin of current workspace wants to invite. This function provides functionality of sending an email to a new user.

    hashtag
    Example Usage

    In order to learn more about this function click here.

    localValue

    Stores and retrieves local values, like settings or something, that you want to have persistent on this specific browser. The value will be saved only for the browser you are currently working on. The value will be save in the scope of the current workspace you are working in.

    hashtag
    Parameters

    1. key - Key name

    2. value - (optional) value you want to save. If this is empty, brixxbox will return the value, you saved before.

    This is not an asynchronous operation. No await needed!

    hashtag
    Example Usages

    getLabelText

    Gets the current or original lable text for a control.

    hashtag
    Parameters

    1. controlId - Id of the control

    loadRecord

    Loads a record, based on the current config, from brixxbox server and returns a promise. This is a async function. You have to await the result, if you want to use it. This function will not display the record, it will just load and return it. To display the record, use the function result with .

    hashtag
    Parameters

    The first parameter is a control with the key value, that will be used to find the record (like an address number)

    loadAndDisplayRecordById

    Loads a record, based on the value in the control, given as a parameter in the first argument and displays it. This function just combines and displayRecord

    hashtag
    Example Usages

    Simple (pay attention to the await keyword)

    loadConfigRecordByValue

    Loads a record of a specific app config from brixxbox server by a specified field and returns a promise. This is a async function. You have to await the result, if you want to use it.

    hashtag
    Parameters

    1. configName - the name of the app

    loadAndDisplayRecord

    Loads a record, based on the value in the control, given as a parameter in the first argument and displays it. This function just combines and

    hashtag
    Example Usages

    Simple (pay attention to the await keyword)

    isModal

    Determens if the current brixxbox app is started in a modal window.

    hashtag
    Example Usages

    Simple

    loadRecordById

    Loads a record from brixxbox server and returns a promise. This is a async function. You have to await the result, if you want to use it. This function will not display the record, it will just load and return it. To display the record, use the function result with .

    hashtag
    Parameters

    The first parameter is a record id

    getSignatureImageBlob

    Returns the signature of a signature control as a png (default) or svg image blob.

    hashtag
    Parameters

    1. controlId - The id of the signature control

       let result = brixxApi.isRowSelected("myGrid", myLine)
       let allRows = app.getFieldValue("myGrid.allRows");
       for(let i = 0; i < allRows.length; i++){
          if(brixxApi.isRowSelected("myGrid", allRows[i])){
             console.log("This is selected: " + line.id);
          }
       }
       var result = brixxApi.inviteUser("john.doe@acme.com");
       brixxApi.localValue("myKey", "Hello World"); //Save the value "Hello World" under the key "myKey"
       let x = brixxApi.localValue("myKey"); //Retrieve the Key "myKey". This will result in "Hello World"
       
       console.log(x)
       let recordId = 123;
       brixxApi.loadAndDisplayRecordById(recordId);
       
       await brixxApi.loadAndDisplayRecordById(recordId);
    loadRecordById
    displayRecord
       brixxApi.loadAndDisplayRecord(keyFieldID);
       await brixxApi.loadAndDisplayRecord(keyFieldID);
    loadRecord
    displayRecord
       if(brixxApi.isModal()){
          alert("the brixxbox app is modal!");
       }
    getDefault - (optional) If set to true, the default label text will be returned
    const defaultText = app.getLabelText("myControl", true);
    hashtag
    Example Usages

    Simple (pay attention to the await keyword)

    displayRecordarrow-up-right
       let myRecord = await brixxApi.loadRecord("myKeyControl");

    keyField - the search field

  • value - value to search for

  • hashtag
    Result

    The result is a brixxbox record object. All fieldvalues of that record are stored in data as key value pairs. (e.g. myRecord.data.addressName). The id of the record can be found in myRecord.id.

    hashtag
    Example usage

    let myAddress= app.loadConfigRecordByValue("address", "adrCompanyName", "Fake Company"); 
    let addressName = myAddress.data.name;
    let id = myAddress.is;
    hashtag
    Example Usages

    Simple (pay attention to the await keyword)

    displayRecord
       let myRecordId = 123;
       let myRecord = await brixxApi.loadRecordById(myRecordId);
    type - optional, if not set, the function returns a png image. If set to "svg", the function returns a svg vector image.

    hashtag
    Example Usages

       let myBlob = brixxApi.getSignatureImageBlob("mySignature"); //gets the blob as PNG
       let myBlob = brixxApi.getSignatureImageBlob("mySignature", "svg"); //gets the blob as SVG
       brixxApi.printBlob(brixxApi.getSignatureImageBlob("mySignature"));
       let result = brixxApi.isRowSelected("myGrid", 123); //Checks if the line with the id 123 is selected.

    loadConfigRecordById

    Loads a record of a specific app config from brixxbox server and returns a promise. This is a async function. You have to await the result, if you want to use it.

    hashtag
    Parameters

    1. configName - the name of the app

    2. id - recordId to load

    hashtag
    Result

    The result is a brixxbox record object. All fieldvalues of that record are stored in data as key value pairs. (e.g. myRecord.data.addressName). The id of the record can be found in myRecord.id.

    hashtag
    Example Usages

    Simple (pay attention to the **[await](/globalDoc/glossary_await)** keyword)

       let myAddress= await brixxApi.loadConfigRecordById("address", 15); 
       let addressName = myAddress.data.name;
       let id = myAddress.is;