laptop and a wrench

不具合

The addAttachmentStatusChanged signal of ArcGIS Runtime SDK for Qt does not return the correct attachment ID in certain instances.

最後に公開された状態: July 31, 2017 ArcGIS Runtime SDK for Qt
不具合 ID 番号 BUG-000099984
送信されましたOctober 10, 2016
最終更新日March 30, 2022
適用対象ArcGIS Runtime SDK for Qt
見つかったバージョン10.2.6
サーバー プラットフォームWindows OS
クライアント プラットフォーム7.0 64 Bit
ステータスNon-Reproducible

参考情報

This is working as expected. The code was incorrect in the way it was written. A couple of points to take into account: 1. The attachmentId is initially a negative number when it is local. Since absValue was being used, it made things confusing. When a feature didn't have any attachment, the API assigned a value of -10 as the attachmentId. But once it had at least one attachment, the attachmentId was looked up for the previous attachment, and then the new attachment was being assigned a new incremented id but again a negative number. Hence the confusion. 2. The correct way to do it is to call applyAttachmentEdits (async), connect to the complete signal for it, and there requery for the attachements and look up the correct id (I have the code for it below). 3. In Quartz 100.0.0, the API is much cleaner and you would do all of these using the attachmentListModel and you can configure it so that it autorefreshes and you will always have the correct id without having to write all the code yourself. The API does the heavy work in the back end. Updated Code: Query { id: query where: "id=" + selectedFeatureId } GeodatabaseFeatureServiceTable { id: featureServiceTable url: "http://54.194.53.236:6080/arcgis/rest/services/Visit_Gozo/Visit_Gozo/FeatureServer/4" // url: "https://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0" onAddAttachmentStatusChanged: { if(addAttachmentStatus === Enums.AttachmentEditStatusCompleted) { console.log("Temp attachment id: ", addAttachmentResult.attachmentObjectId); console.log("Feature Id: ", addAttachmentResult.objectId); console.log(addAttachmentResult.isSuccess); // call apply edits featureLayer.featureTable.applyAttachmentEdits(); } if(addAttachmentStatus == Enums.AttachmentEditStatusErrored) { console.log("Error! Error!"); } } onApplyAttachmentEditsStatusChanged: { if(applyAttachmentEditsStatus === Enums.AttachmentEditStatusCompleted) { // requery to get the correct attachment id's queryAttachmentInfos(selectedFeatureId); } } onQueryAttachmentInfosStatusChanged: { if (queryAttachmentInfosStatus === Enums.QueryAttachmentInfosStatusCompleted) { for (var i = 0; i < attachmentInfos.length; i++) { console.log(JSON.stringify(attachmentInfos[i])); console.log("AttachmentId: ", attachmentInfos[i]["attachmentId"]); } } } }

再現の手順

不具合 ID: BUG-000099984

ソフトウェア:

  • ArcGIS Runtime SDK for Qt

ArcGIS の専門家からヘルプを受ける

テクニカル サポートへのお問い合わせ

Esri Support アプリのダウンロード

ダウンロード オプションに移動

このトピックについてさらに調べる