Monday, July 6, 2015

Appian Certification

Appian BPM Certification

This Analyst Certification has following.

-50 Questions 

-30 Minutes 

-Need to get 70% to get certified

Reading appian forum documentation helps.

Thursday, May 1, 2014

Appian BPM 7.5

#AppianBPM 7.5
Release date April 25th 2014.
This below features are most exciting to me.

# Advanced Task Management :
  Allow process task rejection and reassignment by managers or users as appropriate.

# Editable Grid improves ease of use, allowing data to be edited within the grid, similar to a spreadsheet.
  This feature of editable Grid was in 6.x and was removed in 7.0 and now its back in 7.5
 Also the formatting the grid column was very important. Good Appian heard about this.
  a!gridTextColumn and data property should be used to do this.

# New Interface Designer
This new feature gives designers more flexibility in building SAIL forms and a competitive edge compare to other platforms.
**Very important to NOTE this is not a drag and drop design feature. Its like coding in eclipse or visual studio and get auto completion of operations/functions. Based on cursor location corresponding function param details are shown and function name completes. (Auto suggest, Syntax highlight, live code documentation )
We had to refer to documentation for every function for signatures.
 Excellent for developers.
Only hoping the interface designer is stable.
Copy paste/option toggle not to render immediately and refresh
Performance of the SAIL UI with visual charts etc, Will help developers to do a better job

#SAIL a!textField label position is one of the most important feature that I like.
It was a hassle in 7.4 for a client I worked the placement of label was not good. Had to use instructions instead of label. NOW with more options I believe UI development will have more choices.

Must thank Suvajit, VP Development at Appian for his teams efforts. Hope people at appian world might have seen his presentation.

#Configuration manger
Not tested yet but Appian administration of 7.5 seems to be easier than ever. A whole new configuration manager is something to get excited for Admins.

#Integration Connectors
I am excited about the Microsoft connectors especially with MS Dynamics. Cant wait to play with these and bring great value to the clients.
Even though MS provides SOA/WS approach lets see what Appian Integration connectors bring to the table.
Developers in MS Dynamics knows well about IOrganizationService  and this is internally called.
Appian provides Connector functions for these and most of them have few parameters like user, pwd and endpoint and its corresponding endpoint function inputs.
Note: All Connectors require some configuration by Administrators before developers can use.

a!dynRetrieve(
            scsExternalSystemKey: cons!DYN_SCS_KEY,
            usePerUserCredentials: true,
            endpoint: cons!DYN_ENDPOINT,
            parameters: _ )

 Other Connectors are for CMIS, SharePoint, Siebel, SAP and SalesForce.
 Disclaimer: Connectors are maintained or coded by undisclosed 3rd party and not Appian itself.
 But one good thing is there are good Appian engineers out there if any problem arises.

#More space for users in Reports
When using reports Users always wanted more workspace on the screen to play on the data.
Appian removed the left side space making more room for Reports. Probably could be configured.

Overall version 7.5 was all about developers and end users being happy and use Appian efficiently.
Still concerns are How to make the Admins life easy in the Upgrade process.
Cloud folks are covered as Appian does it, but what about the on-premise clients.
Most of them have 3 or 4 environments Dev/QA/UAT/Prod and coping up with appian release speeds is not easy as Admins spend more than half a day for each environment to get it up with lots and lots of manual steps in Upgrade process reading the long wiki pages.

This release has been just this week and more to explore.... Stay tuned..

Rayudu Addagarla is an Independent BPM Contractor and owns Siorys Consulting Services 
Has 5yrs of Appian BPM version 6.x and 7.x experience. and 15yrs (USA) of  related IT experience.
Working with Top financial clients.
Onshore offshore model experience. 
Appian BPM Architecture and Hands on development experience.
Expert in working with the toughest Business teams you might have.

Keywords: Appian BPM 7.x 7.5 SAIL Process Improvement and  Management Work Social
Related post:
http://raybpm.blogspot.com/2013/07/a-high-level-overview-of-appian-bpm.html

Friday, September 27, 2013

Lexmark Perceptive Software -BPM Workflow management suite.

Perceptive Software owned by of Lexmark Inc (as of 2004) has a web based Workflow Designer and easy to use components to route the right information to the right place at the right time.

 

On Premise and SaaS based product.

Can integrate with almost all MS stack , JD Edwards, SAP , Oracle ERPs.

Has Hardware integration with touch screen based Multifunction Printers (MFP) and scanners and is a reason bought by Lexmark.

Lexmark, Dell, Xerox etc use this.

 

 

 

 

 

Business process management automates your daily workflows through a thoughtful combination of software and expertise that

tightly integrates with and extends your enterprise applications without compromising their integrity.

And far from being a one-time exercise, it simply becomes a part of how you do business—a continuous cycle of improvement for any process in your organization.


Process Discovery illuminates the reality of your processes, exposing bottlenecks in both people and technology that disrupt the flow of productivity. 

Process Design uses the insight you’ve gained to model your processes for better results. 

Perceptive process modeling gives you everything you need to rethink your processes. 

Perceptive process documentation provides the tools needed to publish the processes you've designed, to make everyone understand the impact of their work on the work of others and how they add value to organizational goals.

Process Execution delivers the processes you’ve modeled to a desktop or a mobile device as user-ready applications.

Perceptive’s content-based workflow supports your organization in structuring your processes,

maximizing the number of transactions your team is able to process, direct, approve and complete.

With its more flexible and agilecase management approach, Perceptive provides the optimized process support knowledge workers need to get their work done in the most efficient way—while keeping an overview of everything their customers need.

Process Monitoring and Improvement allows you to make quick adjustments and adapt to changes the future may throw your way. Perceptive process analytics provides immediate insight into your current operations with the ability to immediately act on unbalanced workloads or operational disturbances, and to identify and analyze operational problems to find their root cause

 

 

See more at:

 

http://www.perceptivesoftware.com/products/perceptive-process/business-process-management

 

Rayudu Addagarla

BPM Workflow specialist

Wednesday, September 4, 2013

How to use Java Objects of Oracle similar to Oracle Procedure/Function

Keywords: TOAD, PL/SQL , SQLPLUS, Oracle Java Object, Convert Oracle code to use as Oracle Functions.

 

 

You might have seen Java in Oracle TOAD, But wonder how to use Java there?

 

Yes you can write simple java code in Toad or sqlplus.

Please refer to the below steps and you can write some nice java code to use in PL/SQL.

 

Examples why you might have to use Java:

Some complex String manipulations or might have to make decision on reading some data from files. You probably could call web services and get some data and return inside pl/sql

I did not try calling WS, but since you can write java code, I don’t think you will be limited to any java extensibility.

 

 

Below is a sample Hello World and imagination is only your limit to extend your java skills when using oracle.

 

 

-- Step 1 DROP Java Source

DROP JAVA SOURCE "HelloRayudu";

 

-- Step 2 Create Java Source and Class and a static method

 

CREATE JAVA SOURCE NAMED "HelloRayudu" AS

   public class HelloRayudu {

      public static String hello() {

         return "Hello Rayudu";   } };

        

 

-- Step 3 Create equivalent Oracle Package and function

 

CREATE OR REPLACE PACKAGE APPIAN_TMS.JAVATEST AS

FUNCTION hello

   return VARCHAR2

 AS

LANGUAGE java

    NAME 'HelloRayudu.hello() return java.lang.String';

 

end;

 

 

-- Step 4 Execute the function created above

 

SELECT  JAVATEST.hello FROM DUAL;

 

 

 

        

Once this steps are done, you will be able to see the class in Schema browser as above and details like below.

 

 

 

Rayudu Addagarla

 

 

Thursday, August 8, 2013

Regual Expression in ORACLE SQL using REGEXP_LIKE function

You might have to create VIEWS too get some specific data from Database and call it from your APPIAN BPM Suite.

 

What is regular expressions?

http://docs.oracle.com/cd/B12037_01/server.101/b10759/conditions018.htm

http://en.wikipedia.org/wiki/Regular_expression

http://www.w3schools.com/jsref/jsref_obj_regexp.asp

 

functions may vary in each language , sql or java or javascript , but the regular expression ex: ‘\d’ will be same.

 

\d means digit.

\d+ means digit one or more times

^\d – means start with digit

^\d+$ - means start(^) and end($) with digit and any number of digits

 

 

select * from TMS_TASKS;

 

 

 

When you use oracle regular expressions like below

The column TASK_GROUP has numeric and text, but if you want to get only the numbers , we use where clause and use REGEXP_LIKE oracle function

Function to use: REGEXP_LIKE(source_string, pattern, matchparameter)

 

 

SELECT * FROM TMS_TASKS WHERE REGEXP_LIKE(TASK_GROUP, '^\d+$', 'i');

 

 

The 3rd parameter  ‘i’ means case insensitive

 

 

The result you get is TASK_GROUP data with numeric or digits.

 

 

Rayudu Addagarla

 

 

Thursday, July 25, 2013

A high level overview of Appian BPM Suite - Part 1

Appian  is one of the leading BPM Suite currently in the market.

Appian appeared in the LEADERS quadrant of the Gartner Magic Quadrant  (iBPMS category)

Appian is the BPM expert. Appian leads the market in BPM innovation, delivering comprehensive,
flexible, and easy-to-use solutions tailored to the needs of businesses and governments worldwide.
The Appian Enterprise BPM Suite is a 100 percent Web-based solution, including integrated knowledge
management and real-time analytics. Appian simplifies process collaboration between business and IT,
allowing all users to be part of the process of achieving corporate goals.
Appian Anywhere, the first and only complete BPM Suite available on-demand, delivers all the power
and functionality of Appian Enterprise via a Software-as-a-Service (SaaS) model.

Work Social , Cloud and Mobile makes Appian in a different space when compared to competitors.
Appian provides free native mobile apps for customers and no separate licenses for mobile usage.
Developer has to least worry about implementing and support mobile and web separately. As onetime development works on both.
CEO Matt Calkins says: Social Business + BPM + Mobile + Existing Apps = Worksocial

Amazon is the official partner of Appian for Cloud Services.
Current version of Appian is Version 7.2 supported in cloud and on-premise. Appian BPM Suite Product started in 2006 with a public version of 3.5



 iBPMS - Adding Intelligence to the BPM Suite
BPM Suites “enable leading organizations to make their business operations more intelligent by integrating analytics, social, and mobile technologies into orchestrated processes” - Gartner

High Level Architecture of Appian System:
     In a typical On-Premise environment Clients install Tomcat, JBOSS or compatible Java Container , configure Shared Drives for resources
   The Apache Tomcat webserver will be the client facing with a FQDN & Load Balancer ex: bpm.mycompany.com
    Appian components can be distributed on multiple servers, but I personally recommend the k engines are one high end server to resolve sync issues that might arise once in a while.
Appian Enterprise supports a variety of J2EE and OS platforms. For operating systems, Appian
supports Windows 2003 Server, IBM-AIX, Linux, and Sun Solaris. For J2EE platforms, Appian
supports JBOSS, IBM WebSphere, and Oracle/BEA Application Server.
For advanced development, Appian offers a Java Eclipse based SDK. All other interfaces for process
design, forms design, reporting, and end-user interaction are provided through a web browse

From my experience I have seem Appian using 80% of Apache open source frameworks.
Struts, JSF, Spring, Hibernate etc.

Appian Engine in particular h uses K & Q languages and KDB which makes the system really fast and responsive. Company: kx.com

Appian engines consist of advanced process, knowledge management, and integrated analytics.
The architecture consists of a set of Appian engines that manage tasks from storing and versioning process models;
executing predefined business rules; user, group, and role management; document storage; discussion areas; and task execution.
Must appreciate Appian has these core engineers. Appian provides command line scripts for both UNIX  and Windows environments.

Screenshot of Appian engines


Collaboration and Developer Community:
Appian has its own document repository but can integrate with SharePoint 2007 and above  very well with its out of box smart services using “Appian for SharePoint module”
Forum: https://forum.appian.com is a website similar to many companies. Ex: sdn.sap.com community network or pdn.pega.com (Pegasystems community)

Very good familiar social interface like yammer/facebook/linkedin.
The only company which use the product internally for almost everything and sell the same to the clients.

Appian 7.2 interface announced in May 2013. You will see the same interface when developing at your company.


Do you want to enhance using plugins
There is no limit you can enhance your development and Appian provides Java API
And also forum has lot of shared plugins from the community.
I have integrated 3rd party C#/ASP.Net/Silverlight applications with Appian to communicate between them, Send and receive , collaborate documents and start Appian process from .Net technologies etc.
Appian allows your process models to be exposed as web services. The SOA way.

Consider these following factors when evaluating or finalizing a BPM Suite 
  1. Time to Value
  2. Lower TCO (Total Cost of Ownership)
  3. Risk Mitigation
  4. Value Potential
  5. Cloud/On-Premise/Hybrid

 Other factors
  • SOX Compliance
  • How much automation capabilities are provided by vendor for continuous integration and faster deployments
  • Is it Server based license or CAL/per user based – which comes in TCO
  • Developer reach and resources availability in market


In the Next Parts about Appian BPM  , we will see more details of Appian Features, Developers perspective , Form and Process Designer , Rules Deployment etc.
I hope mean while this helps to get an understanding of what Appian BPM is and what it offers.

We can go over something like this. May be a Purchase or PTO or Travel Request or some sort  business process which needs approval and sox compliance etc.



Rayudu Addagarla
BPM Specialist
I am not Appian employee or official partner, I am just an independent consultant with Appian BPM Suite expertise.

Friday, July 5, 2013

XML/XSLT Parsing your business data which is in xml using XSLT -by Rayudu Addagarla

In today’s world data is everywhere and xml could be one source and most common source as feed from data vendors etc.

 

Say suppose you have some xml data to show for business users and a requirement to show in the webpage or parse with XSLT to use in some application.

This below shows how to parse daily averages of Federal Funds available for public.

 

I just showed to use xsl:for-each and show in tables. You can apply any XSLT rules to filter xsl:if, xsl:choose, xsl:when etc.

Shows how to read elements and attributes and xml which has (:colon) namespaces ex: ff:Series

<ff:Series AVAILABILITY="A" DECIMALS="2" FF_METHOD="D" DISCLAIMER="G" TIME_FORMAT="P1D">

 

http://www.newyorkfed.org/xml/data/ff/ffd.xml

 

How would you parse this with XSLT if you want to just display on your page based on some rules etc.

 

 

XML (ffd.xml)

XSL

<?xml version="1.0" encoding="ISO-8859-1"?>

<UtilityData>

<Header>

<ID>FFD</ID>

<Test>false</Test>

<Name xml:lang="en">Federal Funds daily averages</Name>

<Prepared>2013-07-05</Prepared>

<Sender id="FRBNY">

<Name xml:lang="en">Federal Reserve Bank of New York</Name>

<Contact>

<Name xml:lang="en">George Matthes</Name>

<Email>george.matthes@ny.frb.org</Email>

</Contact>

</Sender>

</Header>

<ff:DataSet>

<ff:Series AVAILABILITY="A" DECIMALS="2" FF_METHOD="D" DISCLAIMER="G" TIME_FORMAT="P1D">

<ffbase:Key>

<base:FREQ>D</base:FREQ>

<base:RATE>FF</base:RATE>

<base:MATURITY>O</base:MATURITY>

<ffbase:FF_SCOPE>D</ffbase:FF_SCOPE>

</ffbase:Key>

<ff:Obs OBS_CONF="F" OBS_STATUS="A">

<base:TIME_PERIOD>2013-07-02</base:TIME_PERIOD>

<base:OBS_VALUE>0.1</base:OBS_VALUE>

</ff:Obs>

<ff:Obs OBS_CONF="F" OBS_STATUS="A">

<base:TIME_PERIOD>2013-07-01</base:TIME_PERIOD>

<base:OBS_VALUE>0.1</base:OBS_VALUE>

</ff:Obs>

<ff:Obs OBS_CONF="F" OBS_STATUS="A">

<base:TIME_PERIOD>2013-06-28</base:TIME_PERIOD>

<base:OBS_VALUE>0.07</base:OBS_VALUE>

</ff:Obs>

<ff:Obs OBS_CONF="F" OBS_STATUS="A">

<base:TIME_PERIOD>2013-06-27</base:TIME_PERIOD>

<base:OBS_VALUE>0.09</base:OBS_VALUE>

</ff:Obs>

</ff:Series>

</ff:DataSet>

</UtilityData>

<?xml version="1.0" encoding="ISO-8859-1"?>

<!—Author Rayudu Addagarla, Tested in W3schools Try Yourself Editor -->

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 

<xsl:template match="/">

  <html>

  <body>

  <h3>Federal Reserve Bank of New York</h3>

    

 <xsl:for-each select="UtilityData/Header">

  <b>Name :</b><xsl:value-of select="Name" />

   <br/><b>Sender :</b><xsl:value-of select="Sender/@id" />

  </xsl:for-each>

<br/>

    <table border="1">

      <tr bgcolor="#9acd32">

        <th>Name</th>

        <th>Email</th>

      </tr>

      <xsl:for-each select="UtilityData/Header/Sender/Contact">

      <tr>

        <td><xsl:value-of select="Name"/></td>

        <td><xsl:value-of select="Email"/></td>

      </tr>

      </xsl:for-each>

    </table>

<br/>

<table border="1">

<caption style="text-align:left"><b>Series</b></caption>

      <tr bgcolor="#9acd32">

        <th>Availability </th>

        <th>Decimals</th>

        <th>FF Method</th>

        <th>Disclaimer</th>

        <th>Maturity</th>

      </tr>

<xsl:for-each select="//*[local-name() = 'DataSet']">

<tr>

        <td> <xsl:value-of select="Series/@AVAILABILITY" />   </td>

        <td>   <xsl:value-of select="Series/@DECIMALS" />   </td>

        <td>   <xsl:value-of select="Series/@FF_METHOD" />   </td>

        <td>   <xsl:value-of select="Series/@DISCLAIMER" />   </td>

        <td>   <xsl:value-of select="Series/Key/MATURITY" />   </td>

</tr>

  </xsl:for-each>

</table> <br/>

<table border="1">

      <tr bgcolor="#9acd32">

        <th>OBS Conf</th>

       <th>OBS Status</th>

        <th>Time Period</th>

        <th>OBS Value</th>

      </tr>

      <xsl:for-each select="//*[local-name() = 'Obs']">

      <tr>

        <td><xsl:value-of select="@OBS_CONF"/></td>

        <td><xsl:value-of select="@OBS_STATUS"/></td>

        <td><xsl:value-of select="TIME_PERIOD"/></td>

        <td><xsl:value-of select="OBS_VALUE"/></td>

 

      </tr>

      </xsl:for-each>

    </table>

 

  </body>

  </html>

</xsl:template>

</xsl:stylesheet>

 

 

Rayudu Addagarla

BPM Specialist

Keywords: [Appian BPM, Java, JS, JSON, XML, XSLT, Web Development, JSP, Spring, JBOSS]