Issues with On-Prem Server Workflows
I'm having issues running server side workflows in WF5, in our On-Prem installation.
When I export the file and save it into the virtual directory on the site the work flow is for, I keep getting an error about the SQLQuery tool being not initiated. Through some googling and poking around in the forms, I've discovered that this is not supported, or at least it wasn't in late 2019-2020.
From what I've read and inferred from the support forms, the server side workflows are supposed to be stored on ArcGIS Portal/Enterprise/On-Line and run from there in a client workflow. After saving the WF to our ArcGIS On-Line instance, sharing the workflow with myself and running the client workflow I'm getting a "Unable to get Portal Item" error in the developers console in Chrome, further investigation of the error reported back from the workflow is "[WF: activity error] unable to get portal item".
Any Ideas?
-
HI Bryan,
Could you explain what the file is that you're copying at the start of your description? I'm not really clear how this relates to SQL Server.
When you create a server workflow using the on-premises version of Workflow Designer, the server workflow itself is saved on your own server. We also save a corresponding item to your Portal. That contains a few details such as the server url, so we know where to load the actual workflow from. The Portal item also contains a client-side workflow of its own which is essentially a wrapper around a call to Run Workflow that runs the server workflow. This exists as a convenience, so you can test the server workflow in the sandbox, for instance.
If you're seeing an error that the portal item was not found, it might suggest that the workflow url for "Run Workflow" is wrong in the client workflow. I'm not entirely sure how that would happen, though. Maybe if the save operation failed in some way?
You could use VertiGIS Studio Item Manager to inspect the Item JSON and confirm the serverUrl is correct. You could then look in the Item Content and confirm that the url supplied to Run Workflow is correct. (In my server workflow, it's line 56.)
0 -
Ken Lyon The SQLQuery I mention in my original post is not a SQL Server file, it's actually a 'Run SQL Query' tool that is attempting to connect and query an on-prem Oracle database.
I've double checked my run workflow activity in my client workflow, it is exactly the same URL that is in the info panel of the workflow designer and pointed at our AGOL instance; It's also the exact same as line 56 in the Item Content tab of the VertiGIS Studio Item Manager, the URL there matches the one from the info panel and when I post it into a web browser it takes me to the content within our ArcGIS On-Line portal.
I've attached an image of the developer console from when I try to run the server workflow in the sandbox.
0 -
Hi Bryan,
This is starting to make a little more sense, but I think I still need to fill in some of the blanks. Is your intention to use the Run Application activity in a Server Workflow in order to use the SQL Query tool to perform a query of an Oracle database?
I think you should be able to configure an oracle database connection in Workflow Server that would allow you to use our Run SQL Query activity. That would be the preferred pattern to use in Workflow.
0 -
Ken Lyon My hope was that I could call a server side workflow that has a 'Run SQL Query' activity in it to query the database. I've set up the connection to the database that I need to get connected to in the Data Connections part of the REST manager; I've tried both methods of connecting to the Oracle database, I copied and pasted the connection string from the REST Manager into the connection string input of the Run SQL Query activity. I also configured the same connection string into the databasejson file on the server, both options to this point have not yielded query results from the database. The connection string is below with the important stuff blanked out.
Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <host.server.ca>)(PORT = XXXX)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = db.domain.ca) ));User Id=<username>;Password=<password>
0 -
**Clarification
Sorry Ken Lyon, i'm hoping to have a client workflow, call a server workflow that will query the Oracle database and provide the results back to the client workflow.
0 -
I understand that additional steps are required to be able to connect to an Oracle database with Workflow.
If you have not already, I would recommend you refer to this guide for our instructions:
Database Connections for Server Workflows0 -
Thanks Ken Lyon; I got the client and server workflows to work, but there's another small item that has me confused.
In order for the client workflow to be able to call and have the server run the server side workflow that is saved in ArcGIS On-Line (AGOL); It needs to be shared with the public in AGOL (we tested public, organization and specific group/user sharing and public was the only one that didn't toss an 403 forbidden error) which seems like a bit of a security oversight.
Is there something that I've done incorrectly or a specific user that needs to be created in ArcGIS On-line to share the workflow with?
0 -
Hi Bryan,
I'm glad to hear you got them working. In order to use a workflow that isn't public, I think all that's needed is to ensure that the end user is logged in to the viewer and that they are a member of the relevant org/group.
0
Please sign in to leave a comment.
Comments
8 comments