1

レコードのGUIDを使用する必要があります。レコードが古い場合は、次のコマンドでGUIDにアクセスできます。

Xrm.Page.data.entity.getId();

問題は、新しいレコードが保存されると同時にIDを使用する必要があることです。

レコードを保存し、ページをリロードしてから、次のIDを使用してみます

parent.Xrm.Page.data.entity.save();
window.location.reload(true);
var currentCaseId = Xrm.Page.data.entity.getId();

しかし、それは機能しません。

編集:コードを変更して、onLoadイベントでIDを取得できるようにしましたが、問題は、ユーザーが[保存]を選択した場合にのみGUIDを取得できることです([保存]ボタンでページが更新されるため)。ユーザーが[保存して閉じる]または[保存して新規作成]を選択した場合、レコードは更新されないため、onLoadイベントは発生せず、GUIDを取得できません。

4

4 に答える 4

1

インスタンスを実際に作成するときに、最初にインスタンスのGUIDを取得します。したがって、サーバーがguidを使用して返される前に、実際に保存操作を実行する必要があります。

保存される直前(または保存後、クライアントにポストバックする前)にエンティティに対して何かを行う必要がある場合は、プラグインを使用して操作をインターセプトすることをお勧めします。

最適なアプローチは実際のニーズによって異なり、そもそもGUIDに到達しようとする理由によって異なります。「初期のGUID 」で正確に何をするつもりですか?

JavaScriptである必要がありますか?

于 2013-01-11T21:30:12.977 に答える
1

crmでレコードを作成する場合、主キーはcrmによって作成され、返されます。自分でGUIDを作成し、保存する前に割り当てることができます。これで、フォアハンドのキーがわかりました。

于 2013-01-12T11:25:59.427 に答える
1

レコードが作成モードの場合、JavaScriptとXrmServiceToolkitを使用して、考えられるすべての属性を持つ新しいレコードを作成しています。これにより、バックグラウンドでの別のアクションに必要なGUIDが得られます。次に、元のフォームの保存を防ぎ、新しく作成されたレコードを同じウィンドウで開きます。通常の保存とまったく同じように見えますが、必要な処理を実行します。

于 2014-07-15T18:23:55.983 に答える
-1

私も同様の問題を抱えていました。これは業界のベストプラクティスではないかもしれませんが、機能します。ユーザーが保存(および閉じるまたはsaveandnew)する前に、自動保存(Xrm.Page.data.entity.save();)を実行します。ユーザーがすべての必須フィールドに入力した後、自動保存を実行します。次に、GUIDが生成され、onload-eventで使用できるようになります。

于 2013-11-08T12:34:26.317 に答える