2 Replies Latest reply: Dec 10, 2013 5:29 PM by Kenneth Madsen RSS

    How do I call external DLLs?

      I want to wrap my product as a Transform Operator that other people can use in QlikView Expressor.


      Can I create a custom Transform Operator that makes calls to an external DLL?

      I can't see how to do this from DataScript.


      Also, can a custom Transform Operator adapt to the upstream schema? I.e. in the same way that the Sort Utility has a parameter that lets you select the sort key from a list of input fields, and all the input fields pass through as output fields - the user doesn't have to drag input and output fields into and out of a rule and write code to map them.


      Thanks in advance.



        • Re: How do I call external DLLs?
          Stefan Walther

          Hi, this is probably the wrong forum for Expressor questions, I'd suggest you post this question in the Expressor discussion form here: http://community.qlik.com/community/discussion-forums/qlikview-expressor-desktop-%26-server




          • Re: How do I call external DLLs?

            With regard to transforms, in Expressor Desktop version 3, if the input attributes have the same name as the output attributes, they are automatically propagated through.  You only need to map when the names are different.  That is, if you wind up doing this:


               output.ID = input.ID


            That is not needed.  You would need it for this sort of mapping:


              output.target_name = input.source_name.


            There are mechanisms to use the input and output schemas to map to a semantic name, so that within the transformations you have common names for the same data types, so you reduce the amount of mapping you have to do.


            There are also drag and drop mappings you can do in a transform that will visually complete the mapping without having to add a transform rule and write datascript to do the mapping.


            With regard to custom operators, the closest we come to is using either Read Custom or Write custom operators to invoke a command line invocation of a Java program.  It utilizes the io.popen function to exchange data over stdin/stdout.  I don't know if you can adapt the dll to be executed like a program and use the same integration mechanism.