Search code examples
oleibm-doors

DOORS: Insert OLE with explicit type (aka Show PDF as editable information)


I can insert MS Word files as OLE into a DOORS object, both manually and via DXL, but PDFs (and EPS as well) behave different: it is difficult to make those not appear as icon.

I able to insert a PDF file (showing some graphics) as OLE manually only by using the dialogue's Create New radio button with specifying the type explicitly as Adobe Acrobat Document (without the Display As Icon option). All is well in this case.

Using the radio button Create from File button leads to the same undesired behaviour as using the DXL function insertOle() to insert the object: the result is displayed as icon only.

if (oleInsert(current, "c:\\temp\\27.pdf", false))
    print "Successfully embedded document\n"
else
    print "Problem trying to embed document\n"

Gives me:

screenshot from DOORS showing an embedded PDF

Double-clicking the icon opens the associated application (Acrobat Reader) and shows the embedded PDF properly. However, the OLE properties dialogue displays the type Package. Manual insertion as described above creates an OLE object with the type Adobe Acrobat Document (as specified while creating it).

Inserting a Word document via DXL instead of the PDF makes the embedded document being rendered properly -- apparently the type is determined automatically and correctly:

screenshot from DOORS showing an embedded DOC

Apparently, I am not able to (but would have to) specify the OLE type when inserting the PDF.

I am aware of a similar problem at the IBM forum, but the code from there did not even update existing OLE objects but left my objects without any OLE content! Another thread addresses that problem too, but does not provide a detailed solution.


Solution

  • The root cause is still unknown, but the problem was solved eventually. My Windows user account was deleted and created from the scratch. Now it works.

    Another colleague has the same problem -- maybe we will take the time and try to isolate file / setting which contained the cause.