2

送信時にカスタム.NETワークフローを起動することになっているinfopathフォームを使用しています。基本的に、フォーム内の情報は、新しいSharePointサイトを作成するために使用されます。私が見ているのは、ワークフローが最初に実行されたとき(フォームが送信された後は自動的に実行されます)、ワークフローがエラーになることです。失敗した直後にワークフローを手動で実行すると、ワークフローは正常に実行されます。

this.workflowProperties.Item["Client Name"]

ワークフロープロパティのタイプがMicrosoft.SharePoint.Workflow.SPWorkflowActivationPropertiesである上記の行まで、問題をデバッグしました。ワークフローを初めて実行するとき、上記のプロパティ(およびその他すべて)はnullです。2回目に実行されると、クライアント名プロパティは本来あるべき状態になります(infopathフォームから入力されます)。

もう1つの重要な情報は、このワークフローが1年以上正常に機能していて、特別な理由もなく数週間前に突然正しく機能しなくなったことです。先月、いくつかの権限の問題が発生していましたが、それがワークフローの問題にどのように関連しているのかわかりません。私がログインしているユーザーは、サイトコレクションの管理者です。同じユーザーを使用してワークフローを手動で開始します(これは成功します)。ただし、ワークフローはログインしているユーザーとして実行されるとは思いません(フォームの送信時に自動的に実行される場合)。

状況全体に対するもう1つの興味深い問題は、アプリケーションが使用するカスタムワークフローが合計3つあることです。2つはビジュアルスタジオで作成されました。これらの1つは正常に機能し、もう1つは上記の動作を表示しています。最後はSharePointDesignerで作成され、失敗しています。

私はこの時点でほとんど何でも試してみるつもりです。私は開発サーバー(本番環境として正確な症状を表示します)を使用しているので、ほぼ何でも試すことができます。

4

4 に答える 4

1

InfoPathフォームがVistaまたはWin7マシンから送信された場合、InfoPathフォームのフィールドにNULL値を取得するというこの問題に直面する可能性があります。約10秒の遅延アクティビティを追加して、InfoPathからフィールドの値を取得できるかどうかを確認してください。

詳細については、このリンクを参照してください。クライアントがVistaまたはWindows 7を実行しているときに、SharePointワークフローが失敗するのはなぜですか。

于 2012-05-25T21:55:51.293 に答える
1

これは、フィールド値を設定するコミット操作から非同期に開始されるワークフローに関係していると推測しています。ワークフロー プロパティのアイテムを使用する代わりに、リストから明示的にアイテムを取得してみてください。次のようなもの:

SPListItem l_item = 
      workflowProperties.Item.List.Items.GetItemById(
                 workflowProperties.Item.Id
      );

確かではありませんが、試してみる価値があるかもしれません。

もう 1 つ注意すべき点は、SPContext.Currentオブジェクトは EventReceiver から呼び出された場合は null になりますが、手動で呼び出された場合は有効になるということです。これが問題のようには聞こえませんが、それでも注意が必要です。

于 2009-03-04T14:31:44.557 に答える
0

「解決策」は、エクスポートを実行して新しいサーバーに転送することでした。基本的に、STSADM を使用してエクスポート操作を行い、同じファイルを新しいサーバーにインポートします。

見る:

http://sharepointdogs.wordpress.com/2008/07/30/content-migration-or-backuprestore-in-moss-2007/

私はこの問題について何時間も Microsoft サポートと電話をしていました.

于 2009-04-17T14:35:47.547 に答える