Physical Renderer Methods in Siebel Open UI (Training – Part 9)

You know how to configure Physical Renderer in Siebel Open UI. In this module we will discuss few frequently used Physical Renderer Methods that every Open UI developer should know.

Frequently used Physical Renderer methods in Siebel Open UI:

  1. Define
  2. AttachPMBinding
  3. GetPM
  4. BindData
  5. BindEvents
  6. ShowUI
  7. FieldChange
  8. EnableControl
  9. SetControlValue
  10. EndLife

1. Define Method:

Siebel Open UI uses ‘Define’ method to locate the Presentation Model (PM) or Physical Renderer (PR) JS file and other dependent files. It must have a return statement like return “SiebelAppFacade.customclassname”;

Syntax: define (Module_name,List_of_dependencies,Function);

  • Module_name is the Physical Renderer file name with file path but without file extension.
  • List_of_dependencies is an array of all dependent modules required to execute PR JS file. If there is no dependency, keep it blank.
  • Function identifies the function name and returns an object.

Example:

// Define method to make sure Siebel Open UI can identify PR JS file and other dependent files

define(“siebel/custom/ShowHideFieldsPR”, [“order!3rdParty/jquery.signaturepad.min”, “order!siebel/phyrenderer”], function () {
                  — Write the code here—
return “SiebelAppFacade.ShowHideFieldsPM”;

2. AttachPMBinding:

AttachPMBinding is used to bind a method with another method. If there is no conditional expression, Open UI calls ‘Method_to_call’ method after ‘Method_name’ execution.

Syntax:

this.AttachPMBinding(“Method_name”,”Method_to_call”,{when: function(Conditional_function){return false;}});

  • Method_name is the existing method name, typically Presentation Model method name.
  • Method_To_Call is Physical Renderer custom method name. Siebel Open UI calls this method after execution of Method_name.
  • Conditional_function: Siebel Open UI calls ‘Method_to_call’ method based upon return value of Conditional_function. 
    • True: Open UI calls the AttachPMBinding method.
    • False. Open UI does not call the AttachPMBinding method.

Example: this.AttachPMBinding( “ShowHideFieldsPM”, ModifyLayout );

3. GetPM:

GetPM method is used to get Presentation Model instance in Physical Render JS file. It does not include any argument.

Syntax: GetPM()

Example: var controls = this.GetPM().Get( “GetControls” );

4. BindData:

BindData method downloads metadata and data from Siebel server to client proxy and then binds data to user interface. It can access all properties from PM and passes it to PR to build user interface.

Syntax: BindData(SearchData, options);

Example:

custom.prototype.BindData = function(){
SiebelAppFacade. custom.superclass.BindData.apply(this, arguments); };

5. BindEvents:

BindEvents method binds the Presentation Model method to Physical Renderer events.

Syntax: BindEvents(this.GetProxy().GetControls());

Example:

Suppose requirement is when user clicks on plus sign (+) of a collapsible applet, call PM to restore applet as well as data. So you can set an event on restore button action and bind that event with PR JS file.

SiebelAppFacade.RecycleBinRenderer.superclass.BindEvents.call(this);

6. ShowUI:

ShowUI renders the metadata, data and PR events. It shows the physical control corresponding to an applet control.

Syntax: ShowUI()

Example:

If you want to display a list applet in grid layout, use ShowUI to render the third-party grid control.

CustomPR.prototype.ShowUI = function(){

7. FieldChange:

Siebel Open UI uses FieldChange method in Physical Renderer to modify field value. Mostly FieldChange method is followed by SetControlValue method to set the value of the control.

Syntax: 

this.GetPM().AttachPMBinding(“FieldChange”, this.SetControlValue, {scope: this}

8. EnableControl:

EnableControl method is used to enable a control in Physical Render JS file.

Syntax: EnableControl(control_name)

9. SetControlValue: 

SetControlValue method is used to set the value of a control. Generally we call SetControlValue method after FieldChange method.

Syntax: 

this.GetPM().AttachPMBinding(“FieldChange”, this.SetControlValue, {scope: this}

10. EndLife:

EndLife method ends the life of an event. It is recommended  to use the EndLife method to release custom events, delete unused variables and so on.

Syntax: EndLife()

Example:

CustomPR.prototype.EndLife = function(){
$(Object_name).unbind (“Event_name.CustomPR”); };
           – Object_name is the name of the object where the event runs
           – Event_name  is the name of an event

This ends our module on Physical Renderer methods in Siebel Open UI.

If you have any question about Physical Renderer Methods, please feel free to comment below.

Keep in touch, follow TechOneStop on Facebook / Twitter / LinkedIn / Google+.

<< Module 8: Presentation Model Methods               Module 10: Siebel Open UI Best Practices >>

Watch our YouTube Video on Physical Renderer Configuration:

Presentation Model Methods in Siebel Open UI (Training – Part 8)

You already know how to configure Presentation Model in Siebel Open UI. In this module we will discuss few frequently used Presentation Model Methods in Siebel Open UI that every Open UI developer should know.

Frequently used Presentation Model methods in Siebel Open UI:

  1. Define
  2. Init
  3. AddProperty
  4. SetProperty
  5. Get
  6. ExecuteMethod
  7. AddMethod

1. Define Method:

Siebel Open UI uses ‘Define’ method to locate the Presentation Model (PM) or Physical Renderer (PR) JS file and other dependent files. It must have a return statement like return “SiebelAppFacade.customclassname”;

Syntax: 

define (Module_name,List_of_dependencies,Function);

  • Module_name is the Presentation Model file name with file path but without file extension. 
  • List_of_dependencies is an array of all dependent modules required to execute PM JS file. If there is no dependency, keep it blank. 
  • Function identifies the function name and returns an object. 

Example:

// Define the presentation model file location and other dependencies if any

define(“siebel/custom/ShowHideFieldsPM”, [], function () {
— Write the code here—
return “SiebelAppFacade.ShowHideFieldsPM”;
});

2. Init Method:

Init stands for Initialization. It is used to initialize other methods or objects like AddProperty, AddMethod.

Syntax: Init()

Example:

ShowHideFieldsPM.prototype.Init = function(){
SiebelAppFacade.ShowHideFieldsPM.superclass.Init.call( this );
this.AddProperty(“ShowHideStatus”, “” );
this.AddMethod( “ShowSelection”, SelectionChange, { sequence : false, scope : this } );
};

3. AddProperty Method:

AddProperty method is used to add a property in Presentation Model. You can use ‘Get’ method to fetch the value from the property. AddProperty method returns ‘True’ if the property is created successfully otherwise ‘False’. A subsequent call to this method with the same property name will overwrite the previous value.

Syntax:

this.AddProperty(“propertyName”, propertyValue);

Example:

this.AddProperty(“ShowHideflag”, False);
SiebelJS.Log(this.Get(“ShowHideflag”));

4. SetProperty Method:

SetProperty is used to set the property value, created by AddProperty method. It returns ‘True’ if the property value is set successfully otherwise ‘False’.

Syntax:

SetProperty(property_name, property_value);

Example

this.SetProperty( “ShowHideflag “, true);

5. Get Method:

Get method returns the property value.

Syntax: Get()

Example:

this.AddProperty(“ShowHideflag”, False);
SiebelJS.Log(this.Get(“ShowHideflag”));

6. AddMethod Method:

AddMethod adds vanilla or custom methods to the Presentation Model. You can use ExecuteMethod to run the method that AddMethod adds. It returns ‘True’ if the method is added successfully, otherwise ‘False’.

Syntax:

AddMethod(“MethodName”, MethodDef(argument1, argunemtn2,… argument n), {MethodConfig : value});

   MethodName is the name of the method that Siebel Open UI adds to the Presentation Model

   MethodDef is an argument that helps to call another method

   Argument1/2..N are the arguments that AddMethod passes to the method defined in MethodDef

   MethodConfig can have below values

      ♦ Sequence:

               – Set it to ‘True’ if you want Siebel Open UI to call MethodName before the method that already exists in PM.

               – False if you want Siebel Open UI to call MethodName after it calls the method that already exists in PM.

               – Default value is False.

      ♦ Override:

               – If ‘True’, Siebel Open UI does not call the method that already exists in PM.

               – If ‘False’, Siebel Open UI calls the method that already exist in PM.

      ♦ Scope:

               – It defines the scope of the MethodDef.

Example:

this.AddMethod( “FieldChange”,  OnFieldChange, { sequence : false, scope: this } );

** You can not override any method that already exists in vanilla application by using Override as True.

7. ExecuteMethod Method:

ExecuteMethod is used to execute vanilla and custom methods in PM. ExecuteMethod returns a value from the method if it exists otherwise it returns ‘Undefined’.

Syntax:

this.GetPM().ExecuteMethod(“vanilla/custom method name”, arguments);

Sometimes it is written as this.ExecuteMethod(“vanilla/custom method_name”, arguments);

Example:

var controls = this.Get( “GetControls” );
var control = controls[ “Status” ];
var value = this.ExecuteMethod( “GetFieldValue”, control );

** If the method, specified in ExecuteMethod, is a custom method, then make sure AddMethod is used to add the method before calling ExecuteMethod.

Few less frequently used Presentation Model Methods:

  1. AttachEventHandler Method
  2. AttachNotificationHandler Method
  3. AddComponentCommunication Method
  4. AttachPostProxyExecuteBinding Method
  5. AttachPreProxyExecuteBinding Method
  6. OnControlEvent Method
  7. Setup Method

These are not highly used Presentation Model methods. If you want to know any of these methods, please let us know.

This ends our module on Presentation Model Methods in Siebel Open UI.

If you have any question, please feel free to comment below.

Keep in touch, follow TechOneStop on Facebook / Twitter / LinkedIn / Goolge+.

<< Module 7: Debugging in Siebel Open UI                     Module 9: Physical Renderer Methods >>

Watch our YouTube Video on Presentation Model Configuration:

5 Best Cloud Based Free CRM Software For Small And Medium Business

5 Best Cloud Based Free CRM Software For Small And Medium BusinessA company without CRM is like fish out of water – continuous growing competition, high customer attrition rate and frequent change in customers’ buying trends are most common challenges for an organization to sustain and grow further.
CRM is the only solution for an organization to nurture existing contacts properly and capture new customers. But it is really tough for a small or medium organization to spend a good amount to setup CRM application.

So what is the best solution?

Best solution is, choose free open source CRM to solve these business challenges. But there are lots of free open source CRM software with rich functionalities and number of such free CRM applications is continuously growing which is bit confusing for an organization to choose the right CRM for business. You could read our article on how to choose the best CRM for your organization.

Here we will discuss best 5 cloud based free CRM applications which could be life saver for a small or medium organization.

There are many open source CRM applications available in the market but not all of them are cloud based free CRM, for example Vtiger is free when it is installed locally but cloud version is paid. But we know, time and infrastructure, both matter for an organization, especially if it is SME. In case of cloud based CRM software, an enterprise does not need to spend any money for infrastructure, also application customization is real quick and easy task. There are many other benefits for cloud based CRM over on premise CRM but these are the main two reasons for which we suggest a SME to go for cloud based free CRM software.

Top 5 Cloud Based Free CRM :

Bitrix24

free open source CRMMost of the CRM applications with free basic plan allow only couple of users to have free account but Bitrix24 allows 12 users to create free account with 5 GB space. That is likely enough for a small or medium business to get start.

Free Bitrix24 account comes with unbelievable features–
– CRM includes almost all major business requirements like sales automation, contact management, quote management, business rules automation, invoicing, reports and sales funnel, direct email or call to clients from dashboard, integration with third party applications. It has mobile app for iOS and android to browse client records, create quotes, verify product catalog.
– It provides inter company social networking with ‘Like’ button, instant chat facility, computer telephony integration, photo and video sharing capability. It also includes employee motivational tools like badges, awards to show appreciation towards co-workers.
– It provides 5 GB free space for online file storage and document collaboration. There is no other CRM right now that provides 5 GB space with free plan. Also users can create or edit documents in Bitirx24 without any office suite.
– It has built in task and project management capability as well. Task can be created for oneself or assigned to colleagues, task report helps upper management to understand how much time an employee spends on a particular task.
Overall Bitrix24 is an application that helps an organization to run from one place.

Free account limitations:
12 users
5 GB storage
No record limit

Zoho CRM

cloud based free CRM software

Zoho is well-known CRM application with great features. It has web apps for almost everything that a SME needs like CRM, email integration, file sharing, social networking. It’s free edition allows an organization to create 10 free accounts with 1 GB space and limited functionalities but all these are sufficient for a small or medium company to generate leads, manage contacts and increase revenue.


Here are the few important features that Zoho CRM free edition provides:
– CRM includes almost all important features that an enterprise needs like sales force automation, marketing automation, lead management, contact management, quote management, live chat and email, tasks and activities handling, business rules and workflow management.
– It provides 1 GB space to an organization as document library. It can be used for file/folder sharing and documents attachment with file versioning capability.
– Zoho can be easily integrated with social networking sites like Twitter / Facebook or other Zoho apps like Zoho Projects, Zoho SalesIQ. It can be synchronized with various Google apps as well like Google calendar, Google contacts. Also it provides web to lead and web to contact form facilities to capture leads or contacts in web forms.

Free account limitations:
10 Users
1 GB space
No record limit

Insightly

free CRMInsightly CRM free edition grants 2 free accounts per organization with 200 MB storage. It includes almost all basic CRM features like Contact Management, Project Management, Task/Event/Calendar Management, Opportunity Management, Social Networking, Reporting, Email Integration. It provides the capability to import contacts from Gmail or Outlook or a simple spreadsheet.

Main drawbacks of Insightly CRM Free plan – it limits to store only 2500 records and allows to create 8 custom fields. Also its free plan does not include email marketing. But if these limitations are acceptable and want a simple way to start CRM, it is worth to give a try.

Free account limitations:
2 Free users
2500 records
200 MB free storage

Capsule

CRM Free

Capsule CRM is another lightweight and user friendly CRM application. Its free version provides very basic CRM functionalities with 2 free user accounts and 10 MB file storage. Beside CRM functionalities like contact management, opportunity management or task management, it has an unique feature called List. List uses filtering criteria based upon any possible options in CRM like name, updated on, type or status to group similar kind of contacts or opportunities or cases. With CRM object navigation bar at the top, there is a text link bar as well to bookmark contacts, cases or opportunities that you have accessed recently. Though it has good integration capability with other third party applications, free version has very limited integration features. Another drawback with free plan is that it allows to store only 250 contacts with unlimited opportunities and unlimited cases.

Free account limitations:
2 free users
10 MB storage
250 contacts with unlimited opportunities and cases


Really Simple Systems

cloud based free CRMReally Simple Systems CRM is really simple application with great functionalities like Sales automation, Contact Management, Opportunity Management, Task and Activities handling, Reporting. It’s free edition allows 2 users to have free account and 100 MB file storage. It also includes integration with KashFlow and SageOne accounting applications, custom reports, custom fields on all objects.
Drawbacks: Free plan supports only sales automation, not marketing automation or customer service management. Also it limits to create only 100 accounts with unlimited contacts, tasks and opportunities.

Free account limitations:
2 Free users
100 MB storage
100 accounts with unlimited contacts, activities and opportunities

Conclusion

There are many other cloud based free CRM applications as well like Podio, Clevertim, Raynet, Highrise, FreeCRM. But free edition of these CRM applications have more limited features like Podio does not include user management facility, Clevertim has no file storage and FreeCRM is free for 1 year only.
CRM market is ever changing and highly competitive place, so it is really tough to tell which one is best cloud based FREE CRM. But we can easily decide best CRM application for an organization.

Though we have listed down 5 cloud based free CRM applications here, we highly recommend an organization to try Bitrix24 and Zoho CRM.
If you want to know which FREE CRM suites for your business most, please contact us to get free quote.

Did we miss to mention any other great free CRM application here? Please write it below.

To know more, follow ‘TechOneStop on Facebook / Twitter / LinkedIn / Goolge+ or join our website as follower.
Sharing is caring, so please share this article with your friends.

<< How to choose best CRM software for your business

Error: Invoking service ‘Context Service’, method ‘GetRowSetData’ at step ‘Get Context Row Set’ (SBL-BPR-00162) (SBL-DAT-00215)”.

Have you seen below error message during Siebel configuration?

“Error invoking service ‘Context Service’, method ‘GetRowSetData’ at step ‘Get Context Row Set’.(SBL-BPR-00162)”.

Sometime it is followed by another error message – “This operation is not allowed when there are no records displayed. Please execute a query that returns at least one record or add a new record.(SBL-DAT-00215)”.

Recently one of our readers dropped us a mail asking solution to fix this issue.

This error usually comes up when we are working on Signals or variable maps or pricing workflows in Siebel. There could be many reasons behind this error but most common mistakes are –

1) PSP driver Workflow is not active
– Verify that the PSP driver Workflow is in active status. If not, activate the workflow, restart server and verify it once again, issue should be resolved.

2) Business components are not based upon class CSSBCOrderMgmtBase, CSSBCPecBase and their subclasses
– Signals can be invoked only for that business component if it’s base class is either CSSBCOrderMgmtBase or CSSBCPecBase or their sub classes. Mainly signals call be called from all order management related objects like Quote , Order, Product BCs. If we try to invoke signal from any other business components which are not based upon these classes, Siebel will throw this error.

Please share your experience if you have faced this issue for any other reason or these two solutions were not sufficient to fix this error message.

To know more, follow ‘TechOneStop on Facebook / Twitter / LinkedIn / Goolge+ or join our website as follower.
Sharing is caring, so please share this article with your friends.

<< SBL-EAI-08032: WSDL cannot be generated               SBL-SCB-00014 / SBL-NET-01023 >>