About XML interop

ybuffetaud

ybuffetaud

Active Member
Hello we are starting using Oracle Data Integrator 11G and we would like to call JDE BSFN with XML Interop like that :

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jdeRequest comment="" environment="PY812" pwd="xxxx" role="*ALL" session="" sessionidle="" type="callmethod" user="BUFFETAUD">
<callMethod app="" name="LaunchBatchApplication">
<returnCode code="0"/>
<params>
<param name="szReport">R0006P</param>
<param name="szVersionJDE">XJDE0001</param>
<param name="cSynch">0</param>
<param name="cPrintPreview">0</param>
<param name="szDataSourceOverride"/>
<param name="mnServerJobNumber">0</param>
<param name="cReturn"/>
<param name="cJDELogging">0</param>
<param name="cTracing">0</param>
<param name="cUBELoggingLevel">1</param>
<param name="szJobQueue">QBATCH</param>
</params>
</callMethod>
</jdeRequest>

I Would like to know how to send that to JDE?

We are runnig under JDE 8.12 Tools 8.98.2.3 on AS400 (V6R1) server
 
Yann,
Go thru the JDE interop document and you will get a good amount of idea & concept what is required.

Chan
 
Hi Yann,

in addition to Chan's comment, you may want to look at Oracle Support Solution ID 661914.1 (E1:XML: JXML Tool) which contains code samples for Xe and 8.12.

Best Regards
 
We use C# code to call the Business Functions. This goes through a ddl called xmlinterop.dll which we get from the JDE install disks. It relies on some other dlls, shown here:

icudt32.dll
icui18n.dll
icuuc.dll
jdel.dll
jdeunicode.dll
msvcp71.dll
msvcr71.dll
PSThread.dll
ustdio.dll
xmlinterop.dll


In our C# code, this is how we call it:


<font class="small">Code:</font><hr /><pre>
/// <summary>
/// This interop class uses pinvoke to call the JDE C++ dll. It only has one static function.
/// </summary>
/// <remarks>
/// This class calls the xmlinterop.dll which can be found in the B9/system/bin32 directory.
/// Copy the dll to the webservice project's /bin directory before running the project.
/// </remarks>
internal static class NativeMethods
{
[DllImport("xmlinterop.dll",
EntryPoint = "_jdeXMLRequest@20",
CharSet = CharSet.Auto,
ExactSpelling = false,
CallingConvention = CallingConvention.StdCall,
SetLastError = true)]
private static extern IntPtr jdeXMLRequest([MarshalAs(UnmanagedType.LPWStr)] StringBuilder server, UInt16 port, Int32 timeout, [MarshalAs(UnmanagedType.LPStr)] StringBuilder buf, Int32 length);

public static string JdeXmlRequest(string request, string strServerName, UInt16 intPort, Int32 intTimeout)
{
StringBuilder sbServerName = new StringBuilder(strServerName);
StringBuilder sbXML = new StringBuilder(request);

string result = Marshal.PtrToStringAnsi(jdeXMLRequest(sbServerName, intPort, intTimeout, sbXML, sbXML.Length));

return result;
}
}
</pre><hr />
 
Back
Top