Ah yes, when all else fails shoot the messenger....
Before the rest of you sign up for the flat earth society, read this post. I went ahead and did a search on my C code for the text jdeTAM. The system functions that API to the spec files begin with the string jdeTAM. Anyone that has seen the interoperability suite documentation or debugged a log probably has seen these APIs.
Below is some text from the C module B9200001. B9200001 is a type 2 BSFN (meaning that it can run on the ES as well as the client). It is part of the CDICT dll. This is an example of where the C code accesses the spec files at run time. If you do a search on your own C code you'll find this code.
_________________________________________________
lpTamDDDict = jdeTAMInit(FILENAME_DDDICT);
if (lpTamDDDict == NULL)
{
return ER_ERROR;
}
TAMKeepFileOpen(lpTamDDDict);
lpTamDDText = jdeTAMInit(FILENAME_DDTEXT);
if (lpTamDDText == NULL)
{
return ER_ERROR;
}
TAMKeepFileOpen(lpTamDDText);
TAMSetIgnoreFreeSpace(lpTamDDText);
lpDDText = (LPDDTEXT) jdeAlloc(COMMON_POOL,
(uint) TAM_VARIABLE_LENGTH_DATA,
MEM_FIXED | MEM_ZEROINIT);
/* Check for existence of this data item */
memset(&DDDict, 0x00, sizeof(DDDICT));
strcpy(DDDict.szDict, lpDS->szDataItem);
if ((lpDict=TAMAllocFetchByKey(lpTamDDDict, INDEX2_DDDICT,
DDDict.szDict, 1)) != NULL)
{
/* Copy the input text strings into the TAM file */
/* Row Description */
nTextSize = 0;
_fmemset(lpDDText, 0x00, (uint) TAM_VARIABLE_LENGTH_DATA);
lpDDText->cTextType = DDT_ROWDESC;
/*lpDDText->idText = lpDict->idDict; obsolete CSS NID */
for (i=41; (--i>0)&&(lpDS->szRowDescription
==' ');
iEnd=i;
if (iEnd>0)
{
for (i=0; i<=iEnd; i++)
lpDDText->szText[nTextSize++]=lpDS->szRowDescription;
}
lpDDText->szText[nTextSize++]='\0';
lpDDText->lVarLen = (LVARLEN)(sizeof(DDTEXT) - 1 + nTextSize);
memset(&XText, 0x00, sizeof(XDDTEXT_2));
/*XText.idText = lpDict->idDict; CSS NID */
jdeNIDcpy(XText.szDict, lpDS->szDataItem);
XText.cTextType = lpDDText->cTextType;
TAMDeleteByKey(lpTamDDText, INDEX2_DDTEXT, &XText, 5L);
TAMAdd (lpTamDDText, lpDDText);
/*************************************************************************
* Column Headings
* The first two column headings are stored in one text record,
* with a carriage return inserted to separate them.
*************************************************************************/
nTextSize = 0;
_fmemset(lpDDText, 0x00, (uint) TAM_VARIABLE_LENGTH_DATA);
lpDDText->cTextType = DDT_COLTITLE;
/*lpDDText->idText = lpDict->idDict; obsolete CSS NID */
_____________________________________________
Yes, I know this is the data dictionary dll. Yes I know this is not the core business application. If you look at some other C modules, you will see some references (commented out) to jdeTAM functions in the business application. So it is possible. If you read my original post, my question was "does this occur" and how prevalent is it. This is the C code to which we have access, who knows what is the kernel code.
JDEPRO: Please feel free to ignore me. If my posts bother you that much after your less than full month on this forum, please feel free to shoot the messenger.