Ghost Sailor
Member
I'm looking for a way to print (via a UBE) the fully qualified path & file name ( \\server1\folderX\file1.doc \\server2\folderY\spreadsheet2.xls etc ) for all media objects (aka attachments) associated with an AR invoice.
Some being files on the server shared folders, and some being multiple text attachments (stored in EnterpriseOne [OneWorld]), and some being embedded images, and other files, etc.
Ideally, I'd like to have a custom UBE where we batch print the invoice and then all of the attachments directly behind it.
But I would settle for just printing the fully qualified path and file name listing...
I've seen literally over 100 posts going back over a year, but no definative answers. Some excerpts, synopsis, summary info for everyone to consider or respond to:
1) It appears that a single text attachment is simply retrieved using a system function for media objects like GT03B11 using 4 keys - company, document, type, line number. Many of us have done things along these lines. No problem here.
2) But additional text attachments are not accessible via system functions - media objects. Unsure here?
3) If you create a single linked file attachment, the fully qualified path and file name appears in the F00165 table GDTXVC column, surrounded by some garbage characters if you use UTB to view it. But if you add additional text attachments, and linked files, you can no longer read the path and file name with UTB. Maybe that F00165 field is now a BLOB pointer?
4) You can NOT fetch single a record that has a BLOB column in it. You need an API in C++ to do this. Potential source code from another post by jdeprofessional:
the api to do that is JDB_FetchKeyed. and you have to use the following
jdeNIDcpy(dbRef.szDict, NID_TXVC); //NID_DESC2000
lpCol = JDB_GetTableColInfo ( hRequestF55IN03B, dbRef );
MOBlob.moTextSize = strlen((const char *)(lpCol->lpJDEValue)) + 2;
pGenText = (char *) jdeAlloc(COMMON_POOL, MOBlob.moTextSize, MEM_ZEROINIT);
memcpy (pGenText, lpCol->lpJDEValue, MOBlob.moTextSize);
*(pGenText + MOBlob.moTextSize - 2) = 0x00;
you must the gentext to copy attachment if it was text or path.
Unsure here? Seems like this may be a key to the BLOB answer, but only a small part of the solution.
5) Embedded file attachments are stored in server directories specified by the media object queues' configuration. For these embedded files, a JDE encryption process takes place so they are not accessible by external programs. But they are accessible by JDE, just not in the developers toolset? Maybe this is in underlying C++ code within some business function(s). Maybe this is where we need the BLOB C++ code funtionality. Unsure here?
Does anyone have some good firm experience on this?
Hopefully gathering, sorting out, and presenting this all together will help us with a solution to printing all media objects associated with a transaction or record in JDE.
Thanks in advance, and I look forward to organizing the responses here in the forum.
Some being files on the server shared folders, and some being multiple text attachments (stored in EnterpriseOne [OneWorld]), and some being embedded images, and other files, etc.
Ideally, I'd like to have a custom UBE where we batch print the invoice and then all of the attachments directly behind it.
But I would settle for just printing the fully qualified path and file name listing...
I've seen literally over 100 posts going back over a year, but no definative answers. Some excerpts, synopsis, summary info for everyone to consider or respond to:
1) It appears that a single text attachment is simply retrieved using a system function for media objects like GT03B11 using 4 keys - company, document, type, line number. Many of us have done things along these lines. No problem here.
2) But additional text attachments are not accessible via system functions - media objects. Unsure here?
3) If you create a single linked file attachment, the fully qualified path and file name appears in the F00165 table GDTXVC column, surrounded by some garbage characters if you use UTB to view it. But if you add additional text attachments, and linked files, you can no longer read the path and file name with UTB. Maybe that F00165 field is now a BLOB pointer?
4) You can NOT fetch single a record that has a BLOB column in it. You need an API in C++ to do this. Potential source code from another post by jdeprofessional:
the api to do that is JDB_FetchKeyed. and you have to use the following
jdeNIDcpy(dbRef.szDict, NID_TXVC); //NID_DESC2000
lpCol = JDB_GetTableColInfo ( hRequestF55IN03B, dbRef );
MOBlob.moTextSize = strlen((const char *)(lpCol->lpJDEValue)) + 2;
pGenText = (char *) jdeAlloc(COMMON_POOL, MOBlob.moTextSize, MEM_ZEROINIT);
memcpy (pGenText, lpCol->lpJDEValue, MOBlob.moTextSize);
*(pGenText + MOBlob.moTextSize - 2) = 0x00;
you must the gentext to copy attachment if it was text or path.
Unsure here? Seems like this may be a key to the BLOB answer, but only a small part of the solution.
5) Embedded file attachments are stored in server directories specified by the media object queues' configuration. For these embedded files, a JDE encryption process takes place so they are not accessible by external programs. But they are accessible by JDE, just not in the developers toolset? Maybe this is in underlying C++ code within some business function(s). Maybe this is where we need the BLOB C++ code funtionality. Unsure here?
Does anyone have some good firm experience on this?
Hopefully gathering, sorting out, and presenting this all together will help us with a solution to printing all media objects associated with a transaction or record in JDE.
Thanks in advance, and I look forward to organizing the responses here in the forum.