Appian Interview Questions - 6

# Expression Rules Interview Questions 

1) Validate Email Address : Script that is used to validate email address as entered by the user as an input text value to the interface. Regex flag is Defaults to "is" to match original functionality

### Code:

regexmatch(

  pattern: "^[A-Z0-9\'\+\&\%_-]+(\.{0,1}[A-Z0-9\'\+\&\%_-]+)*[@]{1}[A-Z0-9.-]*[A-Z0-9-]+[.]{1}[A-Z]{2,6}$",

  searchString: ri!email,

  regexFlags: "si"

)

2) Validate Name Without Special Character : Script that is used to validate an entered user name without any special character that usually does not appear on a user's full name. If true, then valid else invalid.

### Code:

if(

  a!isNullOrEmpty(ri!name),

  false,

  regexmatch(

    "^\p{L}+['\p{L}\p{Zs}]{0,}\p{L}$",

    ri!name

  )

)

3) Validate Phone Number : Script that is used to validate phone number entered by a user

### Code:

and(

    len(ri!phoneNumber) = len(cleanwith(ri!phoneNumber, "+0123456789()()")),

    and(

      len(ri!phoneNumber)>=3,

      len(ri!phoneNumber)<=15

    )

)

4) Validate Zip Codes : Script that is used to validate a user entered zip code

### Code:

if(

  a!isNullOrEmpty(ri!zipCode),

  {},

  or(

    like(

      ri!zipCode,

      "[0-9][0-9][0-9][0-9][0-9]"

    )

  ),

  null,

  "Enter a valid ZIP code with 5 digits"

)

5) Reverse the text without reverse function:

### Code:

a!localVariables(

  local!text: "Kumar Reddy",

  local!list: char(code(local!text)),

  joinarray(

    a!forEach(

      local!list,

      local!list[length(local!list) - fv!index + 1]

    ),

    ""

  )

)

### Output:

yddeR ramuK

6) Return count of letters in the given text

### Code:

a!localVariables(

  local!text: "Kumar Reddy",

  local!list: char(code(local!text)),

  a!forEach(

    union(local!list, local!list),

    {

      item: fv!item,

      count: count(wherecontains(fv!item, local!list))

    }

  )

)

### Output:

{

  { item: "K", count: 1 },

  { item: "u", count: 1 },

  { item: "m", count: 1 },

  { item: "a", count: 1 },

  { item: " r", count: 1 },

  { item: "R", count: 1 },

  { item: "e", count: 1 },

  { item: "d", count: 2 },

  { item: "y", count: 1 }

}

7) Sort the list without native functions

### Rule Inputs:

1. `list` (List of Number (Floating Point))

2. `res` (List of Number (Floating Point))

### Code:

if(

  a!isNullOrEmpty(ri!list),

  {},

  a!localVariables(

    local!min: min(ri!list),

    local!final: append(ri!res, local!min),

    if(

      length(ri!list) = 1,

      local!final,

      rule!NR_sortWithOutDefaultFunction(

        remove(

          ri!list,

          min(wherecontains(local!min, ri!list))

        ),

        local!final

      )

    )

  )

)

### Input:

list: {9, 7, 5, 4, 8, 1, 3, 1}

### Output:

{1, 1, 3, 4, 5, 7, 8, 9}

8) Write an expression rule which takes 2 input arrays and concatenates each element of both arrays by index.

   **Input:**

   Array 1 - A, B, C, D, E, F

   Array 2 - P, Q, R, S, T, U

   **Output:**

   A-P

   B-Q

   C-R

   D-S

   E-T

   F-U

   **Code:**

   a!localVariables(

     local!arr1: { "A", "B", "C", "D", "E", "F" },

     local!arr2: { "P", "Q", "R", "S", "T", "U" },

     a!forEach(

       merge(local!arr1, local!arr2),

       index(fv!item, 1, null) & "-" & index(fv!item, 2, null)

     )

   )

9) Write an expression rule to print the below output with the two input arrays.

   **Input:**

   Array 1 - {1, 2, 3, 4, 5}

   Array 2 - {A, B, C, D, E}

   **Output:**

   A5, A4, A3, A2, A1, B1, B2, B3, B4, B5, C5, C4, C3, C2, C1, D1, D2, D3, D4, D5, E5, E4, E3, E2, E1

   **Code:**

   a!localVariables(

     local!arr1: { 1, 2, 3, 4, 5 },

     local!arr2: { "A", "B", "C", "D", "E" },

     a!forEach(

       local!arr2,

       a!localVariables(

         local!item: fv!item,

         local!index: fv!index,

         a!forEach(

           if(

             mod(local!index, 2) = 0,

             local!arr1,

             reverse(local!arr1)

           ),

           local!item & fv!item

         )

       )

     )

   )

10) Write an expression rule to print all the prime numbers between a given range.

   **Code:**

   a!localVariables(

     local!start: 1,

     local!end: 10,

     a!forEach(

       enumerate(local!end - local!start) + local!start,

       if(

         sum(

           mod(fv!item, enumerate(sqrt(fv!item)) + 1) = 0

         ) <= 1,

         fv!item,

         {}

       )

     )

   )

   **Output:**

   {1, 2, 3, 5, 7}

11) Write an expression rule to print the below pattern for any given input N.

   **Code:**

   a!localVariables(

     local!n: 5,

     a!forEach(

       enumerate(local!n),

       joinarray(repeat(local!n, " * "), "")

     )

   )

   **Output:**

    *  *  *  *  * 

    *  *  *  *  * 

    *  *  *  *  * 

    *  *  *  *  * 

    *  *  *  *  * 

12) Write an expression rule to print the below pattern for any given input N.

   **Code:**

   a!localVariables(

     local!n: 5,

     a!forEach(

       enumerate(local!n),

       joinarray(repeat(local!n - fv!index + 1, " * "), "")

     )

   )

   **Output:**

    *  *  *  *  * 

    *  *  *  * 

    *  *  *   

    *  *  

    *

13) Write an expression rule to print the below pattern for any given input N.

   **Code:**

   a!localVariables(

     local!n: 5,

     a!forEach(

       enumerate(local!n),

       joinarray(repeat(fv!index, " * "), "")

     )

   )

   **Output:**

    * 

    *  *  

    *  *  *  

    *  *  *  *  

    *  *  *  *  *

14) How to find the power of a number (x to the power of y) without using any Appian function like power() ?

   **Code:**

 a!localVariables(

     local!power: 5,

     local!base: 2,

     local!result: repeat(local!base, local!power),

     product(local!result)

   )

   **Output:**

   25

15) Write an expression rule to print all the numbers between a given range but with different conditions:

   - Condition 1: If the number is divisible by 3, then print "Divisible by 3" instead of that number.

   - Condition 2: If the number is divisible by 5, then print "Divisible by 5" instead of that number.

   - Condition 3: If the number is divisible by both 3 and 5, then print "Divisible by 3 & 5".

   **Code:**

   a!localVariables(

     local!n: 15,

     a!forEach(

       enumerate(local!n) + 1,

       if(

         and(mod(fv!item, { 3, 5 }) = 0),

         "Divisible by 3 & 5",

         if(

           mod(fv!item, { 3 }) = 0,

           "Divisible by 3",

           if(

             mod(fv!item, { 5 }) = 0,

             "Divisible by 5",

             fv!item

           )

         )

       )

     )

   )

   **Output:**

   {1, 2, "Divisible by 3", 4, "Divisible by 5", "Divisible by 3", 7, 8, "Divisible by 3", "Divisible by 5", 11, "Divisible by 3", 13, 14, "Divisible by 3 & 5"}


Appian Interview Questions - 5

 

1) Best practice to create CDT ?

A) Best Ways to create CDT……

Use proper naming convention for the object.

Use naming space for the table to identify.

Create primary key and avoid nested relation ship.

The field value should not be more than 23 characteristics if is there characters are truncating.

Better way to create CDT from table or View option.

For 1 CDT better to use 30 fields.

Field should not contain special characteristics and wont allow array values.

2) Best way to create Interface ?

A) Best ways to create interface….

Use proper naming convention and Security.

Use Constants to Save multiple values.

Use Expression rule to reduce large number of code to write expressions.

Use to expression rules for write queries.

Avoid multiple buttons in interface.

Use action links wherever required.

Use nested interfaces.

3) Procedure to do Integration Testing in Appian ?

A)

Integration testing like once we complete an task by respective functionality it is related to some other object or functions. So once we develop feature, check weather dependence are varied or reflected.

Example:- Consider a feature developed in  interface like Date of Birthfield. Once select a date of birth, some other field like Agewhich is to be calculated based on selected date.

So here the integration has been checking between the two fields. 

4) Append function in Appian ?

A) Appends a value or values to the given array, and returns the resulting array

Ex: append({10, 20, 30}, 99) = 10,20,30,99

5) Procedure to do Unit testing in apian ?

A) Unit testing is nothing but Behavior testing. Behavior testing is nothing but after developing the feature we can check weather feature is developed as per the requirement and all conditions are satisfied or not.

If you want to check the code, open one dummy Expression rule object and Paste the written code and Test we will get to know the functionality.

6) Difference between Tempo reports and Task reports ?

A) Tempo reports can easily be modified through their expression, be viewed on mobile devices and the broad set of web browsers supported by Tempo, and report on data from tasks, records, and relational databases. process reports can only be viewed from the Portal and can only report on data from process models, processes, and tasks, tempo report can be displayed in pie chart,linebarchart, column chart but task report can be displayed in grid

7) What is Swim lanes ?

A) Swim lanes are the charts which distributes the flow.

And if we want to override the assignment than we can go for Swim lanes in the Process model.

For Example in 1 swim lane there is 3 nodes each node is assigned individually, than if we want to override the assignment of task than we can go for the swim lanes.

And other use is if new employee came to the project, so to identify flow is distributed to whom than swim lanes helps to identify.

8) What is the number of Records we can display in Grids of Record ?

A) One  lack records.

9) How to configure Action in Tempo ?

A) In development Environment there is menu bar click on that and select option like Application Actions. Click on Application Actions and select a process model and publish the application.

10) Can we Configure User Input task in Sites ?

A)  No. If we want to configure than we have to create interface and configure in Report object. Than that report object we can configure in Site.

But in 21.2 Version we can directly configure User interface into the Site.

11) How many maximum number of Nodes we can configure in process model ?

A)  N number but for best practice 50 nodes is recommended

12) What is the Difference between Pass By Value and Pass By Reference ?

A)  In pass by value if child process value changes then it wont affect the parent process, where as in pass by reference if child process values changes parent process value also changes.

13) Difference between XOR,OR,AND and Complex gateways ?

A) 

XOR gate way is like if else conditions among the multiple outgoing paths only one outgoing path will be execute based on the condition 

OR gate way is like if conditions the conditions that become true those outgoing paths will be executed hence there can be multiple outgoing paths executed. 

AND gate way is like fork and join. And gate way will wait for all the incoming paths to reach the node once all the incoming paths reaches the node then all the outgoing paths will be executed simultaneously. And gate way doesn’t require any configurations. 

Complex gate way is a combination of all the above gate ways.

14) How many ways we can call process model ?

A)

From Application Action 

From Record Related Action 

From sub process (Synchronous/Asynchronous) 

From Submit Link or Button of a Process start form 

From Receive Message Event in Start Node 

From Timer Event in Start Node. 

From Rule Event in Start Node.

Start process smart Service. 

Start Process smart function 

Start Process link 

Through End Event 

15) I assigned a User input task to Group1, after getting of task in task tab of Tempo, I removed the User in Group. Does task exist in the his task tab ?

A)  Yes task will exist in the task tab. But it is Exists until unless it is completed.

But user is not available so to complete this task or skip the node in process model we have to configure exceptions or escalations by timer event.

16) Difference between paging grid and Editable Grid ?

A)  Paging grid pagination is compulsory, it has gridfield() function where as grid layout has gridLayout(), editable grid can be both readonly and editable but paging cannot be edited.

17) Difference between message and Post in News Tab ?

A) Message is Secret or individual information.

     Post is Public information.

18) Types of Records ?

A) Entity backed record

      Process backed record

      Service backed record

      salesforce

19) Types of Reports ?

A) Tempo report

      Process report

20) What is the Difference between Tempo and Sites? Why we need to go for Sites ?

A)  Sites is customized portal we can add upto 5 pages in sites and give security to individual page where as tempo has news,tasks,record,report and actions tab. We need to go for site because it provides customized portal we can display only necessary information to end user and we can provide security to individual pages.

21) What is the procedure to unarchive the Data in apian ?

A) In new version 21.2 we can get archived data from monitoring mode. Say like we don’t got this kind of scenario in our project till now, if we got like this scenario our apian admin take care of this.

22) How to select a process model from number of process models to rectify Error ?

A)  Any process model which configured by the process display name it is compulsory.

By dynamic Process display name in process model.

The dynamic display name which is visible in monitoring tab there we can get all process instances, here we can search it by process display name and rectify it.

23) Is it good to function Fetch total count is true in Query Entity ?

A)  Its not best practice to set fetchTotalCount to true, because inside it will  counts all the rows and fetches the data.

24) How to optimize the records data to display in Grids ?

A) Here we can use pagination.

Pagination is nothing but a!paginginfo(startindex:1,batchsize:-1),which controles the data to display. How means if we kept batchsize: -1 it will display all data or if we keep batch size: 100 it will fetch first 100 rows of data.

25) What is the Syntax to write in SQL for index of table ?

A) CREATE INDEX index_name

ON table_name (column1, column2, ...);

26) What are the JPA Annotations in Appian ?

A)  Jpa is java persistence api used to manage between java object and relational database.

27) What is the use of Aggregations function in Query Entity to display 500 records in 2lakh records ?

A) Aggregation function is nothing but grouping of the data as per the field value.

Here we have sum aggregation functions.

Functions: COUNT, SUM, MIN, MAX

For the above question we can use pagination to display 500 records and use aggregation function for grouping the data.

28) How to give relation for Child process to Parent process in Sub process ?

A)  In child process model create one process variable and make sure that compulsory need a value to start a process. Than check parent process model there in sub process inputs will get input variable as a process variable.

Here the relation as like Pass by Value or Pass by reference.

29) As a performance wise how to optimize number of records and Write query Entity ?

A) To optimize number of records we have to mention pagination like a!paginginfo(startindex:1,batchsize: -1), because to optimize the number of records.

Optimize number of columns to retrieve the data by using section function in query entity. Best practice is to select 30 columns. If more than 30 columns it will impact on Performance.

30) Difference between Exception and Escalations in process model ?

A)  In exception if the node is delayed we can alternate the workflow, whereas in escalation if the node is delayed we can reassign it or change its priority or send alert or send message event.

Appian Interview Questions - 4

 

1) When should an input and output of the node be used ?

A) Input of node is used when one needs to pass the input to the node for its functionality. The input can also be defined when the ac has to used in the output of the node for any manipulation.

Output of the node is either used to take the results of the node's functionality or to customised our own outputs by manipulating the values

2) What is the purpose of using the Stored Values in write to data store entity node's output ?

A) It is to retrive the output of the data stored in the DB along with pk value when pk is auto generated

3) When a process with a active task is paused, will the task be available to the user to perform ?

A) No. An error will be shown to user when the task is opened

4) Will timer node execute when the instance is paused ?

A) Yes

5) When should local variables be used ?

A) Local variables are used when the scope is within the interface/rule and the value need not go outside that object. They are also used to define the repeitive piece of code/function/rule.

6) What are the different ways to refresh a local variables ?

A) Local variables can be refreshed on the following ways:

1. refreshAlways: When true, the value of this local variable will be refreshed after each user interaction and each interval refresh. 

2. refreshInterval: How often the variable value gets refreshed in minutes. When null, the variable will not be refreshed on an interval. Valid values include 0.5, 1, 2, 3, 4, 5, 10, 30, 60.

3. refreshOnReferencedVarChange: When true, the value of this local variable will be refreshed each time the value of any variable it references within the value parameter is updated. Default is true.

4. refreshOnVarChange: Refreshes the value of the local variable each time any of these specific variables change. This allows you to refresh the value when a variable that is not referenced within the value parameter is updated.

5. refreshAfter: Refreshes the value of the local variable after a record action, such as a related action or a record list action configured within a record type, completes from a dialog window within the Record Action Component. Instead of requiring the entire page to reload, this parameter allows you to refresh a local variable value on an interface after a record action completes. Valid values include RECORD_ACTION.

7) Why shouldnt a interface have more than 500 lines of code ?

A) How to reduce the number of lines of code? More than 500 lines of code leads to binding issues and this can be solved using Modular coding

8) What is purpose of Set as Default test cases ?

A) It will set the values given to an ri in the interface as default. Whenever the interface is opened these values are assigned to the ri. This makes the testing of interfaces expecially readonly interfaces easier

9) What is a MNI and its best practices ?

A) Multiple Node instance is to create multiple instance of a node. This is done when the functionality of the node is to be repeated for various inputs. The best practice is do a null check of the variable before the MNI and if the variable has more than 1000 values, it is recommened to do batch process (Split the input to MNI into smaller values and send to MNI)

10) What are the different types of records created in Appian ?

A)

1. Entity Backed Records; 

2. Service/Expression Backed Records; 

3. Process Backed Records

11) What is a data sync and when should I use it ?

A) When data sync is enabled, you are caching your source data in Appian. With a cache of your data, this means Appian will only have to execute queries from the cached data instead of the external source whenever you view or interact with the record data. Refer here on when to use data sync.

12) When should default filters and user filters be used ?

A)  Default filters are used when the filter has to be applied to source while retriving the data for the record type

User filters are the filters applied by the user once the record type list is displayed.

13) How many additional views can be added to a record type ?

A) Total 20 along with Summary view

14) Sites In Appian ?

A)  Site is nothing but end user portal ,and it is customized portal. Here the advantage of Site compare to Tempo is…

We can customize the tabs and we can maintain the security for each tab .

There is no News tab in the Site.

Compare to Tempo there is no fixed tabs like records, reports , actions, tasks and News.

In site the inputs are Records, Reports and Actions. If you want to configure Interface in site we have to create interface and configure in reports, That way we can configure.

But in New version 21.2 we can directly  configure User interface into the Site.  So now the inputs of Site are Records, Reports ,Actions and User Interface.

Also we can keep it customized icon for each tab and we can change the button style and  Border style.

15) How do you maintain Data management of Process Model ?

A)  Data management of process model is nothing but Archive and deletion of Process Instances.

Process instances are nothing but process model running stages like completion,reject,cancel,error..etc which is present in monitoring tab in development environment.

In process model data can manage and customize by default we can set 0 to 999 days.

There is 2 ways to data management in Process model.

Archive:- By Default in apian can archive the data up to 7 days. If you want to change we can customize. Here the meaning is if we archive the process instance data it will store some were in the appian and we can retrieve the data.

Delete:- This is also same as like a archive but the difference complete process instance has been deleted, not possible to retrieve the process instances.

16) Best Practices to Create Process Model ?

A)  Best practices…….

Security maintenance as per assignment.

While Creation of process model proper naming convention for process model and Process display name.

Use Activity Chaining wherever required and avoid to use unnecessarily.

Always enable activity chain from Start node.

Use sub process and Start process smart services wherever required to reduce the flow length.

Use Swim lanes to divide and distribute the flow.

Configure Data management.

Use alerts.

Use Escalations and Exceptions.

Use mail configuration to rectify errors.

Avoid to use MNI(multiple node instances).

Naming convention for each node as per the functionality.

Use Paragraph field to understand the process for new Employee.

17) Gate ways in Process Model ?

A)  Gate ways in the process model is nothing but OR, XOR, AND and Complex gateways.

18) What are smart Services Used in Process model ?

A)  Explain Any 10 Smart services which you know in the process model.

Like user input task, Write to data store Entity , Script task ,Gate ways, Send Email , Write to multiple data store entity….etc.

19) What is foreach() function ?

A)  foreach() function is nothing but looping function.

Syntax:- a!foreach(items,expression)

Items:- Number of values or parameters to iterate.

Expression:- Expression to  iterate each values.

Try to give one Example.

20) How many ways to create CDT ?

A) There are 5 ways to create CDT.

Create From Scratch:- To Create CDT from Scratch.

Create From Table or View:- to Create CDT from existing table or View in the Data Base.

Create From Duplicate:- To Create from Existing CDT in the Application or External application.

Create From XSD:-  To Create Fro XML Schema Document.

Create From Web Services:- to Create from third party web Services.

21) Difference between Entity Backed, Process backed and Expression Backed records ?

A)  There are 3 types of records in appian…

1.Entity backed record:- 

Record created with Database Entity called Entity Backed records. Data Source is Database Entity. Entity may be database table or view.

2. Process Backed Records:-

Record created to display process instances. Data source Process model.

3. Expression Backed Records:-

Record to Display data of Third party data. Ex:-Web Services.

22) What is the number of Dashboards we can configure in Records ?

A)  Best Practice is 30 but we can configure n number dashboards.

23) Difference between Action and Related Action ?

A)  

Actions:- Action is nothing but fresh flow it means new user can enter the data into the database. Here for configuration of Actions into the tempo we have to navigation bar in the top right corner and click on Application actions and configure the respective process model. To Start a action there is parameter required.

Related Actions:- related Actions are nothing but to update existing data in the database we can go for related actions. Which is configured in the Records. To Start a process compulsorily a parameter is required.

24) Can we configure user interface in site ?

A) No 

In new release version 21.2 we can configure user interface in Site.

But in previous version if we want to configure user input task into site first we have tempo report through interface, than that report we can configure into site.

25) What are different inputs we have for constant ?

A)  Text, Number(Integer), Number(Decimal), user, Expression rule, Record, report, Folder, Group, Document, Document/Folder,Data Store Entity,Boolean..etc

26) How can you get DDL script of tables from Appian ?

A) In data store entity we have button call DDL Script there we can download.

27) I have 100 rows in a table and I want to display in interface and need to provide edit functionality for the user, so which grid id better to use ? Explain.

A) We should go for editable grid because it editable format like we can add or delete the column and we can change the row data . Here we can display data in readonly format also.

But why we are not prefer read only grid means there is no editable .

28) Difference between where(),index(),wherecontains() and contains() functions ?

A) Please go through on Appian documentation and Explain about Syntax.

29) Difference between Default filter and User Filter ?

A)

Default Filter : The filter will apply list of variants in the table and display the data.

User Filter: The filter will apply particular column and display the data.

30) I need Employee first name column from table where Employee firstname=Kumar and workLocation=Pune, Explain code in Query Entity ?

Answer:- a!queryentitty(

                          entity:cons!getemployee_details,

                          query:a!query(

                          paginginfo:a!paginginfo(startindex:,batchsize: -1)

                          selection:{

                                      a!queryselection(field:”firstname”),

                                      a!queryselection(field:”workLocation”)

                                     }

                                        )

                         )


Appian Interview Questions - 3

 

1) What is the difference between an action and a related action ?

A) Action is creating a new data to the system, where related action is performing some action related to the existing data

2) What are the different ways to create a CDT ?

A)

1. From Scratch;

2. Duplicating the existing datatype; 

3. From database view or table; 

4. From XSD; 

5. From Web Services

3) When should a cardlayout be used ?

A) Use card layouts to visually group related content.

4) When should a side by side layout be used ?

A) The side by side layout is used for fine-grained control over the presentation of small groups of related components.

5) What should be the label position for read-only fields ?

A) Adjacent/Justified

6) When the interface has several other components along with the grid, what should be the appropriate batch size of the grid ?

A) 5 - 10 items

7) What are the different ways to provide details about a field to a user ?

A) Helptooltip, placeholder, instructions 

8) What are Gateways and their purpose ?

A) Gateway nodes allow you to evaluate different criteria to make decisions on which path(s) your workflow should follow – as well as how many instances are allowed to follow each optional path. Click here to know about various gateways.

9) What is the difference between local variables and rule inputs ?

A) Local variables are used when the scope is within the interface/rule and the value need not go outside that object. They are also used to define the repeitive piece of code/function/rule.

Rule inputs are used when the value has to be taken outside the object.

10) The process will immediately be archived or deleted after completion or cancellation by setting data management as ___

A) 0

11) What are the exception types that can be configured ?

A) Timer and receive message

12) The triggers that can be added to a start event are

A) Receive Message, Timer

13) Will a change in hidden variable be reflected in the Process History ?

A) No

14) What is the difference between Task Assignee and Task Owner ?

A) Task Assignees are the people for whom the task is being assigned to. 

Task Owner is the person who accepts a group task

15) What should be the reassignment priviledge for basic users ?

A) The reassignment priviledge should be No priviledge as the basic users should not have the ability to reassign the task to anyone in the system and if the reassignment is enabled, the tracking of it becomes difficult. This can be set in the Assignment tab of User input task under "Set Reassignment Priviledge".

16) What is Save Draft ?

A) Save Draft is option available in the form to save the progress done by the user. Documents uploaded by the users wont be saved as the document id is generated only after form is submitted. Save draft doesnot complete the user input task node. This can be configured in the form's tab of the user input task

17) Can the default task assignment mail be disabled ?

A) Yes, under assignment tab the option can be unchecked

18) What are the benefits of modular coding ?

A)

1. Reusability of objects; 

2. Easy change management; 

3. Easy debugging; 

4. Reduced number of lines per interface

19) What is maximum number of nodes and variables allowed per process model ?

A) 30 Nodes and 50 Variables

20) When should Web API, Integration/Web service be used ?

A) Web API should be used when Appian's data is to be exposed to the external system.

Integration/Web Service is used when external system's data is consumed by Appian

21) When to use Web service and Integration ?

A)  When the data returned by external system is in REST/SOAP structure, Integration is used.

When the data returned by external system is in SOAP structure, Web Service is used.

22) What is connected systems ?

A) Connected systems is an object to store the connection credentials used in integrations when connecting to an external system

23) What are the things to be checked during deployment ?

A)

1. Missing Precendents; 

2. Security Summary; 

3. Proper exporting of all objects; 

4. Inspecting all objects and fixing issues if any; 

5. Importing the objects

24) What is customization file ?

A) The customization file is used to provide values to the environmental constant and connected systems when deploying to another env so that the value changed isnt missed.

25) What is the purpose of user start page ?

A) When configured, this allows the user to directly login to the give site rather than the tempo page

26) What is the difference between process model and process ?

A)

Process Model: Model is the object where the flow can be defined/designed.

Process: Process/Instance is the implementation of the design.

27) Why do we need a CDT ?

A) CDT is used to minimize the usage of numerous variables and as it represents the table structure, the data storage and retival in DB is easier 

28) What is Data store and entity ?

A) Data store acts as a bridge between Appian and DB. 

Entity is added in the data store and is represents the table in DB

29) Long Table & Column Names (longer than 27 characters) are truncated in which ways ?

A) Vowels are removed from the name, in the order of u, o, a, e, then i. Names that begin with a vowel retain that vowel only.

The name is split using underscores.

The longest segment of the name is trimmed.

30) What is the purpose of activity chaining ? What is the maximum limit ?

A) Activity chaining is used between more than one tasks performed by the same user so that the user can act upon the tasks without any delay. The maximum limit is default 50 and max 100 unattended nodes between two attended nodes.


Appian Interview Questions - 2

 

1) What is the purpose of alerts in Process model ?

A) Alters in the model is used to notify the defined users about the errors in the instance. The target users are the admins of the app as they are rsponsible for the maintaining the app. This can be defined using a constant so that change management can be easy

2) Why do we need the data management ? When should one select the delete option in data management ?

A) Data Management is used to clear the instances stored in the execution engine. The instance can either be archived or deleted. When there is no user interaction in a process, that process can be deleted. Data management happens only for completed or cancelled instances

3) What is the difference between end and terminate node ? When to use End node ?

A) 

End node completes only the path that hits it while all the other paths are active. This is used when the whole process is to be completed when all the other paths are completed.

Terminate node completes all the paths once it is hit. Even in single flow, terminate node is recommended as even the errored instances of node is completed when the terminate node is hit.

4) When can the document uploaded in file upload component be accessed ? 

A)

a. After uploading the document in the field

b. After form submission

5) Which component can display time (hour, second, minute) but cannot take input ?

A) a!timeDisplayField()

6) How many pages can be added in a site?

A) 10

7) For the given scneario choose the efficient option. 

Scenario: Interface to fill vehicle insurance details. There is a master to field to capture the type of vehicle ( Car / Bike etc) and there are set of fields that differ for the type of vehicle selected.

1. Hide the sequential fields and display only the set of fields that correspond to the selected vehicle type.

2. Display all the field but keep them disabled. Enable only the set of fields that correspond to the selected vehicle type

8) Why should the read-only gird's pagingInfo match the data's pagingInfo ?

A) This is because the data has to be refreshed based on each page.

9) Can News be configured in sites ?

A) Yes

10) Can page name be configured differently for different users ?

A)  Yes

11) What are the different types of navigation for sites? And what is recommended for what type of sites ?

A) Mercury and Helium. Mercury is used when the site has a single page when the page name need not to be shown in the navigation bar.

12) What is the purpose of process report ?

A) It is provides the info about the process models, process instances, or active tasks and other activities. This is mainly used for analysis purpose

13) What are the different types of process report ?

A)

1. Process models; 

2.Process instances; 

3.active tasks

14) What is the function used to get the results from process report ?

A) a!queryProcessAnalytics()

15) Process reports inherit the security from which object in appian ?

A) Knowledge Center

16) What is the extension of the process report stored in Appian ?

A)  .arf

17) How many records will be displayed in the Feed style record list ?

A) 100

18) Can default value be set for User filters ?

A) Yes

19) If a user belongs to multiple groups that have different start pages configured, his start page will be the highest one in the grid that corresponds to a group that he belongs to.

A)  TRUE

20) What are the different datatypes available in Appian ? Give example for each     

A)

1. Primitive (Int, Text, date, dateTime); 

2. Appian Object (Application; Process Model etc); 

3. Complex (pagingInfo; datasubset); 

4. Custom Data Type

21) Can User filter have multiple selection for options ?

A) Yes

22) What is the range of filtered record list for which the "Export to Excel" button be disabled ?

A) This option allow users to export the record list by enabling the Export to Excel button. This button allows end users to export up to 100,000 records from the list, including rich text, images, and links, to Excel.

23) What are the different ways to fetch details from database ?

A) Query DB smart service, Query Entity, Query rule (Deprecated)

24) What is a query Editor ?

A) It is a tool to generate the coding of Query Entity

25) What is the purpose of fetchTotalCount and provide a scenario where fetchTotalCount has to be true

A) FetchTotalCount returns the total number of rows in a table based on the applied filters. This is usually false (ie when batch size is not -1) as it takes extra time to retrive the total. This is set to true when used in Read-Only grid to obtain calculation of the total number of pages required 

26) When should one use filters instead of logical filters ?

A) When the data is to be filtered based on only one filter, then filters can be used

27) Provide the ways to optimize the results of a query entity

A)

1. Use selection to limit the number of columns to be returned; 

2. Use filters wherever possible; 

3. Use limited batch size rather than -1; 

4. Have fetchTotalCount as false

28) Is archived or deleted process be available included in the Process report ?

A) No

29) Will a hidden variable data be displayed in the process report ?

A) No

30) What is a drilldown path in process reports ?

A) The drilldown path provides additional info about a particular column of the report


Appian Interview Questions - 1


1)  What is an environment ?

A)  Any Appian installation is called as environment

2)   What are the different types of Appian installations and state their differences ?

A)                                                                                                                                          

On Premise: The physical hardware is with us and the maintenance is also done by us.

On Cloud: The physical hardware is with Appian and Appian takes care of the maintenance. The Cloud installation can be determined using the url. The url will have ""appiancloud"" in it.

Hybrid: Hybrid can be a combo of both On Premise and On cloud. Training env is an example, as the hardware is with Appian and we do the maintenance

3) SAIL stands for

A) Self-Assembling Interface Layer

4) What is the different licenses available and for what components are they provided ?

A) k3.lic for engines and k4.lic for data server

5) What is the purpose of content, personalization, execution and analytic engine ?

A)                                                                                                                                   

Process Execution: Manages process execution and data for associated process models. Also referred to as exec, PX.

Process Analytics: Stores all relevant information that may be used in a report on a process. Also referred to as analytics, PA.

Content: Stores metadata and security settings for documents and their organizational structures (communities, knowledge centers, and folders). The actual document content is stored on the file system, not in the engine. Also referred to as collaboration, collab, CO.

Personalization: Stores information about users, groups, group membership, and group types. Also referred to as groups, PE.

6) Why can users be deleted or moved to another env in appian ?

A) The license cost is based on the number of users per environment and Appian maintains its metadata based on the users and hence users cannot be moved or deleted.

7) Why should we use named parameters while invoking a rule/constant ?

A) To provide clarity on which value is being mapped to which parameter so that if there is addition or ommission of paramteres in the future, the mapping isnt affected.

8) What is an environmetal constant ?

A) The env constant is used to store the values specific to the environment. For Eg: we can have a constant called IS_PROD whose value will be true only in the production env. The value of env constant can be provided in customization file during deployment

9) Can array type constant be used for comparison of values ?

A) No. This is because if the index of the values changes, the comparison can collapse

10) What is the purpose of the Test cases in rules ?

A) This helps the viewers of the rule to test various pre-defined scenarios.

11) What is the function used to find the language of the logged in user ?

A) userlocale()

12) What is a!save() and save!value

A) 

a!save() - In interface saveInto parameters, a!save() updates the target with the given value. This function has no effect when called outside of a component's saveInto parameter.

save!value - This holds the user inputted value on a temp basis.

13) Will saveInto work for readOnly fields ?

A) No.

14) What is the difference between validation & validation group ?

A) 

Validation - Validation errors to display below the field when the value is not meeting certain business conditions.

Validation Group - When present, the fields are validated only when a button in the same validation group is clicked.

15) What is the purpose of choiceValues parameter of selection components ?

A)  The array of values associated with the available choices. This is the value that gets stored when a choice is made

16) What are the different ways to start a process ?

A)  1. Using Actions; 

    2. Using Sites; 

3. Records (Action & Related Action); 

4. Start Process; 

5. Sub process; 

6. Start Process Link; 

7. Start Form; 

8. Timer (Daily or nightly process); 

9. Using Email; 

10. Using Web API; 

11. Using End/terminate Node; 

12. Degguing Mode

17) Long activity chains - greater than 5 seconds between attended activities - are strongly discouraged because they have both an adverse effect on the performance of the system at scale and the experience of the user. True or False

A) TRUE

18) What is a quick task ?

A)  The quick task is on-demand task ie the task doesnot appear in the task tab. The user can perform the quick task only when activity chained. If the task is closed without any action taken, the task cannot be retrived back. The quick task stays ACTIVE when not performed. When quick task in enabled, tilde (~) will be visible in the user input task

19) What is the difference between Escalation and Exception ?

A)  

Escalation: Escalation is used to take an alternate approach/report it to others when a task isnt performed by the assignees after certain time.

Exception: Exception is used to kill the task and proceed with the flow when the task isnt performed by the assignee after certain time.

20) What is the difference between User Input Task and Process start form ? When should one use Process start form?

A) 

Process Start Form: The process start form starts the instance only when a button whose submit attribute is marked as true. Using this unnecessary instances can be avoided. This should be used only when the user has a choice to submit the form as this doesnot appear as a task in the task queue.

User Input task: This is used when task has to be assigned to certain user(s).

21) What is the domain used to access the function variables in a function ?

A)  fv!

22) What is the domain used to suggest the data types in Appian ?

A)  type!

23) What is the output for the below expression ? 

0=tointeger({})

A)  FALSE

24) What will be the result for the below expression ? 

a!pagingInfo(startIndex: _, batchSize: _)(1, 10)

A)  [startIndex=1, batchSize=10]

25) When should XOR and OR gateways is to be used ?

A)  XOR: is used when only first true path has to be executed based on the given conditions

OR: is used when all the true paths has to be executed based on the given conditions "

26) What is the purpose of lane assignments ?

A)  Lane assignments can be used to provide the assignments for unattended nodes (the nodes which have no user interaction are called as unattended nodes). The assignment to be given is "Whoever designed the process" because not all unattended nodes can be performed by the basic user as basic user wont have all priviledges. Only designers will have all priviledges so the assignment has to be given in that manner.

27) Why should we build short lived processes ?

A)  All the process accumulate in the Execution engine which in turn takes up RAM space. Longer the process is active, longer it will be in the engine as data management will happen only for completed or cancelled instances. Thus long lived process will use a lot of engine space there by lowering the performance of the system. Hence short lived process are recommended (The design wherein the various steps (initiation, approvals etc) are split into different models and are called using Start Process/asyncronous subprocess are called as short lived. Start process/asyncronous subprocess dont make the parent to wait for the child and hence all the process are independent).

28) What is the difference between asyncronous subprocess and start process ?

A)  Asyncronous Subprocess: The parent doesnot wait for the child to complete. The parent and the child process runs in the same engine.

Start Process: The parent doesnot wait for the child to complete. The parent and the child process runs in the same or different engine based on the load. (There are 3 execution engines by default where the instances run)

29) What is the output for below expression ?

milli(time(11,03,04,05)+1)

A)  6

30) Can related action shortcut be provided for all the views of record ?

A)  Yes



MOST VIEWED