コンテンツのサブセットをSharePointサイトに保存する方法を決定する必要があります。これにより、機能のアクティブ化の一環として特定のリストを削除して再作成したときに、このコンテンツをすべて元の場所に再挿入できます。私は自分で考えを持っていますが、それが唯一の方法であり、さらに重要なことに、正しい方法であるかどうかはわかりません。
クライアントから、クライアントと通信するためのSharePointシステムを作成してもらいました。ビジネスプロセスにはおそらく5つの段階があり(おそらくそれ以上で、すべてを教えてくれないのでわかりません)、過去数か月にわたって作成した現在のシステムはおそらく2段階です。これは、来週の月曜日までにこれらのシステムを完成させるという私たちの締め切りに間に合います...しかし、その時点で、私のクライアントはその時点からサイトを稼働させることを計画しています。
事実上、彼らのクライアントとの仕事は、彼らのための私の仕事と並行して実行されます。別のテストサーバーで自分の作業を完了するときに、プロセスの次の各段階をライブサーバーにプッシュします。営業時間外(週末など)にスケジュールされたダウンタイムは、これらのプッシュを実行するために利用できます。私の開発が実際のビジネスプロセスよりも速くなるようにペースを維持することは、私自身の問題であり、トピックから外れています...それでは、この投稿の冒頭で述べた問題に戻りましょう。
このシステムには、アクティブ化されたときに関連するコンテンツタイプとフィールドタイプのリストを作成し、機能が非アクティブ化されたときにこれらのリストを削除する機能のセットがあります。ほとんどの更新では、ワークフローの変更、カスタムアクション、カスタムフォーム、および同様の機能など、これらの機能を非アクティブ化および再アクティブ化する必要はありません。しかし、これを必要とする部分がいくつかあります。私のテストサーバーでは、リストを削除しても問題ありませんが、サイトが稼働し、実際の通信データが存在するようになると、これを行うことは絶対に受け入れられません。したがって、機能に新しい変更を実装する必要がある場合は、現在存在するデータをいくつかのリストに保存し、機能を非アクティブ化し、機能を再アクティブ化し、このデータをすべて復元できる必要があります。
たぶん、私は自分が実装した機能システムを使って自分のペタルで自分自身を持ち上げました。残念ながら、後でこれらの「プロジェクトサイト」をいくつか作成する必要があるため、「繰り返し展開できる」という概念を念頭に置いて、多くのコードを実行する必要がありました。
私の現在の計画は、リセットされる特定の機能の影響を受けるリストとライブラリを実行することです。ファイルとそのすべてのバージョンは、サーバー上のディレクトリに保存されます。次に、一連のテキストファイルを使用して、アイテムのすべての重要なフィールド値を保存します。これには、維持する必要のある多くのクロスリスト参照ルックアップが含まれますが、それは十分に単純です。次に、機能を非アクティブ化し、新しいソリューションを展開して、機能を再アクティブ化します。バージョンで指定された順序ですべてのファイルをアップロードし、それらのバージョンの保存済みフィールドで更新して、バージョン構造を保持します。それぞれが最初にアップロードされると、新しいIDが選択され、残りのファイルの関連するすべてのルックアップが更新されます(何らかの方法で、私がそうしないことを確認します)もちろん、後で間違った値で再更新します)。その後、リレーショナルデータを正しく維持するのに最も役立つ順序で、残りのすべての項目を実行します。これは私の現在の計画を大まかに要約したものです。私の利点として、これによって影響を受けるシステムには長時間実行されるワークフローがないため、このような作業を行うときに「まだ実行中」のものがないことを確認する必要はありません。
私はこのアプローチのすべての短所を本当に知りません...私は彼らがかなり重いと想像することができます。しかし、他にどのような選択肢があるのかわからず、検索しても何も見つかりませんでした。より良いアイデアを思いつくことができる人はいますか?それとも、私には他に選択肢がないということを誰かに教えてもらえますか?前もって感謝します!