Wiki

Scale Your Enterprise

User Tools

Site Tools


bw:bizweaver_api

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
bw:bizweaver_api [2019/09/10 10:36]
runger [Call a Workflow Using POST]
bw:bizweaver_api [2020/07/23 11:26] (current)
Line 2: Line 2:
 Bizweaver has its own API that can be used in a variety of ways.  This is a directly-called API and does not currently use REST as the communication mechanism.  Instead, a specially formatted URL is used. Bizweaver has its own API that can be used in a variety of ways.  This is a directly-called API and does not currently use REST as the communication mechanism.  Instead, a specially formatted URL is used.
  
-The two most common uses are to invoke a Bizweaver workflow from a Versago form (or report), and to have one workflow call another workflow.  See the [[versago:form_configuration#invoking_a_bizweaver_workflow|Invoking a Bizweaver Workflow]] Versago page for information about using this process from Versago.+The two most common uses are to invoke a Bizweaver workflow from a Versago form or report, and to have one workflow call another workflow.  See the **//[[versago:form_configuration#invoking_a_bizweaver_workflow|Invoking a Bizweaver Workflow]]//** Versago page for information about using this process from Versago.
  
-=====Call Another Workflow===== +To initiate another workflow within Bizweaver, use a **//[[bw:web_service_tool|WebService2]]//** step.  The step is configured to use POST (preferred) or GET.  When the second workflow is called, the calling workflow will wait until it receives a response from the called workflow. Once a response is received the calling workflow will continue to its next step.
-To initiate another workflow within Bizweaver, use a **WebService2** step.  The body of the step will contain an action string as described below.  When the second workflow is called, the calling workflow will wait until it receives a response from the called workflow. Once a response is received the calling workflow will continue to its next step.+
  
-<WRAP center round important 60%>+<WRAP center round tip 80%> 
 +Processes beginning with v2.4 should always use POST.  Processes from older versions that used GET should be converted to POST as soon as possible. 
 +</WRAP> 
 +<WRAP center round important 80%> 
 +A token must be generated in order to use the POST processes described below.  Information on configuring a token is found **//[[bw:bizweaver_general_settings#bizweaver_webservice|here]]//**. 
 +</WRAP> 
 +<WRAP center round important 80%>
 Use caution when connecting multiple workflows in a sequence.  You may need to adjust the timeout value on the earlier steps to be sure the processing doesn't continue before the called step(s) have completed their work. Use caution when connecting multiple workflows in a sequence.  You may need to adjust the timeout value on the earlier steps to be sure the processing doesn't continue before the called step(s) have completed their work.
 </WRAP> </WRAP>
  
-<WRAP center round tip 60%> 
-The option to use POST and GET to initiate a Bizweaver workflow is introduced in v2.4. 
  
-Processes beginning with v2.4 should generally use POST.  This provides authentication security that is not available when using GET.  Processes already using GET should be converted to POST as soon as possible. +=====Call Another Workflow Using POST===== 
-</WRAP>+When a Bizweaver workflow is called (initiated) using POST, the configuration of the WebService2 tool involves two sections: the URI and the Body.  An example is shown below.
  
-=====Call a Workflow Using POST===== +{{ :bw:webservice_bizweaverpost.png?400  |}}
-Another Bizweaver workflow is called (initiated) using the [[bw:web_service_tool|WebService2]] tool.  The configuration of the WebService2 tool involves two sections: the URI and the Body.  An example is shown below.+
  
  
  
-===== Bizweaver Action Target String =====+  * Change the **YourServer:YourPort** values as needed by your installation.  The URI might look something like https://MyPortal.MyCompany.com:443 
 +    * Remember that you will need to use HTTP or HTTPS depending on your environment. 
 +    * The rest of the URI, __/BWService/api/workflow/InvokeWorkFlow__, will always be the same. 
 +  * Select POST from the "Method" drop-down list. 
 +  * Enter "application/json" in the "Content Type" field. 
 +  * Select the "Calling BW Task" checkbox. 
 +  * Enter the appropriate values in the "Body Information" section in the structure shown.  This structure can be copied from here, pasted into your workflow, and the values changed as needed.
  
-The Action String to invoke a Bizweaver workflow is shown below. 
  
-http:%%//%%<color #ed1c24>1</color>:<color #ed1c24>2</color>/BWService/api/workflow/InvokeWorkFlow?pTaskID=<color #ed1c24>3</color>&pStartAfter=0&pArguments={<color #ed1c24>4</color>:'~<color #ed1c24>5</color>~'} +<WRAP center round tip 60%> 
- +Finding the proper port needed will be in your IIS Manager which can be found in Start -Windows Administrative Tools -Internet Information Services (IISManager. There will be a drop down for your serverthen you will see Sites drop down and then Versago click on Versago and on the right panel there will be the proper port needed to use in the API call. 
-The elements in <color #ed1c24>red</colorare specific to your installation. The other items (included variable names used by Bizweaverare **case sensitive**so the easiest way to create the Action Target is to copy this string and paste it into Versago, then make the needed changes. You might also update the Bizweaver server information so that you will only need to change a few items.+</WRAP>
  
-  - The server where Bizweaver is installed +Here is a sample of the full URL.  Copy and paste this string as a starting point.
-  - The port assigned to the Bizweaver web service when the application was installed. +
-  - The Bizweaver workflow ID to be invoked. This can be found in Bizweaver and will always be numeric. +
-  - The name of the variable in Bizweaver that will receive a value from Versago. +
-  - Value(s) to be passed to Bizweaver. +
-    - If value(s) are not being passed to Bizweaver, the space between the curly braces is left blank. +
-    - If the value is a value from the form, use the Column Name from the form enclosed in tilde symbols (~) as shown. +
-    - If the value is static the tildes are not used. +
-    - In both cases the value being passed is enclosed in single quotes. +
-  - If multiple values need to be sent to Bizweaver, separate each pair of values (steps 5 and 6) by comma. See sample 3 in the next section.+
  
-===== Bizweaver Action Target String Samples ===== +<code> 
- +https://MyPortal.MyCompany.com:443/BWService/api/workflow/InvokeWorkFlow
-Example using HTTP to port 8082 on server “TWBSTestserver.demo.com”, invoking workflow ID 10, and sending a value from form control name “vgoRecNum” to a Bizweaver variable named “vgoRecNum.” +
-<code html+
-http://TWBSTestserver.demo.com:8082/BWService/api/workflow/InvokeWorkFlow?pTaskID=10&pStartAfter=0&pArguments={vgoRecNum<:'~5~'}+
 </code> </code>
  
-Example using HTTPS to port 443 on server “TWBSTestserver.demo.com”, invoking workflow ID 10, and sending a value from form control name “vgoRecNum” to a Bizweaver variable named “vgoRecNum.” Note that the only difference is the “HTTPS” and port number. +<code json
-<code html+
-https://TWBSTestserver.demo.com:443/BWService/api/workflow/InvokeWorkFlow?pTaskID=10&pStartAfter=0&pArguments={vgoRecNum<:'~5~'}+  "pTaskID":"NN", 
 +  "pArguments": 
 +    { 
 +    "Arg1":"Value1", 
 +    "Arg2":"Value2" 
 +    } 
 +}
 </code> </code>
  
-Example using HTTP to port 8082 on server “TWBSTestserver.demo.com,” invoking workflow ID 10and sending two values; one from form control name “vgoRecNum” to a Bizweaver variable named “vgoRecNum” and a static value “TextString” to a Bizweaver variable name “vgoText. +  * **NN** is the ID of the workflow being called. 
-<code html> +  * **Arguments** (parameters) are any values being passed to the workflow being called. 
-http://TWBSTestserver.demo.com:8082/BWService/api/workflow/InvokeWorkFlow?pTaskID=10&pStartAfter=0&pArguments={vgoRecNum<:'~5~',vgoText'TextString'}+    * Arguments are always sent in pairs Each paid is separated by a colon **:** as shown. 
 +    * The argument (Arg1Arg2etc.) is the variable name expected by the workflow being called
 +      * Variable names are case-sensitive. 
 +    * Values are the value being passed. 
 +      * Text and dates are enclosed in double-quotes. 
 +      * Numeric values do not require double-quotes. 
 +    * "pArguments" is required even if no values are being passed.  In this case the "pArguments" section will look like this. 
 + 
 +<code json> 
 +
 +  "pTaskID":"NN", 
 +  "pArguments":{} 
 +}
 </code> </code>
  
bw/bizweaver_api.1568126163.txt.gz · Last modified: 2019/09/10 10:36 by runger