問題タブ [eventreceiver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1434 参照

sharepoint - 一部の環境でSharePointWebDeletingイベントレシーバーの登録中にエラーが発生しました

SharePoint内にWebDeletingイベントレシーバーを登録しようとしています。これは私の開発環境では正常に機能しますが、いくつかのステージング環境では機能しません。返されるエラーは、「値が期待される範囲内にない」です。私が使用するコードは次のとおりです。

これは機能要素ファイルを介して実行できることを認識しています(現在、そのアプローチを試しています)が、上記のアプローチを使用することをお勧めします。

ULSログで一貫して取得するエラーは次のとおりです。

何か案は?


更新-私が学んだいくつかの興味深いこと...

次のようにコードを変更しました。

  • 私が見るほとんどの例はそれを行わないので、私はGUIDなしでEventReceivers.Add()を呼び出します
  • 私が見るほとんどの例はそれをしているので、イベントレシーバーに名前とシーケンス番号を与えました

この変更をULSログに移動するいくつかの追加のトレースステートメントとともに展開し、十分なiisresetsを実行してアセンブリのGACをクリアした後、ULSログに新しいトレースステートメントが表示されるようになり、エラーが発生しなくなりました。

そこで、元のコードに戻って、どのような変更が正確に役立ったかを確認し始めました。私は最終的にソース管理の元のバージョンになりましたが、それでも機能しました:-S。

したがって、答えは明らかに、それがキャッシュの問題であるということです。ただし、最初にそれを機能させようとしていたとき、IISRESETを試し、いくつかのSharePointサービスOWSTimerを再起動しました(これは、イベントハンドラーを実行すると思いますが、エラーが発生するイベント登録には関与していない可能性があります)。アセンブリのキャッシュが行われていないことを確認するための再起動でさえ、以前は役に立ちませんでした。

私が続けなければならない唯一のことは、おそらく次のような手順に従うことです。

  1. 登録コードとイベントハンダークラスを含むアセンブリのGACをクリアします。
  2. IISRESETを実行します。
  3. WSPをアンインストールします。
  4. IISRESETを実行します。
  5. WSPをインストールします。
  6. IISRESETを実行します。

それを機能させるために、SharePointサービスを再起動したり再起動したりしたことはありませんが、機能させる前に(コードを変更する前に)それらを実行しました。

Reflectorを使ってさらに掘り下げて、何が見つかるかを確認できると思いますが、行き止まり(管理されていないコード)にすぐに到達すると思います。古いDLLを何が保持できるのだろうか?SQLServerが何らかの形で存在することは想像できません。それでも、再起動するとそれが修正されます(SQL Serverを含むファーム全体がこの環境の同じマシン上にあります)。

0 投票する
1 に答える
3764 参照

sharepoint - コンテンツ タイプのイベント レシーバーが WikiPageLibrary でトリガーされない

Wiki ページ ライブラリの新しいコンテンツ タイプを作成しました。このコンテンツ タイプをコードでライブラリに追加しました (インターフェイスでは許可されませんでした)。次に、このコンテンツ タイプ (ItemAdded および ItemAdding) にイベント レシーバーを追加しました。私の問題は、イベントがトリガーされないことです。このイベントを wiki ページ ライブラリに直接追加すると、すべて正常に動作します。制限/バグ/トリックはありますか?

SharePoint Manager を使用してライブラリに添付されているコンテンツ タイプを調べたところ、彼のスキーマではイベント レシーバーの部分が欠落しています。次のようなものがあるはずです。

サイトに追加されたコンテンツ タイプを SPM で調べると、この部分がスキーマに含まれていることがわかります。

これが私のコードです:

どうも !

0 投票する
2 に答える
1998 参照

sharepoint - SharePoint itemDeleting evert が機能しない

SharePoint にサイトがあり、リストからカスタム削除したいと考えています。だから、私は作成しています

「Projects」クラスには、アイテムを削除する「DeleteProject」メソッドがあります。しかし、それは何もしていません:( Feature.xmlですべて問題ないと述べています

どこが間違っていますか?

編集(「回答」から):

  1. はい、私はこれを試しました:

    if 句とそれが発生しているイベントで、プロジェクト名を正しく表示します。

  2. 私はファーム管理者であり、このサイトを完全に制御できるサイト管理者です。

  3. DeleteProject メソッドは正しいです。他のアプリケーション (c#) で試してみたところ、問題なく動作しました。

0 投票する
1 に答える
1771 参照

c# - SharePointリストの添付ファイルとしてExcelドキュメントを作成する

カスタムリストの添付ファイルとしてExcelドキュメントを追加する際に問題が発生しました。他のリストからデータを収集し、そのデータをExcelドキュメントに入れるイベントレシーバーを作成しました。

問題を修正するために私がやろうとしたこと:

  • 別のコンソールアプリケーションでCreateContentRow(index、item)をテストしました(動作します)
  • 他のリストからの情報の取得に問題がないか確認しました(動作)
  • ドキュメントライブラリに保存しようとしました(ファイルはコンテンツなしで保存されます)
  • xmlに問題があるかどうかを確認するためにxlsxドキュメントを開こうとしました(カスタムxmlは追加されていません)。

コードは問題なく機能しますが、ドキュメントは保存されますが、テンプレートと同じであり、コンテンツは追加されていません。

私は別のリストで同じアプローチを使用しており、そこで.docxドキュメントを生成します。それは問題なく機能します。.xlsxまたは.docxのどちらであるかによって、ドキュメントの保存方法に大きな違いはありますか?

デバッグすると、セルと行がシートデータに追加されますが、保存されません。これを修正する方法についてのアイデアはありますか?

0 投票する
1 に答える
1453 参照

events - Sharepoint ItemAdding&ItemAddedの問題

SharePoint Webページに表示および入力されているInfopathファイルを取得し、そのデータを別のDBに保存する必要があります。フォームが送信されると発生するイベントは2つあります。ItemAddingおよびItemAdded

ItemAddingイベント後にのみ保存されるため、イベントからファイルを取得できないことを知っていますItemAdding

しかし、値をデータベースに保存したら、ユーザーを別のWebサイトにリダイレクトしたいのですが、これを行う方法が見つかりません。問題は、ユーザーが「フォームが閉じられました」というWebページにリダイレクトされた後、または同時に、ItemAddedイベントが発生することだと思います。

値を取得してユーザーをリダイレクトするにはどうすればよいですか?また、InfoPathフォーム自体にコードを添付することは許可されていません。これはSharepointから処理する必要があります。

ありがとうございました

0 投票する
4 に答える
15848 参照

sharepoint - 特定のテンプレート ID を持つリストにのみイベント レシーバーを追加するにはどうすればよいですか

カスタム リスト テンプレートの ItemAdding イベント レシーバーを追加しています。イベント レシーバーとリスト テンプレートの両方が同じ機能によってデプロイされます。また、同じ機能でリスト インスタンスが作成されます。

私が抱えている問題は、イベントが展開されたサイト内の各リスト項目に対してイベントが発生することです。eventreceivre の Elements.xml は次のとおりです。

ここから多かれ少なかれすべてを行ったので、何が間違っているのかわかりません。

環境: このサイトの公開機能を備えた SharePoint 2010

0 投票する
1 に答える
7081 参照

sharepoint - SPFieldBooleanから値を取得する

SPFieldBooleanオブジェクトから値を取得するにはどうすればよいですか?単にブール値にキャストしますか、それともさらに何かを行う必要がありますか?

からのItemAddedイベント中にEventReceiverクラスでフェッチしていproperties.ListItem["fieldname"]ます。

フィールドが存在しない(そしてnullである)可能性がある場合、それを確認するにはどうすればよいですか?

0 投票する
1 に答える
461 参照

sharepoint - 複数のクラスファイルを使用したSharePoint機能の追加

複数のアイテムで構成される機能を作成中です。

現在、4つのElementManifestエントリを持つFeature.xmlファイルが含まれています。2つは特定のコンテンツタイプ(Field定義とFieldRefs)用、1つは一部のWebパーツ用、最後はカスタムページレイアウト用です。それはすべて正常に機能しています。

FieldRef機能レシーバーを介してアイテムが追加されるたびに処理したいので、レシーバーを追加するためにcontenttype(s)でファイルを変更しましたItemAdding。ファイルのその部分は次のようになります(アセンブリ名とクラス名を削除しましたが、正しいです)。

このファイルに加えて、カスタムクラスファイルを使用していくつかの機能を追加します。FeatureReceiverクラスとカスタムクラスファイルの両方について、feature.xmlまたは他のいくつかのxmlファイルに何かを追加して、それらが含まれていることを確認する必要がありますか?すべてを1つの機能として追加したいと思います。

0 投票する
2 に答える
4165 参照

event-handling - EventReceiver の後に SharePoint ワークフローを呼び出す

SharePoint ワークフローとイベント レシーバーについて質問があります。要素にメタデータを設定するイベント レシーバーを取得しました。その後、ワークフローを使用してアイテムのメタデータをリストにコピーします。残念ながら、ワークフローはイベント レシーバーによって設定されたメタデータをコピーしません。イベントレシーバーの前に実行されるためだと思います。イベントレシーバーの後にワークフローが実行されるように、順序を変更する可能性はありますか? レシーバーは、同期的に ItemAdded および ItemUpdated イベントにバインドされます。

ご協力ありがとうございました!パトリック

0 投票する
2 に答える
1228 参照

sharepoint-2010 - SharePoint 2010 カレンダー イベント レシーバー

私は、子サイトのカレンダー イベントから更新されるルート サイトにカレンダーを作成する任務を負っています。

子サイトの親サイトからカレンダー リストにアクセスしてイベントを追加できます。ただし、子カレンダーのイベントが更新または削除されたときに親サイトのカレンダーも更新されるように、イベントの uniqueIdentifier を作成する方法を見つけるのに苦労しています。

ListItem ID フィールドは、サイト内でのみ一意のようです。UniqueItemId フィールドは見つかりましたが、明らかに SP LIstitem オブジェクトでは読み取り専用です。

誰かが私にここでいくつかのガイダンスを教えてもらえますか?

どうもありがとう!