IDEA
|
I know this is old and marked as "reviewed", but this is still 100% necessary. It's not just an issue with credits/file storage. Storing data as BLOBs can really increase database size and takes a massive performance hit as storage skyrockets. Not to mention working with BLOB formats is just terrible. Being able to reference attached files in their natural file formats and providing a file path to their location in a file server would be 100 times better than the current BLOB storage method.
... View more
11-20-2019
02:22 PM
|
1
|
0
|
2842
|
POST
|
Ahh I didn't realize Experience Builder was an Esri app, I thought they were asking about how to build their experience to create JavaScript apps with the JS API. I'll update my comment
... View more
08-06-2019
07:59 AM
|
1
|
0
|
1487
|
POST
|
Robert Scheitlin, GISP wrote: React is what experience builder is built on. That's very opinionated. If you're going to give an opinion on JavaScript frameworks you need to compare them all. The choice of JavaScript all depends on the project requirements but make sure to note that if you start creating applications with one framework, it is a large amount of work to convert to another. The choice of framework all depends on your project requirements. There are three big JavaScript frameworks today, React, Angular, and Vue. All of them help speed up development of web applications in their own unique ways but you also don't have to use any JavaScript framework. The ArcGIS JavaScript API is built on top of Dojo, but I wouldn't recommend using it as it is quite outdated. I've created a sample web application with all 3 frameworks to test the waters and this is what I found: React: Generally OK to develop with. It's quick to learn but has its downfalls with data manipulation. If you need a significant number of form controls and inputs (ie. if you are using JS for data-manipulation applications) then React is not the way to go. React requires onChange events for every input control to update the state of the controller which loses a huge amount of time if you have a lot of data inputs. But overall, not a bad choice if you want to get started, just be weary that passing variables around can be a bit tricky. Angular: Meh. It uses TypeScript which is a huge learning curve for anyone just getting into JavaScript. Being locked into using TypeScript with Angular can be beneficial because it enforces types for variables and requires compiling the JavaScript to build it but without knowing TypeScript there is a huge learning curve. Vue: Fairly good. All around pretty decent to use. It is a sort of combincation of React and Angular but doesn't enforce typescript. It has automatic data-binding and JS objects get updated the moment a form input is changed. It's not too hard to get started and works well with Esri applications. Some downfalls with nested components and passing parameters but I've found it is nice to work with. In addition to choice of framework, you should probably know the following concepts: ES6+, Webpack, Node.js, npm Update: Was unaware Experience Builder was an Esri app. This app uses React, thus if you need any custom features it is required to be familiar with React. React is best built with JSX but there is really nothing to learn with JSX, it is just a file type that allows specifying HTML components directly in your JavaScript instead of requiring strings to create HTML elements. ES6+ is recommended as it has greatly improved JavaScript, but in general, you'll just need to be familiar with React states and their component lifecycle. I'd recommend walking through the React tutorial to get a grasp of things.
... View more
08-06-2019
07:36 AM
|
1
|
3
|
1487
|
POST
|
Unfortunately I am unable to upgrade Pro due to corporate security software regulations. The database_file is a string which points to the location of an .sde file. The sde file is an oracle database connection. In the SearchCursor I also append a table name to the file as such: database_file + r"/USER.FEATURECLASS/USER.POINTFEATURES" After some further inspection I found that if I set a breakpoint before the for loop, the debugger will skip over the loop regardless of using "Step Over" or "Step Into". However, if I set a break point inside the for loop it will properly enter, execute, and debug within the loop. Once the debugger skips the first loop, future loops can be entered and debugged fine. Additionally, while debugging, no print statements in the first loop are executed so during debugging the first loop is not entered at all while running without the debugger will perform the print statements in the first loop.
... View more
08-28-2018
01:18 PM
|
0
|
0
|
1580
|
POST
|
I kno wthis is quite a bit old, but I just wanted to comment here and say that I am observing the same behavior with ArcGIS Pro using the pycharm debugger. My code is super simple, it will run without the debugger ,however, it will not run when the debugger is active. with arcpy.da.SearchCursor(
in_table=database_file,
field_names="*") as search_cursor:
for row in search_cursor:
print(str(row)) Now that I've realized this problem, it is starting to make sense as to why some problems I have been running into seem ot solve themselves when the scripts run... Edit: ArcGIS Pro 2.1.2 PyCharm 2018.2 (Community Edition) Build #PC-182.3684.100, built on July 24, 2018 JRE: 1.8.0_152-release-1248-b8 amd64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Windows 7 6.1
... View more
08-28-2018
10:51 AM
|
0
|
3
|
1580
|
POST
|
Hello there, Firstly I want to point out, your original function threw an error because you are trying to compare integer to a string. This can be avoided in your case by using the following code: Tot_Value >= '500000' However, this may not be what you want either. The comparison checks each letter of the string one at a time until it finds a difference. However, this can cause problems if your values in that field are of varying length. See screenshot below to see what happens when comparing different length strings. If you would like this solution to work, one possibly remedy is to ensure that all the values in your text field are the same length. However, if this is not possible we will need an alternate solution. We can make use of the string comparisons by using the SQL's LEFT and RIGHT operators. This allows us to extract the right-most side of the string for comparison. For example RIGHT('102', 2) will return '02'. How is this useful? If we want to make sure a number is greater than 5, we can use RIGHT(Tot_Value, 1) > '5'. However, notice that a value of '12' will return False as it will compare '1' > '5' first. Therefore, to remedy this we can filter out entries that are always larger by checking the string length, and then, only when an item is the same length as the search number, we check the value. Thus we can apply the following where clause: LENGTH(Tot_Value) > 1 OR (RIGHT(Tot_Value, 1) > '5' AND LENGTH(Tot_Value) = 1) This will ensure that only numbers larger than '5' are obtained. Once the string hits the length threshold, that the minimum value (RIGHT) is always greater than '5'. To apply this for 500000 we would do this: Now, this query may depend on your DBMS. For example, ORACLE does not have a RIGHT function, and thus I need to use SUBSTR instead. Make note of your DBMS and what type of string functions are available. That being said, this type of query should be possible in all SQL variants. That being said, let's apply this to your case of 500000: To compare if a string is larger than a number: LEN(Tot_Length) >= 6 OR (RIGHT(Tot_Length, 6) > '500000' AND LEN(Tot_Length) = 6) For oracle: LENGTH(Tot_Length) > 6 OR (SUBSTR(Tot_Length, -6, 6) > '500000' AND LENGTH(Tot_Length) = 6) To compare if a string is smaller than a number: LEN(Tot_Length) < 6 OR (RIGHT(Tot_Length, 6) < '500000' AND LEN(Tot_Length) = 6) Oracle: LENGTH(Tot_Length) < 6 OR (SUBSTR(Tot_Length, -6, 6) < '500000' AND LENGTH(Tot_Length) = 6) I know this isn't very elegant, however it does work. I hope it helps.
... View more
08-07-2018
08:38 AM
|
1
|
0
|
627
|
Title | Kudos | Posted |
---|---|---|
1 | 08-07-2018 08:38 AM | |
1 | 11-20-2019 02:22 PM | |
1 | 08-06-2019 07:59 AM | |
1 | 08-06-2019 07:36 AM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|