データベースに保存されているドキュメントについて、人間が判読できるキーを作成して、ドキュメントを一意に識別したいと考えています。例: PO20090110-001。どうすればそれを行うことができますか?
4 に答える
引数なしで@Unique関数を使用するだけで、Dominoで「ほぼ」一意のキーを作成できます。これにより、現在のユーザーの名前と姓、および現在の時刻に基づいて文字列キーが生成されます。「ESCR-12345678」のような文字列になります。
SQLのID列とは実際には似ていないため、「ほぼ」一意と言います。Dominoは、特定の文字列を1回だけ出力することを保証しません。一度に多くのIDを生成するサーバー側エージェントで@uniqueを使用する場合(たとえば、ループしてループ内で@uniqueを使用するエージェント)、@uniqueが重複を返す状況に陥る可能性があります。同じ秒内に2つのドキュメントがあり、「ユーザー名」は常にサーバーの正規名であるためです。ただし、そのシナリオ以外では、@uniqueは一般的に安全に使用できます。
その後、このIDでドキュメントを開いたり参照したりする必要がある場合は、そのIDで並べ替えられたビューを作成するだけで、.. / myView / id?readDocumentの形式でURLを作成できます。
ドキュメントを保存するとき、日付または好きなテクニックを使用して、番号の最初の部分をまとめることができます (例: "PO" & format(date, "YYYYMMDD") & confDoc.getitemvalue("doccounter"))。
カウンターについては、構成ドキュメントに保存し、各ドキュメントが保存されるときに更新するのが好きです。1 日に作成されたドキュメントが多数ある場合、構成ドキュメントで担当者の競合が発生する可能性があります。この場合、サーバー上のエージェントに実際の番号の割り当てを行わせることができます。これの欠点は、保存時にすぐに番号を取得しないでください。
お役に立てれば。
ヘルプ デスクで使用されている 1 つの解決策は、現在のユーザーのイニシャルを取得し、それをビューの最後のドキュメントの番号に追加することです。番号に 1 を追加し、それが新しいドキュメントであることを、イテタルと新しい番号をキーとして保存します。
単純ではありません。
一意のキーのフィールドを作成し、このキーを onSave (または他のイベント) に保存しますが、この番号を一意に保護する必要があります。
ドミノ サーバー上の番号をチェックするエージェントを作成し、エージェントが競合を見つけた場合は、アプリケーション管理者または他の責任者に通知してこれを解決することができます。
または、各レプリカが独自の番号を生成し、ドミノで複製した後、エージェントが正しい形式で番号を割り当てます。