Top Banner
www.regouniversity. com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer
54

Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

Dec 29, 2015

Download

Documents

Kristina Wood
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

www.regouniversity.comClarity Educational Community

Updates and AutomationGetting Started with GEL Scripts

Presented by : Virginia DeCeglia & Chris Shaffer

Page 2: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

2 Clarity Educational Community

Agenda• Overview• Introducing GEL• Scripting• Scripting Exercises• Q&A

Page 3: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

3 Clarity Educational Community

Prerequisites• Basic knowledge creating CA PPM processes• Oracle/SQL language• CA PPM data model

Page 4: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

4 Clarity Educational Community

Power of AutomationTi

me

Spen

t

Task SizeNon-Geek

GeekDoes it manually

Does it manually

Gets annoyed

Writes scriptto automate

Makes fun of geek’scomplicated method

Runs script

Wins

Loses

Page 5: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

5 Clarity Educational Community

What is GEL?• GEL stands for Generic Execution Language• Based on Jelly, a jakarta.apache.org Commons project• Extended and embedded into CA PPM to enable custom logic

to solve business problems• GEL is the basis for the enterprise application integration

framework within CA PPM• GEL scripts can be executed from within CA PPM by installing

them as processes, or from the command line• GEL scripts are executed top down

Page 6: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

6 Clarity Educational Community

What is GEL?, cont.• Additional information can be found in the CA Documentation

(CAClarityPPM_XOG_DeveloperGuide_ENU.pdf) and at the Apache Jelly website at

http://jakarta.apache.org/commons/jelly/index.html.

Page 7: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

7 Clarity Educational Community

GEL Data Sources• Web Services

– GEL can read or write to any SOAP based web service including XOG

• File System– GEL can read or write to any delimited file accessible on the

application server• FTP

– GEL can upload or download to FTP servers• JDBC

– GEL uses JDBC to read and write to databases

Page 8: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

8 Clarity Educational Community

GEL Script Structure<?xml version="1.0" encoding="UTF-8"?><gel:script xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:core="jelly:core"xmlns:gel="jelly.com.niku.union.gel.GELTagLibrary"xmlns:file="jelly.com.niku.union.gel.FileTagLibrary"xmlns:soap=" jelly.com.niku.union.gel.SOAPTagLibrary"xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"xmlns:sql="jelly.sql"xmlns:xog="http://www.niku.com/xog"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance">

<!-- Code goes here --></gel:script>

Header

Comment

Footer

Page 9: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

9 Clarity Educational Community

Header – Tag Namespaces• Header contains GEL namespace

• A GEL script is built from qualified elements bound to java code called tags

• Tags are organized into tag libraries that dictate what can be used in the script

• CA PPM ships with many out of the box tag libraries.

Page 10: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

10 Clarity Educational Community

Header – Tag Namespaces, cont.<gel:script

xmlns:core="jelly:core" xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary" xmlns:soap="jelly:com.niku.union.gel.SOAPTagLibrary" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sql="jelly:sql" xmlns:xog="http://www.niku.com/xog" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<!-- Code goes here.. -->

</gel:script>

Page 11: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

11 Clarity Educational Community

Tags• Tags are grouped in pairs, similar to HTML

– <core:????></core:????>– <core:????/>– Each tag should have a closing tag

• Tag name comes from the library definition– xmlns:core="jelly:core"

• Core, SQL, GEL are most common libraries

• Syntax<namespace:tag attribute="attribute value"/>

Page 12: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

12 Clarity Educational Community

Logging• The gel:log tag allows for logging of messages viewable from the

CA PPM application

• You can declare the log to be INFO (Yellow flag) or WARN (Red X)

• Syntax<gel:log level="INFO">Log Message</gel:log>

Page 13: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

13 Clarity Educational Community

Comments• Commenting your code will save a number of headaches later

on.

• Comment syntax is the same as HTML.

• Syntax<!-- comment here-->

Page 14: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

14 Clarity Educational Community

Creating Your First Script – Follow AlongCreate a processGo to Studio / Processes / New

Page 15: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

15 Clarity Educational Community

Creating Your First Script, cont.Add Primary Object

Select Project object, Save and Return

Page 16: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

16 Clarity Educational Community

Creating Your First Script, cont.Left click Start Step

Page 17: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

17 Clarity Educational Community

Creating Your First Script, cont.Create a new action

Page 18: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

18 Clarity Educational Community

Creating Your First Script, cont.Select Custom Script

Click Next

Page 19: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

19 Clarity Educational Community

Creating Your First Script, cont.Enter action name and id

Enter the script into the custom script window<gel:script xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary"> <!-- Code goes here.. --> <gel:log level="INFO">My first GEL worked!</gel:log></gel:script>

Validate, then Save and Return

Page 20: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

20 Clarity Educational Community

Creating Your First Script, cont.Under Post-Conditions, click Select Step

Select Finish step, click add

Page 21: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

21 Clarity Educational Community

Creating Your First Script, cont.Click Save and Return

Select the Validation tab

Page 22: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

22 Clarity Educational Community

Creating Your First Script, cont.Select Validate All and Activate

Page 23: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

23 Clarity Educational Community

Creating Your First Script, cont.1. Go to project list and select a project2. Click the Processes tab3. Select the Available sub-page4. Select the test script, then click Start

Page 24: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

24 Clarity Educational Community

Creating Your First Script, cont.5. Screen flips to initiated processes

6. Click the messages flag

7. Your log entry appears

8. The BPM message shows for each step; this is normal

Page 25: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

25 Clarity Educational Community

Questions

Page 26: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

26 Clarity Educational Community

Variables• Variables are widely used in GEL scripts• Declared at the time of use• Most tags can set variables• Setting a variable

– <core:set var="var_name">variable value</core:set>

• Reading a variable– ${var_name}

• Variables are valid for current script only

Page 27: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

27 Clarity Educational Community

Persisting Variables• Persisting a variable allows makes it accessible throughout the

entire process• Persisted variables are only valid for the initiated instance.

<gel:persist var="var_name">variable_value</gel:persist>

Page 28: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

28 Clarity Educational Community

Built-in Variables• Each process has three built in variables

– ${gel_objectInstanceId}• Object instance ID of the instance the process is executing on• Great for project or idea processes

– ${gel_processId}• ID of the Process itself

– ${gel_processInstanceId}• Process instance ID

Page 29: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

29 Clarity Educational Community

Process Parameters• <gel:parameter>

– Allows passing of values into a GEL script from a CA PPM process• Inside the GEL script, you can refer to the parameter as you would any

other variable by using ${variablename}• The optional attribute secure="true" causes CA PPM to hide the actual

value with asterisks (*) in the user interface

<gel:parameter var="XOGUsername" default="admin"/>

<gel:parameter var="XOGPassword" default="password" secure="true"/>

Page 30: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

30 Clarity Educational Community

Case Sensitivity• Information contained within GEL tags is case sensitive

– For example, if you declare a variable as follows:<core:set var="v_ProjectID">PRJ-123456</core:set>

– Then reference the variable as follows:<gel:log>${v_projectid}</gel:log>

– PRJ-123456 will not output

• This will not cause an actual error to occur, so you can’t “catch” this error.

Page 31: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

31 Clarity Educational Community

Add the Database Data Source1. Add the SQL tag library to the header

xmlns:sql="jelly:sql"

2. Add the niku data source at the beginning of the script<gel:setDataSource dbId="niku"/>

Page 32: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

32 Clarity Educational Community

Multiple Data SourcesAdding the var tag to the data source allows for multiple data sources

<gel:setDataSource dbId="niku" var="clarity"/>

<gel:setDataSource dbId="ps_ora" var="peoplesoft"/>

Page 33: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

33 Clarity Educational Community

Query the DatabaseQuery structure

<sql:query dataSource="${clarity}" escapeText="0" var="qry_task">

<![CDATA[SELECT PRNAME from PRTASK]]>

</sql:query>

– The VAR is the array this query will be stored as– dataSource is the variable of the data source to be used

• If only one data source, this tag is not needed– Always wrap sql statements in the CDATA tag so you can use <

and > characters

Page 34: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

34 Clarity Educational Community

Query ParametersPassing parameters

<sql:query dataSource="${clarity}" escapeText="0" var="qry_task">

<![CDATA[SELECT PRNAME from PRTASKWHERE PRPROJECTID = ?]]><sql:param value="${gel_objectInstanceId}"/>

</sql:query>

– Parameters are in the order of the ? from the query– This creates a bind parameter and is more efficient for the

database– Helps with escaped characters and data types.

Page 35: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

35 Clarity Educational Community

Query ResultsTwo ways to get the data out

– By Index (Order of columns)<core:forEach trim="true" items="${qry_task.rowsByIndex}"

var="row"><gel:log level="INFO">Task Name: ${row[0]}</gel:out>

</core:forEach>

– By column name (Preferred Method)<core:forEach trim="true" items="${qry_task.rows}" var="row">

<gel:log level="INFO">Task Name: ${row.prname}</gel:log></core:forEach>

Page 36: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

36 Clarity Educational Community

Update Query<sql:update dataSource="${clarity}" escapeText="0"

var="updateCnt"><![CDATA[UPDATE odf_ca_project ocpSET ocp.rego_appr_date = sysdateWHERE ocp.id = ?]]>

<sql:param value="${gel_objectInstanceId}"/></sql:update>

The variable ${updateCnt} contains the number of rows the update statement affects

Note: Using CDATA tags in update statements is preferred

Page 37: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

37 Clarity Educational Community

Update Query, cont.• Processes often require updating the values of specific

attributes– You can to do this is with a SQL Update statement– Keep the following in mind when performing direct database

updates• Avoid Insert statements – these are best suited for XOG• Direct database updates will not trigger a process to start; XOG

updates will typically trigger processes to start• Avoid updating OOTB tables when possible; using XOG will ensure

all CA PPM business rules are followed • It is generally safe to update custom attributes with a SQL update

(these are typically found in tables beginning with odf_ca)• Use extra caution within On-demand environments

Page 38: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

38 Clarity Educational Community

Delete Query<sql:update dataSource="${clarity}" escapeText="0"

var="updateCnt"><![CDATA[DELETE FROM Z_CUSTOM_TABLEWHERE id = ?]]>

<sql:param value="${gel_objectInstanceId}"/></sql:update>

The update tag is also used for delete statements

Page 39: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

39 Clarity Educational Community

Looping – forEachUse forEach to loop through database result sets

<core:forEach trim="true" items="${queryResult.rows}" var="row">

.. Do something ..

.. Do something ..</core:forEach>

Page 40: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

40 Clarity Educational Community

Looping – While LoopA While Loop can also be create.

<core:while test="${v_counter &lt; 0}">.. Do Something.... Don’t forget to update the counter

</core:while>

Page 41: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

41 Clarity Educational Community

Conditional If/ThenCore:if is a simple if/then statement

<core:if test="${debug == 1}"><gel:log level="INFO">XOG URL: ${xogUrl}</gel:log>

</core:if>

Conditional Expressions== Equals!= Not Equals&gt; Greater Than&lt: Less Than&ge; Greater Than or Equal To&le; Less Than or Equal To

Operational Expressions

|| Or&& And

Page 42: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

42 Clarity Educational Community

Conditional – Core/Choose/Otherwise• core:choose allows you to choose the right path• Otherwise is the default action when conditions are not met

<core:choose><core:when test="${row[6] == 'test'}">

…</core:when><core:otherwise>

…</core:otherwise>

</core:choose>

Page 43: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

43 Clarity Educational Community

Sending EmailGEL can send HTML formatted email<gel:email

from="[email protected]" fromName="Clarity" subject="Subject Line ${invCode}" to="${toEmail}"><![CDATA[

Hello,<br><strong>this is bolded</strong>

]]></gel:email>

• Gel:Email uses the mail server set up in the CSA• To address can be multiple separated by ;– If the address is listed twice it will fail

• Uses the xmlns:email="jelly:email" namespace

Page 44: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

44 Clarity Educational Community

Sending Email, cont.Email can be split up with database queries in the middle<gel:email

from="[email protected]" fromName="Clarity" subject="Subject Line ${invCode}" to="${toEmail}"><![CDATA[

Hello,<br><strong>this is bolded</strong>]]><sql:query dataSource="${clarity}" escapeText="0" var="qry_res">

<![CDATA[ SELECT … PRT.PRPROJECTID = ?

]]><sql:param value="${gel_objectInstanceId}"/></sql:query><core:forEach trim="true" items="${qry_res.rows}" var="row">

${row.full_name} <br/></core:forEach>

</gel:email>

Page 45: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

45 Clarity Educational Community

Exercise• Create an on-demand GEL script on the Project object• The GEL script should send a single email that contains a list of

resources on the project• Create the GEL script, and execute it manually on a project• Don’t forget to add the data source and namespaces• Use your own email address

Page 46: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

46 Clarity Educational Community

Exercise, cont.• Namespaces to use

xmlns:core="jelly:core" xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary"

xmlns:sql="jelly:sql"

• SQL Script to use<![CDATA[SELECT FULL_NAME FROM PRTEAM PRTINNER JOIN SRM_RESOURCES SRMR ON PRT.PRRESOURCEID = SRMR.IDWHERE PRT.PRPROJECTID = ?]]><sql:param value="${gel_objectInstanceId}"/>

Page 47: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

47 Clarity Educational Community

Solution – ShellCreate the GEL shell structure with namespaces

<gel:script xmlns:core="jelly:core" xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary"xmlns:sql="jelly:sql">

</gel:script>

Page 48: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

48 Clarity Educational Community

Solution – Data SourceAdd the Data Source

<gel:script xmlns:core="jelly:core" xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary"xmlns:sql="jelly:sql"><gel:setDataSource dbId="niku"/>

</gel:script>

Page 49: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

49 Clarity Educational Community

Solution – SQL QueryAdd the SQL query after the data source

<sql:query var="qry_team"><![CDATA[SELECT FULL_NAME FROM PRTEAM PRTINNER JOIN SRM_RESOURCES SRMR

ON PRT.PRRESOURCEID = SRMR.ID

WHERE PRT.PRPROJECTID = ?ORDER BY FULL_NAME]]>

<sql:param value="${gel_objectInstanceId}"/></sql:query>

Page 50: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

50 Clarity Educational Community

Solution – Email BodyAfter the data source

<gel:email from="[email protected]" fromName="Clarity"subject="Project Team Members"to="[email protected]"><![CDATA[Greetings, the following resources on assigned to the project.<br/>]]></gel:email>

Page 51: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

51 Clarity Educational Community

Solution – Email LoopAfter the data source <gel:email from="[email protected]" fromName="Clarity"subject="Project Team Members"to="[email protected]"><![CDATA[Greetings, the following resources on assigned to the project.<br/>]]>

<core:forEach items="${qry_team.rows}" var="row">${row.FULL_NAME} <br/></core:forEach>

</gel:email>

Page 52: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

52 Clarity Educational Community

Solution – Completed Script<gel:script

xmlns:core="jelly:core" xmlns:email="jelly:email"xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary"xmlns:sql="jelly:sql">

<gel:setDataSource dbId="niku"/>

<sql:query var="qry_team">SELECT FULL_NAME FROM PRTEAM PRTINNER JOIN SRM_RESOURCES SRMR ON PRT.PRRESOURCEID = SRMR.IDWHERE PRT.PRPROJECTID = ?ORDER BY FULL_NAME

<sql:param value="${gel_objectInstanceId}"/></sql:query>

<gel:email from="[email protected]" fromName="Clarity"subject="Project Team Members"to="[email protected]"><![CDATA[Greetings, the following resources on assigned to the project.<br/>]]><core:forEach items="${qry_team.rows}" var="row">

${row.FULL_NAME}<br/></core:forEach></gel:email>

</gel:script>

Page 53: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

53 Clarity Educational Community

Things to ConsiderWhen working with GEL it is important to keep a few things in mind

• Be careful when hard coding URLs as refreshes from production to non-prod will not automatically update scripts

• Refreshes can play havoc with email processes– Ensure non-prod systems have email disabled or update email

addresses to a dummy address

Page 54: Www.regouniversity.com Clarity Educational Community Updates and Automation Getting Started with GEL Scripts Presented by : Virginia DeCeglia & Chris Shaffer.

54 Clarity Educational Community

Questions

Virginia [email protected]

Chris [email protected]

Thank you for your time.

Contact US888.813.0444

Email [email protected]

Web Sitewww.regoconsulting.com