AgileApps Support Wiki Pre Release

Difference between revisions of "Invoking Integration Server Services from Business Rules"

From AgileApps Support Wiki
imported>Aeric
imported>Aeric
 
(5 intermediate revisions by the same user not shown)
Line 26: Line 26:
:9. Select an Integration Server service from the drop-down list.  
:9. Select an Integration Server service from the drop-down list.  
:10. Provide the details for '''Service Input Map''' and '''Service Output Map'''. This is an optional step as there can be services that do not require any input or do not produce an output.
:10. Provide the details for '''Service Input Map''' and '''Service Output Map'''. This is an optional step as there can be services that do not require any input or do not produce an output.
:11. After you select an Integration Server service, click '''Service Input Map'''. In the Data Mapper window, the '''Document Model''' lists the set of inputs required for the selected Integration Server service. Also, the '''Object Model''' includes the fields for the selected AgileApps object. For more information, see [[AgileApps and Integration Server field mapping table]].  
:11. After you select an Integration Server service, click '''Service Input Map'''. In the Data Mapper window, the '''Document Model''' lists the set of inputs required for the selected Integration Server service. Also, the '''Object Model''' includes the fields for the selected AgileApps object. For more information, see [http://agileappscloud.info/aadev/index.php/Invoking_Integration_Server_Services_from_Business_Rules#AgileApps_and_Integration_Server_Field_Mapping_Table AgileApps and Integration Server field mapping table].  
Perform the mapping of AgileApps object fields to the fields of the Integration Server service. The following table provides details on AgileApps to Integration Server (Outgoing Map) field mapping:
Perform the mapping of AgileApps object fields to the fields of the Integration Server service. The following table provides details on AgileApps to Integration Server (Outgoing Map) field mapping:
:Table 1 - AgileApps to Integration Server (Outgoing Map)
:Table 1 - AgileApps to Integration Server (Outgoing Map)
Line 59: Line 59:
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>String List</nowiki></tt>
| <tt><nowiki>String List</nowiki></tt>
| <tt><nowiki>No Matching Type</nowiki></tt>
| <tt><nowiki>No Matching Type</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>String Table</nowiki></tt>
| <tt><nowiki>String Table</nowiki></tt>
| <tt><nowiki>No Matching Type</nowiki></tt>
| <tt><nowiki>No Matching Type</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>Doc</nowiki></tt>
| <tt><nowiki>Doc</nowiki></tt>
Line 72: Line 75:
| <tt><nowiki>Doc List</nowiki></tt>
| <tt><nowiki>Doc List</nowiki></tt>
| <tt><nowiki>No Matching Type</nowiki></tt>
| <tt><nowiki>No Matching Type</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>Doc Ref</nowiki></tt>
| <tt><nowiki>Doc Ref</nowiki></tt>
Line 79: Line 83:
| <tt><nowiki>Doc Ref List</nowiki></tt>
| <tt><nowiki>Doc Ref List</nowiki></tt>
| <tt><nowiki>No Matching Type</nowiki></tt>
| <tt><nowiki>No Matching Type</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>Obj</nowiki></tt>
| <tt><nowiki>Obj</nowiki></tt>
Line 86: Line 91:
| <tt><nowiki>Obj List</nowiki></tt>
| <tt><nowiki>Obj List</nowiki></tt>
| <tt><nowiki>No Matching Type</nowiki></tt>
| <tt><nowiki>No Matching Type</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>Obj Wrapper Types</nowiki></tt>
| <tt><nowiki>Obj Wrapper Types</nowiki></tt>
| <tt><nowiki></nowiki></tt>
| <tt><nowiki></nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>Boolean</nowiki></tt>
| <tt><nowiki>Boolean</nowiki></tt>
| <tt><nowiki>Boolean</nowiki></tt>
| <tt><nowiki>Boolean</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>Byte</nowiki></tt>
| <tt><nowiki>Byte</nowiki></tt>
| <tt><nowiki>Integer</nowiki></tt>
| <tt><nowiki>Integer</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>Character</nowiki></tt>
| <tt><nowiki>Character</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>Double</nowiki></tt>
| <tt><nowiki>Double</nowiki></tt>
| <tt><nowiki>Double</nowiki></tt>
| <tt><nowiki>Double</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>Float</nowiki></tt>
| <tt><nowiki>Float</nowiki></tt>
| <tt><nowiki>Double</nowiki></tt>
| <tt><nowiki>Double</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>Integer</nowiki></tt>
| <tt><nowiki>Integer</nowiki></tt>
| <tt><nowiki>Integer</nowiki></tt>
| <tt><nowiki>Integer</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>Long</nowiki></tt>
| <tt><nowiki>Long</nowiki></tt>
| <tt><nowiki>No Matching Type</nowiki></tt>
| <tt><nowiki>No Matching Type</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>Short</nowiki></tt>
| <tt><nowiki>Short</nowiki></tt>
| <tt><nowiki>Integer</nowiki></tt>
| <tt><nowiki>Integer</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>java.util.date</nowiki></tt>
| <tt><nowiki>java.util.date</nowiki></tt>
| <tt><nowiki>java.util.date</nowiki></tt>
| <tt><nowiki>java.util.date</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>XOPObject</nowiki></tt>
| <tt><nowiki>XOPObject</nowiki></tt>
| <tt><nowiki>No Matching Type</nowiki></tt>
| <tt><nowiki>No Matching Type</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
| <tt><nowiki>ByteArray</nowiki></tt>
| <tt><nowiki>ByteArray</nowiki></tt>
| <tt><nowiki>No Matching Type</nowiki></tt>
| <tt><nowiki>No Matching Type</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|-
|}
|}
Line 137: Line 155:
==AgileApps and Integration Server Field Mapping Table==
==AgileApps and Integration Server Field Mapping Table==
The following table provides the list of supported AgileApps fields for communicating with the Integration Server fields.
The following table provides the list of supported AgileApps fields for communicating with the Integration Server fields.
:Table 3 - AgileApps to Integration Server Field Mapping Table
:{| border="1" cellpadding="5" cellspacing="1"
! align="left" width="180em"| AgileApps Field Type  !! align="left"| AgileApps Field Data Type !! align="left"| Integration Server Field Data Type !! align="left"| Is Supported? !! align="left"| Comment
|-
| <tt><nowiki>Auto Number</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Checkbox</nowiki></tt>
| <tt><nowiki>Boolean</nowiki></tt>
| <tt><nowiki>Object of Boolean Wrapper Type</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Currency</nowiki></tt>
| <tt><nowiki>Double</nowiki></tt>
| <tt><nowiki>Object of Double Wrapper Type</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Date</nowiki></tt>
| <tt><nowiki></nowiki></tt>
| <tt><nowiki>Object of Date Wrapper Type</nowiki></tt>
| <tt><nowiki>No</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Date Time</nowiki></tt>
| <tt><nowiki>java.util.date</nowiki></tt>
| <tt><nowiki>Object of Date Wrapper Type</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Dependent Picklist (Enumeration Type)</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki>Works based on Index value instead of display value. AgileApps passes the index value of the selection and expects the same from IS.</nowiki></tt>
|-
| <tt><nowiki>Email Address</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>External Lookup</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>No</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>File Field</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>No</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Formula</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki>You cannot update this field as it is an auto populated field as per the formula condition.</nowiki></tt>
|-
| <tt><nowiki>Geolocation</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Global Picklist (Enumeration Type)</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Image Field</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>No</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Lookup</nowiki></tt>
| <tt><nowiki>Integer</nowiki></tt>
| <tt><nowiki>Object of Integer/Long Wrapper Type</nowiki></tt>
| <tt><nowiki>No</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Multi Object Lookup</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>No</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Multi Select Picklist (Enumeration Type)</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Multi Value Lookup</nowiki></tt>
| <tt><nowiki></nowiki></tt>
| <tt><nowiki></nowiki></tt>
| <tt><nowiki>No</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Multiple Check Boxes (Enumeration Type)</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Number</nowiki></tt>
| <tt><nowiki>Integer</nowiki></tt>
| <tt><nowiki>Object of Integer/Long Wrapper Type</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Number</nowiki></tt>
| <tt><nowiki>Integer</nowiki></tt>
| <tt><nowiki>Object of Integer/Long Wrapper Type</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Number with Decimal</nowiki></tt>
| <tt><nowiki>Double</nowiki></tt>
| <tt><nowiki>Object of Double Wrapper Type</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Percentage</nowiki></tt>
| <tt><nowiki>Double</nowiki></tt>
| <tt><nowiki>Object of Double Wrapper Type</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Phone/Fax</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Picklist (Enumeration Type)</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Radio Button (Enumeration Type)</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Rich Text Area</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Rollup Summary</nowiki></tt>
| <tt><nowiki>Integer</nowiki></tt>
| <tt><nowiki>Object of Integer/Long Wrapper Type</nowiki></tt>
| <tt><nowiki>No</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Text Field</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Text Area</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>Time</nowiki></tt>
| <tt><nowiki></nowiki></tt>
| <tt><nowiki>Object of Date Wrapper Type</nowiki></tt>
| <tt><nowiki>No</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
| <tt><nowiki>URL</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>String</nowiki></tt>
| <tt><nowiki>Yes</nowiki></tt>
| <tt><nowiki></nowiki></tt>
|-
|}

Latest revision as of 12:52, 29 August 2019

Overview

This use case shows you how to invoke Integration Server services from AgileApps. You can link these Integration Server services to AgileApps objects using business rules. AgileApps invokes these configured Integration Server services on execution of these business rules.

Actors

Any user who has the Manage Company Capabilities administrative permission can perform the required configurations to invoke the Integration Server services using business rules. For more information on permissions, see Administrative Permissions.

Before you begin

Ensure to configure the Integration Server username and password in Integration Server Configuration Settings. For more information about IS Configuration, see Integration Server Configuration.

Invoking the Integration Server services

To invoke the Integration Server services using business rules, perform the following actions:

1. Navigate to Settings new ui.png > Customization > Objects.
2. Select an object.
3. On the Object page, select Business Rules.
4. Under Event Rules, click New Rule. The following object events support invoking of Integration Server services through business rules:
  • Created
  • Updated
  • Deleted
  • Closed
  • Reopened
  • Owner Changed
5. Provide the details for the Basic Information section. For more information about setting these parameters, see Event Rules.
6. Set the Execution Criteria.
7. In the Actions to Perform section, select Invoke IS Service from the drop-down list. The application lists all the Integration Server packages available for this action.
8. Select any Integration Server package. The application lists all the services that are part of the selected Integration Server package in a folder structure.
9. Select an Integration Server service from the drop-down list.
10. Provide the details for Service Input Map and Service Output Map. This is an optional step as there can be services that do not require any input or do not produce an output.
11. After you select an Integration Server service, click Service Input Map. In the Data Mapper window, the Document Model lists the set of inputs required for the selected Integration Server service. Also, the Object Model includes the fields for the selected AgileApps object. For more information, see AgileApps and Integration Server field mapping table.

Perform the mapping of AgileApps object fields to the fields of the Integration Server service. The following table provides details on AgileApps to Integration Server (Outgoing Map) field mapping:

Table 1 - AgileApps to Integration Server (Outgoing Map)
AgileApps Data Type Matching Integration Server Data Type
String String
Boolean Object of Boolean Wrapper Type
Double Object of Double Wrapper Type
java.util.date Object of Date Wrapper Type
Integer Object of Integer/Long Wrapper Type

12. After you finish mapping for the Service Input Map, click Service Output Map. In the Data Mapper window, the Document Model lists the result from the executed IS service. Also, the Object Model includes the AgileApps object fields to which you must map the result from the executed IS service. Perform the mapping of the result from the Integration Server service to the AgileApps object fields using the Service Output Map. When the business rule invokes the Integration Server service, this mapping updates the results to the mapped object or case record fields. The following table provides details on Integration Server to AgileApps (Incoming Map) field mapping:


Table 2- Integration Server to AgileApps (Incoming Map)
Integration Server Data Type Matching AgileApps Data Type Comment
String String
String List No Matching Type
String Table No Matching Type
Doc No Matching Type Document to Document mapping is not available. However, you can map the internal field of document to AgileApps fields. Refer to Table 1.
Doc List No Matching Type
Doc Ref No Matching Type Document Ref to Document Ref mapping is not available. However, you can map the internal field of document to AgileApps fields. Refer to the table 1.
Doc Ref List No Matching Type
Obj No Matching Type Object to Object mapping is not available. However, you can map the object with valid wrapper type to AgileApps fields. Refer to the earlier tables.
Obj List No Matching Type
Obj Wrapper Types
Boolean Boolean
Byte Integer
Character String
Double Double
Float Double
Integer Integer
Long No Matching Type
Short Integer
java.util.date java.util.date
XOPObject No Matching Type
ByteArray No Matching Type
13. Click Save. In the runtime, the application executes the configured business rules for the respective object event.

Considerations

  • Ensure that you do not configure the Service Output Map for the Update object event. If you do, this leads to a recursive action and results in an error when a business rule is executed.

Limitations

Following limitations exist in the Data Mapper UI component:

  • The Set Map feature does not support StringTable, ByteArray and XOPObject, Date, and List types.
  • Application does not currently support Field Type icons for Character, Date and byte data types.
  • For Date field type, the application supports only the date part in the Calendar option.
  • The application incorrectly treats the Numeric/Integer fields as double after a certain value limit.

AgileApps and Integration Server Field Mapping Table

The following table provides the list of supported AgileApps fields for communicating with the Integration Server fields.

Table 3 - AgileApps to Integration Server Field Mapping Table
AgileApps Field Type AgileApps Field Data Type Integration Server Field Data Type Is Supported? Comment
Auto Number String String Yes
Checkbox Boolean Object of Boolean Wrapper Type Yes
Currency Double Object of Double Wrapper Type Yes
Date Object of Date Wrapper Type No
Date Time java.util.date Object of Date Wrapper Type Yes
Dependent Picklist (Enumeration Type) String String Yes Works based on Index value instead of display value. AgileApps passes the index value of the selection and expects the same from IS.
Email Address String String Yes
External Lookup String String No
File Field String String No
Formula String String Yes You cannot update this field as it is an auto populated field as per the formula condition.
Geolocation String String Yes
Global Picklist (Enumeration Type) String String Yes
Image Field String String No
Lookup Integer Object of Integer/Long Wrapper Type No
Multi Object Lookup String String No
Multi Select Picklist (Enumeration Type) String String Yes
Multi Value Lookup No
Multiple Check Boxes (Enumeration Type) String String Yes
Number Integer Object of Integer/Long Wrapper Type Yes
Number Integer Object of Integer/Long Wrapper Type Yes
Number with Decimal Double Object of Double Wrapper Type Yes
Percentage Double Object of Double Wrapper Type Yes
Phone/Fax String String Yes
Picklist (Enumeration Type) String String Yes
Radio Button (Enumeration Type) String String Yes
Rich Text Area String String Yes
Rollup Summary Integer Object of Integer/Long Wrapper Type No
Text Field String String Yes
Text Area String String Yes
Time Object of Date Wrapper Type No
URL String String Yes