Tuesday, December 23, 2014

SharePointer

SharePoint is a web application framework and platform developed by Microsoft. First launched in 2001

 SharePoint integrates intranet, content management, and document management, but recent versions have broader capabilities




SharePoint was created as a platform from Microsoft to host company data and present it in a way that would make it more accessible and effective to all users across an organization

Organizations use SharePoint to create rich, web-based applications that interact with other systems in the company




Download Microsoft SharePoint Server 2013

Start building a new class of apps that extend and personalize the way you create and consume information within Office and SharePoint. There's no need to setup your environment, we do it for you; sign up for Office 365 for Developers.
Web Applications
  • Build apps using familiar widely adopted languages such as HTML, JavaScript, OAuth, and REST/Odata and your favorite web development tools with an open cloud app model.
Hosted in the cloud
  • Host your app on any platform to get the flexibility and scalability you need, and distribute it publically or internally.
Interacting with Office and SharePoint
  • Interact with content in Office documents and SharePoint using web technologies such as HTML and JavaScript.
it isn’t any one software program but rather a platform for several different kinds of programs





Mobile Development Frameworks



  • PhoneGap is a software development framework by Adobe System, which is used to develop mobile applications.
  • To develop apps using PhoneGap, the developer requires only web-development languages like, HTML, CSS, and JScript
  • PhoneGap produces apps for all popular mobile OS platforms such as
              •  iOS, Android, BlackBerry, and Windows Mobile OS.
  • Every mobile operating system provides their own set of tools and environments to develop apps that will run on them. Application made for one operating system cannot run on any other platform as they are entirely different.Thus it is useful to develope an application program that runs on all platforms
  • PhoneGap is a framework that makes the developers develop their apps using standard web APIs for all major mobile operating systems

From developers perspective, an app should have the following items included in its package:
    • Configuration files
    • Icons for app
    • Information or content (built using web-technologies)
http://www.tutorialspoint.com/phonegap/phonegap_environment_setup.htm




 process of transforming our web contents to an app format


  • PhoneGap accepts user login created on GitHub or using AdobeID
  • We can upload the contents we created to GitHub repository and and call them directly to url by providing their url referrence
  1. Create Adobe ID


     2. By default, this page should lead to PhoneGap console as displayed below
 3. Then upload the zip file with the web content and configurations. After successful upload




















Bootstrap is the most popular HTML, CSS, and JS framework for developing responsive, mobile first projects on the web

Wednesday, December 17, 2014

Two Factor Authentication

                                                    TWO   FACTOR   AUTHENTICATION





  • Security Process
  • User is provided with two levels of identification
  • Both the required factors must be used and must be correct to prove one's identity
  • One  factor required for this security is somethig that user pocessess. Can be physical like USB stick token, bank card or digital like figerprint,eyeiris or voice
  • The other is something that the user knows such as username,password , PIN
  •                

Mobile Phone Two Factor Authentication



Developed to avoid the issue -

                 The thing that the user pocesses like USB stick, Bank Card or Key can be lost by the user or stolen making the access impossible. Also the cost involved in procuring and subsequently replacing these items is also costly.

The Approach -


  •   mobile devices such as mobile phones and smartphones are used to serve as "something that the user possesses".
  • For the user to authenticate themselves
                     -they can use their personal access licence (i.e. something that only the individual user                            knows) plus a one-time-valid, dynamic passcode consisting of digits
                               Personal Access License +   Dynamic Passcode
                     - the code is sent to their mobile device by e-mail or sms

  • If the user has already used a sequence of digits (passcode), this is automatically deleted and the system sends a new code to the mobile device
  • if the new code is not entered within a specified time limit, the system automatically replaces it.  Ensuring that already used, old codes are left on the mobile device
  • specifing how many incorrect entries are permitted before the system blocks access would further enhance the security

       


               






Friday, November 28, 2014

BaCk-EnD of ProcessMaker


 
                                   

Workspaces

     In Processmaker, Workspace is the place where a group of processes and their cases are managed as a cohesive unit. Several workspaces are managed by Processmaker

Each workspace maintains 3 My-Sql databases to store internal information about processes, user-permissions and reports in version 2.5 and earlier
  • wf_<WORKSPACE-NAME>
                   This database contains the information required by the Process Engine, including information about processes, cases, users, PM Tables, etc
  • rb_<WORKSPACE-NAME>
                   This database contains the information about users to maintain a Role-Based Access Control (RBAC) system in ProcessMaker
  • rp_<WORKSPACE-NAME>
                   This database is designed to allow external applications to access data from ProcessMaker cases.


Any data entered to the dynaform in ProcessMaker will be entered to a Case-Variable and stored in ProcessMaker MY-SQL database in the wf_<WORKSPACE>.APPLICATION.APP_DATA field

We can use SQL queries in dynaforms  to pull data from external databases or the ProcessMaker databases
With Case Variables data can be pulled from Processmaker triggers and used in the fields in the dynaform

ProcessMaker can also be configured to connect to external databases, allowing an organization to integrate ProcessMaker with other DBMS and business applications which utilize databases
                To use a particular database, database modules for PHP should be installed on the server.... !! 


DynaFormSubmit.gifSubmit    

http://wiki.processmaker.com/index.php/2.0/Buttons#Saving_a_Form.27s_Data

It is necessary to add a submit button to every DynaForm 
It has the Next Step Link property (which can be set in theProperties tab in the DynaForm Editor). => No Save and Continue
Otherwise, the data entered into a DynaForm will be lost when the user clicks on the Next Step link in a DynaForm

Saving Form's Data
     Processmaker offers 4 functions to save data in a dynaform
               
  • submitForm()  => values in the fields are saved to the database
  • saveForm()     => case-variables are created for each field and saved in database
  • saveAndRefreshForm()
  • saveAndRedirectForm()

Custom Javascript code can be added to Submit button to error-check the data entered before it is submitted

  • Below is an egzample of a submit button named "SendBid" will check whether the numbers are within an acceptable range before submitting the DynaForm:If the "Submit" event handler returns true only data will be saved to the database and dynaform closes
  •  function checkBid() {
        var jobType = getField("JobType").value;
        var bid = getField("Bid").value;
        if (jobType == "remodeling" && bid > "$3000") {
             G.alert("Bid is too high for a " + jobType + " job.\nPlease reduce it.", "Error");
             return false;
        }
        else if (jobType == "new construction" && bid < "$5000") {
             G.alert("Bid is too low for a " + jobType + " job.\nPlease increase it.", "Error");
             return false;
        }
        else
             return true;
     } 
      leimnud.event.add(getField("SendBid"), 'click', checkBid);


  • To hide the Next Step Link in dynaforms
             hiddenById("DYN_FORWARD");
          hiddenById("DYN_FORWARD][bullet");


DynaFormSubmit.gifInput Documents



Information about Input Document files and any other files uploaded while running cases is stored in the wf_<WORKSPACE>.APP_DOCUMENT table. 
The filename for Input Document files is stored in the wf_<WORKSPACE>.CONTENT table where the CON_CATEGORY field equals 'APP_DOC_FILENAME'.
To search for all the Input Document files for a particular case, first find the case's unique ID and then use it in the following SQL query:

 SELECT D.*, C.CON_VALUE FROM CONTENT C, APP_DOCUMENT D WHERE D.APP_DOC_UID = C.CON_ID 
    AND D.APP_UID = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

putting links to multiple input document files
          multiple files cannot be uploaded into using file field
http://www.processmakerblog.com/processmaker/links-multiple-input-document-files-dynaforms/



DynaFormSubmit.gifOutput Documents






Since uploaded files are stored as files in the harddrive, their size can be as large as allowed by the server's operating system and hard drive.


Friday, November 21, 2014

Zero-Client Technology



The target of any enterprise is to adapt to the needs of End-Users and satisfy them. For that they need to maintain  a high-quality, secure, low-cost, low-maintenance solution to manage information for end users

Converting to a Virtual Desktop Environment can address these needs, and increase productivity for nearly any organization.

Virtual Desktop   =>  appropriate Hardware   => Many Hardware options
  Environment                    Client(device)                 1.larger thick clients
                                   (to display the desktop  )        2.thin clients
                                     stored in data-center             3.Zero clients




ZERO- CLIENT  is preferable............


  •  an LCD display with minimal hardware and physical space requirements. 
  •  smallest, easiest to manage, most cost-effective device at the endpoint,




Key Considerations in choosing a Zero-Client Environment for View Virtual Desktop

1) Security and Compliance
        Zero clients provide maximum security and centralized control in a  server-hosted   virtual  desktop environment. Absolutely no data is stored on the endpoint. With PCoIP zero
clients, only the display of graphical information is transmitted to the end user, and it is encrypted before it is sent







2) Cost Of Operation

 The lack of moving parts within zero clients ensures that the devices last longer and are more reliable than traditional desktop computers.

Traditional  desktop PCs require a significant amount of  maintenance.Hardware breaks down  and must be replaced. Applications  require updating.

Maintaining PCs  can  place an undue burden on IT administrators. If a user has a problem, maintenance must be done on location, at the user’s workplace.Zero-Clients overcome all these problems

Also zero clients consume a  minimal amount  of electricity, about 6 to 14 watts of power per hour. This is  comparable  to the power  expended by a small bulb on a string  of lights. 
Also, the small  size  of the machine  frees up physical workspace for end users


2) Rapid Deployment

Zero clients are essentially plug-and-play devices ,they require only minutes to set up and seconds  to boot.

Several  zero client models receive power via Ethernet, eliminating the need for a power cord.

After a display and human interface devices such as a keyboard and mouse are connected, the zero client workstation is ready to be utilized







Thursday, November 13, 2014

Welcome to Unix world.. !!!

is a Unix-like and mostly POSIX -compliant(Unix) computer operating system assembled under the model of free and open-source software development and distribution.

Why Linux ??
  •  Linux is very stable!
  • Linux is easy to install!  I
  • Linux is less vulnerable to computer malware
  • Cost
  • More software choices with more features and greater usability





     Therefore Enterprises prefer to use                                                                     Linux  


Software features.

  • Most of the basic Linux utilities( is a small program that provides an addition to the capabilities provided by the operating system.) are GNU software.
  •  GNU utilities support advanced features that are not found in the standard versions of BSD and UNIX System Vprogram.
  • A shell is a program which reads and executes commands from the user. Many types of shells are available for Linux

                C SHell (csh)
                Bourne SHell sh
         GNU Bourne Again Shell (bash)
                 tcsh

 Hardware requirements.

  • Linux is available for many platforms in addition to Intel 80x86 systems,Macintosh, Amiga, Sun SparcStation
  • Linux currently supports systems with the Intel 80386, 80486, or Pentium CPU,
  • require 4 megabytes of RAM at the very least, and 16 megabytes at most

Latest version of Linux released by RedHAt by November 2014 =>Red Hat Enterprise Linux 6.5

       Red Hat is an American Multinational Software Company providing Opensource software to enterprise community

Fedora Project 

Red Hat sponsors the Fedora Project, a community-supported open-source project that aims to promote the rapid progress of free and open-source software . 

Business model

Red Hat partly operates on a professional open-source business model (open code comm can develope)   

In September 2014, it was announced that  Red Hat was "in the midst of a major shift from client-server to cloud-mobile..    Client-Server => Cloud-Mobile. For that they needed to  

  • position Red Hat as the provider of choice for enterprises' entire cloud infrastructure."


Chapter 1. The Linux File System

  The Linux file system is a hierarchically structured tree.  

  A file system is always stored on media (be it a hard drive, a CD or a memory    fragment)

Mounting File Systems

 the root of the file system is stored in one partition and most of the time it is needed to combine many partitions to store a single file system

Combining one partition with a file system => Mounting the File System

Mounting

 the root of the file system is stored on one partition and its users' files are stored in another

here home and everything beneath that are stored in another partition same for bin, boot

The action of mounting requires to identify the location of the filesystem to mount as Mount Point (here /home is the mount point and everything below /home is stored in another location )

Partitions and Disks

Every hardware device (except the network interface) available to the Linux system is represented by a device file inside the /dev location. Partitions and disks are no exception.

The Linux File System Locations

  1. System Required Locations

locations that you cannot place on another file system medium, because these locations are required by the mount command itself to function properly

  • /bin  => contains executable programs needed to bring the system up and    running.

  • /etc  => contains all the configuration files for the system (not the user-specific configurations)
  • /lib  =>usually contains the system libraries necessary to successfully boot the system and run the commands which are located inside /bin.

  • /sbin => contains executable programs.
                   contains programs solely for system administrative purposes

    2. Userland Locations

     contain the files for the regular operation of a system (such as application data and the applications themselves). 

    These can be stored on separate media if you want, but if you do, you will need to setup an initial ram disk to boot your system with.

    /usr => the root of the userland locations  

    •              /bin, /lib , /local , /share are under it.

    3. General Locations

    everything else which might be placed on a separate medium 

    • /home  => home directories of all the local users
    • /boot  => contains the static boot-related files, not actually necessary   once the system is booted(bootloader configuration)
    • /media  => contains the mount points for the various detachable storage (like USB disks, DVDs, ...)

    • /mnt  => for temporarily mounted media
    • /opt  => add-on packages and is usually used to install applications into which are not provided by your package manager natively (as those should reside in /usr) or build specific to the local system (/usr/local).
    • /tmp  => temporary files for the system tools. The location can be cleansed at boot up.
    • /var  => data that changes in size, such as log files, caches, etc

    Special Kernel-provided File Systems


    • /proc =>information about the running system, kernel and processes
    • /sys  => information about the available hardware and kernel tasks
    • /dev  => device files

     

 

 








Tuesday, November 4, 2014

ProcessMaker

                                         

         ProcessMaker





ProcessMaker is an open source, workflow management software suite, which
includes tools to automate your workflow, design forms, create documents, assign
roles and users, create routing rules, and map an individual process quickly and
easily.

ProcessMaker is a cost effective and easy to use open source business process management (BPM) or workflow software application. Workflow software such as ProcessMaker can assist organizations of any size with designing, automating and deploying business processes or workflows of various kinds.



It's relatively lightweight and doesn't require any kind of installation
on the client computer.

 requirements and installation steps for the server.

-----------------------------
|* Requirements for Server *|
-----------------------------
ProcessMaker 2.0 and later requires:
* Linux or UNIX or Windows (XP, Vista, 7, Server 2003, Server 2008)

* MySQL 5.1.6 or greater

* Apache 2.2.3 or greater, with the following modules:
  * Deflate
  * Expires
  * Rewrite
  * Vhost_alias

* PHP 5.1.6 or greater with the following libraries:
  * mysql
  * xml
  * mbstring
  * mcrypt
  * soap (necessary if using web services)
  * ldap (necessary if integrating with LDAP or Active Directory)
  * gd   (recommended if using Events)
  * curl (necessary for uploading/downloading files)

  * Also install PHP's command line interface (CLI) if planning on using Events,
    the Case Scheduler, workspace backup/restore, or developing plugins with the
    Gulliver Framework.

------------------------------
|* Requirements for Clients *|
------------------------------
Mozilla FireFox (recommended)
  or
Internet Explorer 7 or later

-----------------------
|* PHP Configuration *|
-----------------------
In the PHP configuration file (php.ini), set the following settings:
  memory_limit = 120M
  file_uploads = On
  short_open_tag = On
The memory_limit may be a minimum of 80MB, but it is recommended to set it to
120MB. If planning on uploading large Input Documents and attached files, then
increase the max_post_size and upload_max_filesize to larger than the default
2MB:
  max_post_size = 2M
  upload_max_filesize = 2M
-------------------------
|* MySQL Configuration *|
-------------------------
The MySQL "root" user should already have all the necessary privileges to setup
the ProcessMaker databases. If planning on using a MySQL user other than "root"
to set up the ProcessMaker databases, grant a MySQL user superuser privileges
to create and update databases.

Login to MySQL:
  mysql -u root -p
Enter the root password for MySQL.

Once in MySQL, give the user which will be running ProcessMaker superuser
privileges to create create and modify MySQL databases:
mysql> grant all on *.* to 'USER'@'localhost' identified by 'PASSWORD' with grant option;

Replace USER with the name of your MySQL user and PASSWORD with the password
for that user. (If that user doesn't already exist, he/she will be
automatically created with the above grant command. If you are running
ProcessMaker on a different server than your MySQL server, then replace
localhost with the domain name or IP address of the server where ProcessMaker
is located.

Exit MySQL:
mysql> exit;

If you have forgotten the root password, see these instructions to reset it:
 http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html

If unable to log into MySQL because there is no socket, then MySQL needs to be
started as a service.

Roles in Process Maker

 Each user is assigned a role  determines      

  • what actions that user can perform in ProcessMaker 
  •  what parts of the interface that user can access.
Three default roles
  1.    PROCESSMAKER_ADMIN
  2.    PROCESSMAKER_MANAGER
  3.    PROCESSMAKER_OPERATOR

Properties Menu of tasks in Process Maker



User Management  in Process Maker  

http://wiki.processmaker.com/index.php/2.0/Managing_Users
include Creating a Department and setting the supervisor for the department

Permissions for users in Process Maker 

http://wiki.processmaker.com/index.php/2.0/Roles

Conditions in Process Maker 
         Conditions are rules that determine the path of a case. Two major types of conditions are :

  •  Routing Route Condition  => indicates the direction of the next task a case will be directed to depending on the value of an earlier task

  • Step Condition   => indicates the steps that need to be filled out based on the information collected during the process
  • Trigger  Condition  => If a Trigger doesn't have a condition, then it will always be executed when running a case. 

Reference for more on  Conditions
         http://wiki.processmaker.com/index.php/Using_Conditions

Some videos on Pre-built generic processes on Human Resourse Workflow in Process Maker 
                   http://www.processmaker.com/workflow-solutions


Grids in Process Maker 

            When a dynaform containing a grid object is submitted, a  CASE VARIABLE is created with same grid name. This contains an  associative array of associative arrays.
                 
           row1                                  row2                           row3       row4

  Fieldname1:value              Fieldname:value
   Fieldname2:value

Reading from Grids

To access the value stored in a particular field in a grid, reference it as:
@=grid-name[row-number]['field-name']
 Remember:
  • The case variable for a grid is the name of the grid field which is embedded in a master DynaForm.
  • The row numbers start counting from the number 1 (not 0 like a normal array).
  • The names of grid fields are case sensitive and they are strings which must be enclosed in quotation mark
  •  $model1 = @=OrderList['1']['model']

  • Looping through grids

$tot = count(@=OrderList);
for ($cnt = 1; $cnt <= $tot; $cnt++) {
   if (int(@=OrderList[$cnt]['price']) > 300)‏ {
      PMFSendMessage(@@APPLICATION, "admin@example.com", "supervisor@example.com", 
         "", "", "Please verify large order", "expensiveOrder.html");
      break;
   }
 }



foreach (@=OrderList as $row) {
  if (int($row['price']) > 300) {‏
     PMFSendMessage(@@APPLICATION, "admin@example.com", "supervisor@example.com", 
         "", "", "Please verify large order", "expensiveOrder.html");
      break;
   } 
}



http://wiki.processmaker.com/index.php/2.0/Grids

           Executing Code When Adding a Row
           Hiding a Grid
           Accessing Grids with PHP

Triggers in Process Maker 

Using the ProcessMaker Debugger to debug triggers

http://wiki.processmaker.com/index.php/2.0/Triggers
Triggers are mostly used with hidden fields when accessing grid fields    
Functions in Process Maker 

Getting the function list

Pm.gif Available Version: 2.5.1
Usually, it is difficult to remember functions and sentences to be used in ProcessMaker. Now the trigger editor added the possibility to list ProcessMaker functions and PHP sentences to be inserted while a trigger is created. Press Cntrl + Space in the Editor, to get the function list as the image below

Functions
Functions are used in trigers to make works done. Below are few functions in ProcessMakker 

  • PMFTaskCase()  => returns all the tasks for the specified case
  • PMFTaskList()  => returns a list of tasks which the specified user has initiated
  • PMFUserList()  =>  returns a list of users whose status is set to "ACTIVE"
  • PMFGroupList()
  • PMFRoleList()
  • PMFProcessList()
  • PMFNewCase()     => creates a new case starting in the specified task
  • PMFSendMessage() => function sends out customized email notifications using a template.

    

Administration in Process Maker


Applying a Skin

Admin -> Settings -> skin

  • UxModern
  • Neoclassic Skin
  • Classic Skin
  • Blank Skin => removes the top framework with the logo

Applying a Logo

Admin -> Settings -> logo

install the php_exif.dll file, due to some problems with images larger than 250 x 40 pixels. Uploading those size, logo won't be resized :

Setting Environment


Admin -> Settings -> environment (hide process information)

Heartbeat

new "heartbeat" function which is designed to send statistics to the ProcessMaker developers about how ProcessMaker is being used

 help the developers gauge how ProcessMaker is being used and to determine how to improve the application in the future

Case Schedular

provides a way to automatically start new cases at specified times.

Specified process => CaseSchedular 


Case Tracker


allows an external user to log into ProcessMaker and review the advances of a given case.

Cases List Builder


is a plug-in designed to allow users to customize the content that is available in their Cases List

The Case List Builder plugin is included in the Enterprise Edition plugin.


Plugin Development




      Eventhough Processmaker is a opensource software it is not recommanded to EDIT  the code. Instead a plugin can be developed to add additional functionality.




Plugins are developed using the gulliver new-plugin command in a Linux/UNIX server.

 Plugins cannot be developed in Windows servers, because symbolic links are needed. 

After the plugin has already been created, it can be exported to other installations of ProcessMaker, including Windows servers.



Enterprise edition VS Community edition in Process Maker
enterprise edition includes plugins   http://www.processmaker.com/enterprise-plugin-manager
  processmaker advanced BPM LDAP authentication and active directory plugin is available in enterprise edition.
Community edition ldap plugin in other
  • Enable Automatic Register'. in the configuration screen.  With this enabled, a first time user of ProcessMaker can navigate to the ProcessMaker server and attempt to log in using their LDAP credentials

    Input Documents

    http://wiki.processmaker.com/index.php/2.0/Input_Documents

  • maintaing required fields
    http://wiki.processmaker.com/index.php/JavaScript_Function

To assign a user for the next task by being in the dynaform using Triggers


Value Based Assignment allows a variable to specify which user will be given authority to work on a task. The variable can be set in the Variable for Value Based Assignment textbox which appears when the option is selected. By default, the variable is @@SYS_NEXT_USER_TO_BE_ASSIGNED, whose value should be set to the UID (Unique ID) of the next user to be assigned to the task
When the assignment is done inside a grid, use hidden fields in that dynaform and use these field names in that dynaform trigger

Interprocess communication in Process Maker

     Processmaker uses POOLS to allow communication and connection between processes.
http://wiki.processmaker.com/index.php/3.0/Pools_and_Lanes

Security  in Process Maker

     Security is an important and an essential issue in the Industry. Processmaker provides security too to an acceptable level.
http://www.processmaker.com/security-statement


Release of 3 powerful  plugins in Process Maker

http://www.processmakerblog.com/release/kicking-october-release-powerful-plugins/