Hauptmenü

Felder berechnen Assets

Begonnen von MAK, 13.12.2024 09:33:57

⏪ vorheriges - nächstes ⏩

MAK

Hallo zusammen,

gibt es eine Möglichkeit Berechnungen in Assetformulare einzubauen? Speziell geht es Darum:

Der User muss zwei Felder per Dropdown mit Werten zwischen 1 und 3 befüllen. Nun soll es darunter ein Berechnungsfeld geben, welches simpel den Mittelwert errechnet und bei 1 1 beispielsweise niedrig, bei 2 1 und 22 mittel und ab X 3 hoch ausgibt. Ähnlich wie eine if-Funktion in Excel.

Torsten Thau

Hallo,

das ließe sich über einen Job der auf Assets und das Event VersionCreate reagiert realisieren. Das zu errechnende Attribut sollte mit dem "GUIReadOnly"-Flag gekennzeichnet werden. Die Berechnung erfolgt mit MacroAction "Calculate"). Das Erstellen der neuen Version mit dem Berechnungsergebnis mit der MacroAction "CreateOrUpdateAsset". Das wäre auch gleich der Nachteil: für jede Anlage einer Version mit neuen Werten wird auch eine Version mit dem berechneten Attribut aktualisiert.

CU, Torsten

MAK

Hallo Thorsten,

sorry, ich habe es erst jetzt wieder geschafft hier vorbei zu schauen. Das klingt zumindest schon einmal nach einem Weg.

Verstehe ich das so richtig, dass dann bei der Berechnung, sobald ich ein Feld änder, diese neu durchgeführt wird und gleichzeitig eine neue Version in der Liste der Versionierungen erscheint? Das wäre sogar ein guter Umstand für meinen Zweck.

Leider habe ich mit diesen Jobs noch gar keine Erfahrung. Hast du da evtl. einen kleinen "Startpunkt" für mich? Damit ich mich von da aus weiter daran begeben kann?

Torsten Thau

#3
Hallo MAK,

...Pläne und Realität... im Anhang findest Du eine Bilderserie wie man das realisieren könnte.

"Könnte" weil die Platzhalterauflösung aktuell nur in zwei speziellen Macro Actions funktioniert. Da wo ich sie in meiner Vorstellung eingesetzt hätte, greift sie leider noch nicht. Das werden wir in v35 erst ergänzen können. Der alternative Weg ist bisschen zu kompliziert.

Solltest Du einen Supportvertrag haben, wende Dich bitte an unseren Support und wir stellen sobald möglich einen Hotfix bereit,  oder erläutern den Workaround (erfordert AddOn KIXConnect).

Das vorgeschlagene Vorgehen aber schaut wie folgt aus (Voraussetzung ist KIXPro, mit KIXStart wird es nicht gehen):

  • (1) passende Assetklassendefinition erstellen - hier die für das Beispiel verwendete (so einfach es irgend geht)
  • [
        {
            'CountDefault' => 1,
            'CountMax'     => 1,
            'CountMin'     => 1,
            'Input'        => {
                'Type' => 'Text'
            },
            'Key'        => 'NumberA',
            'Name'       => 'NumberA',
            'Required' => 1,
        },
        {
            'CountDefault' => 1,
            'CountMax'     => 1,
            'CountMin'     => 1,
            'Input'        => {
                'Type' => 'Text'
            },
            'Key'        => 'NumberB',
            'Name'       => 'NumberB',
            'Required' => 1,
        },
        {
            'CountDefault' => 1,
            'CountMax'     => 1,
            'CountMin'     => 1,
            'Input'        => {
                # this attribute is calculated, therefore it must not be tampered with by manual input...
                'GUIReadOnly' => 1,
                # furthermore it is not entered via GUI so it must not be required...
                'Required' => 0,
                'Type' => 'Text'
            },
            'Key'        => 'NumberC',
            'Name'       => 'NumberC',
        },
    ]
  • (2) Job anlegen (siehe Doku)
    • (2a) mit der MA "Variable Setzen" (siehe Doku) die Platzhalter in Variablen schreiben (das könnte man vermutlich auch weglassen)
    • (2b) mit der MA "Berechnen" (siehe Doku) die Berechnung durchführen
    • (2c) mit der MA "Asset anlegen oder aktualisieren" (siehe Doku) eine neue Version im Asset anlegen - alle Werte aus der Vorversion übernehmen außer das eine berechnete Attribut


Sorry, dass der Plan (noch) nicht aufgeht. Dennoch eine schöne Weihnachtszeit und einen guten Start in 2025!

Viele Grüße, Torsten