MOSS: カスタム リストを更新

カスタム リスト、SDK を更新するには、多くの良い例です。. ここではもう.

ビジネス上の問題: InfoPath フォーム在庫要求をオンラインの入力を可能に購入しています. PO 番号伝統的なシーケンスする必要があります要求整数値に基づいて、自動的に計算.

ビジネス ソリューション: 2 つの列を含む、カスタムの MOSS リストを作成します。: "ControlField" 「調整」. [値] 列に、次の購入注文番号が含まれています. 一般的な"制御することに注意してください。" 必要に応じて使用することがあります将来のコントロール フィールドの名前付け規則を提供します.

技術ソリューション: InfoPath クライアントによってアクセスされる web サービスを作成します。. Web サービスの次の購入注文番号を返すし、リストの値を更新.

学んだ教訓:

  • InfoPath フォームにデータ ソースとしてこの web サービスを追加するとき, Udc を変換し、データ接続ライブラリに格納する必要があると見つけた.
  • 私はまたそれ経由中央サービス管理でクロス ドメイン スクリプティングを有効にする必要があります。 // アプリケーション構成の管理 // フォーム サーバーの構成.
  • 初めてフォーム web サービスにアクセスしようとしました。, しばらく時間がかかり、機会に, それは時間を. タイムアウト設定を展開しますフォーム サーバー構成では設定をいじって、それに役立つように見えた.

コード:

使用してください。 システム;
使用してください。 System.Web;
使用してください。 System.Web.Services;
使用してください。 System.Web.Services.Protocols;
使用してください。 Microsoft.SharePoint;
使用してください。 System.Configuration;

[Web サービス(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
パブリック クラス PoService : System.Web.Services.Web サービス
{
パブリック PoService () {

//デザインされたコンポーネントを使用している場合、次の行のコメントを解除します。
//InitializeComponent();
}

/// <概要>
/// Sharepoint po 番号コントロール リストから次の PO 番号を取得します。.
/// そのリスト内の PO 番号をインクリメントします。.
/// </概要>
/// <返します></返します>
[WebMethod]
パブリック 文字列 GetNextPoNumber()
{
文字列 SpPoControlSiteName; // PO 制御リストをホストする実際の MOSS サイトの名前.
文字列 SpPoControlListName; // Po コントロールを含む実際の MOSS リストの名前.

SpPoControlSiteName = フレーム.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = フレーム.AppSettings["PoControlList"].ToString();

文字列 nextPoReqNumber = "xyzzy";

使用してください。 (SPSite サイト = 新機能 SPSite(SpPoControlSiteName))
{
使用してください。 (SPWeb web サイトを =。OpenWeb())
{

SPList 現時点 web を =。リスト[SpPoControlListName];

foreach (SPItem controlItem currentList.Items)
{

場合 (((文字列)controlItem["ControlField"]).等しい("NextPoNumber"))
{
nextPoReqNumber = (文字列)controlItem[「調整"];

int int_nextPoReqNumber;
int_nextPoReqNumber = 変換.ToInt32(nextPoReqNumber);

int_nextPoReqNumber ;

controlItem[「調整"] = int_nextPoReqNumber;
controlItem.Update();
}

} // 検索, 読み取りと一覧内の PO 番号を更新.


} // spweb の web を使用して site.openweb を =()
} // spsite のサイトを使用して新しい spsite を =("http://localhost/みずほ」)

戻り値 nextPoReqNumber;

}
}

一つは「上と思いましたMOSS: カスタム リストを更新

  1. KSP が書いた:
    こんにちはポール,
    我々 何を言及している状況が似ているが、問題はこの web サービ サーバーを使用する、ロード バランスします。それゆえ,この場合の同時実行要求を処理する方法、またはどのように新しい要求を行う待つと 1 つだけ要求する必要がありますまでのリストの番号を更新し、que. でべきである他のすべての要求これを達成する方法を知っている私に知らせてください。.
    事前のおかげで.

返信にコメントを残す KSP が書いた: 返信をキャンセル

あなたのメールアドレスが公開されることはありません. 必須フィールドは、マークされています *