私はMicrosoft Dynamicsの365&パワープラットフォーム側面は、ラヨーンを設計、マイクロソフト最優秀専門家が3年連続ダイナミクスCRM /ビジネスソリューションの側面(マイクロソフトMVP)のために2018年6月に2015年7月ですが、私は公共のマイクロチャネル番号の関心を歓迎しますMSFTDynamics365erLuoYong、返信または20190816 352は、この記事へのアクセスを容易にすることができる、しかし、あなたは私ボーエンは最初の部屋で発行された最新の情報を得ることができ、私に従ってください!
システムは、プラグインを記述するために開発される他の自動番号の必要性のために、開発者が介入する必要があり、このような場合の数、等として、自動番号付けを行う部分エンティティ前フィールドの一部です。テキスト型フィールドの単一行として365カスタマー・エンゲージメントV9.Xバージョンは自動番号プロパティを導入し始めたダイナミクスから、そこにはインターフェースは、もちろん、プログラム的に変更することができますが、単一の行のテキストフィールドのプロパティを変更するように設定することはできないですが、私は非常に短い時間で達成されるであろうと考えていますインターフェースを構成することができ、モデル駆動型アプリケーションの現在PowerAppsインタフェースを構成することができる実現しています。
本論文では、公式文書によると:ナンバー自動属性を作成して 共有することが私自身の紙ベースのテストライト、公式文書に勝つために特定の、書かれたの、議論の読者を喜ばせます。
そのようなフィールドを組み合わせることができる単一行テキストフィールドタイプ(他のフォーマットに変更することができない)、自動番号形式(AutoNumberFormat)の増加は、この属性であります
- 固定テキスト;
- ランダムな文字、私の観察によると、最大6つのランダムな文字、大文字と数字でなければならない、例えば:{RANDSTRING:3}
- シリアル番号は、SQL Serverの責任の一意のシリアル番号、あなたはフロント桁のシリアル番号が自動的に生成された最小値は、例えば、0を満たさ未満であるとき、あなたは水を実行し、デフォルトでは、5つのシリアル番号を指定し、時間の定義に最小桁数を指定することができます{SEQNUM:10}番号1000は、最初のシリアルナンバー01000は、ことの例ここに示され、開始されます。シリアル番号の長さが最小の長さを指定しているので、シリアル番号はどうなるの100,000到達したときに、その後、5を言うの?ケースの長さは、数ではなく、切断型、すなわちディスプレイ100,000自動的に増加されます。
- そこ現在のUTC時刻のテキストの書式設定した後、例:{DATETIMEUTC:YYYYMMDDHHMMSS}
また、既存のテキストフィールドのプロパティは自動的に自動採番の番号を適用するように変更することができます。フォームの自動番号属性は読み取り専用フィールドには、番号が自動的に保存した後に自動的に生成されます。
特徴は、公式には、Web APIをお勧めしますので、私は、Web APIを作成するために使用されるので、そんなに、私は、コードで作成した、このコードは、自動ナンバリングプロパティly_autonumber単一行のテキストフィールドの増加のための論理名は、エンティティly_workorderであると言います。
このタブでは、次の入力コードのコンソールに似たオープンダイナミクス365顧客エンゲージメント、開発者のパネルを開くためにF12キーを押します。
VAR clientUrl = 。Xrm.Utility.getGlobalContext()getClientUrl(); するvar reqは= 新しいXMLHttpRequestを() req.open( "POST"、encodeURI(clientUrl + "/api/data/v9.0/EntityDefinitions(LogicalName='ly_workorder')/Attributes")、真)。 req.setRequestHeader( "同意する"、 "アプリケーション/ JSON" ); req.setRequestHeader( "コンテンツタイプ"、 "アプリケーション/ JSON;のcharset = UTF-8" )。 req.setRequestHeader( "ODataの-maxVersionを"、 "4.0" ); req.setRequestHeader( "ODataの-バージョン"、 "4.0" ); req.onreadystatechange = 関数(){ 場合(この .readyState == 4 / * 完全* / ){ req.onreadystatechange = nullを。 もし(この .statusの== 204 ){ VARの "!操作成功":alertStrings = {テキスト }。 VaRの alertOptions = {高さ300、幅400 }。 Xrm.Navigation.openAlertDialog(alertStrings、alertOptions)。 } 他の{ Xrm.Navigation.openErrorDialog({メッセージ:この.responseText})。 } } }。 VAR requestMsg = JSON.parse( '{' + ' "AttributeTypeで": "文字列"、' + ' "AttributeTypeName":{' + ' "値": "StringType"' + '}' + ' "説明":{' + ' "@のodata.type": "Microsoft.Dynamics.CRM.Label"、' + ' "LocalizedLabels":[' + '{' + ' "@のodata.type": "Microsoft.Dynamics.CRM.LocalizedLabel"、' + ' "ラベル": "编号"、' + ' "言語コード":2052' + '}' + ']' + '}' + ' "表示名":{' + ' "@のodata.type": "Microsoft.Dynamics.CRM.Label"、' + ' "LocalizedLabels":[' + '{' + ' "@のodata.type": "Microsoft.Dynamics.CRM.LocalizedLabel"、' + 「『ラベル』: 『自動番号』」+ ' "言語コード":2052' + '}' + ']' + '}' + ' "RequiredLevel":{' + ' "値": "なし"、' + ' "CanBeChanged":真、' + ' "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings"' + '}' + ' "のSchemaName": "ly_autonumber"、' + ' "AutoNumberFormat": "WID- {SEQNUM:5} - {RANDSTRING:6} - {DATETIMEUTC:YYYYMMDDHHMMSS}"、' + ' "@のodata.type": "Microsoft.Dynamics.CRM.StringAttributeMetadata"、' + ' "FORMATNAME":{' + 「『値』: 『テキスト』」+ '}' + ' "のMaxLength":100' + '}' ); req.send(JSON.stringify(requestMsg))。
私は次のようにショットがあり、ここで実行します。
次の実装を成功した後に作成されたフィールド:
このフィールドは読み取り専用ですインターフェイスに:
新しいレコードがフィールドの割り当てを変更します保存した後、私は次のようにいくつかの例があり、ここで持っています:
あなたは開始値に設定することができるシリアル番号フィールドにしてからしたい場合は、次のようにもちろん、サンプルコードが提供されます。
VAR clientUrl = 。Xrm.Utility.getGlobalContext()getClientUrl(); するvar reqは= 新しいXMLHttpRequestを() req.open("POST", encodeURI(clientUrl + "/api/data/v9.0/SetAutoNumberSeed"), true); req.setRequestHeader("Accept", "application/json"); req.setRequestHeader("Content-Type", "application/json; charset=utf-8"); req.setRequestHeader("OData-MaxVersion", "4.0"); req.setRequestHeader("OData-Version", "4.0"); req.onreadystatechange = function () { if (this.readyState == 4 /* complete */) { req.onreadystatechange = null; if (this.status == 204) { var alertStrings = { text: "操作成功!" }; var alertOptions = { height: 300, width: 400 }; Xrm.Navigation.openAlertDialog(alertStrings, alertOptions); } else { Xrm.Navigation.openErrorDialog({ message: this.responseText }); } } }; var requestMsg = {}; requestMsg.EntityName = "ly_workorder"; requestMsg.AttributeName = "ly_autonumber"; requestMsg.Value = 1; req.send(JSON.stringify(requestMsg));
可以看到自动编号中的流水号又从1开始了,值得一提的是,更改流水号的起始号码不会随着解决方案而迁移到新的环境,所以新的环境也需要设置下。
这样可以设置的话,可以自己部署一个定时程序,让每个周期,比如每月,每年从1开始设置流水号。
注意不会保证流水号会连号,中间可能空号,从目前来看,若是并发不大,生成的流水号是连号的。
最后提一下,PowerApps的解决方案编辑界面已经支持可视化设置此属性了,截图如下,就不用代码了,更方便,为它点赞。