Wednesday, February 27, 2019

Siebel CRM Open UI Test Automation (IP-18)

Siebel  CRM (IP-18) Open UI Test Automation, addresses this challenge by providing a built-in automation framework for Open UI and the ability to automate testing without any programming skills.Open UI Test Automation has built-in ‘Keywords’ or ‘Actions’,for automated interactions with the application. By creating a sequence of steps using these built-in Actions, one can automate test flows. Siebel CRM provides the ability to organize such automated test scripts into suites and to execute them in a batch mode.The results of the automation execution are presented in an easy to read manner, enabling the quick analysis of results.
. Built in Automation framework
Record and Playback UI flows
No automation scripting required
support unit playback mode and batch runs
. End To End test management
Manage Test cases,scripts, suits and test cycle
Quality Measurement and Tractability
.Test Execution Framework
Jenkins plugin to mange distributed and parallel automation batch runs.
Consolidated test results in Siebel
Process Flow:
Record > Save > Playback > Import
The following steps to perform for Test automation in 
Creation of test scripts=>Creation of test sets=>Associate test scripts to Test sets=>Creation of Master suites=>Associate Test sets to Master suites
Testing flow:
Test script Record\Playback=> Grouping Test sets\Plans=>Planning with Test strategy\Execution=> Automation Batch run=> Test Passes

Monday, February 25, 2019

How to check PM/PR files are mapped to how many objects(Applets/view/....etc)

Suppose we have to modify "ActivityFormAppletPR" but before that we have to do impact analysis to check whether this PR has been used in how many objects so for that we can run a sql query which will provide us the details of the objects where this PR is getting used.

Below is the query:
select unique D.INACTIVE_FLG,D.NAME
from S_UI_OBJECT D,S_UI_OBJ_EXPR C,S_UI_OBJ_EXP_FL B,S_UI_FILE A
where D.ROW_ID = C.UI_OBJECT_ID AND C.ROW_ID = B.UI_OBJ_EXPR_ID AND
B.UI_FILE_ID = A.ROW_ID AND A.NAME like '%NAME_OF_FILE%'



Benefits:
1. This will eliminate the issue in which multiple objects are mapped to PR/PM
2. It will save time to manually search the objects

Import data from a CSV file into Siebel


Import data from a CSV file into Siebel

Have you thought if we can import data from a CSV file into Siebel with Simple configuration Steps. Siebel provides a path called “Import” option, which offers a solution to import data from CSV without any scripting. I recently got an opportunity to implement this feature as a part of POC.
To Import data from CSV all user needs to do is
1)Selecting Import menu option and input the data in the form of Text, CSV
2)Prepare the text or CSV file with the column headers looking at the field captions in Siebel screen which they want to import.

So Let’s Start with the Configuration tricks to achieve this functionality
Configuration Steps-

  1. Select Import Object Option in Siebel Tools
  2. Crete a new record and enter the Business Component Name “AAB Import BC”
  3. Enter the Import Fields which you want to Import from Excel to Siebel
  4. Enter the Import Key fields same as Import Fields
  5. Compile the objects 
Testing Steps-
To Test this user need to perform below steps

1. User logs in to Siebel application
2. User Navigates to Siebel screen in to which he wants import the data
3. User Note down the field names
4. User creates a text or CSV file using the field names as headers along with the data 
5. User select Import menu option
6. Browse the file name, select Auto Mapping option and click Next button
7. User would see a popup with Import Status, Number of Rows imported
9. User would be able to see the newly imported records

Solution Benefit
  1. No need Scripting
  2. Easy to implement and low development efforts




To Add or Subtract Number of days to date field in Siebel Escript

Date Calculations are always tricky to work with . In this post we will see how to add or subtract a particular number of days to a UTC date time field like created date in our example. Once we have added number of days we will again write the result to a UTC date time field

Example:
var nsign="+1";
//Can have two values 1 or -1. 1 is to add to the source date & -1 is to subtract from the source date                   
var sDate:Date;       
//Create a variable sDate as Date object

var nDays=10;
//Adds 10 days

sDate = new Date(Date.parse(GetFieldValue("Created")));
//Store the Created date value in a date object

sDate.setDate(sDate.getDate()+nsign*nDays);
//Add 10 days to Created date

this.SetFieldValue("AABResultDate",Clib.strftime(sDate,"%m/%d/%Y%H:%M:%S",sDate));
// Here we use Clib.strftime to format the date string to a UTC datetime format MMDDYY HH:MM:SS

So if the Created date is 15-02-2019 10:30:00 the field AABResultDate will be set to 25-02-2019 10:30:00.