Zum Hauptinhalt gehen

FS_Button Drop

Kommentare

7 Kommentare

  • Zendesk API User
    Author: pavone - 9/9/2016 8:59

    Hallo Sebastian,

    hast du in deiner module.xml die Drop-Executable als Public-Komponente bekannt gemacht?

    <public>

      <name>MyDropHandler</name>

      <description>My Drop Handler</description>

      <class>de.test.ClassName</class>

    </public>

    Wenn nicht, könnte das eine Ursache für dein erstes Problem sein. Wenn der Eintrag in der module.xml vorhanden ist, solltest du sowohl onDrop="class:MyDropHandler" als auch onDrop="class:de.test.ClassName" verwenden können.

    Der Code deiner Executable sieht soweit erstmal richtig ist. Ich vermute, dass das Problem mit dem Mime- und Transfer-Type zu tun hat.

    Was genau lässt du denn auf den Button fallen? Ein StoreElement? Ein Item aus einem Report? Mime- und Transfer-Type müssen natürlich zum tatsächlich gedroppten Element passen.

    Viele Grüße

    Tim

    0
  • Zendesk API User
    Author: switt - 9/9/2016 9:27

    Hi Tim,

    Danke für die Antwort. Nr. 1 müsste ich noch mal ausprobieren, aber ja eine Public Komponente habe ich nicht definiert (hab ich so auch nicht in der Doku gesehen :smileyconfused:).

    Zu Nr. 2: Ich lasse eine externe (= aus Windows) Datei auf den button fallen (eine txt und csv Datei).

    Gruß,
    Sebastian

    0
  • Zendesk API User
    Author: pavone - 9/9/2016 10:17

    Hallo Sebastian,

    versuch mal Folgendes:

    In deinem Formular

    <MIME type="text/plain" classname="java.io.InputStream"/>

    Und in deiner Executable

    transferAgentType = transferAgent.getPlainTextType();

    Als Dropdata solltest du dann die URL der Datei bekommen.

    Viele Grüße

    Tim

    0
  • Zendesk API User
    Author: switt - 9/9/2016 12:32

    Hi Tim,

    Nr.1 ist jetzt gelöst :smileyhappy: , es lag an der Public Komponente, 2 tut leider immer noch nicht :smileysad:

    Der DropHandler sieht so aus:

    public class DropHandler implements Executable {

        @Override
        public Object execute(Map<String, Object> map) throws ExecutionException {

            BaseContext context = (BaseContext) map.get("context");
            CommodityContainer dropdata = (CommodityContainer) map.get("dropdata");
            TransferAgent transferAgent = context.requireSpecialist(TransferAgent.TYPE);
            TransferType<String> transferAgentType = transferAgent.getPlainTextType();
            List texts = dropdata.get(transferAgentType);
            texts.size(); // is still always 0 :(

            return null;
        }

        @Override
        public Object execute(Map<String, Object> map, Writer writer, Writer writer1) throws ExecutionException {

            return execute(map);
        }

    }

    Und das Formular so:

    <CMS_MODULE>

      <FS_BUTTON

        name="test"

        alwaysEnabled="yes"

        icon="info"

        onDrop="class:com.bosch.DropHandler"

        useLanguages="no">

        <DROPTYPES>

          <MIME type="text/plain" classname="java.io.InputStream"/>

        </DROPTYPES>

        <LANGINFOS>

          <LANGINFO lang="*" label="Drop something"/>

        </LANGINFOS>

      </FS_BUTTON>

    </CMS_MODULE>

    Audgerufen wird der Button in einem Context Menu Script.

    0
  • Zendesk API User
    Author: pavone - 9/9/2016 13:29

    Hallo Sebastian,

    was genau meinst du mit

    Audgerufen wird der Button in einem Context Menu Script.

    0
  • Zendesk API User
    Author: switt - 9/12/2016 6:55

    Hallo Tim,

    der Button wird im Formular eines Scriptes genutzt.

    0
  • Zendesk API User
    Author: tenter - 11/7/2016 12:30

    Hallo zusammen,

    hier noch als allgemein Info: Für das beschriebene Problem gibt es aktuell keine allumfassende, offizielle Lösung. Das Problem haben wir aufgenommen, um es intern zu evaluieren.

    Grüße,

    Hannes

    0

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.