0

Word および Excel ドキュメントを作成するために、Office COM コンポーネントを使用しようとしています。残念ながら、エラーが発生しているため、これを達成できません。

モジュール '{00020905-0000-0000-C000-000000000046}' で '{00020906-0000-0000-C000-000000000046}' の IDispatch が見つかりません v8.3

Office、アプリケーション (ALBPM)、インターフェイス (combsvc) を再インストールしようとしましたが、うまくいきません。

IDispatch をインストールする方法、または IDispatch が正しいモジュールにインストールされているかどうかを確認する方法を知りたいです。時々、エラーは次のように表示されます。

'{000209FF-0000-0000-C000-000000000046}' の IDispatch が見つかりません ... 代わりに 00020906-0000-0000-C000-000000000046

これらのエラーを生成するために使用しているコードは次のとおりです。

wordAppl.visible = false
wordDocs = wordAppl.documents

contratoTemplate = "C:\\albpmFiles\\mandatory\\aTemplate.doc"
// .doc template
convenioTemplate = "C:\\albpmFiles\\mandatory\\ConvenioModificatorio.doc"
// .doc template
saveContrato = "C:\\albpmFiles\\temp\\"
// where to save.
saveConvenio = "C:\\albpmFiles\\temp\\"

contratoName = "NewContact.doc"
wordDoc = open(wordDocs, fileName : contratoTemplate)
bookmark = item(wordDoc.bookmarks, index : "atrDescripcion")

insertAfter bookmark.range
using text = instSolicitud.atrDescripcion
bookmark = item(wordDoc.bookmarks, index : "atrObjProveedor_atrNombre")
insertAfter bookmark.range
using text = instSolicitud.atrObjProveedor.atrNombre
bookmark = item(wordDoc.bookmarks, index : "atrObjProveedor_atrDireccion")
insertAfter bookmark.range
using text = instSolicitud.atrObjProveedor.atrDireccion
filename = saveContrato + contratoName

end

// Extras - Fin
saveAs wordDoc
using fileName = filename

IDispatch またはこれらのレジストリ エントリに関する情報をお持ちでしたら、これに関する詳しい情報がどこにあるのか教えていただければ幸いです。

どうもありがとう。ダニエル。

4

4 に答える 4

2

表示されるエラーから、Word 2003 を使用していると思われます。

COM brigde サービスが正しくインストールされ、実行されていることを確認しましたか?

combsvc -install
combsvc -start

は、commsvc をサービスとして登録してから開始します。

ALBPM リファレンス ガイドの 150 ページの下部にある Word の例も参照してください。

動作している場合もあれば、ALBPM の問題になる場合もあるという事実。最新のバージョンとアップデートを使用していますか?

もう 1 つのオプション (Word の自動化でよくある問題) は、Word の自動化されたインスタンスがモーダル ダイアログ ボックスを表示し、ユーザーの操作を待っているというものです。設定により、モーダルダイアログの表示を切り替えることができます

Application.DisplayAlerts = 0 

ただし、残念ながら、これによってすべてのポップアップが表示されなくなるわけではありません。

Word のインスタンスが実際に開始されていますか? その場合、ウィンドウを表示して、ドキュメントを開くことができるかどうか、またはアプリケーションをブロックするポップアップがあるかどうかを確認できますか?

于 2009-01-16T00:04:38.063 に答える
1

ダニエル、

私はここで暗闇の中で刺している。私が感じているBEAシステムのAqualogicBPMは、Javaベースのツールを使用しているようです。掘り下げてみると、combsvcは実際にはALBPMがJavaからCOMと通信できるようにするCOMブリッジサービスのように見えます。

http://edocs.bea.com/albsi/docs60/studio/index.html?t=studio/catalog/catalog_component/COM/c_COM_Bridge.html

これがあなたの失敗点だと思います。

IDispatchに関する質問については、実際にはIDispatchをインストールしません。IDispatchは、スクリプト言語(ASPやVBScriptなど)などのレイトバウンドCOM自動化クライアントにオブジェクト、メソッド、およびプロパティを公開するためにCOMが使用するインターフェイスです。これはCOMのインフラストラクチャの一部です。これが壊れていると、マシンにさらに多くの問題が発生します。

私はおそらくここに質問をポップすることをお勧めします:

http://forums.oracle.com/forums/forum.jspa?forumID=560

于 2009-01-16T00:36:06.813 に答える
0

PCにインストールされているCOMインターフェイスを検査するには、Windows2003リソースキットの一部であるoleview.exeをダウンロードすることをお勧めします。

実際には{00020906-0000-0000-C000-000000000046}がありますが、IDispatchインターフェイスがなく、そのインスタンスを作成しようとすると「クラスが登録されていません」というエラーが発生します。私の自宅のPCには、Officeツールだけがインストールされているわけではありません。これが原因である可能性があります。

以前は、Officeアプリケーションを自動化するときに、「Excel.Application」などのバージョンに依存しないProgIDと常に通信できました。適切なCOMオブジェクトを参照していますか?oleviewでチェックするか、コードを追加してください:)

于 2009-01-16T00:27:20.030 に答える
0

私が使用しているコードはこれですが、最初のログを見ることさえできないので、コードではなく接続にエラーがあると思います

wordAppl.visible = false
wordDocs = wordAppl.documents



contratoTemplate = "C:\\albpmFiles\\mandatory\\aTemplate.doc"

// .doc template
convenioTemplate = "C:\\albpmFiles\\mandatory\\ConvenioModificatorio.doc"

// .doc template
saveContrato = "C:\\albpmFiles\\temp\\"

// where to save.
saveConvenio = "C:\\albpmFiles\\temp\\"


contratoName = "NewContact.doc"

wordDoc = open(wordDocs, fileName : contratoTemplate)


bookmark = item(wordDoc.bookmarks, index : "atrDescripcion")

insertAfter bookmark.range
using text = instSolicitud.atrDescripcion

bookmark = item(wordDoc.bookmarks, index : "atrObjProveedor_atrNombre")

insertAfter bookmark.range
using text = instSolicitud.atrObjProveedor.atrNombre

bookmark = item(wordDoc.bookmarks, index : "atrObjProveedor_atrDireccion")

insertAfter bookmark.range
using text = instSolicitud.atrObjProveedor.atrDireccion


filename = saveContrato + contratoName


end



// Extras - Fin
saveAs wordDoc
using fileName = filename
于 2009-01-16T00:37:19.290 に答える