• JDELIST is celebrating its 20 year anniversary today!
  • Introducing Dark Mode! Switch by clicking on the lightbulb icon next to Search or by clicking on Default style at the bottom left of the page!

Building the XML Interop sample on current systems?

jolly

Reputable Poster
Hi All,

Remember the xmlinterop.dll based sample from Oracle (Doc ID 625367.1)?

It has a sample C++ application and instructions to build but it's for the old VC6.0, I'm not having any success with trying to build this for a site with tools 9.1.5 and VS2008. Could anybody help me with a few tips on how to do this?

The first thing I've noticed is that out of the list of required DLLs on the "thin client", there is now no "jdethread.dll" to pinch off the fat client install...

Thanks in advance
JohnO
 

craig_welton

Legendary Poster
Hi JohnO,

The APIs are not included in the system header files, so include these prototypes in your program

Code:
/* XML call object prototypes */
extern "C" void* _stdcall jdeXMLRequest(void*, unsignedshort, int, void*, int);
extern "C" void _stdcall jdeFreeXMLResponse(void*);
In your linker settings for the VS project, add xmlinterop.lib to the Additional Depenencies (Input Section) and add the path to your system\lib32 folder in Additional Library Directories (General section)

The sample code should work (though I haven't tried it), just note that jdeXMLRequest returns an ANSI string, not Unicode.

While I'm on 9.2, here are the list of DLLs for the "thin" client. (this was figured out by running the program in VS and viewing the Modules window. All the DLLs in the system\bin32 folder are what is needed to call the API)

ICUDT52.dll
icui18n.dll
ICUUC.dll
jdel.dll
jdeunicode.dll
libeay32.dll
PSThread.dll
ssleay32.dll
ustdio.dll
xmlinterop.dll
zlibwapi.dll

Note, this is example using static linking. The same result can be achieved using LoadLibrary to manually load the xmlinterop.dll

I'm sure I missed something, let us know how it goes.

good luck,
Craig
 

jolly

Reputable Poster
Thanks Craig - now builds! Also had to be careful about using wide characters wchar_t etc. No JCHAR etc outside of JDE!
 

jolly

Reputable Poster
Strangely when I run it, I get an error 12/login error. Same thing if I use JDEXMLBSFN... yet if I use one of the other developer accounts it works... for some reason my JDE account works for most things, but not for XMLCallObject???

<?xml version='1.0' encoding='UTF-8' ?>
<jdeResponse pwd='XXXXXXXXXXX' role='*ALL' type='callmethod' user='XXXXXX' session='' environment='DV900'>
<returnCode code='12'>Environment 'DV900' could not be initialized for user, check user, pwd and environment attribute values</returnCode>
</jdeResponse>
 

jolly

Reputable Poster
Hi guys,

Never did get to the bottom of this... Asked CNC to get me the logs never heard back. The password's not expired as I use the account and password for general JDE use. It just won't accept it for xmlCallObject. I just use a different account for this now.

I do have another question about XML structure but I'll start a new thread...

Cheers
JohnO
 
Top