baanware
19th March 2014, 21:39
I am trying to create an "engine" which can execute any external function in the ERP system. The solution builds on execution of the dynamic function using exec_function, and basicly it works fine. I have one challenge though: I would like to find an easy way of getting a list of the arguments/domains for the function which is about to be called. Is there any direct way of getting this information?
I know that I can issue a "bic_info" call (or "bic_info6.1" in Unix environments), but with this I need to output to a file, and to interpret the file afterwards. This causes bad performance, and risk of errors during the interpretation. I would therefore appreciate if there is a more direct approach.
Thanks for any good hints!
ravin_singh
20th March 2014, 13:06
As far as I know, there is no direct way to do that. But, if are willing to do it in a quicker way, you can spare some time and create a table which will have information about functions and the arguments and their domains. You can get the list of using bic_info or ttstpbaandoc and build your own database of DLL's and functions used. The other way is the one you already know. All the best.
baanware
20th March 2014, 13:21
Dear Ravin_Singh,
Thanks for your reply!
That is exactly what I have done so far. To make is work with reasonable performance I also store the date of the object from the topmost level of the VRC structure, and only if a never version is found, I generate and interpret a bic_info file.
It would be fine is there was a better performing and more robust procedure though :)
Best regards
Søren Lildal
bhushanchanda
20th March 2014, 14:08
Hi,
You can also use ttstpobjinfo to get the info.
NPRao
25th March 2014, 21:33
If you can write a parser for the output of bic_info6.2 -e o<dll-name>
baanware
26th March 2014, 10:27
Dear Bhushanchanda and N.Prashanth Rao
Thanks for sharing your good ideas with me / us all!
Both bic_info and ttstpobjinfo definitely does the job, but regardless which of the two is used, the output still needs to be interpreted. Some DLL's have loads of external function, and as I will only interested in one of them, most information in the output is useless.
We have the "load_dll" and the "get_function" which can verify the existence of the dll and the function. What I am seeking and hoping to find is an (un-documented?) function which can go one level deeper and tell the individual arguments of one specific (external) function in a library.
Best regards
Søren Lildal