I published a survey index layer on my web app and would like to link the survey documents as pdfs.
Can I do this through web app builder?
If so can it be an internal server link, or does it have to be a web link?
Do the pdfs have to be stored in my arc gis online account?
I have about 1200 surveys.
This is what my map looks like, I want it to link to the document number in the pop up window.
The county next door has their surveys linked on their web app, but they are using a paid service to create the links an we don't have a budget to do that.
When you click view document it opens the pdf
You can create a workable hyperlink with the following syntax in a text field.
<a href="file://filepath" target="_top">hyperlinkname</a>
This only works in a pop-up if you have the hyperlink name, so beware. It works for any sort of hyperlink; I use it to get files off my hardrive, as well as web URLs.
The simplest thing to do, I think, is to add a new field to your feature class and populate it with hyperlinks. Alternatively, you can make a table with a Recording Number field and a hyperlink field, then join it to the feature class you already have (you can do this in AGOL directly).
You can use Excel to generate all the file paths with this macro (I think I got this here?)
Sub GetFileList() Dim xFSO As Object Dim xFolder As Object Dim xFile As Object Dim xFiDialog As FileDialog Dim xPath As String Dim i As Integer Set xFiDialog = Application.FileDialog(msoFileDialogFolderPicker) If xFiDialog.Show = -1 Then xPath = xFiDialog.SelectedItems(1) End If Set xFiDialog = Nothing If xPath = "" Then Exit Sub Set xFSO = CreateObject("Scripting.FileSystemObject") Set xFolder = xFSO.GetFolder(xPath) ActiveSheet.Cells(1, 1) = "Folder name" ActiveSheet.Cells(1, 2) = "File name" ActiveSheet.Cells(1, 3) = "File extension" ActiveSheet.Cells(1, 4) = "Date last modified" i = 1 For Each xFile In xFolder.Files i = i + 1 ActiveSheet.Cells(i, 1) = xPath ActiveSheet.Cells(i, 2) = Left(xFile.Name, InStrRev(xFile.Name, ".") - 1) ActiveSheet.Cells(i, 3) = Mid(xFile.Name, InStrRev(xFile.Name, ".") + 1) ActiveSheet.Cells(i, 4) = CDate(xFile.datelastmodified) Next End Sub
It will prompt you to open a folder, and then it will list all the files in the folder in the columns Folder name, File name, extension, and date modified.
From there, you can concatenate them into your desired file path
Actually, now that I've thought on this more, making it as a separate table that you join is probably going to be less labor-intensive; just Excel--> Table and upload it.
Hope this helps!
Do you know how to figure out what the hyperlink name is?
When I export the surveys it comes with an excel table like this:
Here are the pdfs in the extract folder:
I have tried lots of different things for the hyperlink name.
My attribute table in arc pro:
but they all just redirect me back to the web app in a new window.
If I don't use the link and just paste the file path in the cell, it doesn't create a hyperlink, but I am able to copy and paste the link in my browser and the pdf will open.
Hey Lorraine, it looks like your hyperlink is missing part of the file path.
Your screenshot shows
<a href="C:\reports\EXTRACT232S9" target="_top">2028778-0</a>
<a href="C:\reports\EXTRACT232S10\2029778-0.pdf" target="_top">2028778-0</a>
Okay, it looks like I gave you bad information.
So, speaking from my own experience, you can link to a hard drive on Pro. I assumed it'd work for AGOL, but it does not; I did some testing and it only takes weblinks. So if you have everything hosted on a sharepoint or Google Drive with sharing activated, that's viable.
Another alternative to this is attaching each document to the records in AGOL, which I'm sorry for not suggesting earlier. Depending on the number of records you have, this might be pretty labor intensive, but it's also a lot simpler.
Thanks for the quick response! I'll talk to our it department on Monday to ask if I can store the data on sharepoint or google drives. Then if that doesn work I can try your next suggestion.
Thanks again for your help, I appreciate it!